blob: 84d16d37e3591389c4be6c9dcc980868c88d4b4f [file] [log] [blame]
Nikhil Raj38b600d2024-02-15 15:02:19 +00001<!-- HTML header for doxygen 1.8.17-->
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4<head>
5<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6<meta http-equiv="X-UA-Compatible" content="IE=9"/>
7<meta name="generator" content="Doxygen 1.8.17"/>
8<meta name="viewport" content="width=device-width, initial-scale=1"/>
9<title>Arm NN: LayerSupportBase Class Reference</title>
10<link href="tabs.css" rel="stylesheet" type="text/css"/>
11<script type="text/javascript" src="jquery.js"></script>
12<script type="text/javascript" src="dynsections.js"></script>
13<link href="navtree.css" rel="stylesheet" type="text/css"/>
14<script type="text/javascript" src="resize.js"></script>
15<script type="text/javascript" src="navtreedata.js"></script>
16<script type="text/javascript" src="navtree.js"></script>
17<link href="search/search.css" rel="stylesheet" type="text/css"/>
18<script type="text/javascript" src="search/searchdata.js"></script>
19<script type="text/javascript" src="search/search.js"></script>
20<script type="text/x-mathjax-config">
21 MathJax.Hub.Config({
22 extensions: ["tex2jax.js"],
23 jax: ["input/TeX","output/HTML-CSS"],
24});
25</script>
26<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
27<link href="doxygen.css" rel="stylesheet" type="text/css" />
28<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
29</head>
30<body>
31<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
32<div id="titlearea">
33<table cellspacing="0" cellpadding="0">
34 <tbody>
35 <tr style="height: 56px;">
36 <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
37 <td id="projectalign" style="padding-left: 0.9em;">
38 <div id="projectname">
39 &#160;<span id="projectnumber">24.02</span>
40 </div>
41 </td>
42 </tr>
43 </tbody>
44</table>
45</div>
46<!-- end header part -->
47<!-- Generated by Doxygen 1.8.17 -->
48<script type="text/javascript">
49/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
50var searchBox = new SearchBox("searchBox", "search",false,'Search');
51/* @license-end */
52</script>
53<script type="text/javascript" src="menudata.js"></script>
54<script type="text/javascript" src="menu.js"></script>
55<script type="text/javascript">
56/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
57$(function() {
58 initMenu('',true,false,'search.php','Search');
59 $(document).ready(function() { init_search(); });
60});
61/* @license-end */</script>
62<div id="main-nav"></div>
63</div><!-- top -->
64<div id="side-nav" class="ui-resizable side-nav-resizable">
65 <div id="nav-tree">
66 <div id="nav-tree-contents">
67 <div id="nav-sync" class="sync"></div>
68 </div>
69 </div>
70 <div id="splitbar" style="-moz-user-select:none;"
71 class="ui-resizable-handle">
72 </div>
73</div>
74<script type="text/javascript">
75/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
76$(document).ready(function(){initNavTree('classarmnn_1_1_layer_support_base.html',''); initResizable(); });
77/* @license-end */
78</script>
79<div id="doc-content">
80<!-- window showing the filter options -->
81<div id="MSearchSelectWindow"
82 onmouseover="return searchBox.OnSearchSelectShow()"
83 onmouseout="return searchBox.OnSearchSelectHide()"
84 onkeydown="return searchBox.OnSearchSelectKey(event)">
85</div>
86
87<!-- iframe showing the search results (closed by default) -->
88<div id="MSearchResultsWindow">
89<iframe src="javascript:void(0)" frameborder="0"
90 name="MSearchResults" id="MSearchResults">
91</iframe>
92</div>
93
94<div class="header">
95 <div class="summary">
96<a href="#pub-methods">Public Member Functions</a> &#124;
97<a href="classarmnn_1_1_layer_support_base-members.html">List of all members</a> </div>
98 <div class="headertitle">
99<div class="title">LayerSupportBase Class Reference</div> </div>
100</div><!--header-->
101<div class="contents">
102
103<p><code>#include &lt;<a class="el" href="_layer_support_base_8hpp_source.html">LayerSupportBase.hpp</a>&gt;</code></p>
104<div class="dynheader">
105Inheritance diagram for LayerSupportBase:</div>
106<div class="dyncontent">
107<div class="center"><iframe scrolling="no" frameborder="0" src="classarmnn_1_1_layer_support_base__inherit__graph.svg" width="694" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
108</div>
109<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
110<div class="dynheader">
111Collaboration diagram for LayerSupportBase:</div>
112<div class="dyncontent">
113<div class="center"><iframe scrolling="no" frameborder="0" src="classarmnn_1_1_layer_support_base__coll__graph.svg" width="151" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
114</div>
115<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
116<table class="memberdecls">
117<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
118Public Member Functions</h2></td></tr>
119<tr class="memitem:a4da81c0c187071252d23c014db1c867d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_support_base.html#a4da81c0c187071252d23c014db1c867d">IsLayerSupported</a> (const <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> &amp;type, const std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;infos, const <a class="el" href="structarmnn_1_1_base_descriptor.html">BaseDescriptor</a> &amp;descriptor, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="structarmnn_1_1_lstm_input_params_info.html">LstmInputParamsInfo</a> &gt; &amp;lstmParamsInfo=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>(), const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="structarmnn_1_1_quantized_lstm_input_params_info.html">QuantizedLstmInputParamsInfo</a> &gt; &amp;quantizedLstmParamsInfo=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>(), <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt; reasonIfUnsupported=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()) const override</td></tr>
120<tr class="memdesc:a4da81c0c187071252d23c014db1c867d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default implementation of the <a class="el" href="classarmnn_1_1_i_layer_support.html">ILayerSupport</a> interface, Backends should implement this as a switch statement for each of their LayerTypes calling their specific backend implementation of IsXXXLayerSupported. <a href="classarmnn_1_1_layer_support_base.html#a4da81c0c187071252d23c014db1c867d">More...</a><br /></td></tr>
121<tr class="separator:a4da81c0c187071252d23c014db1c867d"><td class="memSeparator" colspan="2">&#160;</td></tr>
122<tr class="memitem:accd2fb6b7713141313cfc310ea460a28"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_support_base.html#accd2fb6b7713141313cfc310ea460a28">IsDetectionPostProcessSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;boxEncodings, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;scores, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;anchors, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;detectionBoxes, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;detectionClasses, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;detectionScores, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;numDetections, const <a class="el" href="structarmnn_1_1_detection_post_process_descriptor.html">DetectionPostProcessDescriptor</a> &amp;descriptor, <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt; reasonIfUnsupported=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()) const</td></tr>
123<tr class="separator:accd2fb6b7713141313cfc310ea460a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
124<tr class="memitem:a76fea9e8e52d879f59b268b060635145"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_support_base.html#a76fea9e8e52d879f59b268b060635145">IsMemCopySupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;output, <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt; reasonIfUnsupported=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()) const</td></tr>
125<tr class="separator:a76fea9e8e52d879f59b268b060635145"><td class="memSeparator" colspan="2">&#160;</td></tr>
126<tr class="memitem:a081cfb99e9e5b240f8b151f0a7090431"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_support_base.html#a081cfb99e9e5b240f8b151f0a7090431">IsMemImportSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;output, <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt; reasonIfUnsupported=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()) const</td></tr>
127<tr class="separator:a081cfb99e9e5b240f8b151f0a7090431"><td class="memSeparator" colspan="2">&#160;</td></tr>
128<tr class="memitem:a21fd6e1714d62eb57f7e31e3ccaaa152"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_support_base.html#a21fd6e1714d62eb57f7e31e3ccaaa152">IsMergeSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input0, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input1, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;output, <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt; reasonIfUnsupported=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()) const</td></tr>
129<tr class="separator:a21fd6e1714d62eb57f7e31e3ccaaa152"><td class="memSeparator" colspan="2">&#160;</td></tr>
130<tr class="memitem:aad6eabce66fdae7c3389450e9dc75df9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_support_base.html#aad6eabce66fdae7c3389450e9dc75df9">IsQuantizedLstmSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;previousCellStateIn, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;previousOutputIn, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;cellStateOut, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;output, const <a class="el" href="structarmnn_1_1_quantized_lstm_input_params_info.html">QuantizedLstmInputParamsInfo</a> &amp;paramsInfo, <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt; reasonIfUnsupported=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()) const</td></tr>
131<tr class="separator:aad6eabce66fdae7c3389450e9dc75df9"><td class="memSeparator" colspan="2">&#160;</td></tr>
132<tr class="memitem:a4b423d2cd51bbfb363141d823cecf943"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_support_base.html#a4b423d2cd51bbfb363141d823cecf943">IsShapeSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;output, <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt; reasonIfUnsupported=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()) const</td></tr>
133<tr class="separator:a4b423d2cd51bbfb363141d823cecf943"><td class="memSeparator" colspan="2">&#160;</td></tr>
134<tr class="memitem:ad00d990a0de5580f3171e63f0d8dd8d5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_support_base.html#ad00d990a0de5580f3171e63f0d8dd8d5">IsStandInSupported</a> (const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> * &gt; &amp;inputs, const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> * &gt; &amp;outputs, const <a class="el" href="structarmnn_1_1_stand_in_descriptor.html">StandInDescriptor</a> &amp;descriptor, <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt; reasonIfUnsupported=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()) const</td></tr>
135<tr class="separator:ad00d990a0de5580f3171e63f0d8dd8d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
136</table><table class="memberdecls">
137<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
138Additional Inherited Members</h2></td></tr>
139<tr class="inherit_header pro_methods_classarmnn_1_1_i_layer_support"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_1_1_i_layer_support')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_1_1_i_layer_support.html">ILayerSupport</a></td></tr>
140<tr class="memitem:aab2a487bc88047443d8a0f87c3c40b8d inherit pro_methods_classarmnn_1_1_i_layer_support"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_layer_support.html#aab2a487bc88047443d8a0f87c3c40b8d">ILayerSupport</a> ()</td></tr>
141<tr class="separator:aab2a487bc88047443d8a0f87c3c40b8d inherit pro_methods_classarmnn_1_1_i_layer_support"><td class="memSeparator" colspan="2">&#160;</td></tr>
142<tr class="memitem:a9e7f4f28576904804cd759e49173beeb inherit pro_methods_classarmnn_1_1_i_layer_support"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_layer_support.html#a9e7f4f28576904804cd759e49173beeb">~ILayerSupport</a> ()</td></tr>
143<tr class="separator:a9e7f4f28576904804cd759e49173beeb inherit pro_methods_classarmnn_1_1_i_layer_support"><td class="memSeparator" colspan="2">&#160;</td></tr>
144</table>
145<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
146<div class="textblock">
147<p class="definition">Definition at line <a class="el" href="_layer_support_base_8hpp_source.html#l00013">13</a> of file <a class="el" href="_layer_support_base_8hpp_source.html">LayerSupportBase.hpp</a>.</p>
148</div><h2 class="groupheader">Member Function Documentation</h2>
149<a id="accd2fb6b7713141313cfc310ea460a28"></a>
150<h2 class="memtitle"><span class="permalink"><a href="#accd2fb6b7713141313cfc310ea460a28">&#9670;&nbsp;</a></span>IsDetectionPostProcessSupported()</h2>
151
152<div class="memitem">
153<div class="memproto">
154 <table class="memname">
155 <tr>
156 <td class="memname">bool IsDetectionPostProcessSupported </td>
157 <td>(</td>
158 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
159 <td class="paramname"><em>boxEncodings</em>, </td>
160 </tr>
161 <tr>
162 <td class="paramkey"></td>
163 <td></td>
164 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
165 <td class="paramname"><em>scores</em>, </td>
166 </tr>
167 <tr>
168 <td class="paramkey"></td>
169 <td></td>
170 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
171 <td class="paramname"><em>anchors</em>, </td>
172 </tr>
173 <tr>
174 <td class="paramkey"></td>
175 <td></td>
176 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
177 <td class="paramname"><em>detectionBoxes</em>, </td>
178 </tr>
179 <tr>
180 <td class="paramkey"></td>
181 <td></td>
182 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
183 <td class="paramname"><em>detectionClasses</em>, </td>
184 </tr>
185 <tr>
186 <td class="paramkey"></td>
187 <td></td>
188 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
189 <td class="paramname"><em>detectionScores</em>, </td>
190 </tr>
191 <tr>
192 <td class="paramkey"></td>
193 <td></td>
194 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
195 <td class="paramname"><em>numDetections</em>, </td>
196 </tr>
197 <tr>
198 <td class="paramkey"></td>
199 <td></td>
200 <td class="paramtype">const <a class="el" href="structarmnn_1_1_detection_post_process_descriptor.html">DetectionPostProcessDescriptor</a> &amp;&#160;</td>
201 <td class="paramname"><em>descriptor</em>, </td>
202 </tr>
203 <tr>
204 <td class="paramkey"></td>
205 <td></td>
206 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt;&#160;</td>
207 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
208 </tr>
209 <tr>
210 <td></td>
211 <td>)</td>
212 <td></td><td> const</td>
213 </tr>
214 </table>
215</div><div class="memdoc">
216
217<p class="definition">Definition at line <a class="el" href="_layer_support_base_8cpp_source.html#l00085">85</a> of file <a class="el" href="_layer_support_base_8cpp_source.html">LayerSupportBase.cpp</a>.</p>
218<div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div>
219<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);</div>
220<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div>
221</div><!-- fragment -->
222<p class="reference">Referenced by <a class="el" href="_neon_layer_support_8cpp_source.html#l00172">armnn::IsLayerTypeSupported()</a>.</p>
223
224</div>
225</div>
226<a id="a4da81c0c187071252d23c014db1c867d"></a>
227<h2 class="memtitle"><span class="permalink"><a href="#a4da81c0c187071252d23c014db1c867d">&#9670;&nbsp;</a></span>IsLayerSupported()</h2>
228
229<div class="memitem">
230<div class="memproto">
231<table class="mlabels">
232 <tr>
233 <td class="mlabels-left">
234 <table class="memname">
235 <tr>
236 <td class="memname">bool IsLayerSupported </td>
237 <td>(</td>
238 <td class="paramtype">const <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> &amp;&#160;</td>
239 <td class="paramname"><em>type</em>, </td>
240 </tr>
241 <tr>
242 <td class="paramkey"></td>
243 <td></td>
244 <td class="paramtype">const std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;&#160;</td>
245 <td class="paramname"><em>infos</em>, </td>
246 </tr>
247 <tr>
248 <td class="paramkey"></td>
249 <td></td>
250 <td class="paramtype">const <a class="el" href="structarmnn_1_1_base_descriptor.html">BaseDescriptor</a> &amp;&#160;</td>
251 <td class="paramname"><em>descriptor</em>, </td>
252 </tr>
253 <tr>
254 <td class="paramkey"></td>
255 <td></td>
256 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="structarmnn_1_1_lstm_input_params_info.html">LstmInputParamsInfo</a> &gt; &amp;&#160;</td>
257 <td class="paramname"><em>lstmParamsInfo</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>, </td>
258 </tr>
259 <tr>
260 <td class="paramkey"></td>
261 <td></td>
262 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="structarmnn_1_1_quantized_lstm_input_params_info.html">QuantizedLstmInputParamsInfo</a> &gt; &amp;&#160;</td>
263 <td class="paramname"><em>quantizedLstmParamsInfo</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>, </td>
264 </tr>
265 <tr>
266 <td class="paramkey"></td>
267 <td></td>
268 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt;&#160;</td>
269 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
270 </tr>
271 <tr>
272 <td></td>
273 <td>)</td>
274 <td></td><td> const</td>
275 </tr>
276 </table>
277 </td>
278 <td class="mlabels-right">
279<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
280 </tr>
281</table>
282</div><div class="memdoc">
283
284<p>Default implementation of the <a class="el" href="classarmnn_1_1_i_layer_support.html">ILayerSupport</a> interface, Backends should implement this as a switch statement for each of their LayerTypes calling their specific backend implementation of IsXXXLayerSupported. </p>
285
286<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_layer_support.html#ade82d7df4e18bdd77969958a8fccf10a">ILayerSupport</a>.</p>
287
288<p>Reimplemented in <a class="el" href="classarmnn_1_1_neon_layer_support.html#a1f75cea2b43e602f4b99d60375d41a8a">NeonLayerSupport</a>, <a class="el" href="classarmnn_1_1_cl_layer_support.html#a15dd64e49fe95a482dc93d3af8ac108c">ClLayerSupport</a>, <a class="el" href="classarmnn_1_1_ref_layer_support.html#a1e128c847b11f20fdedc72ec2951424f">RefLayerSupport</a>, and <a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html#a4a60a937f9f39bc8916af863a305fea2">SampleDynamicLayerSupport</a>.</p>
289
290<p class="definition">Definition at line <a class="el" href="_layer_support_base_8cpp_source.html#l00040">40</a> of file <a class="el" href="_layer_support_base_8cpp_source.html">LayerSupportBase.cpp</a>.</p>
291<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div>
292<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">switch</span>(type)</div>
293<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div>
294<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a4dd48794eb3305a0f5aece88b111a97b">LayerType::MemCopy</a>:</div>
295<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer_support_base.html#a76fea9e8e52d879f59b268b060635145">IsMemCopySupported</a>(infos[0], infos[1], reasonIfUnsupported);</div>
296<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a115bfc5d633eae55c67f9588acdd2bf9">LayerType::MemImport</a>:</div>
297<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer_support_base.html#a081cfb99e9e5b240f8b151f0a7090431">IsMemImportSupported</a>(infos[0], infos[1], reasonIfUnsupported);</div>
298<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a93bca63ecbb003649425dd0e4ba79a99">LayerType::StandIn</a>:</div>
299<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
300<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">auto</span> desc = *(PolymorphicDowncast&lt;const StandInDescriptor*&gt;(&amp;descriptor));</div>
301<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
302<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span> (infos.size() != (desc.m_NumInputs + desc.m_NumOutputs))</div>
303<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
304<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">throw</span> InvalidArgumentException(<span class="stringliteral">&quot;Number of StandIn layer TensorInfos does not equal &quot;</span></div>
305<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="stringliteral">&quot;the combined number of input and output slots assigned &quot;</span></div>
306<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="stringliteral">&quot;to the StandIn descriptor&quot;</span>);</div>
307<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div>
308<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
309<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; std::vector&lt;const TensorInfo*&gt; inputInfos;</div>
310<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; desc.m_NumInputs; i++)</div>
311<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
312<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; inputInfos.push_back(&amp;infos[i]);</div>
313<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
314<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::vector&lt;const TensorInfo*&gt; outputInfos;</div>
315<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">for</span> (uint32_t i = desc.m_NumInputs; i &lt; infos.size(); i++)</div>
316<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div>
317<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; outputInfos.push_back(&amp;infos[i]);</div>
318<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
319<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
320<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer_support_base.html#ad00d990a0de5580f3171e63f0d8dd8d5">IsStandInSupported</a>(inputInfos,</div>
321<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; outputInfos,</div>
322<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; desc,</div>
323<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; reasonIfUnsupported);</div>
324<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
325<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">default</span>:</div>
326<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);</div>
327<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
328<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div>
329</div><!-- fragment -->
330<p class="reference">References <a class="el" href="_layer_support_base_8cpp_source.html#l00098">LayerSupportBase::IsMemCopySupported()</a>, <a class="el" href="_layer_support_base_8cpp_source.html#l00105">LayerSupportBase::IsMemImportSupported()</a>, <a class="el" href="_layer_support_base_8cpp_source.html#l00138">LayerSupportBase::IsStandInSupported()</a>, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a4dd48794eb3305a0f5aece88b111a97b">armnn::MemCopy</a>, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a115bfc5d633eae55c67f9588acdd2bf9">armnn::MemImport</a>, and <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a93bca63ecbb003649425dd0e4ba79a99">armnn::StandIn</a>.</p>
331
332</div>
333</div>
334<a id="a76fea9e8e52d879f59b268b060635145"></a>
335<h2 class="memtitle"><span class="permalink"><a href="#a76fea9e8e52d879f59b268b060635145">&#9670;&nbsp;</a></span>IsMemCopySupported()</h2>
336
337<div class="memitem">
338<div class="memproto">
339 <table class="memname">
340 <tr>
341 <td class="memname">bool IsMemCopySupported </td>
342 <td>(</td>
343 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
344 <td class="paramname"><em>input</em>, </td>
345 </tr>
346 <tr>
347 <td class="paramkey"></td>
348 <td></td>
349 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
350 <td class="paramname"><em>output</em>, </td>
351 </tr>
352 <tr>
353 <td class="paramkey"></td>
354 <td></td>
355 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt;&#160;</td>
356 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
357 </tr>
358 <tr>
359 <td></td>
360 <td>)</td>
361 <td></td><td> const</td>
362 </tr>
363 </table>
364</div><div class="memdoc">
365
366<p class="definition">Definition at line <a class="el" href="_layer_support_base_8cpp_source.html#l00098">98</a> of file <a class="el" href="_layer_support_base_8cpp_source.html">LayerSupportBase.cpp</a>.</p>
367<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div>
368<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
369<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div>
370</div><!-- fragment -->
371<p class="reference">Referenced by <a class="el" href="_layer_support_base_8cpp_source.html#l00040">LayerSupportBase::IsLayerSupported()</a>, <a class="el" href="_cl_layer_support_8cpp_source.html#l00187">ClLayerSupport::IsLayerSupported()</a>, and <a class="el" href="_neon_layer_support_8cpp_source.html#l00172">armnn::IsLayerTypeSupported()</a>.</p>
372
373</div>
374</div>
375<a id="a081cfb99e9e5b240f8b151f0a7090431"></a>
376<h2 class="memtitle"><span class="permalink"><a href="#a081cfb99e9e5b240f8b151f0a7090431">&#9670;&nbsp;</a></span>IsMemImportSupported()</h2>
377
378<div class="memitem">
379<div class="memproto">
380 <table class="memname">
381 <tr>
382 <td class="memname">bool IsMemImportSupported </td>
383 <td>(</td>
384 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
385 <td class="paramname"><em>input</em>, </td>
386 </tr>
387 <tr>
388 <td class="paramkey"></td>
389 <td></td>
390 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
391 <td class="paramname"><em>output</em>, </td>
392 </tr>
393 <tr>
394 <td class="paramkey"></td>
395 <td></td>
396 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt;&#160;</td>
397 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
398 </tr>
399 <tr>
400 <td></td>
401 <td>)</td>
402 <td></td><td> const</td>
403 </tr>
404 </table>
405</div><div class="memdoc">
406
407<p class="definition">Definition at line <a class="el" href="_layer_support_base_8cpp_source.html#l00105">105</a> of file <a class="el" href="_layer_support_base_8cpp_source.html">LayerSupportBase.cpp</a>.</p>
408<div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div>
409<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
410<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div>
411</div><!-- fragment -->
412<p class="reference">Referenced by <a class="el" href="_ref_layer_support_8cpp_source.html#l00061">RefLayerSupport::IsLayerSupported()</a>, <a class="el" href="_layer_support_base_8cpp_source.html#l00040">LayerSupportBase::IsLayerSupported()</a>, <a class="el" href="_cl_layer_support_8cpp_source.html#l00187">ClLayerSupport::IsLayerSupported()</a>, and <a class="el" href="_neon_layer_support_8cpp_source.html#l00172">armnn::IsLayerTypeSupported()</a>.</p>
413
414</div>
415</div>
416<a id="a21fd6e1714d62eb57f7e31e3ccaaa152"></a>
417<h2 class="memtitle"><span class="permalink"><a href="#a21fd6e1714d62eb57f7e31e3ccaaa152">&#9670;&nbsp;</a></span>IsMergeSupported()</h2>
418
419<div class="memitem">
420<div class="memproto">
421 <table class="memname">
422 <tr>
423 <td class="memname">bool IsMergeSupported </td>
424 <td>(</td>
425 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
426 <td class="paramname"><em>input0</em>, </td>
427 </tr>
428 <tr>
429 <td class="paramkey"></td>
430 <td></td>
431 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
432 <td class="paramname"><em>input1</em>, </td>
433 </tr>
434 <tr>
435 <td class="paramkey"></td>
436 <td></td>
437 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
438 <td class="paramname"><em>output</em>, </td>
439 </tr>
440 <tr>
441 <td class="paramkey"></td>
442 <td></td>
443 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt;&#160;</td>
444 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
445 </tr>
446 <tr>
447 <td></td>
448 <td>)</td>
449 <td></td><td> const</td>
450 </tr>
451 </table>
452</div><div class="memdoc">
453
454<p class="definition">Definition at line <a class="el" href="_layer_support_base_8cpp_source.html#l00112">112</a> of file <a class="el" href="_layer_support_base_8cpp_source.html">LayerSupportBase.cpp</a>.</p>
455<div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div>
456<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);</div>
457<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div>
458</div><!-- fragment -->
459<p class="reference">Referenced by <a class="el" href="_ref_layer_support_8cpp_source.html#l00061">RefLayerSupport::IsLayerSupported()</a>, <a class="el" href="_cl_layer_support_8cpp_source.html#l00187">ClLayerSupport::IsLayerSupported()</a>, and <a class="el" href="_neon_layer_support_8cpp_source.html#l00172">armnn::IsLayerTypeSupported()</a>.</p>
460
461</div>
462</div>
463<a id="aad6eabce66fdae7c3389450e9dc75df9"></a>
464<h2 class="memtitle"><span class="permalink"><a href="#aad6eabce66fdae7c3389450e9dc75df9">&#9670;&nbsp;</a></span>IsQuantizedLstmSupported()</h2>
465
466<div class="memitem">
467<div class="memproto">
468 <table class="memname">
469 <tr>
470 <td class="memname">bool IsQuantizedLstmSupported </td>
471 <td>(</td>
472 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
473 <td class="paramname"><em>input</em>, </td>
474 </tr>
475 <tr>
476 <td class="paramkey"></td>
477 <td></td>
478 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
479 <td class="paramname"><em>previousCellStateIn</em>, </td>
480 </tr>
481 <tr>
482 <td class="paramkey"></td>
483 <td></td>
484 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
485 <td class="paramname"><em>previousOutputIn</em>, </td>
486 </tr>
487 <tr>
488 <td class="paramkey"></td>
489 <td></td>
490 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
491 <td class="paramname"><em>cellStateOut</em>, </td>
492 </tr>
493 <tr>
494 <td class="paramkey"></td>
495 <td></td>
496 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
497 <td class="paramname"><em>output</em>, </td>
498 </tr>
499 <tr>
500 <td class="paramkey"></td>
501 <td></td>
502 <td class="paramtype">const <a class="el" href="structarmnn_1_1_quantized_lstm_input_params_info.html">QuantizedLstmInputParamsInfo</a> &amp;&#160;</td>
503 <td class="paramname"><em>paramsInfo</em>, </td>
504 </tr>
505 <tr>
506 <td class="paramkey"></td>
507 <td></td>
508 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt;&#160;</td>
509 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
510 </tr>
511 <tr>
512 <td></td>
513 <td>)</td>
514 <td></td><td> const</td>
515 </tr>
516 </table>
517</div><div class="memdoc">
518
519<p class="definition">Definition at line <a class="el" href="_layer_support_base_8cpp_source.html#l00120">120</a> of file <a class="el" href="_layer_support_base_8cpp_source.html">LayerSupportBase.cpp</a>.</p>
520<div class="fragment"><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;{</div>
521<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);</div>
522<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;}</div>
523</div><!-- fragment -->
524<p class="reference">Referenced by <a class="el" href="_ref_layer_support_8cpp_source.html#l00061">RefLayerSupport::IsLayerSupported()</a>.</p>
525
526</div>
527</div>
528<a id="a4b423d2cd51bbfb363141d823cecf943"></a>
529<h2 class="memtitle"><span class="permalink"><a href="#a4b423d2cd51bbfb363141d823cecf943">&#9670;&nbsp;</a></span>IsShapeSupported()</h2>
530
531<div class="memitem">
532<div class="memproto">
533 <table class="memname">
534 <tr>
535 <td class="memname">bool IsShapeSupported </td>
536 <td>(</td>
537 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
538 <td class="paramname"><em>input</em>, </td>
539 </tr>
540 <tr>
541 <td class="paramkey"></td>
542 <td></td>
543 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
544 <td class="paramname"><em>output</em>, </td>
545 </tr>
546 <tr>
547 <td class="paramkey"></td>
548 <td></td>
549 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt;&#160;</td>
550 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
551 </tr>
552 <tr>
553 <td></td>
554 <td>)</td>
555 <td></td><td> const</td>
556 </tr>
557 </table>
558</div><div class="memdoc">
559
560<p class="definition">Definition at line <a class="el" href="_layer_support_base_8cpp_source.html#l00131">131</a> of file <a class="el" href="_layer_support_base_8cpp_source.html">LayerSupportBase.cpp</a>.</p>
561<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div>
562<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);</div>
563<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div>
564</div><!-- fragment -->
565<p class="reference">Referenced by <a class="el" href="_cl_layer_support_8cpp_source.html#l00187">ClLayerSupport::IsLayerSupported()</a>, and <a class="el" href="_neon_layer_support_8cpp_source.html#l00172">armnn::IsLayerTypeSupported()</a>.</p>
566
567</div>
568</div>
569<a id="ad00d990a0de5580f3171e63f0d8dd8d5"></a>
570<h2 class="memtitle"><span class="permalink"><a href="#ad00d990a0de5580f3171e63f0d8dd8d5">&#9670;&nbsp;</a></span>IsStandInSupported()</h2>
571
572<div class="memitem">
573<div class="memproto">
574 <table class="memname">
575 <tr>
576 <td class="memname">bool IsStandInSupported </td>
577 <td>(</td>
578 <td class="paramtype">const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> * &gt; &amp;&#160;</td>
579 <td class="paramname"><em>inputs</em>, </td>
580 </tr>
581 <tr>
582 <td class="paramkey"></td>
583 <td></td>
584 <td class="paramtype">const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> * &gt; &amp;&#160;</td>
585 <td class="paramname"><em>outputs</em>, </td>
586 </tr>
587 <tr>
588 <td class="paramkey"></td>
589 <td></td>
590 <td class="paramtype">const <a class="el" href="structarmnn_1_1_stand_in_descriptor.html">StandInDescriptor</a> &amp;&#160;</td>
591 <td class="paramname"><em>descriptor</em>, </td>
592 </tr>
593 <tr>
594 <td class="paramkey"></td>
595 <td></td>
596 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp; &gt;&#160;</td>
597 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
598 </tr>
599 <tr>
600 <td></td>
601 <td>)</td>
602 <td></td><td> const</td>
603 </tr>
604 </table>
605</div><div class="memdoc">
606
607<p class="definition">Definition at line <a class="el" href="_layer_support_base_8cpp_source.html#l00138">138</a> of file <a class="el" href="_layer_support_base_8cpp_source.html">LayerSupportBase.cpp</a>.</p>
608<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div>
609<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span> (reasonIfUnsupported)</div>
610<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
611<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; std::stringstream message;</div>
612<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; message &lt;&lt; <span class="stringliteral">&quot;StandIn layer is not executable via backends&quot;</span>;</div>
613<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
614<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; reasonIfUnsupported.value() = message.str();</div>
615<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
616<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
617<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
618<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div>
619</div><!-- fragment -->
620<p class="reference">References <a class="el" href="_optional_8hpp_source.html#l00146">OptionalReferenceSwitch&lt; std::is_reference&lt; T &gt;::value, T &gt;::value()</a>.</p>
621
622<p class="reference">Referenced by <a class="el" href="_layer_support_base_8cpp_source.html#l00040">LayerSupportBase::IsLayerSupported()</a>.</p>
623
624</div>
625</div>
626<hr/>The documentation for this class was generated from the following files:<ul>
627<li>src/backends/backendsCommon/<a class="el" href="_layer_support_base_8hpp_source.html">LayerSupportBase.hpp</a></li>
628<li>src/backends/backendsCommon/<a class="el" href="_layer_support_base_8cpp_source.html">LayerSupportBase.cpp</a></li>
629</ul>
630</div><!-- contents -->
631</div><!-- doc-content -->
632<div class="ttc" id="aclassarmnn_1_1_layer_support_base_html_ad00d990a0de5580f3171e63f0d8dd8d5"><div class="ttname"><a href="classarmnn_1_1_layer_support_base.html#ad00d990a0de5580f3171e63f0d8dd8d5">armnn::LayerSupportBase::IsStandInSupported</a></div><div class="ttdeci">bool IsStandInSupported(const std::vector&lt; const TensorInfo * &gt; &amp;inputs, const std::vector&lt; const TensorInfo * &gt; &amp;outputs, const StandInDescriptor &amp;descriptor, Optional&lt; std::string &amp; &gt; reasonIfUnsupported=EmptyOptional()) const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_base_8cpp_source.html#l00138">LayerSupportBase.cpp:138</a></div></div>
633<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4a93bca63ecbb003649425dd0e4ba79a99"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a93bca63ecbb003649425dd0e4ba79a99">armnn::LayerType::StandIn</a></div><div class="ttdeci">@ StandIn</div></div>
634<div class="ttc" id="aclassarmnn_1_1_layer_support_base_html_a081cfb99e9e5b240f8b151f0a7090431"><div class="ttname"><a href="classarmnn_1_1_layer_support_base.html#a081cfb99e9e5b240f8b151f0a7090431">armnn::LayerSupportBase::IsMemImportSupported</a></div><div class="ttdeci">bool IsMemImportSupported(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp; &gt; reasonIfUnsupported=EmptyOptional()) const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_base_8cpp_source.html#l00105">LayerSupportBase.cpp:105</a></div></div>
635<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4a115bfc5d633eae55c67f9588acdd2bf9"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a115bfc5d633eae55c67f9588acdd2bf9">armnn::LayerType::MemImport</a></div><div class="ttdeci">@ MemImport</div></div>
636<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4a4dd48794eb3305a0f5aece88b111a97b"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a4dd48794eb3305a0f5aece88b111a97b">armnn::LayerType::MemCopy</a></div><div class="ttdeci">@ MemCopy</div></div>
637<div class="ttc" id="aclassarmnn_1_1_layer_support_base_html_a76fea9e8e52d879f59b268b060635145"><div class="ttname"><a href="classarmnn_1_1_layer_support_base.html#a76fea9e8e52d879f59b268b060635145">armnn::LayerSupportBase::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</div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_base_8cpp_source.html#l00098">LayerSupportBase.cpp:98</a></div></div>
638<!-- start footer part -->
639<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
640 <ul>
641 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_layer_support_base.html">LayerSupportBase</a></li>
642 <li class="footer">Generated on Wed Feb 14 2024 16:36:23 for Arm NN by
643 <a href="http://www.doxygen.org/index.html">
644 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
645 </ul>
646</div>
647</body>
648</html>