aboutsummaryrefslogtreecommitdiff
path: root/21.02/_ref_layer_support_8cpp_source.xhtml
blob: 6e7c31f0b958f71b971279b7df28f894d87c938d (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
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
<!-- 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/reference/RefLayerSupport.cpp 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('_ref_layer_support_8cpp_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">RefLayerSupport.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_ref_layer_support_8cpp.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;</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ref_layer_support_8hpp.xhtml">RefLayerSupport.hpp</a>&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_types_utils_8hpp.xhtml">armnn/TypesUtils.hpp</a>&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_types_8hpp.xhtml">armnn/Types.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="_descriptors_8hpp.xhtml">armnn/Descriptors.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="_ignore_unused_8hpp.xhtml">armnn/utility/IgnoreUnused.hpp</a>&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_numeric_cast_8hpp.xhtml">armnn/utility/NumericCast.hpp</a>&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_layer_support_common_8hpp.xhtml">LayerSupportCommon.hpp</a>&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_layer_support_rules_8hpp.xhtml">backendsCommon/LayerSupportRules.hpp</a>&gt;</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;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;array&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacearmnn.xhtml">armnn</a></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace</span></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;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Float32Func, <span class="keyword">typename</span> Uint8Func, <span class="keyword">typename</span> ... Params&gt;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keywordtype">bool</span> IsSupportedForDataTypeRef(Optional&lt;std::string&amp;&gt; reasonIfUnsupported,</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                               <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dataType,</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                               Float32Func floatFuncPtr,</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                               Uint8Func uint8FuncPtr,</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                               Params&amp;&amp;... params)</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">return</span> <a class="code" href="namespacearmnn.xhtml#af6dbe371ec651a8e0063624fdf32afc0">IsSupportedForDataTypeGeneric</a>(reasonIfUnsupported,</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                                         dataType,</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                                         &amp;FalseFunc&lt;Params...&gt;,</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                                         floatFuncPtr,</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                                         uint8FuncPtr,</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                                         &amp;FalseFunc&lt;Params...&gt;,</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                                         &amp;FalseFunc&lt;Params...&gt;,</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                                         std::forward&lt;Params&gt;(params)...);</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="comment">// anonymous namespace</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">namespace</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;std::string CreateIncorrectDimensionsErrorMsg(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> expected,</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                                              <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> actual,</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                                              std::string&amp; layerStr,</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                                              std::string&amp; tensorName)</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    std::string errorMsg = <span class="stringliteral">&quot;Reference &quot;</span> + layerStr + <span class="stringliteral">&quot;: Expected &quot;</span> + std::to_string(expected) + <span class="stringliteral">&quot; dimensions but got&quot;</span> +</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                           <span class="stringliteral">&quot; &quot;</span> + std::to_string(actual) + <span class="stringliteral">&quot; dimensions instead, for the &#39;&quot;</span> + tensorName + <span class="stringliteral">&quot;&#39; tensor.&quot;</span>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordflow">return</span> errorMsg;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}</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;} <span class="comment">// anonymous namespace</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#abd7fa8c2233f8a653e30ae2f3b839d92">   61</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#abd7fa8c2233f8a653e30ae2f3b839d92">RefLayerSupport::IsAbsSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input, <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                     <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a61c5b4e5dc224ef0c876e43353b34030">IsElementwiseUnarySupported</a>(input,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                                       output,</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                                       <a class="code" href="structarmnn_1_1_elementwise_unary_descriptor.xhtml">ElementwiseUnaryDescriptor</a>(<a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">UnaryOperation::Abs</a>),</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                                       reasonIfUnsupported);</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;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#ab3adb3a28736529682e4ff0ea976dcd3">   70</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#ab3adb3a28736529682e4ff0ea976dcd3">RefLayerSupport::IsActivationSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                                            <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                                            <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_activation_descriptor.xhtml">ActivationDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                                            <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</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;    <span class="comment">// Define supported types.</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes = {</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    };</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                                  <span class="stringliteral">&quot;Reference activation: input type not supported.&quot;</span>);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                                  <span class="stringliteral">&quot;Reference activation: output type not supported.&quot;</span>);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                                  <span class="stringliteral">&quot;Reference activation: input and output types mismatched.&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_same_rank.xhtml">ShapesAreSameRank</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                                  <span class="stringliteral">&quot;Reference activation: input and output shapes are of different rank.&quot;</span>);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keyword">struct </span>ActivationFunctionSupported : <span class="keyword">public</span> <a class="code" href="structarmnn_1_1_rule.xhtml">Rule</a></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        ActivationFunctionSupported(<span class="keyword">const</span> <a class="code" href="structarmnn_1_1_activation_descriptor.xhtml">ActivationDescriptor</a>&amp; desc)</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="keywordflow">switch</span>(desc.<a class="code" href="structarmnn_1_1_activation_descriptor.xhtml#af10fa7883e3579950f477bee92a64844">m_Function</a>)</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            {</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">ActivationFunction::Abs</a>:</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d">ActivationFunction::BoundedReLu</a>:</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaaed67cf7d54c570e4c4891800f085f41d">ActivationFunction::Elu</a>:</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa0877e5b3fbe9d7569df6399609ed0186">ActivationFunction::HardSwish</a>:</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaacb7667f5ec2f6e8a5943b781ba6c2735">ActivationFunction::LeakyReLu</a>:</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa32a843da6ea40ab3b17a3421ccdf671b">ActivationFunction::Linear</a>:</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa3d90c0a5ab3fcf8e6f6608cb3d3a1559">ActivationFunction::ReLu</a>:</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa21eebb164e4b8b9bcf64fdb4d8d5dff4">ActivationFunction::Sigmoid</a>:</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa6bba7052636d1740303b1b2ef3b53fef">ActivationFunction::SoftReLu</a>:</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaaae77f3ad25595e35b327334d89410054">ActivationFunction::Sqrt</a>:</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaaceb46ca115d05c51aa5a16a8867c3304">ActivationFunction::Square</a>:</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa23b68da1de2b77d74da9da2635722a3e">ActivationFunction::TanH</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;                    m_Res = <span class="keyword">true</span>;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                }</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                <span class="keywordflow">default</span>:</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                {</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                    m_Res = <span class="keyword">false</span>;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                    <span class="keywordflow">break</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;        }</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;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="comment">// Function is supported</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(ActivationFunctionSupported(descriptor), reasonIfUnsupported,</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                                  <span class="stringliteral">&quot;Reference activation: function not supported.&quot;</span>);</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;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;}</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a48177e22e47448adb3d83e145dadf735">  138</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a48177e22e47448adb3d83e145dadf735">RefLayerSupport::IsAdditionSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                                          <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                                          <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                                          <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes = {</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    };</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input0, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                                  <span class="stringliteral">&quot;Reference addition: input 0 is not a supported type.&quot;</span>);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input1, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                                  <span class="stringliteral">&quot;Reference addition: input 1 is not a supported type.&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                                  <span class="stringliteral">&quot;Reference addition: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, input1), reasonIfUnsupported,</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                                  <span class="stringliteral">&quot;Reference addition: input 0 and Input 1 types are mismatched&quot;</span>);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, output), reasonIfUnsupported,</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                                  <span class="stringliteral">&quot;Reference addition: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_broadcast_compatible.xhtml">ShapesAreBroadcastCompatible</a>(input0, input1, output), reasonIfUnsupported,</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                                  <span class="stringliteral">&quot;Reference addition: shapes are not suitable for implicit broadcast.&quot;</span>);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;}</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"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a0f4841f89f21fd794786b4c03c2425fd">  176</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a0f4841f89f21fd794786b4c03c2425fd">RefLayerSupport::IsArgMinMaxSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;input, <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;output,</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                                           <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_arg_min_max_descriptor.xhtml">armnn::ArgMinMaxDescriptor</a> &amp;descriptor,</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                                           <a class="code" href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt;std::string &amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</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;    std::array&lt;DataType, 7&gt; supportedTypes =</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;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></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;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                                  <span class="stringliteral">&quot;Reference ArgMinMax: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_is.xhtml">TypeIs</a>(output, DataType::Signed32), reasonIfUnsupported,</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                                  <span class="stringliteral">&quot;Reference ArgMinMax: output type not supported&quot;</span>);</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;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;}</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a67c970dd054b991e14369de523ca3a5a">  203</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a67c970dd054b991e14369de523ca3a5a">RefLayerSupport::IsBatchNormalizationSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                                                    <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                                                    <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; mean,</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                                                    <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; variance,</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                                                    <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; beta,</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                                                    <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; gamma,</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                                                    <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_batch_normalization_descriptor.xhtml">BatchNormalizationDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                                                    <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</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;    std::array&lt;DataType, 6&gt; supportedTypes =</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    {</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></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;</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                                  <span class="stringliteral">&quot;Reference batch normalization: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                                  <span class="stringliteral">&quot;Reference batch normalization: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                                  <span class="stringliteral">&quot;Reference batch normalization: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(mean, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                                  <span class="stringliteral">&quot;Reference batch normalization: mean is not a supported type.&quot;</span>);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(variance, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                                  <span class="stringliteral">&quot;Reference batch normalization: variance is not a supported type.&quot;</span>);</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(beta, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;                                  <span class="stringliteral">&quot;Reference batch normalization: beta is not a supported type.&quot;</span>);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(gamma, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                                  <span class="stringliteral">&quot;Reference batch normalization: gamma is not a supported type.&quot;</span>);</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</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;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#adc5695cc25f4055c7ed54bdc8604a098">  250</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#adc5695cc25f4055c7ed54bdc8604a098">RefLayerSupport::IsBatchToSpaceNdSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_batch_to_space_nd_descriptor.xhtml">BatchToSpaceNdDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;                                                <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</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="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    std::string batchToSpaceNdLayerStr = <span class="stringliteral">&quot;batchToSpaceNd&quot;</span>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    std::string inputTensorStr = <span class="stringliteral">&quot;input&quot;</span>;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    std::string outputTensorStr = <span class="stringliteral">&quot;output&quot;</span>;</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="comment">// Define supported types.</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    {</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;                                  <span class="stringliteral">&quot;Reference BatchToSpaceNd: input type not supported.&quot;</span>);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                                  <span class="stringliteral">&quot;Reference BatchToSpaceNd: output type not supported.&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                                  <span class="stringliteral">&quot;Reference BatchToSpaceNd: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_tensor_num_dimensions_are_correct.xhtml">TensorNumDimensionsAreCorrect</a>(output, 4),</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                                  reasonIfUnsupported,</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;                                  CreateIncorrectDimensionsErrorMsg(4,</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                                                                    output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(),</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;                                                                    batchToSpaceNdLayerStr,</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;                                                                    outputTensorStr).data());</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_tensor_num_dimensions_are_correct.xhtml">TensorNumDimensionsAreCorrect</a>(input, 4),</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;                                  reasonIfUnsupported,</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;                                  CreateIncorrectDimensionsErrorMsg(4,</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                                                                    input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(),</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;                                                                    batchToSpaceNdLayerStr,</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                                                                    inputTensorStr).data());</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;}</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a7c52726a684dd76258c61af124012537">  300</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a7c52726a684dd76258c61af124012537">RefLayerSupport::IsComparisonSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;                                            <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;                                            <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                                            <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_comparison_descriptor.xhtml">ComparisonDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;                                            <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    std::array&lt;DataType, 8&gt; supportedInputTypes =</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    {</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">DataType::Boolean</a>,</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    };</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input0, supportedInputTypes), reasonIfUnsupported,</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;                                  <span class="stringliteral">&quot;Reference comparison: input 0 is not a supported type&quot;</span>);</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, input1), reasonIfUnsupported,</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;                                  <span class="stringliteral">&quot;Reference comparison: input 0 and Input 1 types are mismatched&quot;</span>);</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_is.xhtml">TypeIs</a>(output, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">DataType::Boolean</a>), reasonIfUnsupported,</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;                                  <span class="stringliteral">&quot;Reference comparison: output is not of type Boolean&quot;</span>);</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;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</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;</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a3dca8ffbcb5f3afa1799aa7d354a3016">  332</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a3dca8ffbcb5f3afa1799aa7d354a3016">RefLayerSupport::IsConcatSupported</a>(<span class="keyword">const</span> std::vector&lt;const TensorInfo*&gt; inputs,</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">ConcatDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;                                        <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</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;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    };</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;                                  <span class="stringliteral">&quot;Reference concatenation: output type not supported&quot;</span>);</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>* input : inputs)</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="_assert_8hpp.xhtml#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a>(input != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(*input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;            <span class="stringliteral">&quot;Reference concatenation: input type not supported&quot;</span>);</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(*input, output), reasonIfUnsupported,</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;            <span class="stringliteral">&quot;Reference concatenation: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    }</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</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;</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#adf18c4fa8fc9e0cdae1967990aa90fe8">  365</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#adf18c4fa8fc9e0cdae1967990aa90fe8">RefLayerSupport::IsConstantSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;                                          <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;    std::array&lt;DataType,8&gt; supportedTypes =</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    {</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    };</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;                                  <span class="stringliteral">&quot;Reference constant: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;}</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#ad330b6e7dcf25410ea878af0557f2197">  384</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#ad330b6e7dcf25410ea878af0557f2197">RefLayerSupport::IsConvertBf16ToFp32Supported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;                                                   <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;                                                   <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_is.xhtml">TypeIs</a>(input, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>), reasonIfUnsupported,</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;                                  <span class="stringliteral">&quot;Reference for ConvertBf16ToFp32 layer: input type not supported&quot;</span>);</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_is.xhtml">TypeIs</a>(output, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>), reasonIfUnsupported,</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;                                  <span class="stringliteral">&quot;Reference for ConvertBf16ToFp32 layer: output type not supported&quot;</span>);</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;}</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a1efcaf6f02892442fefca09f49ea3d7c">  399</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a1efcaf6f02892442fefca09f49ea3d7c">RefLayerSupport::IsConvertFp16ToFp32Supported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;                                                   <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;                                                   <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="namespacearmnn.xhtml#af6dbe371ec651a8e0063624fdf32afc0">IsSupportedForDataTypeGeneric</a>(reasonIfUnsupported,</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;                                          input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>(),</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;                                          &amp;TrueFunc&lt;&gt;,</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;                                          &amp;FalseInputFuncF32&lt;&gt;,</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;                                          &amp;FalseFuncU8&lt;&gt;,</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;                                          &amp;FalseFuncI32&lt;&gt;,</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;                                          &amp;FalseFuncU8&lt;&gt;) &amp;&amp;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;            <a class="code" href="namespacearmnn.xhtml#af6dbe371ec651a8e0063624fdf32afc0">IsSupportedForDataTypeGeneric</a>(reasonIfUnsupported,</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;                                          output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>(),</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;                                          &amp;FalseOutputFuncF16&lt;&gt;,</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;                                          &amp;TrueFunc&lt;&gt;,</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;                                          &amp;FalseFuncU8&lt;&gt;,</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;                                          &amp;FalseFuncI32&lt;&gt;,</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;                                          &amp;FalseFuncU8&lt;&gt;));</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"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a0947498c6cc747db6219a22132a1b89a">  419</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a0947498c6cc747db6219a22132a1b89a">RefLayerSupport::IsConvertFp32ToBf16Supported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;                                                   <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;                                                   <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_is.xhtml">TypeIs</a>(input, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>), reasonIfUnsupported,</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;                                  <span class="stringliteral">&quot;Reference for ConvertFp32ToBf16 layer: input type not supported&quot;</span>);</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_is.xhtml">TypeIs</a>(output, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>), reasonIfUnsupported,</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;                                  <span class="stringliteral">&quot;Reference for ConvertFp32ToBf16 layer: output type not supported&quot;</span>);</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;}</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a91fb5f44d8b9427dc45443aa9ebfe13e">  434</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a91fb5f44d8b9427dc45443aa9ebfe13e">RefLayerSupport::IsConvertFp32ToFp16Supported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;                                                   <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;                                                   <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="namespacearmnn.xhtml#af6dbe371ec651a8e0063624fdf32afc0">IsSupportedForDataTypeGeneric</a>(reasonIfUnsupported,</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;                                          input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>(),</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;                                          &amp;FalseInputFuncF16&lt;&gt;,</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;                                          &amp;TrueFunc&lt;&gt;,</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;                                          &amp;FalseFuncU8&lt;&gt;,</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;                                          &amp;FalseFuncI32&lt;&gt;,</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;                                          &amp;FalseFuncU8&lt;&gt;) &amp;&amp;</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;            <a class="code" href="namespacearmnn.xhtml#af6dbe371ec651a8e0063624fdf32afc0">IsSupportedForDataTypeGeneric</a>(reasonIfUnsupported,</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;                                          output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>(),</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;                                          &amp;TrueFunc&lt;&gt;,</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;                                          &amp;FalseOutputFuncF32&lt;&gt;,</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;                                          &amp;FalseFuncU8&lt;&gt;,</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;                                          &amp;FalseFuncI32&lt;&gt;,</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;                                          &amp;FalseFuncU8&lt;&gt;));</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"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#af7ff06bd8115a6a9cc6d41e5c762798e">  454</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#af7ff06bd8115a6a9cc6d41e5c762798e">RefLayerSupport::IsConvolution2dSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;                                               <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;                                               <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_convolution2d_descriptor.xhtml">Convolution2dDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;                                               <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; weights,</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;                                               <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;TensorInfo&gt;</a>&amp; biases,</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;                                               <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    <span class="comment">// Define supported types.</span></div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes =</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    {</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    };</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;                                  <span class="stringliteral">&quot;Reference Convolution2d: input is not a supported type.&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;                                  <span class="stringliteral">&quot;Reference Convolution2d: output is not a supported type.&quot;</span>);</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">// For Convolution2d, we allow to have BFloat16 input with Float32 output for optimization.</span></div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordflow">if</span> (input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>() == <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>)</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    {</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        <span class="keywordflow">if</span> (output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>() != <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a> &amp;&amp; output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>() != <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>)</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        {</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;            reasonIfUnsupported.<a class="code" href="classarmnn_1_1_optional_reference_switch.xhtml#a77c7d528ac063d870b8c8426ec81c1c3">value</a>() += <span class="stringliteral">&quot;Output tensor type must be BFloat16 or Float32 for BFloat16 input.\n&quot;</span>;</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;            supported = <span class="keyword">false</span>;</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        }</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    }</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    {</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;                                  <span class="stringliteral">&quot;Reference Convolution2d: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    }</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    <span class="keyword">const</span> <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> inputType = input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>();</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="namespacearmnn.xhtml#ad91bc7bfe29186f5d78c28386c6c5309">IsQuantized8BitType</a>(inputType))</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    {</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;        <a class="code" href="_deprecated_8hpp.xhtml#ab66a241a0ed3ee89c866e777b035d0ed">ARMNN_NO_DEPRECATE_WARN_BEGIN</a></div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        std::array&lt;DataType, 4&gt; supportedWeightTypes =</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;        {</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a34346ec9593088efe3a29c0dad92166d">DataType::QuantizedSymm8PerAxis</a> <span class="comment">// deprecated</span></div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        };</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        <a class="code" href="_deprecated_8hpp.xhtml#ad762b11b48e5c1d1c1743f529485728a">ARMNN_NO_DEPRECATE_WARN_END</a></div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(weights, supportedWeightTypes), reasonIfUnsupported,</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;                                      <span class="stringliteral">&quot;Reference Convolution2d: weights type not supported for quantized input.&quot;</span>);</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    }</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    {</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(weights, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;                                      <span class="stringliteral">&quot;Reference Convolution2d: weights is not a supported type.&quot;</span>);</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, weights), reasonIfUnsupported,</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;                                      <span class="stringliteral">&quot;Reference Convolution2d: input and weights types mismatched.&quot;</span>);</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    }</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    <span class="keywordflow">if</span> (biases.<a class="code" href="classarmnn_1_1_optional_base.xhtml#a86b749ce2c4bc627fa8a1fcfaf0e314f">has_value</a>())</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    {</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        std::array&lt;DataType,4&gt; biasesSupportedTypes =</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;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        };</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(biases.<a class="code" href="classarmnn_1_1_optional_reference_switch.xhtml#a77c7d528ac063d870b8c8426ec81c1c3">value</a>(), biasesSupportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;                                      <span class="stringliteral">&quot;Reference Convolution2d: biases is not a supported type.&quot;</span>);</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">  534</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;}</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;</div><div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a87a66c5e87a19534ce3e6c374c9b8f09">  539</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a87a66c5e87a19534ce3e6c374c9b8f09">RefLayerSupport::IsDebugSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    std::array&lt;DataType, 8&gt; supportedTypes =</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    {</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    };</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;                                  <span class="stringliteral">&quot;Reference for Debug layer: input type not supported&quot;</span>);</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;                                  <span class="stringliteral">&quot;Reference for Debug layer: output type not supported&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;                                  <span class="stringliteral">&quot;Reference for Debug layer: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;}</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"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a128fb9890897e08251a3f621e570cd23">  569</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a128fb9890897e08251a3f621e570cd23">RefLayerSupport::IsDepthToSpaceSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;                                              <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;                                              <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_space_to_depth_descriptor.xhtml">DepthToSpaceDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;                                              <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</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;    std::array&lt;DataType,6&gt; supportedTypes =</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="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;    };</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;        <span class="stringliteral">&quot;Reference DepthToSpace: input type not supported&quot;</span>);</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;        <span class="stringliteral">&quot;Reference DepthToSpace: output type not supported&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;        <span class="stringliteral">&quot;Reference DepthToSpace: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;}</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"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#adc84390751f227fe03a115b5fa10b0fc">  599</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#adc84390751f227fe03a115b5fa10b0fc">RefLayerSupport::IsDepthwiseConvolutionSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_depthwise_convolution2d_descriptor.xhtml">DepthwiseConvolution2dDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; weights,</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;TensorInfo&gt;</a>&amp; biases,</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;                                                      <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</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;    <span class="comment">// Define supported types.</span></div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes =</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    {</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    };</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;                                  <span class="stringliteral">&quot;Reference DepthwiseConvolution2d: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;                                  <span class="stringliteral">&quot;Reference DepthwiseConvolution2d: output is not a supported type.&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;                                  <span class="stringliteral">&quot;Reference DepthwiseConvolution2d: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    <span class="keyword">const</span> <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> inputType = input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>();</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="namespacearmnn.xhtml#ad91bc7bfe29186f5d78c28386c6c5309">IsQuantized8BitType</a>(inputType))</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="_deprecated_8hpp.xhtml#ab66a241a0ed3ee89c866e777b035d0ed">ARMNN_NO_DEPRECATE_WARN_BEGIN</a></div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;        std::array&lt;DataType, 4&gt; supportedWeightTypes =</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;                {</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;                        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;                        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;                        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;                        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a34346ec9593088efe3a29c0dad92166d">DataType::QuantizedSymm8PerAxis</a> <span class="comment">// deprecated</span></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="_deprecated_8hpp.xhtml#ad762b11b48e5c1d1c1743f529485728a">ARMNN_NO_DEPRECATE_WARN_END</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;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(weights, supportedWeightTypes), reasonIfUnsupported,</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;                                       <span class="stringliteral">&quot;Reference DepthwiseConvolution2d: weights type not supported for &quot;</span></div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;                                       <span class="stringliteral">&quot;quantized input.&quot;</span>);</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;    <span class="keywordflow">else</span></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;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(weights, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;                                      <span class="stringliteral">&quot;Reference DepthwiseConvolution2d: weights is not a supported type.&quot;</span>);</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;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, weights), reasonIfUnsupported,</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;                                      <span class="stringliteral">&quot;Reference DepthwiseConvolution2d: input and weights types mismatched.&quot;</span>);</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    }</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;    <span class="keywordflow">if</span> (biases.<a class="code" href="classarmnn_1_1_optional_base.xhtml#a86b749ce2c4bc627fa8a1fcfaf0e314f">has_value</a>())</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;        std::array&lt;DataType,4&gt; biasesSupportedTypes =</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="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        };</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(biases.<a class="code" href="classarmnn_1_1_optional_reference_switch.xhtml#a77c7d528ac063d870b8c8426ec81c1c3">value</a>(), biasesSupportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;                                      <span class="stringliteral">&quot;Reference DepthwiseConvolution2d: biases is not a supported type.&quot;</span>);</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;</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</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;</div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a2e89c72cf60df7c2d2d7e5d98822b672">  673</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a2e89c72cf60df7c2d2d7e5d98822b672">RefLayerSupport::IsDequantizeSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;                                            <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;                                            <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;    std::array&lt;DataType,4&gt; supportedInputTypes = {</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    };</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedInputTypes), reasonIfUnsupported,</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;                                  <span class="stringliteral">&quot;Reference for Dequantize layer: input type not supported.&quot;</span>);</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>( <a class="code" href="structarmnn_1_1_type_not_per_axis_quantized.xhtml">TypeNotPerAxisQuantized</a>(input), reasonIfUnsupported,</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;                                    <span class="stringliteral">&quot;Reference for Dequantize layer: per-axis quantized input not support .&quot;</span>);</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_not_per_axis_quantized.xhtml">TypeNotPerAxisQuantized</a>(input), reasonIfUnsupported,</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;                                  <span class="stringliteral">&quot;Reference dequantize: per-axis quantized input not support .&quot;</span>);</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;    std::array&lt;DataType,3&gt; supportedOutputTypes = {</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a></div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    };</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedOutputTypes), reasonIfUnsupported,</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;                                  <span class="stringliteral">&quot;Reference for Dequantize layer: output type not supported.&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_same_total_size.xhtml">ShapesAreSameTotalSize</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;                                  <span class="stringliteral">&quot;Reference for Dequantize layer: input/output shapes have different num total &quot;</span></div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;                                  <span class="stringliteral">&quot;elements.&quot;</span>);</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;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;}</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"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a50af275d7755a5bb1be69736d7e4b02f">  711</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a50af275d7755a5bb1be69736d7e4b02f">RefLayerSupport::IsDetectionPostProcessSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; <a class="code" href="_neon_end_to_end_tests_8cpp.xhtml#ada422a73ac4e68bcb1b1b1f0b44028d9">boxEncodings</a>,</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; <a class="code" href="_neon_end_to_end_tests_8cpp.xhtml#a0348e6bb67ace72535bd105219bb6237">scores</a>,</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; <a class="code" href="_neon_end_to_end_tests_8cpp.xhtml#ac0981848e4ae57729f14f72bd4caa9f8">anchors</a>,</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; detectionBoxes,</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; detectionClasses,</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; detectionScores,</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; numDetections,</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;                                                      <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_detection_post_process_descriptor.xhtml">DetectionPostProcessDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;                                                      <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(anchors, detectionBoxes, detectionClasses, detectionScores, numDetections, descriptor);</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="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</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;    std::array&lt;DataType,6&gt; supportedInputTypes =</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;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;    };</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(boxEncodings, supportedInputTypes), reasonIfUnsupported,</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;                                  <span class="stringliteral">&quot;Reference DetectionPostProcess: input 0 is not a supported type.&quot;</span>);</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(scores, supportedInputTypes), reasonIfUnsupported,</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;                                  <span class="stringliteral">&quot;Reference DetectionPostProcess: input 1 is not a supported type.&quot;</span>);</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</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;</div><div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a55d91a97ff664f42cd5cd62b60c15f80">  744</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a55d91a97ff664f42cd5cd62b60c15f80">RefLayerSupport::IsDilatedDepthwiseConvolutionSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;                                                             <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;                                                             <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_depthwise_convolution2d_descriptor.xhtml">DepthwiseConvolution2dDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;                                                             <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; weights,</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;                                                             <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;TensorInfo&gt;</a>&amp; biases,</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;                                                             <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#adc84390751f227fe03a115b5fa10b0fc">IsDepthwiseConvolutionSupported</a>(input, output, descriptor, weights, biases, 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;</div><div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a08f55136b1f0907e7083d70d719f697f">  754</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a08f55136b1f0907e7083d70d719f697f">RefLayerSupport::IsDivisionSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;                                          <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;                                          <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;                                          <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes = {</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    };</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input0, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;                                  <span class="stringliteral">&quot;Reference division: input 0 is not a supported type.&quot;</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input1, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;                                  <span class="stringliteral">&quot;Reference division: input 1 is not a supported type.&quot;</span>);</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;                                  <span class="stringliteral">&quot;Reference division: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;</div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, input1), reasonIfUnsupported,</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;                                  <span class="stringliteral">&quot;Reference division: input 0 and Input 1 types are mismatched&quot;</span>);</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, output), reasonIfUnsupported,</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;                                  <span class="stringliteral">&quot;Reference division: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_broadcast_compatible.xhtml">ShapesAreBroadcastCompatible</a>(input0, input1, output), reasonIfUnsupported,</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;                                  <span class="stringliteral">&quot;Reference division: shapes are not suitable for implicit broadcast.&quot;</span>);</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;}</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a61c5b4e5dc224ef0c876e43353b34030">  792</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a61c5b4e5dc224ef0c876e43353b34030">RefLayerSupport::IsElementwiseUnarySupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;                                                  <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;                                                  <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_elementwise_unary_descriptor.xhtml">ElementwiseUnaryDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;                                                  <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    std::array&lt;DataType, 7&gt; supportedTypes =</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;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></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;</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    std::array&lt;DataType, 1&gt; logicalSupportedTypes =</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    {</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">DataType::Boolean</a></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;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    <span class="keywordflow">if</span> (descriptor.<a class="code" href="structarmnn_1_1_elementwise_unary_descriptor.xhtml#afe768be66897eb3d73284424e3239b23">m_Operation</a> == <a class="code" href="namespacearmnn.xhtml#a1cfaa710db2a54673b21d2ea2da757c8a2a25ebd8c909241e3f7818389b804ecc">UnaryOperation::LogicalNot</a>)</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;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, logicalSupportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;                                      <span class="stringliteral">&quot;Reference elementwise unary: input type not supported&quot;</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;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, logicalSupportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;                                      <span class="stringliteral">&quot;Reference elementwise unary: output type not supported&quot;</span>);</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;    }</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    {</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;                                      <span class="stringliteral">&quot;Reference elementwise unary: input type not supported&quot;</span>);</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;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;                                      <span class="stringliteral">&quot;Reference elementwise unary: output type not supported&quot;</span>);</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;</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;                                  <span class="stringliteral">&quot;Reference elementwise unary: input and output types not matching&quot;</span>);</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_same_total_size.xhtml">ShapesAreSameTotalSize</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;                                  <span class="stringliteral">&quot;Reference elementwise unary: input and output shapes&quot;</span></div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;                                  <span class="stringliteral">&quot;have different number of total elements&quot;</span>);</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</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;</div><div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#afb6ad04c6ff234b193f3dfc0cfabcbd5">  844</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#afb6ad04c6ff234b193f3dfc0cfabcbd5">RefLayerSupport::IsEqualSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a7c52726a684dd76258c61af124012537">IsComparisonSupported</a>(input0,</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;                                 input1,</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;                                 output,</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;                                 <a class="code" href="structarmnn_1_1_comparison_descriptor.xhtml">ComparisonDescriptor</a>(<a class="code" href="namespacearmnn.xhtml#a2d299363c9fc33334c571fa29ca4f58caf5f286e73bda105e538310b3190f75c5">ComparisonOperation::Equal</a>),</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;                                 reasonIfUnsupported);</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;}</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;</div><div class="line"><a name="l00856"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#aab7318aa8adc0a8a3b6a1780cfc1f90b">  856</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#aab7318aa8adc0a8a3b6a1780cfc1f90b">RefLayerSupport::IsFakeQuantizationSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;                                                  <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_fake_quantization_descriptor.xhtml">FakeQuantizationDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;                                                  <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;    std::array&lt;DataType,1&gt; supportedTypes =</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;    {</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a></div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;    };</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;                                  <span class="stringliteral">&quot;Reference fake quantization: input type not supported.&quot;</span>);</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;}</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;</div><div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#acc5d9a4c8f29984de3bbdca87684f317">  874</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#acc5d9a4c8f29984de3bbdca87684f317">RefLayerSupport::IsFillSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_fill_descriptor.xhtml">FillDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;                                      <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(output);</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="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;    std::array&lt;DataType,3&gt; supportedTypes =</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    {</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;    };</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_is.xhtml">TypeIs</a>(input, DataType::Signed32), reasonIfUnsupported,</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;                                  <span class="stringliteral">&quot;Reference Fill: input type not supported.&quot;</span>);</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;                                  <span class="stringliteral">&quot;Reference Fill: output type not supported.&quot;</span>);</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</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;</div><div class="line"><a name="l00899"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a53c7593d1aa26207eac5d5814a9d56dc">  899</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a53c7593d1aa26207eac5d5814a9d56dc">RefLayerSupport::IsFloorSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(output);</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</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;    std::array&lt;DataType,3&gt; supportedTypes =</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;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a></div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    };</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;                                  <span class="stringliteral">&quot;Reference Floor: input type not supported.&quot;</span>);</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;                                  <span class="stringliteral">&quot;Reference Floor: output type not supported.&quot;</span>);</div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;}</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"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#aeaf971dd9dffd6f6bc7e5a1ae6b6af5c">  922</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#aeaf971dd9dffd6f6bc7e5a1ae6b6af5c">RefLayerSupport::IsFullyConnectedSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; weights,</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; biases,</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_fully_connected_descriptor.xhtml">FullyConnectedDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;                                                <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;    <span class="comment">// Define supported types.</span></div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;    {</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;    };</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;                                  <span class="stringliteral">&quot;Reference Fully Connected: input type not supported.&quot;</span>);</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;                                  <span class="stringliteral">&quot;Reference Fully Connected: output type not supported.&quot;</span>);</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(weights, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;                                  <span class="stringliteral">&quot;Reference Fully Connected: weights type not supported.&quot;</span>);</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    <span class="comment">// For FullyConnected, we allow to have BFloat16 input with Float32 output for optimization.</span></div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;    <span class="keywordflow">if</span> (input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>() == <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>)</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;        <span class="keywordflow">if</span> (output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>() != <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a> &amp;&amp; output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>() != <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>)</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;            reasonIfUnsupported.<a class="code" href="classarmnn_1_1_optional_reference_switch.xhtml#a77c7d528ac063d870b8c8426ec81c1c3">value</a>() += <span class="stringliteral">&quot;Output tensor type must be BFloat16 or Float32 for BFloat16 input.\n&quot;</span>;</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;            supported = <span class="keyword">false</span>;</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;    }</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    {</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;                                  <span class="stringliteral">&quot;Reference Fully Connected: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    }</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(weights, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;                                  <span class="stringliteral">&quot;Reference Fully Connected: weights is not a supported type.&quot;</span>);</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, weights), reasonIfUnsupported,</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;                                  <span class="stringliteral">&quot;Reference Fully Connected: input and weights types mismatched.&quot;</span>);</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">if</span> (descriptor.<a class="code" href="structarmnn_1_1_fully_connected_descriptor.xhtml#aea202e14d8874cefd9a0f778022b7e25">m_BiasEnabled</a>)</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;        <span class="comment">// Defined supported types for bias</span></div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;        std::array&lt;DataType, 5&gt;</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        supportedBiasTypes =</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="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a>,</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a></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;</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(biases, supportedBiasTypes), reasonIfUnsupported,</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;                                      <span class="stringliteral">&quot;Reference Fully Connected: bias type not supported.&quot;</span>);</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_bias_and_weights_types_match.xhtml">BiasAndWeightsTypesMatch</a>(biases, weights), reasonIfUnsupported,</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;                                      <span class="stringliteral">&quot;Reference Fully Connected: bias and weight types mismatch.&quot;</span>);</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_bias_and_weights_types_compatible.xhtml">BiasAndWeightsTypesCompatible</a>(weights, supportedBiasTypes), reasonIfUnsupported,</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;                                      <span class="stringliteral">&quot;Reference Fully Connected: bias type inferred from weights is incompatible.&quot;</span>);</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_tensor_num_dimensions_are_correct.xhtml">TensorNumDimensionsAreCorrect</a>(biases, 1U), reasonIfUnsupported,</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;                                      <span class="stringliteral">&quot;Reference Fully Connected: bias must have 1 dimension.&quot;</span>);</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;    }</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;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;}</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;</div><div class="line"><a name="l01002"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a2f51fda38409c3768a7bd28cedf3f075"> 1002</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a2f51fda38409c3768a7bd28cedf3f075">RefLayerSupport::IsGatherSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>&amp; input0,</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>&amp; input1,</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>&amp; output,</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_gather_descriptor.xhtml">GatherDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;                                        <a class="code" href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes =</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    {</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></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;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    <span class="keywordflow">if</span> (descriptor.<a class="code" href="structarmnn_1_1_gather_descriptor.xhtml#a35d11c7d509d1adbae1ae01c58394a7f">m_Axis</a> != 0)</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;    {</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;        reasonIfUnsupported.<a class="code" href="classarmnn_1_1_optional_reference_switch.xhtml#a77c7d528ac063d870b8c8426ec81c1c3">value</a>() += std::string(<span class="stringliteral">&quot;Reference Gather: axis not supported\n&quot;</span>);</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;        supported &amp;= <span class="keyword">false</span>;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    }</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input0, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;                                  <span class="stringliteral">&quot;Reference Gather: input type not supported&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;                                  <span class="stringliteral">&quot;Reference Gather: output type not supported&quot;</span>);</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_is.xhtml">TypeIs</a>(input1, DataType::Signed32), reasonIfUnsupported,</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;                                  <span class="stringliteral">&quot;Reference Gather: indices (input1) type not supported&quot;</span>);</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;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, output), reasonIfUnsupported,</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;                                  <span class="stringliteral">&quot;Reference Gather: input and output types not matching&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;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</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;</div><div class="line"><a name="l01040"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a14e45f3699e823d7859d5d352d89265c"> 1040</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a14e45f3699e823d7859d5d352d89265c">RefLayerSupport::IsGreaterSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;                                         <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a7c52726a684dd76258c61af124012537">IsComparisonSupported</a>(input0,</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;                                 input1,</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;                                 output,</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;                                 <a class="code" href="structarmnn_1_1_comparison_descriptor.xhtml">ComparisonDescriptor</a>(<a class="code" href="namespacearmnn.xhtml#a2d299363c9fc33334c571fa29ca4f58ca8768a6821cd735aea4f5b0df88c1fc6a">ComparisonOperation::Greater</a>),</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;                                 reasonIfUnsupported);</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;}</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;</div><div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#ad29d99ecd719c640ed22dcf5c688c6a5"> 1052</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#ad29d99ecd719c640ed22dcf5c688c6a5">RefLayerSupport::IsInputSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; <span class="comment">/*input*/</span>,</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> <span class="comment">/*reasonIfUnsupported*/</span>)<span class="keyword"> const</span></div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;}</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div><div class="line"><a name="l01058"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a0813546a09bf2caba6794014d1960624"> 1058</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a0813546a09bf2caba6794014d1960624">RefLayerSupport::IsInstanceNormalizationSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;                                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;                                                       <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_instance_normalization_descriptor.xhtml">InstanceNormalizationDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;                                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;    <span class="comment">// Define supported types</span></div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;    std::array&lt;DataType, 3&gt; supportedTypes =</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;        {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a></div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;        };</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;                                  <span class="stringliteral">&quot;Reference Instance Normalization: input type not supported.&quot;</span>);</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;                                  <span class="stringliteral">&quot;Reference Instance Normalization: output type not supported.&quot;</span>);</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;                                  <span class="stringliteral">&quot;Reference Instance Normalization: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_same_total_size.xhtml">ShapesAreSameTotalSize</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;                                  <span class="stringliteral">&quot;Reference Instance Normalization: input and output shapes have different &quot;</span></div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;                                  <span class="stringliteral">&quot;num total elements.&quot;</span>);</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;}</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;</div><div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#aca4acda7ab553edfda828658d8f3882b"> 1090</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#aca4acda7ab553edfda828658d8f3882b">RefLayerSupport::IsL2NormalizationSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;                                                 <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;                                                 <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_l2_normalization_descriptor.xhtml">L2NormalizationDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;                                                 <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    <span class="comment">// Define supported types</span></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;    std::array&lt;DataType, 6&gt; supportedTypes =</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    {</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    };</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;                                  <span class="stringliteral">&quot;Reference L2normalization: input type not supported.&quot;</span>);</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;                                  <span class="stringliteral">&quot;Reference L2normalization: output type not supported.&quot;</span>);</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;                                  <span class="stringliteral">&quot;Reference L2normalization: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_same_total_size.xhtml">ShapesAreSameTotalSize</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;                                  <span class="stringliteral">&quot;Reference L2normalization: input and output shapes have different &quot;</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;                                  <span class="stringliteral">&quot;num total elements.&quot;</span>);</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;}</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;</div><div class="line"><a name="l01125"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a772790c60d70814e30b5bec70fd98776"> 1125</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a772790c60d70814e30b5bec70fd98776">RefLayerSupport::IsLogicalBinarySupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;                                               <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;                                               <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;                                               <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_logical_binary_descriptor.xhtml">LogicalBinaryDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;                                               <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;    std::array&lt;DataType, 1&gt; supportedTypes =</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;    {</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">DataType::Boolean</a></div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;    };</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input0, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;                                  <span class="stringliteral">&quot;Reference LogicalBinary: input 0 type not supported&quot;</span>);</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input1, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;                                  <span class="stringliteral">&quot;Reference LogicalBinary: input 1 type not supported&quot;</span>);</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, output), reasonIfUnsupported,</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;                                  <span class="stringliteral">&quot;Reference LogicalBinary: input and output types do not match&quot;</span>);</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;}</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;</div><div class="line"><a name="l01150"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a6d414f4983a5ca9596d84e340e6fd895"> 1150</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a6d414f4983a5ca9596d84e340e6fd895">RefLayerSupport::IsLogSoftmaxSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;                                            <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;                                            <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_softmax_descriptor.xhtml">LogSoftmaxDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;                                            <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    std::array&lt;DataType, 3&gt; supportedTypes =</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;    {</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a></div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;    };</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;                                  <span class="stringliteral">&quot;Reference LogSoftmax: input type not supported&quot;</span>);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;                                  <span class="stringliteral">&quot;Reference LogSoftmax: output type not supported&quot;</span>);</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;                                  <span class="stringliteral">&quot;Reference LogSoftmax: input and output types do not match&quot;</span>);</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;}</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div><div class="line"><a name="l01177"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a862535721737220f62a49f14ff494dd5"> 1177</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a862535721737220f62a49f14ff494dd5">RefLayerSupport::IsLstmSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; outputStateIn,</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; cellStateIn,</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; scratchBuffer,</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; outputStateOut,</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; cellStateOut,</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml">LstmDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml">LstmInputParamsInfo</a>&amp; paramsInfo,</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;                                      <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(paramsInfo);</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    std::array&lt;DataType,3&gt; supportedTypes = {</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;    };</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    <span class="comment">// check inputs and outputs</span></div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, outputStateIn), reasonIfUnsupported,</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and outputStateIn types are mismatched&quot;</span>);</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, cellStateIn), reasonIfUnsupported,</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and cellStateIn types are mismatched&quot;</span>);</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, scratchBuffer), reasonIfUnsupported,</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and scratchBuffer types are mismatched&quot;</span>);</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, outputStateOut), reasonIfUnsupported,</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and outputStateOut types are mismatched&quot;</span>);</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, cellStateOut), reasonIfUnsupported,</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and cellStateOut types are mismatched&quot;</span>);</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;    <span class="comment">// check layer parameters</span></div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a7dac08f19a1b235d5256d39136848a09">GetInputToForgetWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and InputToForgetWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a3b3c26330a05bf4ea40f8a6b402be354">GetInputToCellWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and InputToCellWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a800adf0f61e84d706060f63037c1a336">GetInputToOutputWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and InputToOutputWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a534af7e4f3a6d50a6dab05abc245133d">GetRecurrentToForgetWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and RecurrentToForgetWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#ae5bfdd423b16f990c1713ef9f91f947b">GetRecurrentToCellWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and RecurrentToCellWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#afe4d25acd31b98dee6f6b28d4d756071">GetRecurrentToOutputWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and RecurrentToOutputWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#ac81393ef433b0c7c337f9f0d55f41ae4">GetForgetGateBias</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and ForgetGateBias types are mismatched&quot;</span>);</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#ad5f4be37766b41f342dd196cb1c6e141">GetCellBias</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and CellBias types are mismatched&quot;</span>);</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#ae0da94ba17ce67b95b5b9d6e5adc4271">GetOutputGateBias</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;                                  <span class="stringliteral">&quot;Reference Lstm: input and OutputGateBias types are mismatched&quot;</span>);</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;    <span class="keywordflow">if</span> (!descriptor.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;    {</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#afa2b04197a764428a8c3a648de8058fc">GetInputToInputWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;                                      <span class="stringliteral">&quot;Reference Lstm: input and InputToInputWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#ad159f9edbddeeb6cf6ff0ba042481ba8">GetRecurrentToInputWeights</a>()),</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;                                      reasonIfUnsupported,</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;                                      <span class="stringliteral">&quot;Reference Lstm: input and RecurrentToInputWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#ae1d5a487fcd13852927c8a2b9f9dfeb6">GetInputGateBias</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;                                      <span class="stringliteral">&quot;Reference Lstm: input and InputGateBias types are mismatched&quot;</span>);</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;        <span class="keywordflow">if</span> (descriptor.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>)</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;        {</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;            supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a36fa9439fda2e72234411956a1c7e64f">GetCellToInputWeights</a>()),</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;                                          reasonIfUnsupported,</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;                                          <span class="stringliteral">&quot;Reference Lstm: input and CellToInputWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;        }</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;    }</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;    <span class="keywordflow">if</span> (descriptor.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>)</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    {</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a0e31db1891d11bbe0d8556c01e9812ef">GetCellToForgetWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;                                      <span class="stringliteral">&quot;Reference Lstm: input and CellToForgetWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a35825b1ec5bc2b14c8eac60887dbcf19">GetCellToOutputWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;                                      <span class="stringliteral">&quot;Reference Lstm: input and CellToOutputWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    }</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;    <span class="keywordflow">if</span> (descriptor.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>)</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;    {</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a18038725f71bb5c5bd03c02cc164f879">GetProjectionWeights</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;                                      <span class="stringliteral">&quot;Reference Lstm: input and mProjectionWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;        <span class="keywordflow">if</span> (paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#ae22fc962c59e7c24986718f5af0020db">m_ProjectionBias</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;        {</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;            supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a9f2cce936b4df49c487eaca513bf55ca">GetProjectionBias</a>()), reasonIfUnsupported,</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;                                          <span class="stringliteral">&quot;Reference Lstm: input and ProjectionBias types are mismatched&quot;</span>);</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;        }</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;    }</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    <span class="keywordflow">if</span> (descriptor.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a4a8ec49f130084445d44297549254780">m_LayerNormEnabled</a>)</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;    {</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;        <span class="keywordflow">if</span> (!descriptor.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;        {</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;            supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a3d2f638ba83ae5dad0094c006220c232">GetInputLayerNormWeights</a>()),</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;                                          reasonIfUnsupported,</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;                                          <span class="stringliteral">&quot;Reference Lstm: input and InputLayerNormWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;        }</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#ab50b4ccb0b84f6427996f76083a4107a">GetForgetLayerNormWeights</a>()),</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;                                      reasonIfUnsupported,</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;                                      <span class="stringliteral">&quot;Reference Lstm: input and ForgetLayerNormWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#aaf1af3bc828c5daa4a5c0bac28f63cc3">GetCellLayerNormWeights</a>()),</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;                                      reasonIfUnsupported,</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;                                      <span class="stringliteral">&quot;Reference Lstm: input and CellLayerNormWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, paramsInfo.<a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml#a045674b768295e617d7060f96f162366">GetOutputLayerNormWeights</a>()),</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;                                      reasonIfUnsupported,</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;                                      <span class="stringliteral">&quot;Reference Lstm: input and OutputLayerNormWeights types are mismatched&quot;</span>);</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;    }</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;}</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;</div><div class="line"><a name="l01288"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#afef9436c86b37b973471f2ae546ac00a"> 1288</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#afef9436c86b37b973471f2ae546ac00a">RefLayerSupport::IsMaximumSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;                                         <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes = {</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;    };</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input0, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;                                  <span class="stringliteral">&quot;Reference maximum: input 0 is not a supported type.&quot;</span>);</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input1, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;                                  <span class="stringliteral">&quot;Reference maximum: input 1 is not a supported type.&quot;</span>);</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;                                  <span class="stringliteral">&quot;Reference maximum: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, input1), reasonIfUnsupported,</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;                                  <span class="stringliteral">&quot;Reference maximum: input 0 and Input 1 types are mismatched&quot;</span>);</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, output), reasonIfUnsupported,</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;                                  <span class="stringliteral">&quot;Reference maximum: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_broadcast_compatible.xhtml">ShapesAreBroadcastCompatible</a>(input0, input1, output), reasonIfUnsupported,</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;                                  <span class="stringliteral">&quot;Reference maximum: shapes are not suitable for implicit broadcast.&quot;</span>);</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;}</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;</div><div class="line"><a name="l01326"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#ab268618580d4f53bf5e9b5a47dee3f6a"> 1326</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#ab268618580d4f53bf5e9b5a47dee3f6a">RefLayerSupport::IsMeanSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_mean_descriptor.xhtml">MeanDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;                                      <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;    std::string meanLayerStr = <span class="stringliteral">&quot;Mean&quot;</span>;</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;    std::string outputTensorStr = <span class="stringliteral">&quot;output&quot;</span>;</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;    {</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;    };</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;                                  <span class="stringliteral">&quot;Reference Mean: input type not supported.&quot;</span>);</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;                                  <span class="stringliteral">&quot;Reference Mean: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;    <span class="keywordflow">if</span> (descriptor.<a class="code" href="structarmnn_1_1_mean_descriptor.xhtml#a28e0548abfc4e79c48f29a3d11a062e9">m_KeepDims</a>)</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;    {</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_tensor_num_dimensions_are_correct.xhtml">TensorNumDimensionsAreCorrect</a>(output, input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>()),</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;                                      reasonIfUnsupported,</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;                                      CreateIncorrectDimensionsErrorMsg(input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(),</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;                                                                        output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(),</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;                                                                        meanLayerStr, outputTensorStr).data());</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;    }</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (descriptor.<a class="code" href="structarmnn_1_1_mean_descriptor.xhtml#a1f0d67b087c491248bd1cde3ff995a95">m_Axis</a>.empty())</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;    {</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_tensor_num_dimensions_are_correct.xhtml">TensorNumDimensionsAreCorrect</a>(output, 1),</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;                                      reasonIfUnsupported,</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;                                      CreateIncorrectDimensionsErrorMsg(1, output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(),</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;                                                                        meanLayerStr, outputTensorStr).data());</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;    }</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;    {</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;        <span class="keyword">auto</span> outputDim = input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() - <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">armnn::numeric_cast</a>&lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&gt;(descriptor.<a class="code" href="structarmnn_1_1_mean_descriptor.xhtml#a1f0d67b087c491248bd1cde3ff995a95">m_Axis</a>.size());</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;        <span class="keywordflow">if</span> (outputDim &gt; 0)</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;        {</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;            supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_tensor_num_dimensions_are_correct.xhtml">TensorNumDimensionsAreCorrect</a>(output, outputDim),</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;                                          reasonIfUnsupported,</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;                                          CreateIncorrectDimensionsErrorMsg(outputDim, output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(),</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;                                                                            meanLayerStr, outputTensorStr).data());</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;        }</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;        {</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;            supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_tensor_num_dimensions_are_correct.xhtml">TensorNumDimensionsAreCorrect</a>(output, 1),</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;                                          reasonIfUnsupported,</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;                                          CreateIncorrectDimensionsErrorMsg(1, output.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(),</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;                                                                            meanLayerStr, outputTensorStr).data());</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;        }</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;    }</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;}</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;</div><div class="line"><a name="l01389"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#aa9309ea64f9f7447efe3567f77417d29"> 1389</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#aa9309ea64f9f7447efe3567f77417d29">RefLayerSupport::IsMergerSupported</a>(<span class="keyword">const</span> std::vector&lt;const TensorInfo*&gt; inputs,</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">MergerDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;                                        <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a3dca8ffbcb5f3afa1799aa7d354a3016">IsConcatSupported</a>(inputs, output, descriptor, reasonIfUnsupported);</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;}</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;</div><div class="line"><a name="l01397"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a9d25fabf725313fda40a41400155bafe"> 1397</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a9d25fabf725313fda40a41400155bafe">RefLayerSupport::IsMemCopySupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> &amp;input,</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> &amp;output,</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;                                         <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string &amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes =</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;    {</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">DataType::Boolean</a></div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;    };</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;                                  <span class="stringliteral">&quot;Reference MemCopy: input type not supported&quot;</span>);</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;                                  <span class="stringliteral">&quot;Reference MemCopy: output type not supported&quot;</span>);</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;                                  <span class="stringliteral">&quot;Reference MemCopy: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;}</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;</div><div class="line"><a name="l01426"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a3d0eafb3de560b3482f857b56b2b2116"> 1426</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a3d0eafb3de560b3482f857b56b2b2116">RefLayerSupport::IsMinimumSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;                                         <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes = {</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;    };</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input0, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;                                  <span class="stringliteral">&quot;Reference minimum: input 0 is not a supported type.&quot;</span>);</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input1, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;                                  <span class="stringliteral">&quot;Reference minimum: input 1 is not a supported type.&quot;</span>);</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;                                  <span class="stringliteral">&quot;Reference minimum: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, input1), reasonIfUnsupported,</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;                                  <span class="stringliteral">&quot;Reference minimum: input 0 and Input 1 types are mismatched&quot;</span>);</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, output), reasonIfUnsupported,</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;                                  <span class="stringliteral">&quot;Reference minimum: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_broadcast_compatible.xhtml">ShapesAreBroadcastCompatible</a>(input0, input1, output), reasonIfUnsupported,</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;                                  <span class="stringliteral">&quot;Reference minimum: shapes are not suitable for implicit broadcast.&quot;</span>);</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;}</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;</div><div class="line"><a name="l01464"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a421e1f3865d99d52613003048342c49a"> 1464</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a421e1f3865d99d52613003048342c49a">RefLayerSupport::IsMultiplicationSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;                                                <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes = {</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;    };</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input0, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;                                  <span class="stringliteral">&quot;Reference multiplication: input 0 is not a supported type.&quot;</span>);</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input1, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;                                  <span class="stringliteral">&quot;Reference multiplication: input 1 is not a supported type.&quot;</span>);</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;                                  <span class="stringliteral">&quot;Reference multiplication: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, input1), reasonIfUnsupported,</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;                                  <span class="stringliteral">&quot;Reference multiplication: input 0 and Input 1 types are mismatched&quot;</span>);</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, output), reasonIfUnsupported,</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;                                  <span class="stringliteral">&quot;Reference multiplication: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_broadcast_compatible.xhtml">ShapesAreBroadcastCompatible</a>(input0, input1, output), reasonIfUnsupported,</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;                                  <span class="stringliteral">&quot;Reference multiplication: shapes are not suitable for implicit broadcast.&quot;</span>);</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;}</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;</div><div class="line"><a name="l01502"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a994c2065561141bf37fcd2ff7bb4af4d"> 1502</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a994c2065561141bf37fcd2ff7bb4af4d">RefLayerSupport::IsNormalizationSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;                                               <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;                                               <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_normalization_descriptor.xhtml">NormalizationDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;                                               <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;    <span class="comment">// Define supported types</span></div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;    std::array&lt;DataType, 6&gt; supportedTypes =</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;    {</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;    };</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;                                  <span class="stringliteral">&quot;Reference normalization: input type not supported.&quot;</span>);</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;                                  <span class="stringliteral">&quot;Reference normalization: output type not supported.&quot;</span>);</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_same_total_size.xhtml">ShapesAreSameTotalSize</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;                                  <span class="stringliteral">&quot;Reference normalization: input and output shapes have different &quot;</span></div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;                                  <span class="stringliteral">&quot;num total elements.&quot;</span>);</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;}</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;</div><div class="line"><a name="l01535"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#aef3244c0ef64c8f2f352d21ce0c06985"> 1535</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#aef3244c0ef64c8f2f352d21ce0c06985">RefLayerSupport::IsOutputSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; <span class="comment">/*output*/</span>,</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;                                        <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> <span class="comment">/*reasonIfUnsupported*/</span>)<span class="keyword"> const</span></div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;}</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;</div><div class="line"><a name="l01541"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a0534291adf9f3436ba331552eba29a43"> 1541</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a0534291adf9f3436ba331552eba29a43">RefLayerSupport::IsPadSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;                                     <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;                                     <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_pad_descriptor.xhtml">PadDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;                                     <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;    <span class="comment">// Define supported output and inputs types.</span></div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;    {</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;    };</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;                                  <span class="stringliteral">&quot;Reference pad: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;                                  <span class="stringliteral">&quot;Reference pad: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;                                  <span class="stringliteral">&quot;Reference pad: input and output types are mismatched.&quot;</span>);</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;}</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;</div><div class="line"><a name="l01572"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a9d553495d9a94fa55588ae159d8bda30"> 1572</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a9d553495d9a94fa55588ae159d8bda30">RefLayerSupport::IsPermuteSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_permute_descriptor.xhtml">PermuteDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;                                         <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;    <span class="comment">// Define supported output and inputs types.</span></div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;    std::array&lt;DataType, 6&gt; supportedTypes =</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;    {</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;    };</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;                                  <span class="stringliteral">&quot;Reference permute: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;                                  <span class="stringliteral">&quot;Reference permute: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;                                  <span class="stringliteral">&quot;Reference permute: input and output types are mismatched.&quot;</span>);</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;}</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;</div><div class="line"><a name="l01603"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#aa955675303d67b1d1fb51fb7f09d8c21"> 1603</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#aa955675303d67b1d1fb51fb7f09d8c21">RefLayerSupport::IsPooling2dSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;                                           <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;                                           <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_pooling2d_descriptor.xhtml">Pooling2dDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;                                           <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;    <span class="comment">// Define supported output and inputs types.</span></div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;    {</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;    };</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;                                  <span class="stringliteral">&quot;Reference poolind2d: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;                                  <span class="stringliteral">&quot;Reference poolind2d: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;                                  <span class="stringliteral">&quot;Reference poolind2d: input and output types are mismatched.&quot;</span>);</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;}</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;</div><div class="line"><a name="l01634"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#adf54bcad228c0ac21f6735d31460cf31"> 1634</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#adf54bcad228c0ac21f6735d31460cf31">RefLayerSupport::IsQLstmSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; previousOutputIn,</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; previousCellStateIn,</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; outputStateOut,</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; cellStateOut,</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml">QLstmDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_lstm_input_params_info.xhtml">LstmInputParamsInfo</a>&amp; paramsInfo,</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(input);</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(previousOutputIn);</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(previousCellStateIn);</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(outputStateOut);</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(cellStateOut);</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(output);</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(paramsInfo);</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(reasonIfUnsupported);</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;}</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;</div><div class="line"><a name="l01658"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#ad2c7be6b84b04444e514f52f593b3df7"> 1658</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#ad2c7be6b84b04444e514f52f593b3df7">RefLayerSupport::IsQuantizeSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;                                          <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;                                          <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;    <span class="comment">// Define supported input types.</span></div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;    std::array&lt;DataType,7&gt; supportedInputTypes = {</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;    };</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedInputTypes), reasonIfUnsupported,</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;                                  <span class="stringliteral">&quot;Reference quantize: input type not supported.&quot;</span>);</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;    <span class="comment">// Define supported output types.</span></div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;    std::array&lt;DataType,4&gt; supportedOutputTypes = {</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;        DataType::QSymmS16</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;    };</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedOutputTypes), reasonIfUnsupported,</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;                                  <span class="stringliteral">&quot;Reference quantize: output type not supported.&quot;</span>);</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_same_total_size.xhtml">ShapesAreSameTotalSize</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;                                  <span class="stringliteral">&quot;Reference quantize: input and output shapes have different num total elements.&quot;</span>);</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;</div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;}</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;</div><div class="line"><a name="l01694"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#ae106544a060930a518ae0a003a3e9a64"> 1694</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#ae106544a060930a518ae0a003a3e9a64">RefLayerSupport::IsRankSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;                                      <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;                                      <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(input);</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;    <span class="comment">// Define supported output types.</span></div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;    std::array&lt;DataType,1&gt; supportedOutputTypes =</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;    {</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a>,</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;    };</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedOutputTypes), reasonIfUnsupported,</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;           <span class="stringliteral">&quot;Reference rank: input type not supported.&quot;</span>);</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;}</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;</div><div class="line"><a name="l01709"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a917c126e64314263b8b5f7bca455ddfb"> 1709</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a917c126e64314263b8b5f7bca455ddfb">RefLayerSupport::IsReduceSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_reduce_descriptor.xhtml">ReduceDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;                                        <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes =</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;    {</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;    };</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;                                  <span class="stringliteral">&quot;Reference Reduce: input type not supported&quot;</span>);</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;                                  <span class="stringliteral">&quot;Reference Reduce: output type not supported&quot;</span>);</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;                                  <span class="stringliteral">&quot;Reference Reduce: input and output types not matching&quot;</span>);</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;}</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;</div><div class="line"><a name="l01739"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#aa02f01bbcb48c67f5b2efc4132ec5e86"> 1739</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#aa02f01bbcb48c67f5b2efc4132ec5e86">RefLayerSupport::IsReshapeSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_reshape_descriptor.xhtml">ReshapeDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;                                         <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(output);</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;    <span class="comment">// Define supported output types.</span></div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;    std::array&lt;DataType,8&gt; supportedOutputTypes =</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;    {</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a>,</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">DataType::Boolean</a></div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;    };</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedOutputTypes), reasonIfUnsupported,</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;        <span class="stringliteral">&quot;Reference reshape: input type not supported.&quot;</span>);</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;}</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;</div><div class="line"><a name="l01763"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a0f29f31e1ba46a52eedcdecd34f4cc24"> 1763</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a0f29f31e1ba46a52eedcdecd34f4cc24">RefLayerSupport::IsResizeBilinearSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;                                                <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;    {</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;    };</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;                                  <span class="stringliteral">&quot;Reference ResizeBilinear: input type not supported&quot;</span>);</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;                                  <span class="stringliteral">&quot;Reference ResizeBilinear: output type not supported&quot;</span>);</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;                                  <span class="stringliteral">&quot;Reference ResizeBilinear: input and output types not matching&quot;</span>);</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;}</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;</div><div class="line"><a name="l01790"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a3d27a3fc6a7df0b68d80cb113aff8b6c"> 1790</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a3d27a3fc6a7df0b68d80cb113aff8b6c">RefLayerSupport::IsResizeSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;                                        <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_resize_descriptor.xhtml">ResizeDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;                                        <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;    {</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;    };</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;                                  <span class="stringliteral">&quot;Reference Resize: input type not supported&quot;</span>);</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;                                  <span class="stringliteral">&quot;Reference Resize: output type not supported&quot;</span>);</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;                                  <span class="stringliteral">&quot;Reference Resize: input and output types not matching&quot;</span>);</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;}</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;</div><div class="line"><a name="l01819"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a10ae4d84b0d31580f6fcd5107322ebcf"> 1819</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a10ae4d84b0d31580f6fcd5107322ebcf">RefLayerSupport::IsRsqrtSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a61c5b4e5dc224ef0c876e43353b34030">IsElementwiseUnarySupported</a>(input,</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;                                       output,</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;                                       <a class="code" href="structarmnn_1_1_elementwise_unary_descriptor.xhtml">ElementwiseUnaryDescriptor</a>(<a class="code" href="namespacearmnn.xhtml#a1cfaa710db2a54673b21d2ea2da757c8a09bb7f6e2118c85a6a55bd4bf2beeca4">UnaryOperation::Rsqrt</a>),</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;                                       reasonIfUnsupported);</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;}</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;</div><div class="line"><a name="l01829"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a0e14dafa85cfcd4a6b6b752284b51e63"> 1829</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a0e14dafa85cfcd4a6b6b752284b51e63">RefLayerSupport::IsSliceSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_slice_descriptor.xhtml">SliceDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;    std::array&lt;DataType, 5&gt; supportedTypes =</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;    {</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;    };</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;                                  <span class="stringliteral">&quot;Reference Slice: input type not supported&quot;</span>);</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;                                  <span class="stringliteral">&quot;Reference Slice: output type not supported&quot;</span>);</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;                                  <span class="stringliteral">&quot;Reference Slice: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;}</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;</div><div class="line"><a name="l01858"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a8385cf8227907904a6a86fac318fc099"> 1858</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a8385cf8227907904a6a86fac318fc099">RefLayerSupport::IsSoftmaxSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_softmax_descriptor.xhtml">SoftmaxDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;                                         <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes =</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;    {</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;    };</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;                                  <span class="stringliteral">&quot;Reference Softmax: output type not supported&quot;</span>);</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;                                  <span class="stringliteral">&quot;Reference Softmax: input type not supported&quot;</span>);</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;                                  <span class="stringliteral">&quot;Reference Softmax: input type not supported&quot;</span>);</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;}</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;</div><div class="line"><a name="l01888"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a3adfc31e079a970e028e537ec05fabf5"> 1888</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a3adfc31e079a970e028e537ec05fabf5">RefLayerSupport::IsSpaceToBatchNdSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;                                                <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_space_to_batch_nd_descriptor.xhtml">SpaceToBatchNdDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;                                                <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;    {</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;    };</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;                                  <span class="stringliteral">&quot;Reference SpaceToBatchNd: input type not supported&quot;</span>);</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;                                  <span class="stringliteral">&quot;Reference SpaceToBatchNd: output type not supported&quot;</span>);</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;                                  <span class="stringliteral">&quot;Reference SpaceToBatchNd: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;}</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;</div><div class="line"><a name="l01917"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#ab2af1e7da9490d29e569d271e16b0d5c"> 1917</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#ab2af1e7da9490d29e569d271e16b0d5c">RefLayerSupport::IsSpaceToDepthSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;                                              <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;                                              <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_space_to_depth_descriptor.xhtml">SpaceToDepthDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;                                              <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;    {</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;    };</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;        <span class="stringliteral">&quot;Reference SpaceToDepth: input type not supported&quot;</span>);</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;        <span class="stringliteral">&quot;Reference SpaceToDepth: output type not supported&quot;</span>);</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;        <span class="stringliteral">&quot;Reference SpaceToDepth: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;}</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;</div><div class="line"><a name="l01948"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a17dd12822d49a23d24198f425a6fb9c4"> 1948</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a17dd12822d49a23d24198f425a6fb9c4">RefLayerSupport::IsSplitterSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;                                          <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;                                          <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;    {</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;    };</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;                                  <span class="stringliteral">&quot;Reference splitter: input type not supported&quot;</span>);</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;}</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;</div><div class="line"><a name="l01970"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#aa746e752ce8874669ea549f8e50896da"> 1970</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a17dd12822d49a23d24198f425a6fb9c4">RefLayerSupport::IsSplitterSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;                                          <span class="keyword">const</span> std::vector&lt;std::reference_wrapper&lt;TensorInfo&gt;&gt;&amp; outputs,</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;                                          <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;                                          <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;    {</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;    };</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;                                  <span class="stringliteral">&quot;Reference splitter: output type not supported&quot;</span>);</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output : outputs)</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;    {</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;                                      <span class="stringliteral">&quot;Reference splitter: input type not supported&quot;</span>);</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;                                      <span class="stringliteral">&quot;Reference splitter: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;    }</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;}</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;</div><div class="line"><a name="l02001"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#ab4609f1baf5fcd295951f3c8abdffd90"> 2001</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#ab4609f1baf5fcd295951f3c8abdffd90">RefLayerSupport::IsStackSupported</a>(<span class="keyword">const</span> std::vector&lt;const TensorInfo*&gt;&amp; inputs,</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_stack_descriptor.xhtml">StackDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;    std::array&lt;DataType,6&gt; supportedTypes =</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;    {</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;    };</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;                                  <span class="stringliteral">&quot;Reference stack: output type not supported&quot;</span>);</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>* input : inputs)</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;    {</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;        <a class="code" href="_assert_8hpp.xhtml#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a>(input != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(*input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;            <span class="stringliteral">&quot;Reference stack: input type not supported&quot;</span>);</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(*input, output), reasonIfUnsupported,</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;            <span class="stringliteral">&quot;Reference stack: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;    }</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;}</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;</div><div class="line"><a name="l02034"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#ac054cb25099005eac854afb1511340f0"> 2034</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#ac054cb25099005eac854afb1511340f0">RefLayerSupport::IsStridedSliceSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;                                              <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;                                              <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_strided_slice_descriptor.xhtml">StridedSliceDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;                                              <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;    std::array&lt;DataType,5&gt; supportedTypes =</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;    {</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;    };</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;                                  <span class="stringliteral">&quot;Reference StridedSlice: input type not supported&quot;</span>);</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;                                  <span class="stringliteral">&quot;Reference StridedSlice: output type not supported&quot;</span>);</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;                                  <span class="stringliteral">&quot;Reference StridedSlice: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;}</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;</div><div class="line"><a name="l02063"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#af6c947e4d4b25bc49d92d18d4ff26736"> 2063</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#af6c947e4d4b25bc49d92d18d4ff26736">RefLayerSupport::IsSubtractionSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input0,</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;                                             <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input1,</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;                                             <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;                                             <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes = {</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a>,</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;    };</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input0, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;                                  <span class="stringliteral">&quot;Reference subtraction: input 0 is not a supported type.&quot;</span>);</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input1, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;                                  <span class="stringliteral">&quot;Reference subtraction: input 1 is not a supported type.&quot;</span>);</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;                                  <span class="stringliteral">&quot;Reference subtraction: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, input1), reasonIfUnsupported,</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;                                  <span class="stringliteral">&quot;Reference subtraction: input 0 and Input 1 types are mismatched&quot;</span>);</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input0, output), reasonIfUnsupported,</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;                                  <span class="stringliteral">&quot;Reference subtraction: input and output types are mismatched&quot;</span>);</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_broadcast_compatible.xhtml">ShapesAreBroadcastCompatible</a>(input0, input1, output), reasonIfUnsupported,</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;                                  <span class="stringliteral">&quot;Reference subtraction: shapes are not suitable for implicit broadcast.&quot;</span>);</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;}</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;</div><div class="line"><a name="l02101"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a4b36dcedd5edbd5142b3548967aadc2f"> 2101</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a4b36dcedd5edbd5142b3548967aadc2f">RefLayerSupport::IsPreluSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; alpha,</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;                                       <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;    std::array&lt;DataType, 6&gt; supportedTypes</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;    {</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;    };</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;                                  <span class="stringliteral">&quot;PReLU: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(alpha, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;                                  <span class="stringliteral">&quot;PReLU: alpha is not a supported type.&quot;</span>);</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;                                  <span class="stringliteral">&quot;PReLU: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, alpha, output), reasonIfUnsupported,</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;                                  <span class="stringliteral">&quot;PReLU: input, alpha and output types are mismatched&quot;</span>);</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_shapes_are_broadcast_compatible.xhtml">ShapesAreBroadcastCompatible</a>(input, alpha, output), reasonIfUnsupported,</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;                                  <span class="stringliteral">&quot;PReLU: shapes are not suitable for implicit broadcast&quot;</span>);</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;</div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;}</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;</div><div class="line"><a name="l02136"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a0c69484f19ed650ad48b716719114e51"> 2136</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a0c69484f19ed650ad48b716719114e51">RefLayerSupport::IsTransposeConvolution2dSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;                                                        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;                                                        <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_transpose_convolution2d_descriptor.xhtml">TransposeConvolution2dDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;                                                        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; weights,</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;                                                        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;TensorInfo&gt;</a>&amp; biases,</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;                                                        <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;    std::array&lt;DataType,7&gt; supportedTypes =</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;    {</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;    };</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;                                  <span class="stringliteral">&quot;Reference TransposeConvolution2d: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;                                  <span class="stringliteral">&quot;Reference TransposeConvolution2d: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;                                  <span class="stringliteral">&quot;Reference TransposeConvolution2d: input and output types mismatched.&quot;</span>);</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;    <span class="keyword">const</span> <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> inputType = input.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>();</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="namespacearmnn.xhtml#ad91bc7bfe29186f5d78c28386c6c5309">IsQuantized8BitType</a>(inputType))</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;    {</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;        <a class="code" href="_deprecated_8hpp.xhtml#ab66a241a0ed3ee89c866e777b035d0ed">ARMNN_NO_DEPRECATE_WARN_BEGIN</a></div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;        std::array&lt;DataType, 4&gt; supportedWeightTypes =</div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;        {</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a>,</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a34346ec9593088efe3a29c0dad92166d">DataType::QuantizedSymm8PerAxis</a> <span class="comment">//Deprecated</span></div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;        };</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;        <a class="code" href="_deprecated_8hpp.xhtml#ad762b11b48e5c1d1c1743f529485728a">ARMNN_NO_DEPRECATE_WARN_END</a></div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(weights, supportedWeightTypes), reasonIfUnsupported,</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;                                      <span class="stringliteral">&quot;Reference TransposeConvolution2d: weights type not supported for &quot;</span></div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;                                      <span class="stringliteral">&quot;quantized input.&quot;</span>);</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;    }</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;    {</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(weights, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;                                    <span class="stringliteral">&quot;Reference TransposeConvolution2d: weights is not a supported type.&quot;</span>);</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, weights), reasonIfUnsupported,</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;                                    <span class="stringliteral">&quot;Reference TransposeConvolution2d: input and weights types mismatched.&quot;</span>);</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;    }</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;    <span class="keywordflow">if</span> (biases.<a class="code" href="classarmnn_1_1_optional_base.xhtml#a86b749ce2c4bc627fa8a1fcfaf0e314f">has_value</a>())</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;    {</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;        std::array&lt;DataType,4&gt; biasesSupportedTypes =</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;        {</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;            <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;        };</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;        supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(biases.<a class="code" href="classarmnn_1_1_optional_reference_switch.xhtml#a77c7d528ac063d870b8c8426ec81c1c3">value</a>(), biasesSupportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;                                      <span class="stringliteral">&quot;Reference TransposeConvolution2d: biases is not a supported type.&quot;</span>);</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;    }</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;}</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;</div><div class="line"><a name="l02209"></a><span class="lineno"><a class="line" href="classarmnn_1_1_ref_layer_support.xhtml#a0189645f33641b280877a1b2f6ba9fee"> 2209</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_ref_layer_support.xhtml#a0189645f33641b280877a1b2f6ba9fee">RefLayerSupport::IsTransposeSupported</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; input,</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;                                           <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>&amp; output,</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;                                           <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_transpose_descriptor.xhtml">TransposeDescriptor</a>&amp; descriptor,</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;                                           <a class="code" href="classarmnn_1_1_optional.xhtml">Optional&lt;std::string&amp;&gt;</a> reasonIfUnsupported)<span class="keyword"> const</span></div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(descriptor);</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1_i_subgraph_view_converter.xhtml">supported</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;    <span class="comment">// Define supported output and inputs types.</span></div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;    std::array&lt;DataType, 6&gt; supportedTypes =</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;    {</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;        <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;    };</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(input, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;                                  <span class="stringliteral">&quot;Reference transpose: input is not a supported type.&quot;</span>);</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_type_any_of.xhtml">TypeAnyOf</a>(output, supportedTypes), reasonIfUnsupported,</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;                                  <span class="stringliteral">&quot;Reference transpose: output is not a supported type.&quot;</span>);</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;    supported &amp;= <a class="code" href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">CheckSupportRule</a>(<a class="code" href="structarmnn_1_1_types_are_equal.xhtml">TypesAreEqual</a>(input, output), reasonIfUnsupported,</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;                                  <span class="stringliteral">&quot;Reference transpose: input and output types are mismatched.&quot;</span>);</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">supported</a>;</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;}</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;} <span class="comment">// namespace armnn</span></div><div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_afb6ad04c6ff234b193f3dfc0cfabcbd5"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#afb6ad04c6ff234b193f3dfc0cfabcbd5">armnn::RefLayerSupport::IsEqualSupported</a></div><div class="ttdeci">bool IsEqualSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00844">RefLayerSupport.cpp:844</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaa3d90c0a5ab3fcf8e6f6608cb3d3a1559"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa3d90c0a5ab3fcf8e6f6608cb3d3a1559">armnn::ActivationFunction::ReLu</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="namespacearmnn_xhtml_a2d299363c9fc33334c571fa29ca4f58ca8768a6821cd735aea4f5b0df88c1fc6a"><div class="ttname"><a href="namespacearmnn.xhtml#a2d299363c9fc33334c571fa29ca4f58ca8768a6821cd735aea4f5b0df88c1fc6a">armnn::ComparisonOperation::Greater</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_a6c9de81fc65b3c4924cab11907075a17"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">armnn::LstmDescriptor::m_ProjectionEnabled</a></div><div class="ttdeci">bool m_ProjectionEnabled</div><div class="ttdoc">Enable/disable the projection layer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00945">Descriptors.hpp:945</a></div></div>
<div class="ttc" id="structarmnn_1_1_bias_and_weights_types_match_xhtml"><div class="ttname"><a href="structarmnn_1_1_bias_and_weights_types_match.xhtml">armnn::BiasAndWeightsTypesMatch</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00118">LayerSupportRules.hpp:118</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a7c52726a684dd76258c61af124012537"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a7c52726a684dd76258c61af124012537">armnn::RefLayerSupport::IsComparisonSupported</a></div><div class="ttdeci">bool IsComparisonSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, const ComparisonDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00300">RefLayerSupport.cpp:300</a></div></div>
<div class="ttc" id="structarmnn_1_1_rule_xhtml"><div class="ttname"><a href="structarmnn_1_1_rule.xhtml">armnn::Rule</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00048">LayerSupportRules.hpp:48</a></div></div>
<div class="ttc" id="structarmnn_1_1_elementwise_unary_descriptor_xhtml_afe768be66897eb3d73284424e3239b23"><div class="ttname"><a href="structarmnn_1_1_elementwise_unary_descriptor.xhtml#afe768be66897eb3d73284424e3239b23">armnn::ElementwiseUnaryDescriptor::m_Operation</a></div><div class="ttdeci">UnaryOperation m_Operation</div><div class="ttdoc">Specifies the elementwiseUnary operation to execute. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00114">Descriptors.hpp:114</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_aa02f01bbcb48c67f5b2efc4132ec5e86"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#aa02f01bbcb48c67f5b2efc4132ec5e86">armnn::RefLayerSupport::IsReshapeSupported</a></div><div class="ttdeci">bool IsReshapeSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const ReshapeDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01739">RefLayerSupport.cpp:1739</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="structarmnn_1_1_lstm_input_params_info_xhtml_ae5bfdd423b16f990c1713ef9f91f947b"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#ae5bfdd423b16f990c1713ef9f91f947b">armnn::LstmInputParamsInfo::GetRecurrentToCellWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetRecurrentToCellWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00145">LstmParams.hpp:145</a></div></div>
<div class="ttc" id="structarmnn_1_1_type_any_of_xhtml"><div class="ttname"><a href="structarmnn_1_1_type_any_of.xhtml">armnn::TypeAnyOf</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00090">LayerSupportRules.hpp:90</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">armnn::DataType::Boolean</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a8385cf8227907904a6a86fac318fc099"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a8385cf8227907904a6a86fac318fc099">armnn::RefLayerSupport::IsSoftmaxSupported</a></div><div class="ttdeci">bool IsSoftmaxSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const SoftmaxDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01858">RefLayerSupport.cpp:1858</a></div></div>
<div class="ttc" id="structarmnn_1_1_transpose_convolution2d_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_transpose_convolution2d_descriptor.xhtml">armnn::TransposeConvolution2dDescriptor</a></div><div class="ttdoc">A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01213">Descriptors.hpp:1213</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a9d553495d9a94fa55588ae159d8bda30"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a9d553495d9a94fa55588ae159d8bda30">armnn::RefLayerSupport::IsPermuteSupported</a></div><div class="ttdeci">bool IsPermuteSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const PermuteDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01572">RefLayerSupport.cpp:1572</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_ad5f4be37766b41f342dd196cb1c6e141"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#ad5f4be37766b41f342dd196cb1c6e141">armnn::LstmInputParamsInfo::GetCellBias</a></div><div class="ttdeci">const TensorInfo &amp; GetCellBias() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00173">LstmParams.hpp:173</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a0534291adf9f3436ba331552eba29a43"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a0534291adf9f3436ba331552eba29a43">armnn::RefLayerSupport::IsPadSupported</a></div><div class="ttdeci">bool IsPadSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const PadDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01541">RefLayerSupport.cpp:1541</a></div></div>
<div class="ttc" id="classarmnn_1_1_optional_xhtml"><div class="ttname"><a href="classarmnn_1_1_optional.xhtml">armnn::Optional</a></div><div class="ttdef"><b>Definition:</b> <a href="_optional_8hpp_source.xhtml#l00270">Optional.hpp:270</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a2d299363c9fc33334c571fa29ca4f58caf5f286e73bda105e538310b3190f75c5"><div class="ttname"><a href="namespacearmnn.xhtml#a2d299363c9fc33334c571fa29ca4f58caf5f286e73bda105e538310b3190f75c5">armnn::ComparisonOperation::Equal</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a6d414f4983a5ca9596d84e340e6fd895"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a6d414f4983a5ca9596d84e340e6fd895">armnn::RefLayerSupport::IsLogSoftmaxSupported</a></div><div class="ttdeci">bool IsLogSoftmaxSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const LogSoftmaxDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01150">RefLayerSupport.cpp:1150</a></div></div>
<div class="ttc" id="structarmnn_1_1_reshape_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_reshape_descriptor.xhtml">armnn::ReshapeDescriptor</a></div><div class="ttdoc">A ReshapeDescriptor for the ReshapeLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00832">Descriptors.hpp:832</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_ad159f9edbddeeb6cf6ff0ba042481ba8"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#ad159f9edbddeeb6cf6ff0ba042481ba8">armnn::LstmInputParamsInfo::GetRecurrentToInputWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetRecurrentToInputWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00137">LstmParams.hpp:137</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_aaf1af3bc828c5daa4a5c0bac28f63cc3"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#aaf1af3bc828c5daa4a5c0bac28f63cc3">armnn::LstmInputParamsInfo::GetCellLayerNormWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetCellLayerNormWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00197">LstmParams.hpp:197</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a2f51fda38409c3768a7bd28cedf3f075"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a2f51fda38409c3768a7bd28cedf3f075">armnn::RefLayerSupport::IsGatherSupported</a></div><div class="ttdeci">bool IsGatherSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, const GatherDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01002">RefLayerSupport.cpp:1002</a></div></div>
<div class="ttc" id="structarmnn_1_1_type_not_per_axis_quantized_xhtml"><div class="ttname"><a href="structarmnn_1_1_type_not_per_axis_quantized.xhtml">armnn::TypeNotPerAxisQuantized</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00110">LayerSupportRules.hpp:110</a></div></div>
<div class="ttc" id="_deprecated_8hpp_xhtml_ab66a241a0ed3ee89c866e777b035d0ed"><div class="ttname"><a href="_deprecated_8hpp.xhtml#ab66a241a0ed3ee89c866e777b035d0ed">ARMNN_NO_DEPRECATE_WARN_BEGIN</a></div><div class="ttdeci">#define ARMNN_NO_DEPRECATE_WARN_BEGIN</div><div class="ttdef"><b>Definition:</b> <a href="_deprecated_8hpp_source.xhtml#l00033">Deprecated.hpp:33</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="classarmnn_1_1_ref_layer_support_xhtml_a91fb5f44d8b9427dc45443aa9ebfe13e"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a91fb5f44d8b9427dc45443aa9ebfe13e">armnn::RefLayerSupport::IsConvertFp32ToFp16Supported</a></div><div class="ttdeci">bool IsConvertFp32ToFp16Supported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00434">RefLayerSupport.cpp:434</a></div></div>
<div class="ttc" id="structarmnn_1_1_comparison_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_comparison_descriptor.xhtml">armnn::ComparisonDescriptor</a></div><div class="ttdoc">A ComparisonDescriptor for the ComparisonLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00078">Descriptors.hpp:78</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_afe4d25acd31b98dee6f6b28d4d756071"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#afe4d25acd31b98dee6f6b28d4d756071">armnn::LstmInputParamsInfo::GetRecurrentToOutputWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetRecurrentToOutputWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00149">LstmParams.hpp:149</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a55d91a97ff664f42cd5cd62b60c15f80"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a55d91a97ff664f42cd5cd62b60c15f80">armnn::RefLayerSupport::IsDilatedDepthwiseConvolutionSupported</a></div><div class="ttdeci">bool IsDilatedDepthwiseConvolutionSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const DepthwiseConvolution2dDescriptor &amp;descriptor, const TensorInfo &amp;weights, const Optional&lt; TensorInfo &gt; &amp;biases, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00744">RefLayerSupport.cpp:744</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a34346ec9593088efe3a29c0dad92166d"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a34346ec9593088efe3a29c0dad92166d">armnn::DataType::QuantizedSymm8PerAxis</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a0e14dafa85cfcd4a6b6b752284b51e63"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a0e14dafa85cfcd4a6b6b752284b51e63">armnn::RefLayerSupport::IsSliceSupported</a></div><div class="ttdeci">bool IsSliceSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const SliceDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01829">RefLayerSupport.cpp:1829</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaaae77f3ad25595e35b327334d89410054"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaaae77f3ad25595e35b327334d89410054">armnn::ActivationFunction::Sqrt</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_ab4609f1baf5fcd295951f3c8abdffd90"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#ab4609f1baf5fcd295951f3c8abdffd90">armnn::RefLayerSupport::IsStackSupported</a></div><div class="ttdeci">bool IsStackSupported(const std::vector&lt; const TensorInfo *&gt; &amp;inputs, const TensorInfo &amp;output, const StackDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l02001">RefLayerSupport.cpp:2001</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a02847c99a2acae3b267615479f93ab55"><div class="ttname"><a href="namespacearmnn.xhtml#a02847c99a2acae3b267615479f93ab55">armnn::supported</a></div><div class="ttdeci">ISubgraphViewConverter supported</div><div class="ttdef"><b>Definition:</b> <a href="_i_subgraph_view_converter_8hpp_source.xhtml#l00031">ISubgraphViewConverter.hpp:31</a></div></div>
<div class="ttc" id="structarmnn_1_1_convolution2d_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_convolution2d_descriptor.xhtml">armnn::Convolution2dDescriptor</a></div><div class="ttdoc">A Convolution2dDescriptor for the Convolution2dLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00408">Descriptors.hpp:408</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="classarmnn_1_1_ref_layer_support_xhtml_a4b36dcedd5edbd5142b3548967aadc2f"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a4b36dcedd5edbd5142b3548967aadc2f">armnn::RefLayerSupport::IsPreluSupported</a></div><div class="ttdeci">bool IsPreluSupported(const TensorInfo &amp;input, const TensorInfo &amp;alpha, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l02101">RefLayerSupport.cpp:2101</a></div></div>
<div class="ttc" id="structarmnn_1_1_shapes_are_broadcast_compatible_xhtml"><div class="ttname"><a href="structarmnn_1_1_shapes_are_broadcast_compatible.xhtml">armnn::ShapesAreBroadcastCompatible</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00154">LayerSupportRules.hpp:154</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_ad330b6e7dcf25410ea878af0557f2197"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#ad330b6e7dcf25410ea878af0557f2197">armnn::RefLayerSupport::IsConvertBf16ToFp32Supported</a></div><div class="ttdeci">bool IsConvertBf16ToFp32Supported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00384">RefLayerSupport.cpp:384</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaacb7667f5ec2f6e8a5943b781ba6c2735"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaacb7667f5ec2f6e8a5943b781ba6c2735">armnn::ActivationFunction::LeakyReLu</a></div></div>
<div class="ttc" id="structarmnn_1_1_type_is_xhtml"><div class="ttname"><a href="structarmnn_1_1_type_is.xhtml">armnn::TypeIs</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00102">LayerSupportRules.hpp:102</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_a36fa9439fda2e72234411956a1c7e64f"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a36fa9439fda2e72234411956a1c7e64f">armnn::LstmInputParamsInfo::GetCellToInputWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetCellToInputWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00153">LstmParams.hpp:153</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a772790c60d70814e30b5bec70fd98776"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a772790c60d70814e30b5bec70fd98776">armnn::RefLayerSupport::IsLogicalBinarySupported</a></div><div class="ttdeci">bool IsLogicalBinarySupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, const LogicalBinaryDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01125">RefLayerSupport.cpp:1125</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_adf54bcad228c0ac21f6735d31460cf31"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#adf54bcad228c0ac21f6735d31460cf31">armnn::RefLayerSupport::IsQLstmSupported</a></div><div class="ttdeci">bool IsQLstmSupported(const TensorInfo &amp;input, const TensorInfo &amp;previousOutputIn, const TensorInfo &amp;previousCellStateIn, const TensorInfo &amp;outputStateOut, const TensorInfo &amp;cellStateOut, const TensorInfo &amp;output, const QLstmDescriptor &amp;descriptor, const LstmInputParamsInfo &amp;paramsInfo, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01634">RefLayerSupport.cpp:1634</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">armnn::ActivationFunction::Abs</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_aca4acda7ab553edfda828658d8f3882b"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#aca4acda7ab553edfda828658d8f3882b">armnn::RefLayerSupport::IsL2NormalizationSupported</a></div><div class="ttdeci">bool IsL2NormalizationSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const L2NormalizationDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01090">RefLayerSupport.cpp:1090</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaa21eebb164e4b8b9bcf64fdb4d8d5dff4"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa21eebb164e4b8b9bcf64fdb4d8d5dff4">armnn::ActivationFunction::Sigmoid</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">armnn::DataType::QAsymmS8</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="structarmnn_1_1_shapes_are_same_total_size_xhtml"><div class="ttname"><a href="structarmnn_1_1_shapes_are_same_total_size.xhtml">armnn::ShapesAreSameTotalSize</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00146">LayerSupportRules.hpp:146</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a128fb9890897e08251a3f621e570cd23"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a128fb9890897e08251a3f621e570cd23">armnn::RefLayerSupport::IsDepthToSpaceSupported</a></div><div class="ttdeci">bool IsDepthToSpaceSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const DepthToSpaceDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00569">RefLayerSupport.cpp:569</a></div></div>
<div class="ttc" id="_neon_end_to_end_tests_8cpp_xhtml_ada422a73ac4e68bcb1b1b1f0b44028d9"><div class="ttname"><a href="_neon_end_to_end_tests_8cpp.xhtml#ada422a73ac4e68bcb1b1b1f0b44028d9">boxEncodings</a></div><div class="ttdeci">std::vector&lt; float &gt; boxEncodings({ 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f })</div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a67c970dd054b991e14369de523ca3a5a"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a67c970dd054b991e14369de523ca3a5a">armnn::RefLayerSupport::IsBatchNormalizationSupported</a></div><div class="ttdeci">bool IsBatchNormalizationSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const TensorInfo &amp;mean, const TensorInfo &amp;var, const TensorInfo &amp;beta, const TensorInfo &amp;gamma, const BatchNormalizationDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00203">RefLayerSupport.cpp:203</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="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="structarmnn_1_1_lstm_input_params_info_xhtml_a0e31db1891d11bbe0d8556c01e9812ef"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a0e31db1891d11bbe0d8556c01e9812ef">armnn::LstmInputParamsInfo::GetCellToForgetWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetCellToForgetWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00157">LstmParams.hpp:157</a></div></div>
<div class="ttc" id="structarmnn_1_1_space_to_depth_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_space_to_depth_descriptor.xhtml">armnn::SpaceToDepthDescriptor</a></div><div class="ttdoc">A SpaceToDepthDescriptor for the SpaceToDepthLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00884">Descriptors.hpp:884</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_adc84390751f227fe03a115b5fa10b0fc"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#adc84390751f227fe03a115b5fa10b0fc">armnn::RefLayerSupport::IsDepthwiseConvolutionSupported</a></div><div class="ttdeci">bool IsDepthwiseConvolutionSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const DepthwiseConvolution2dDescriptor &amp;descriptor, const TensorInfo &amp;weights, const Optional&lt; TensorInfo &gt; &amp;biases, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00599">RefLayerSupport.cpp:599</a></div></div>
<div class="ttc" id="classarmnn_1_1_optional_reference_switch_xhtml_a77c7d528ac063d870b8c8426ec81c1c3"><div class="ttname"><a href="classarmnn_1_1_optional_reference_switch.xhtml#a77c7d528ac063d870b8c8426ec81c1c3">armnn::OptionalReferenceSwitch&lt; std::is_reference&lt; T &gt;::value, T &gt;::value</a></div><div class="ttdeci">const T &amp; value() const</div><div class="ttdef"><b>Definition:</b> <a href="_optional_8hpp_source.xhtml#l00146">Optional.hpp:146</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_aab7318aa8adc0a8a3b6a1780cfc1f90b"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#aab7318aa8adc0a8a3b6a1780cfc1f90b">armnn::RefLayerSupport::IsFakeQuantizationSupported</a></div><div class="ttdeci">bool IsFakeQuantizationSupported(const TensorInfo &amp;input, const FakeQuantizationDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00856">RefLayerSupport.cpp:856</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_adc5695cc25f4055c7ed54bdc8604a098"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#adc5695cc25f4055c7ed54bdc8604a098">armnn::RefLayerSupport::IsBatchToSpaceNdSupported</a></div><div class="ttdeci">bool IsBatchToSpaceNdSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const BatchToSpaceNdDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00250">RefLayerSupport.cpp:250</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a0f29f31e1ba46a52eedcdecd34f4cc24"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a0f29f31e1ba46a52eedcdecd34f4cc24">armnn::RefLayerSupport::IsResizeBilinearSupported</a></div><div class="ttdeci">bool IsResizeBilinearSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01763">RefLayerSupport.cpp:1763</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="structarmnn_1_1_lstm_input_params_info_xhtml_ab50b4ccb0b84f6427996f76083a4107a"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#ab50b4ccb0b84f6427996f76083a4107a">armnn::LstmInputParamsInfo::GetForgetLayerNormWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetForgetLayerNormWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00193">LstmParams.hpp:193</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_aa9309ea64f9f7447efe3567f77417d29"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#aa9309ea64f9f7447efe3567f77417d29">armnn::RefLayerSupport::IsMergerSupported</a></div><div class="ttdeci">bool IsMergerSupported(const std::vector&lt; const TensorInfo *&gt; inputs, const TensorInfo &amp;output, const MergerDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01389">RefLayerSupport.cpp:1389</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a1cfaa710db2a54673b21d2ea2da757c8a2a25ebd8c909241e3f7818389b804ecc"><div class="ttname"><a href="namespacearmnn.xhtml#a1cfaa710db2a54673b21d2ea2da757c8a2a25ebd8c909241e3f7818389b804ecc">armnn::UnaryOperation::LogicalNot</a></div></div>
<div class="ttc" id="_numeric_cast_8hpp_xhtml"><div class="ttname"><a href="_numeric_cast_8hpp.xhtml">NumericCast.hpp</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_a35825b1ec5bc2b14c8eac60887dbcf19"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a35825b1ec5bc2b14c8eac60887dbcf19">armnn::LstmInputParamsInfo::GetCellToOutputWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetCellToOutputWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00161">LstmParams.hpp:161</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a0c69484f19ed650ad48b716719114e51"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a0c69484f19ed650ad48b716719114e51">armnn::RefLayerSupport::IsTransposeConvolution2dSupported</a></div><div class="ttdeci">bool IsTransposeConvolution2dSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const TransposeConvolution2dDescriptor &amp;descriptor, const TensorInfo &amp;weights, const Optional&lt; TensorInfo &gt; &amp;biases, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l02136">RefLayerSupport.cpp:2136</a></div></div>
<div class="ttc" id="structarmnn_1_1_resize_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_resize_descriptor.xhtml">armnn::ResizeDescriptor</a></div><div class="ttdoc">A ResizeDescriptor for the ResizeLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00794">Descriptors.hpp:794</a></div></div>
<div class="ttc" id="structarmnn_1_1_mean_descriptor_xhtml_a1f0d67b087c491248bd1cde3ff995a95"><div class="ttname"><a href="structarmnn_1_1_mean_descriptor.xhtml#a1f0d67b087c491248bd1cde3ff995a95">armnn::MeanDescriptor::m_Axis</a></div><div class="ttdeci">std::vector&lt; unsigned int &gt; m_Axis</div><div class="ttdoc">Values for the dimensions to reduce. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00969">Descriptors.hpp:969</a></div></div>
<div class="ttc" id="structarmnn_1_1_stack_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_stack_descriptor.xhtml">armnn::StackDescriptor</a></div><div class="ttdoc">A StackDescriptor for the StackLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01024">Descriptors.hpp:1024</a></div></div>
<div class="ttc" id="_layer_support_common_8hpp_xhtml"><div class="ttname"><a href="_layer_support_common_8hpp.xhtml">LayerSupportCommon.hpp</a></div></div>
<div class="ttc" id="structarmnn_1_1_bias_and_weights_types_compatible_xhtml"><div class="ttname"><a href="structarmnn_1_1_bias_and_weights_types_compatible.xhtml">armnn::BiasAndWeightsTypesCompatible</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00126">LayerSupportRules.hpp:126</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad91bc7bfe29186f5d78c28386c6c5309"><div class="ttname"><a href="namespacearmnn.xhtml#ad91bc7bfe29186f5d78c28386c6c5309">armnn::IsQuantized8BitType</a></div><div class="ttdeci">constexpr bool IsQuantized8BitType(DataType dataType)</div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8hpp_source.xhtml#l00254">TypesUtils.hpp:254</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_aef3244c0ef64c8f2f352d21ce0c06985"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#aef3244c0ef64c8f2f352d21ce0c06985">armnn::RefLayerSupport::IsOutputSupported</a></div><div class="ttdeci">bool IsOutputSupported(const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01535">RefLayerSupport.cpp:1535</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_aeaf971dd9dffd6f6bc7e5a1ae6b6af5c"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#aeaf971dd9dffd6f6bc7e5a1ae6b6af5c">armnn::RefLayerSupport::IsFullyConnectedSupported</a></div><div class="ttdeci">bool IsFullyConnectedSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const TensorInfo &amp;weights, const TensorInfo &amp;biases, const FullyConnectedDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00922">RefLayerSupport.cpp:922</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_a3b3c26330a05bf4ea40f8a6b402be354"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a3b3c26330a05bf4ea40f8a6b402be354">armnn::LstmInputParamsInfo::GetInputToCellWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetInputToCellWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00129">LstmParams.hpp:129</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_ad2c7be6b84b04444e514f52f593b3df7"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#ad2c7be6b84b04444e514f52f593b3df7">armnn::RefLayerSupport::IsQuantizeSupported</a></div><div class="ttdeci">bool IsQuantizeSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01658">RefLayerSupport.cpp:1658</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a3d27a3fc6a7df0b68d80cb113aff8b6c"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a3d27a3fc6a7df0b68d80cb113aff8b6c">armnn::RefLayerSupport::IsResizeSupported</a></div><div class="ttdeci">bool IsResizeSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const ResizeDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01790">RefLayerSupport.cpp:1790</a></div></div>
<div class="ttc" id="structarmnn_1_1_pad_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_pad_descriptor.xhtml">armnn::PadDescriptor</a></div><div class="ttdoc">A PadDescriptor for the PadLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00975">Descriptors.hpp:975</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_adf18c4fa8fc9e0cdae1967990aa90fe8"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#adf18c4fa8fc9e0cdae1967990aa90fe8">armnn::RefLayerSupport::IsConstantSupported</a></div><div class="ttdeci">bool IsConstantSupported(const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00365">RefLayerSupport.cpp:365</a></div></div>
<div class="ttc" id="_ref_layer_support_8hpp_xhtml"><div class="ttname"><a href="_ref_layer_support_8hpp.xhtml">RefLayerSupport.hpp</a></div></div>
<div class="ttc" id="_types_utils_8hpp_xhtml"><div class="ttname"><a href="_types_utils_8hpp.xhtml">TypesUtils.hpp</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml">armnn::LstmInputParamsInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00063">LstmParams.hpp:63</a></div></div>
<div class="ttc" id="structarmnn_1_1_tensor_num_dimensions_are_correct_xhtml"><div class="ttname"><a href="structarmnn_1_1_tensor_num_dimensions_are_correct.xhtml">armnn::TensorNumDimensionsAreCorrect</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00181">LayerSupportRules.hpp:181</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_ref_layer_support_xhtml_a0f4841f89f21fd794786b4c03c2425fd"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a0f4841f89f21fd794786b4c03c2425fd">armnn::RefLayerSupport::IsArgMinMaxSupported</a></div><div class="ttdeci">bool IsArgMinMaxSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const ArgMinMaxDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00176">RefLayerSupport.cpp:176</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a3adfc31e079a970e028e537ec05fabf5"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a3adfc31e079a970e028e537ec05fabf5">armnn::RefLayerSupport::IsSpaceToBatchNdSupported</a></div><div class="ttdeci">bool IsSpaceToBatchNdSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const SpaceToBatchNdDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01888">RefLayerSupport.cpp:1888</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="_deprecated_8hpp_xhtml_ad762b11b48e5c1d1c1743f529485728a"><div class="ttname"><a href="_deprecated_8hpp.xhtml#ad762b11b48e5c1d1c1743f529485728a">ARMNN_NO_DEPRECATE_WARN_END</a></div><div class="ttdeci">#define ARMNN_NO_DEPRECATE_WARN_END</div><div class="ttdef"><b>Definition:</b> <a href="_deprecated_8hpp_source.xhtml#l00034">Deprecated.hpp:34</a></div></div>
<div class="ttc" id="structarmnn_1_1_mean_descriptor_xhtml_a28e0548abfc4e79c48f29a3d11a062e9"><div class="ttname"><a href="structarmnn_1_1_mean_descriptor.xhtml#a28e0548abfc4e79c48f29a3d11a062e9">armnn::MeanDescriptor::m_KeepDims</a></div><div class="ttdeci">bool m_KeepDims</div><div class="ttdoc">Enable/disable keep dimensions. If true, then the reduced dimensions that are of length 1 are kept...</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00971">Descriptors.hpp:971</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a3d0eafb3de560b3482f857b56b2b2116"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a3d0eafb3de560b3482f857b56b2b2116">armnn::RefLayerSupport::IsMinimumSupported</a></div><div class="ttdeci">bool IsMinimumSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01426">RefLayerSupport.cpp:1426</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a10ae4d84b0d31580f6fcd5107322ebcf"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a10ae4d84b0d31580f6fcd5107322ebcf">armnn::RefLayerSupport::IsRsqrtSupported</a></div><div class="ttdeci">bool IsRsqrtSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01819">RefLayerSupport.cpp:1819</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_a800adf0f61e84d706060f63037c1a336"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a800adf0f61e84d706060f63037c1a336">armnn::LstmInputParamsInfo::GetInputToOutputWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetInputToOutputWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00133">LstmParams.hpp:133</a></div></div>
<div class="ttc" id="structarmnn_1_1_l2_normalization_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_l2_normalization_descriptor.xhtml">armnn::L2NormalizationDescriptor</a></div><div class="ttdoc">A L2NormalizationDescriptor for the L2NormalizationLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00607">Descriptors.hpp:607</a></div></div>
<div class="ttc" id="structarmnn_1_1_arg_min_max_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_arg_min_max_descriptor.xhtml">armnn::ArgMinMaxDescriptor</a></div><div class="ttdoc">An ArgMinMaxDescriptor for ArgMinMaxLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00056">Descriptors.hpp:56</a></div></div>
<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_aea909c7327109228ef618d459015def3"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">armnn::TensorInfo::GetDataType</a></div><div class="ttdeci">DataType GetDataType() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00194">Tensor.hpp:194</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="structarmnn_1_1_reduce_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_reduce_descriptor.xhtml">armnn::ReduceDescriptor</a></div><div class="ttdoc">A ReduceDescriptor for the REDUCE operators. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01304">Descriptors.hpp:1304</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="classarmnn_1_1_optional_base_xhtml_a86b749ce2c4bc627fa8a1fcfaf0e314f"><div class="ttname"><a href="classarmnn_1_1_optional_base.xhtml#a86b749ce2c4bc627fa8a1fcfaf0e314f">armnn::OptionalBase::has_value</a></div><div class="ttdeci">bool has_value() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="_optional_8hpp_source.xhtml#l00053">Optional.hpp:53</a></div></div>
<div class="ttc" id="_types_8hpp_xhtml"><div class="ttname"><a href="_types_8hpp.xhtml">Types.hpp</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="classarmnn_1_1_ref_layer_support_xhtml_ae106544a060930a518ae0a003a3e9a64"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#ae106544a060930a518ae0a003a3e9a64">armnn::RefLayerSupport::IsRankSupported</a></div><div class="ttdeci">bool IsRankSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01694">RefLayerSupport.cpp:1694</a></div></div>
<div class="ttc" id="structarmnn_1_1_fully_connected_descriptor_xhtml_aea202e14d8874cefd9a0f778022b7e25"><div class="ttname"><a href="structarmnn_1_1_fully_connected_descriptor.xhtml#aea202e14d8874cefd9a0f778022b7e25">armnn::FullyConnectedDescriptor::m_BiasEnabled</a></div><div class="ttdeci">bool m_BiasEnabled</div><div class="ttdoc">Enable/disable bias. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00402">Descriptors.hpp:402</a></div></div>
<div class="ttc" id="structarmnn_1_1_fake_quantization_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_fake_quantization_descriptor.xhtml">armnn::FakeQuantizationDescriptor</a></div><div class="ttdoc">A FakeQuantizationDescriptor for the FakeQuantizationLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00704">Descriptors.hpp:704</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_ae22fc962c59e7c24986718f5af0020db"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#ae22fc962c59e7c24986718f5af0020db">armnn::LstmInputParamsInfo::m_ProjectionBias</a></div><div class="ttdeci">const TensorInfo * m_ProjectionBias</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00105">LstmParams.hpp:105</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a1efcaf6f02892442fefca09f49ea3d7c"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a1efcaf6f02892442fefca09f49ea3d7c">armnn::RefLayerSupport::IsConvertFp16ToFp32Supported</a></div><div class="ttdeci">bool IsConvertFp16ToFp32Supported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00399">RefLayerSupport.cpp:399</a></div></div>
<div class="ttc" id="structarmnn_1_1_gather_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_gather_descriptor.xhtml">armnn::GatherDescriptor</a></div><div class="ttdoc">A GatherDescriptor for the GatherLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00742">Descriptors.hpp:742</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">armnn::DataType::Float16</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_a2837b4396f20c956952d1a7286cab5f8"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">armnn::LstmDescriptor::m_PeepholeEnabled</a></div><div class="ttdeci">bool m_PeepholeEnabled</div><div class="ttdoc">Enable/disable peephole. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00943">Descriptors.hpp:943</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaa6bba7052636d1740303b1b2ef3b53fef"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa6bba7052636d1740303b1b2ef3b53fef">armnn::ActivationFunction::SoftReLu</a></div></div>
<div class="ttc" id="_layer_support_rules_8hpp_xhtml"><div class="ttname"><a href="_layer_support_rules_8hpp.xhtml">LayerSupportRules.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_ab268618580d4f53bf5e9b5a47dee3f6a"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#ab268618580d4f53bf5e9b5a47dee3f6a">armnn::RefLayerSupport::IsMeanSupported</a></div><div class="ttdeci">bool IsMeanSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const MeanDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01326">RefLayerSupport.cpp:1326</a></div></div>
<div class="ttc" id="_assert_8hpp_xhtml_a5698be69cbd5dfe6c28fcd9867e8cbed"><div class="ttname"><a href="_assert_8hpp.xhtml#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a></div><div class="ttdeci">#define ARMNN_ASSERT(COND)</div><div class="ttdef"><b>Definition:</b> <a href="_assert_8hpp_source.xhtml#l00014">Assert.hpp:14</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="classarmnn_1_1_ref_layer_support_xhtml_ab2af1e7da9490d29e569d271e16b0d5c"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#ab2af1e7da9490d29e569d271e16b0d5c">armnn::RefLayerSupport::IsSpaceToDepthSupported</a></div><div class="ttdeci">bool IsSpaceToDepthSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const SpaceToDepthDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01917">RefLayerSupport.cpp:1917</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a48177e22e47448adb3d83e145dadf735"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a48177e22e47448adb3d83e145dadf735">armnn::RefLayerSupport::IsAdditionSupported</a></div><div class="ttdeci">bool IsAdditionSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00138">RefLayerSupport.cpp:138</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_ac054cb25099005eac854afb1511340f0"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#ac054cb25099005eac854afb1511340f0">armnn::RefLayerSupport::IsStridedSliceSupported</a></div><div class="ttdeci">bool IsStridedSliceSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const StridedSliceDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l02034">RefLayerSupport.cpp:2034</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_af6c947e4d4b25bc49d92d18d4ff26736"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#af6c947e4d4b25bc49d92d18d4ff26736">armnn::RefLayerSupport::IsSubtractionSupported</a></div><div class="ttdeci">bool IsSubtractionSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l02063">RefLayerSupport.cpp:2063</a></div></div>
<div class="ttc" id="structarmnn_1_1_activation_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_activation_descriptor.xhtml">armnn::ActivationDescriptor</a></div><div class="ttdoc">An ActivationDescriptor for the ActivationLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00025">Descriptors.hpp:25</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a0947498c6cc747db6219a22132a1b89a"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a0947498c6cc747db6219a22132a1b89a">armnn::RefLayerSupport::IsConvertFp32ToBf16Supported</a></div><div class="ttdeci">bool IsConvertFp32ToBf16Supported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00419">RefLayerSupport.cpp:419</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a53c7593d1aa26207eac5d5814a9d56dc"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a53c7593d1aa26207eac5d5814a9d56dc">armnn::RefLayerSupport::IsFloorSupported</a></div><div class="ttdeci">bool IsFloorSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00899">RefLayerSupport.cpp:899</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_ab3adb3a28736529682e4ff0ea976dcd3"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#ab3adb3a28736529682e4ff0ea976dcd3">armnn::RefLayerSupport::IsActivationSupported</a></div><div class="ttdeci">bool IsActivationSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const ActivationDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00070">RefLayerSupport.cpp:70</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d">armnn::ActivationFunction::BoundedReLu</a></div><div class="ttdoc">min(a, max(b, input)) ReLu1 &amp; ReLu6. </div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_a534af7e4f3a6d50a6dab05abc245133d"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a534af7e4f3a6d50a6dab05abc245133d">armnn::LstmInputParamsInfo::GetRecurrentToForgetWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetRecurrentToForgetWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00141">LstmParams.hpp:141</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">armnn::DataType::BFloat16</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a87a66c5e87a19534ce3e6c374c9b8f09"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a87a66c5e87a19534ce3e6c374c9b8f09">armnn::RefLayerSupport::IsDebugSupported</a></div><div class="ttdeci">bool IsDebugSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00539">RefLayerSupport.cpp:539</a></div></div>
<div class="ttc" id="structarmnn_1_1_slice_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_slice_descriptor.xhtml">armnn::SliceDescriptor</a></div><div class="ttdoc">A SliceDescriptor for the SliceLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01001">Descriptors.hpp:1001</a></div></div>
<div class="ttc" id="structarmnn_1_1_shapes_are_same_rank_xhtml"><div class="ttname"><a href="structarmnn_1_1_shapes_are_same_rank.xhtml">armnn::ShapesAreSameRank</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00138">LayerSupportRules.hpp:138</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a50af275d7755a5bb1be69736d7e4b02f"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a50af275d7755a5bb1be69736d7e4b02f">armnn::RefLayerSupport::IsDetectionPostProcessSupported</a></div><div class="ttdeci">bool IsDetectionPostProcessSupported(const TensorInfo &amp;boxEncodings, const TensorInfo &amp;scores, const TensorInfo &amp;anchors, const TensorInfo &amp;detectionBoxes, const TensorInfo &amp;detectionClasses, const TensorInfo &amp;detectionScores, const TensorInfo &amp;numDetections, const DetectionPostProcessDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00711">RefLayerSupport.cpp:711</a></div></div>
<div class="ttc" id="structarmnn_1_1_space_to_batch_nd_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_space_to_batch_nd_descriptor.xhtml">armnn::SpaceToBatchNdDescriptor</a></div><div class="ttdoc">A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00852">Descriptors.hpp:852</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_afa2b04197a764428a8c3a648de8058fc"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#afa2b04197a764428a8c3a648de8058fc">armnn::LstmInputParamsInfo::GetInputToInputWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetInputToInputWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00121">LstmParams.hpp:121</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_a045674b768295e617d7060f96f162366"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a045674b768295e617d7060f96f162366">armnn::LstmInputParamsInfo::GetOutputLayerNormWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetOutputLayerNormWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00201">LstmParams.hpp:201</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaaed67cf7d54c570e4c4891800f085f41d"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaaed67cf7d54c570e4c4891800f085f41d">armnn::ActivationFunction::Elu</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_ad474e5c51a0b194ef32e812b86c0cbdb"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">armnn::LstmDescriptor::m_CifgEnabled</a></div><div class="ttdeci">bool m_CifgEnabled</div><div class="ttdoc">Enable/disable cifg (coupled input &amp; forget gate). </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00941">Descriptors.hpp:941</a></div></div>
<div class="ttc" id="structarmnn_1_1_gather_descriptor_xhtml_a35d11c7d509d1adbae1ae01c58394a7f"><div class="ttname"><a href="structarmnn_1_1_gather_descriptor.xhtml#a35d11c7d509d1adbae1ae01c58394a7f">armnn::GatherDescriptor::m_Axis</a></div><div class="ttdeci">int32_t m_Axis</div><div class="ttdoc">The axis in params to gather indices from. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00758">Descriptors.hpp:758</a></div></div>
<div class="ttc" id="structarmnn_1_1_elementwise_unary_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_elementwise_unary_descriptor.xhtml">armnn::ElementwiseUnaryDescriptor</a></div><div class="ttdoc">A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00098">Descriptors.hpp:98</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a61c5b4e5dc224ef0c876e43353b34030"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a61c5b4e5dc224ef0c876e43353b34030">armnn::RefLayerSupport::IsElementwiseUnarySupported</a></div><div class="ttdeci">bool IsElementwiseUnarySupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const ElementwiseUnaryDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00792">RefLayerSupport.cpp:792</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a421e1f3865d99d52613003048342c49a"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a421e1f3865d99d52613003048342c49a">armnn::RefLayerSupport::IsMultiplicationSupported</a></div><div class="ttdeci">bool IsMultiplicationSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01464">RefLayerSupport.cpp:1464</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_ac81393ef433b0c7c337f9f0d55f41ae4"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#ac81393ef433b0c7c337f9f0d55f41ae4">armnn::LstmInputParamsInfo::GetForgetGateBias</a></div><div class="ttdeci">const TensorInfo &amp; GetForgetGateBias() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00169">LstmParams.hpp:169</a></div></div>
<div class="ttc" id="_neon_end_to_end_tests_8cpp_xhtml_a0348e6bb67ace72535bd105219bb6237"><div class="ttname"><a href="_neon_end_to_end_tests_8cpp.xhtml#a0348e6bb67ace72535bd105219bb6237">scores</a></div><div class="ttdeci">std::vector&lt; float &gt; scores({ 0.0f, 0.9f, 0.8f, 0.0f, 0.75f, 0.72f, 0.0f, 0.6f, 0.5f, 0.0f, 0.93f, 0.95f, 0.0f, 0.5f, 0.4f, 0.0f, 0.3f, 0.2f })</div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a3dca8ffbcb5f3afa1799aa7d354a3016"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a3dca8ffbcb5f3afa1799aa7d354a3016">armnn::RefLayerSupport::IsConcatSupported</a></div><div class="ttdeci">bool IsConcatSupported(const std::vector&lt; const TensorInfo *&gt; inputs, const TensorInfo &amp;output, const ConcatDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00332">RefLayerSupport.cpp:332</a></div></div>
<div class="ttc" id="_descriptors_8hpp_xhtml"><div class="ttname"><a href="_descriptors_8hpp.xhtml">Descriptors.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a994c2065561141bf37fcd2ff7bb4af4d"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a994c2065561141bf37fcd2ff7bb4af4d">armnn::RefLayerSupport::IsNormalizationSupported</a></div><div class="ttdeci">bool IsNormalizationSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const NormalizationDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01502">RefLayerSupport.cpp:1502</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a2e89c72cf60df7c2d2d7e5d98822b672"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a2e89c72cf60df7c2d2d7e5d98822b672">armnn::RefLayerSupport::IsDequantizeSupported</a></div><div class="ttdeci">bool IsDequantizeSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00673">RefLayerSupport.cpp:673</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_ref_layer_support_xhtml_a14e45f3699e823d7859d5d352d89265c"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a14e45f3699e823d7859d5d352d89265c">armnn::RefLayerSupport::IsGreaterSupported</a></div><div class="ttdeci">bool IsGreaterSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01040">RefLayerSupport.cpp:1040</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a9d25fabf725313fda40a41400155bafe"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a9d25fabf725313fda40a41400155bafe">armnn::RefLayerSupport::IsMemCopySupported</a></div><div class="ttdeci">bool IsMemCopySupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01397">RefLayerSupport.cpp:1397</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_a4a8ec49f130084445d44297549254780"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#a4a8ec49f130084445d44297549254780">armnn::LstmDescriptor::m_LayerNormEnabled</a></div><div class="ttdeci">bool m_LayerNormEnabled</div><div class="ttdoc">Enable/disable layer normalization. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00947">Descriptors.hpp:947</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a375ca3cff9f1b005d1412dc5f3cf5b6e"><div class="ttname"><a href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">armnn::numeric_cast</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_unsigned&lt; Source &gt;::value &amp;&amp;std::is_unsigned&lt; Dest &gt;::value, Dest &gt; numeric_cast(Source source)</div><div class="ttdef"><b>Definition:</b> <a href="_numeric_cast_8hpp_source.xhtml#l00035">NumericCast.hpp:35</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaaceb46ca115d05c51aa5a16a8867c3304"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaaceb46ca115d05c51aa5a16a8867c3304">armnn::ActivationFunction::Square</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_ae1d5a487fcd13852927c8a2b9f9dfeb6"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#ae1d5a487fcd13852927c8a2b9f9dfeb6">armnn::LstmInputParamsInfo::GetInputGateBias</a></div><div class="ttdeci">const TensorInfo &amp; GetInputGateBias() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00165">LstmParams.hpp:165</a></div></div>
<div class="ttc" id="structarmnn_1_1_transpose_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_transpose_descriptor.xhtml">armnn::TransposeDescriptor</a></div><div class="ttdoc">A TransposeDescriptor for the TransposeLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01263">Descriptors.hpp:1263</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_a18038725f71bb5c5bd03c02cc164f879"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a18038725f71bb5c5bd03c02cc164f879">armnn::LstmInputParamsInfo::GetProjectionWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetProjectionWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00181">LstmParams.hpp:181</a></div></div>
<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.xhtml">armnn::StridedSliceDescriptor</a></div><div class="ttdoc">A StridedSliceDescriptor for the StridedSliceLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01076">Descriptors.hpp:1076</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_lstm_input_params_info_xhtml_a7dac08f19a1b235d5256d39136848a09"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a7dac08f19a1b235d5256d39136848a09">armnn::LstmInputParamsInfo::GetInputToForgetWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetInputToForgetWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00125">LstmParams.hpp:125</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_ad29d99ecd719c640ed22dcf5c688c6a5"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#ad29d99ecd719c640ed22dcf5c688c6a5">armnn::RefLayerSupport::IsInputSupported</a></div><div class="ttdeci">bool IsInputSupported(const TensorInfo &amp;input, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01052">RefLayerSupport.cpp:1052</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="classarmnn_1_1_ref_layer_support_xhtml_a08f55136b1f0907e7083d70d719f697f"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a08f55136b1f0907e7083d70d719f697f">armnn::RefLayerSupport::IsDivisionSupported</a></div><div class="ttdeci">bool IsDivisionSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00754">RefLayerSupport.cpp:754</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_abd7fa8c2233f8a653e30ae2f3b839d92"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#abd7fa8c2233f8a653e30ae2f3b839d92">armnn::RefLayerSupport::IsAbsSupported</a></div><div class="ttdeci">bool IsAbsSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00061">RefLayerSupport.cpp:61</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_a3d2f638ba83ae5dad0094c006220c232"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a3d2f638ba83ae5dad0094c006220c232">armnn::LstmInputParamsInfo::GetInputLayerNormWeights</a></div><div class="ttdeci">const TensorInfo &amp; GetInputLayerNormWeights() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00189">LstmParams.hpp:189</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a862535721737220f62a49f14ff494dd5"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a862535721737220f62a49f14ff494dd5">armnn::RefLayerSupport::IsLstmSupported</a></div><div class="ttdeci">bool IsLstmSupported(const TensorInfo &amp;input, const TensorInfo &amp;outputStateIn, const TensorInfo &amp;cellStateIn, const TensorInfo &amp;scratchBuffer, const TensorInfo &amp;outputStateOut, const TensorInfo &amp;cellStateOut, const TensorInfo &amp;output, const LstmDescriptor &amp;descriptor, const LstmInputParamsInfo &amp;paramsInfo, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01177">RefLayerSupport.cpp:1177</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_acc5d9a4c8f29984de3bbdca87684f317"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#acc5d9a4c8f29984de3bbdca87684f317">armnn::RefLayerSupport::IsFillSupported</a></div><div class="ttdeci">bool IsFillSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const FillDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00874">RefLayerSupport.cpp:874</a></div></div>
<div class="ttc" id="structarmnn_1_1_types_are_equal_xhtml"><div class="ttname"><a href="structarmnn_1_1_types_are_equal.xhtml">armnn::TypesAreEqual</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00072">LayerSupportRules.hpp:72</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a17dd12822d49a23d24198f425a6fb9c4"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a17dd12822d49a23d24198f425a6fb9c4">armnn::RefLayerSupport::IsSplitterSupported</a></div><div class="ttdeci">bool IsSplitterSupported(const TensorInfo &amp;input, const ViewsDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01948">RefLayerSupport.cpp:1948</a></div></div>
<div class="ttc" id="structarmnn_1_1_pooling2d_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_pooling2d_descriptor.xhtml">armnn::Pooling2dDescriptor</a></div><div class="ttdoc">A Pooling2dDescriptor for the Pooling2dLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00329">Descriptors.hpp:329</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a1cfaa710db2a54673b21d2ea2da757c8a09bb7f6e2118c85a6a55bd4bf2beeca4"><div class="ttname"><a href="namespacearmnn.xhtml#a1cfaa710db2a54673b21d2ea2da757c8a09bb7f6e2118c85a6a55bd4bf2beeca4">armnn::UnaryOperation::Rsqrt</a></div></div>
<div class="ttc" id="structarmnn_1_1_normalization_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_normalization_descriptor.xhtml">armnn::NormalizationDescriptor</a></div><div class="ttdoc">A NormalizationDescriptor for the NormalizationLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00567">Descriptors.hpp:567</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_ae0da94ba17ce67b95b5b9d6e5adc4271"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#ae0da94ba17ce67b95b5b9d6e5adc4271">armnn::LstmInputParamsInfo::GetOutputGateBias</a></div><div class="ttdeci">const TensorInfo &amp; GetOutputGateBias() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00177">LstmParams.hpp:177</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a0189645f33641b280877a1b2f6ba9fee"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a0189645f33641b280877a1b2f6ba9fee">armnn::RefLayerSupport::IsTransposeSupported</a></div><div class="ttdeci">bool IsTransposeSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const TransposeDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l02209">RefLayerSupport.cpp:2209</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="structarmnn_1_1_instance_normalization_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_instance_normalization_descriptor.xhtml">armnn::InstanceNormalizationDescriptor</a></div><div class="ttdoc">An InstanceNormalizationDescriptor for InstanceNormalizationLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00645">Descriptors.hpp:645</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_af7ff06bd8115a6a9cc6d41e5c762798e"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#af7ff06bd8115a6a9cc6d41e5c762798e">armnn::RefLayerSupport::IsConvolution2dSupported</a></div><div class="ttdeci">bool IsConvolution2dSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const Convolution2dDescriptor &amp;descriptor, const TensorInfo &amp;weights, const Optional&lt; TensorInfo &gt; &amp;biases, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l00454">RefLayerSupport.cpp:454</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaa32a843da6ea40ab3b17a3421ccdf671b"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa32a843da6ea40ab3b17a3421ccdf671b">armnn::ActivationFunction::Linear</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_a0813546a09bf2caba6794014d1960624"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a0813546a09bf2caba6794014d1960624">armnn::RefLayerSupport::IsInstanceNormalizationSupported</a></div><div class="ttdeci">bool IsInstanceNormalizationSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const InstanceNormalizationDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01058">RefLayerSupport.cpp:1058</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaa0877e5b3fbe9d7569df6399609ed0186"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa0877e5b3fbe9d7569df6399609ed0186">armnn::ActivationFunction::HardSwish</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_input_params_info_xhtml_a9f2cce936b4df49c487eaca513bf55ca"><div class="ttname"><a href="structarmnn_1_1_lstm_input_params_info.xhtml#a9f2cce936b4df49c487eaca513bf55ca">armnn::LstmInputParamsInfo::GetProjectionBias</a></div><div class="ttdeci">const TensorInfo &amp; GetProjectionBias() const</div><div class="ttdef"><b>Definition:</b> <a href="_lstm_params_8hpp_source.xhtml#l00185">LstmParams.hpp:185</a></div></div>
<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorInfo::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00191">Tensor.hpp:191</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_af6dbe371ec651a8e0063624fdf32afc0"><div class="ttname"><a href="namespacearmnn.xhtml#af6dbe371ec651a8e0063624fdf32afc0">armnn::IsSupportedForDataTypeGeneric</a></div><div class="ttdeci">bool IsSupportedForDataTypeGeneric(Optional&lt; std::string &amp;&gt; reasonIfUnsupported, DataType dataType, Float16Func float16FuncPtr, Float32Func float32FuncPtr, Uint8Func uint8FuncPtr, Int32Func int32FuncPtr, BooleanFunc booleanFuncPtr, Params &amp;&amp;... params)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_common_8hpp_source.xhtml#l00027">LayerSupportCommon.hpp:27</a></div></div>
<div class="ttc" id="structarmnn_1_1_softmax_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_softmax_descriptor.xhtml">armnn::SoftmaxDescriptor</a></div><div class="ttdoc">A SoftmaxDescriptor for the SoftmaxLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00139">Descriptors.hpp:139</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_subgraph_view_converter_xhtml"><div class="ttname"><a href="classarmnn_1_1_i_subgraph_view_converter.xhtml">armnn::ISubgraphViewConverter</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_subgraph_view_converter_8hpp_source.xhtml#l00020">ISubgraphViewConverter.hpp:20</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_acea2d8c53b441e24b6d60b090fda37c9"><div class="ttname"><a href="namespacearmnn.xhtml#acea2d8c53b441e24b6d60b090fda37c9">armnn::CheckSupportRule</a></div><div class="ttdeci">bool CheckSupportRule(F rule, Optional&lt; std::string &amp;&gt; reasonIfUnsupported, const char *reason)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_rules_8hpp_source.xhtml#l00038">LayerSupportRules.hpp:38</a></div></div>
<div class="ttc" id="structarmnn_1_1_activation_descriptor_xhtml_af10fa7883e3579950f477bee92a64844"><div class="ttname"><a href="structarmnn_1_1_activation_descriptor.xhtml#af10fa7883e3579950f477bee92a64844">armnn::ActivationDescriptor::m_Function</a></div><div class="ttdeci">ActivationFunction m_Function</div><div class="ttdoc">The activation function to use (Sigmoid, TanH, Linear, ReLu, BoundedReLu, SoftReLu, LeakyReLu, Abs, Sqrt, Square, Elu). </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00048">Descriptors.hpp:48</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_afef9436c86b37b973471f2ae546ac00a"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#afef9436c86b37b973471f2ae546ac00a">armnn::RefLayerSupport::IsMaximumSupported</a></div><div class="ttdeci">bool IsMaximumSupported(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01288">RefLayerSupport.cpp:1288</a></div></div>
<div class="ttc" id="structarmnn_1_1_depthwise_convolution2d_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_depthwise_convolution2d_descriptor.xhtml">armnn::DepthwiseConvolution2dDescriptor</a></div><div class="ttdoc">A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00460">Descriptors.hpp:460</a></div></div>
<div class="ttc" id="structarmnn_1_1_fill_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_fill_descriptor.xhtml">armnn::FillDescriptor</a></div><div class="ttdoc">A FillDescriptor for the FillLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00723">Descriptors.hpp:723</a></div></div>
<div class="ttc" id="classarmnn_1_1_ref_layer_support_xhtml_aa955675303d67b1d1fb51fb7f09d8c21"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#aa955675303d67b1d1fb51fb7f09d8c21">armnn::RefLayerSupport::IsPooling2dSupported</a></div><div class="ttdeci">bool IsPooling2dSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const Pooling2dDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01603">RefLayerSupport.cpp:1603</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="classarmnn_1_1_ref_layer_support_xhtml_a917c126e64314263b8b5f7bca455ddfb"><div class="ttname"><a href="classarmnn_1_1_ref_layer_support.xhtml#a917c126e64314263b8b5f7bca455ddfb">armnn::RefLayerSupport::IsReduceSupported</a></div><div class="ttdeci">bool IsReduceSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, const ReduceDescriptor &amp;descriptor, Optional&lt; std::string &amp;&gt; reasonIfUnsupported=EmptyOptional()) const override</div><div class="ttdef"><b>Definition:</b> <a href="_ref_layer_support_8cpp_source.xhtml#l01709">RefLayerSupport.cpp:1709</a></div></div>
<div class="ttc" id="structarmnn_1_1_permute_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_permute_descriptor.xhtml">armnn::PermuteDescriptor</a></div><div class="ttdoc">A PermuteDescriptor for the PermuteLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00118">Descriptors.hpp:118</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9eaa23b68da1de2b77d74da9da2635722a3e"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9eaa23b68da1de2b77d74da9da2635722a3e">armnn::ActivationFunction::TanH</a></div></div>
<div class="ttc" id="_neon_end_to_end_tests_8cpp_xhtml_ac0981848e4ae57729f14f72bd4caa9f8"><div class="ttname"><a href="_neon_end_to_end_tests_8cpp.xhtml#ac0981848e4ae57729f14f72bd4caa9f8">anchors</a></div><div class="ttdeci">std::vector&lt; float &gt; anchors({ 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 100.5f, 1.0f, 1.0f })</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_efae4012d0e357ebeaba7d02491d70e5.xhtml">reference</a></li><li class="navelem"><a class="el" href="_ref_layer_support_8cpp.xhtml">RefLayerSupport.cpp</a></li>
    <li class="footer">Generated on Fri Mar 19 2021 15:26:03 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>