blob: 83253921b65ef8df245746938a40a9a26a6b8945 [file] [log] [blame]
Ryan OSheade36e4a2020-03-13 16:26:19 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.13"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<title>ArmNN: NeonLayerSupport Class Reference</title>
9<link href="tabs.css" rel="stylesheet" type="text/css"/>
10<script type="text/javascript" src="jquery.js"></script>
11<script type="text/javascript" src="dynsections.js"></script>
12<link href="navtree.css" rel="stylesheet" type="text/css"/>
13<script type="text/javascript" src="resize.js"></script>
14<script type="text/javascript" src="navtreedata.js"></script>
15<script type="text/javascript" src="navtree.js"></script>
16<script type="text/javascript">
17 $(document).ready(initResizable);
18</script>
19<link href="search/search.css" rel="stylesheet" type="text/css"/>
20<script type="text/javascript" src="search/searchdata.js"></script>
21<script type="text/javascript" src="search/search.js"></script>
22<link href="doxygen.css" rel="stylesheet" type="text/css" />
23</head>
24<body>
25<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
26<div id="titlearea">
27<table cellspacing="0" cellpadding="0">
28 <tbody>
29 <tr style="height: 56px;">
30 <td id="projectalign" style="padding-left: 0.5em;">
31 <div id="projectname">ArmNN
32 &#160;<span id="projectnumber">NotReleased</span>
33 </div>
34 </td>
35 </tr>
36 </tbody>
37</table>
38</div>
39<!-- end header part -->
40<!-- Generated by Doxygen 1.8.13 -->
41<script type="text/javascript">
42var searchBox = new SearchBox("searchBox", "search",false,'Search');
43</script>
44<script type="text/javascript" src="menudata.js"></script>
45<script type="text/javascript" src="menu.js"></script>
46<script type="text/javascript">
47$(function() {
48 initMenu('',true,false,'search.php','Search');
49 $(document).ready(function() { init_search(); });
50});
51</script>
52<div id="main-nav"></div>
53</div><!-- top -->
54<div id="side-nav" class="ui-resizable side-nav-resizable">
55 <div id="nav-tree">
56 <div id="nav-tree-contents">
57 <div id="nav-sync" class="sync"></div>
58 </div>
59 </div>
60 <div id="splitbar" style="-moz-user-select:none;"
61 class="ui-resizable-handle">
62 </div>
63</div>
64<script type="text/javascript">
65$(document).ready(function(){initNavTree('classarmnn_1_1_neon_layer_support.html','');});
66</script>
67<div id="doc-content">
68<!-- window showing the filter options -->
69<div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73</div>
74
75<!-- iframe showing the search results (closed by default) -->
76<div id="MSearchResultsWindow">
77<iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79</iframe>
80</div>
81
82<div class="header">
83 <div class="summary">
84<a href="#pub-methods">Public Member Functions</a> &#124;
85<a href="classarmnn_1_1_neon_layer_support-members.html">List of all members</a> </div>
86 <div class="headertitle">
87<div class="title">NeonLayerSupport Class Reference</div> </div>
88</div><!--header-->
89<div class="contents">
90
91<p><code>#include &lt;<a class="el" href="_neon_layer_support_8hpp_source.html">NeonLayerSupport.hpp</a>&gt;</code></p>
92<div class="dynheader">
93Inheritance diagram for NeonLayerSupport:</div>
94<div class="dyncontent">
95 <div class="center">
96 <img src="classarmnn_1_1_neon_layer_support.png" usemap="#NeonLayerSupport_map" alt=""/>
97 <map id="NeonLayerSupport_map" name="NeonLayerSupport_map">
98<area href="classarmnn_1_1_layer_support_base.html" alt="LayerSupportBase" shape="rect" coords="0,56,119,80"/>
99<area href="classarmnn_1_1_i_layer_support.html" alt="ILayerSupport" shape="rect" coords="0,0,119,24"/>
100</map>
101 </div></div>
102<table class="memberdecls">
103<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
104Public Member Functions</h2></td></tr>
105<tr class="memitem:abd7fa8c2233f8a653e30ae2f3b839d92"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#abd7fa8c2233f8a653e30ae2f3b839d92">IsAbsSupported</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 override</td></tr>
106<tr class="separator:abd7fa8c2233f8a653e30ae2f3b839d92"><td class="memSeparator" colspan="2">&#160;</td></tr>
107<tr class="memitem:ab3adb3a28736529682e4ff0ea976dcd3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#ab3adb3a28736529682e4ff0ea976dcd3">IsActivationSupported</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, const <a class="el" href="structarmnn_1_1_activation_descriptor.html">ActivationDescriptor</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 override</td></tr>
108<tr class="separator:ab3adb3a28736529682e4ff0ea976dcd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
109<tr class="memitem:a48177e22e47448adb3d83e145dadf735"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a48177e22e47448adb3d83e145dadf735">IsAdditionSupported</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 override</td></tr>
110<tr class="separator:a48177e22e47448adb3d83e145dadf735"><td class="memSeparator" colspan="2">&#160;</td></tr>
111<tr class="memitem:a0f4841f89f21fd794786b4c03c2425fd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a0f4841f89f21fd794786b4c03c2425fd">IsArgMinMaxSupported</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, const <a class="el" href="structarmnn_1_1_arg_min_max_descriptor.html">ArgMinMaxDescriptor</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 override</td></tr>
112<tr class="separator:a0f4841f89f21fd794786b4c03c2425fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
113<tr class="memitem:a67c970dd054b991e14369de523ca3a5a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a67c970dd054b991e14369de523ca3a5a">IsBatchNormalizationSupported</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, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;mean, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;var, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;beta, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;gamma, const <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</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 override</td></tr>
114<tr class="separator:a67c970dd054b991e14369de523ca3a5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
115<tr class="memitem:adc5695cc25f4055c7ed54bdc8604a098"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#adc5695cc25f4055c7ed54bdc8604a098">IsBatchToSpaceNdSupported</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, const <a class="el" href="structarmnn_1_1_batch_to_space_nd_descriptor.html">BatchToSpaceNdDescriptor</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 override</td></tr>
116<tr class="separator:adc5695cc25f4055c7ed54bdc8604a098"><td class="memSeparator" colspan="2">&#160;</td></tr>
117<tr class="memitem:a7c52726a684dd76258c61af124012537"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a7c52726a684dd76258c61af124012537">IsComparisonSupported</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, const <a class="el" href="structarmnn_1_1_comparison_descriptor.html">ComparisonDescriptor</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 override</td></tr>
118<tr class="separator:a7c52726a684dd76258c61af124012537"><td class="memSeparator" colspan="2">&#160;</td></tr>
119<tr class="memitem:a3dca8ffbcb5f3afa1799aa7d354a3016"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a3dca8ffbcb5f3afa1799aa7d354a3016">IsConcatSupported</a> (const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> *&gt; inputs, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;output, const <a class="el" href="namespacearmnn.html#a7863c179ff92feec660c48ab7b95ae55">ConcatDescriptor</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 override</td></tr>
120<tr class="separator:a3dca8ffbcb5f3afa1799aa7d354a3016"><td class="memSeparator" colspan="2">&#160;</td></tr>
121<tr class="memitem:adf18c4fa8fc9e0cdae1967990aa90fe8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#adf18c4fa8fc9e0cdae1967990aa90fe8">IsConstantSupported</a> (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 override</td></tr>
122<tr class="separator:adf18c4fa8fc9e0cdae1967990aa90fe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
123<tr class="memitem:a1efcaf6f02892442fefca09f49ea3d7c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a1efcaf6f02892442fefca09f49ea3d7c">IsConvertFp16ToFp32Supported</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 override</td></tr>
124<tr class="separator:a1efcaf6f02892442fefca09f49ea3d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
125<tr class="memitem:a91fb5f44d8b9427dc45443aa9ebfe13e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a91fb5f44d8b9427dc45443aa9ebfe13e">IsConvertFp32ToFp16Supported</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 override</td></tr>
126<tr class="separator:a91fb5f44d8b9427dc45443aa9ebfe13e"><td class="memSeparator" colspan="2">&#160;</td></tr>
127<tr class="memitem:af7ff06bd8115a6a9cc6d41e5c762798e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#af7ff06bd8115a6a9cc6d41e5c762798e">IsConvolution2dSupported</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, const <a class="el" href="structarmnn_1_1_convolution2d_descriptor.html">Convolution2dDescriptor</a> &amp;descriptor, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;weights, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;biases, <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>
128<tr class="separator:af7ff06bd8115a6a9cc6d41e5c762798e"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:a128fb9890897e08251a3f621e570cd23"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a128fb9890897e08251a3f621e570cd23">IsDepthToSpaceSupported</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, const <a class="el" href="namespacearmnn.html#a3647f60510bc8ddaced01c51b0ee8714">DepthToSpaceDescriptor</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 override</td></tr>
130<tr class="separator:a128fb9890897e08251a3f621e570cd23"><td class="memSeparator" colspan="2">&#160;</td></tr>
131<tr class="memitem:adc84390751f227fe03a115b5fa10b0fc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#adc84390751f227fe03a115b5fa10b0fc">IsDepthwiseConvolutionSupported</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, const <a class="el" href="structarmnn_1_1_depthwise_convolution2d_descriptor.html">DepthwiseConvolution2dDescriptor</a> &amp;descriptor, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;weights, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;biases, <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>
132<tr class="separator:adc84390751f227fe03a115b5fa10b0fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
133<tr class="memitem:a2e89c72cf60df7c2d2d7e5d98822b672"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a2e89c72cf60df7c2d2d7e5d98822b672">IsDequantizeSupported</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 override</td></tr>
134<tr class="separator:a2e89c72cf60df7c2d2d7e5d98822b672"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<tr class="memitem:a16c8cd49a7fa487b904b5c9cc83673e7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a16c8cd49a7fa487b904b5c9cc83673e7">IsDilatedDepthwiseConvolutionSupported</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, const <a class="el" href="structarmnn_1_1_depthwise_convolution2d_descriptor.html">DepthwiseConvolution2dDescriptor</a> &amp;descriptor, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;weights, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;biases, <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt; reason=<a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()) const override</td></tr>
136<tr class="separator:a16c8cd49a7fa487b904b5c9cc83673e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:a61c5b4e5dc224ef0c876e43353b34030"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a61c5b4e5dc224ef0c876e43353b34030">IsElementwiseUnarySupported</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, const <a class="el" href="structarmnn_1_1_elementwise_unary_descriptor.html">ElementwiseUnaryDescriptor</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 override</td></tr>
138<tr class="separator:a61c5b4e5dc224ef0c876e43353b34030"><td class="memSeparator" colspan="2">&#160;</td></tr>
139<tr class="memitem:a53c7593d1aa26207eac5d5814a9d56dc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a53c7593d1aa26207eac5d5814a9d56dc">IsFloorSupported</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 override</td></tr>
140<tr class="separator:a53c7593d1aa26207eac5d5814a9d56dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
141<tr class="memitem:aeaf971dd9dffd6f6bc7e5a1ae6b6af5c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#aeaf971dd9dffd6f6bc7e5a1ae6b6af5c">IsFullyConnectedSupported</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, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;weights, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;biases, const <a class="el" href="structarmnn_1_1_fully_connected_descriptor.html">FullyConnectedDescriptor</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 override</td></tr>
142<tr class="separator:aeaf971dd9dffd6f6bc7e5a1ae6b6af5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
143<tr class="memitem:a14e45f3699e823d7859d5d352d89265c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a14e45f3699e823d7859d5d352d89265c">IsGreaterSupported</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 override</td></tr>
144<tr class="separator:a14e45f3699e823d7859d5d352d89265c"><td class="memSeparator" colspan="2">&#160;</td></tr>
145<tr class="memitem:ad29d99ecd719c640ed22dcf5c688c6a5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#ad29d99ecd719c640ed22dcf5c688c6a5">IsInputSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input, <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>
146<tr class="separator:ad29d99ecd719c640ed22dcf5c688c6a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
147<tr class="memitem:a0813546a09bf2caba6794014d1960624"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a0813546a09bf2caba6794014d1960624">IsInstanceNormalizationSupported</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, const <a class="el" href="structarmnn_1_1_instance_normalization_descriptor.html">InstanceNormalizationDescriptor</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 override</td></tr>
148<tr class="separator:a0813546a09bf2caba6794014d1960624"><td class="memSeparator" colspan="2">&#160;</td></tr>
149<tr class="memitem:aca4acda7ab553edfda828658d8f3882b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#aca4acda7ab553edfda828658d8f3882b">IsL2NormalizationSupported</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, const <a class="el" href="structarmnn_1_1_l2_normalization_descriptor.html">L2NormalizationDescriptor</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 override</td></tr>
150<tr class="separator:aca4acda7ab553edfda828658d8f3882b"><td class="memSeparator" colspan="2">&#160;</td></tr>
151<tr class="memitem:a862535721737220f62a49f14ff494dd5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a862535721737220f62a49f14ff494dd5">IsLstmSupported</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;outputStateIn, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;cellStateIn, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;scratchBuffer, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;outputStateOut, 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_lstm_descriptor.html">LstmDescriptor</a> &amp;descriptor, const <a class="el" href="structarmnn_1_1_lstm_input_params_info.html">LstmInputParamsInfo</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 override</td></tr>
152<tr class="separator:a862535721737220f62a49f14ff494dd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
153<tr class="memitem:afef9436c86b37b973471f2ae546ac00a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#afef9436c86b37b973471f2ae546ac00a">IsMaximumSupported</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 override</td></tr>
154<tr class="separator:afef9436c86b37b973471f2ae546ac00a"><td class="memSeparator" colspan="2">&#160;</td></tr>
155<tr class="memitem:ab268618580d4f53bf5e9b5a47dee3f6a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#ab268618580d4f53bf5e9b5a47dee3f6a">IsMeanSupported</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, const <a class="el" href="structarmnn_1_1_mean_descriptor.html">MeanDescriptor</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 override</td></tr>
156<tr class="separator:ab268618580d4f53bf5e9b5a47dee3f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
157<tr class="memitem:aa9309ea64f9f7447efe3567f77417d29"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#aa9309ea64f9f7447efe3567f77417d29">IsMergerSupported</a> (const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> *&gt; inputs, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;output, const <a class="el" href="namespacearmnn.html#a003d213dd28b0b8c0f26fbf268ccb975">MergerDescriptor</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 override</td></tr>
158<tr class="separator:aa9309ea64f9f7447efe3567f77417d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
159<tr class="memitem:a3d0eafb3de560b3482f857b56b2b2116"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a3d0eafb3de560b3482f857b56b2b2116">IsMinimumSupported</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 override</td></tr>
160<tr class="separator:a3d0eafb3de560b3482f857b56b2b2116"><td class="memSeparator" colspan="2">&#160;</td></tr>
161<tr class="memitem:a421e1f3865d99d52613003048342c49a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a421e1f3865d99d52613003048342c49a">IsMultiplicationSupported</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 override</td></tr>
162<tr class="separator:a421e1f3865d99d52613003048342c49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
163<tr class="memitem:a08f55136b1f0907e7083d70d719f697f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a08f55136b1f0907e7083d70d719f697f">IsDivisionSupported</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 override</td></tr>
164<tr class="separator:a08f55136b1f0907e7083d70d719f697f"><td class="memSeparator" colspan="2">&#160;</td></tr>
165<tr class="memitem:a994c2065561141bf37fcd2ff7bb4af4d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a994c2065561141bf37fcd2ff7bb4af4d">IsNormalizationSupported</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, const <a class="el" href="structarmnn_1_1_normalization_descriptor.html">NormalizationDescriptor</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 override</td></tr>
166<tr class="separator:a994c2065561141bf37fcd2ff7bb4af4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
167<tr class="memitem:aef3244c0ef64c8f2f352d21ce0c06985"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#aef3244c0ef64c8f2f352d21ce0c06985">IsOutputSupported</a> (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 override</td></tr>
168<tr class="separator:aef3244c0ef64c8f2f352d21ce0c06985"><td class="memSeparator" colspan="2">&#160;</td></tr>
169<tr class="memitem:a0534291adf9f3436ba331552eba29a43"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a0534291adf9f3436ba331552eba29a43">IsPadSupported</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, const <a class="el" href="structarmnn_1_1_pad_descriptor.html">PadDescriptor</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 override</td></tr>
170<tr class="separator:a0534291adf9f3436ba331552eba29a43"><td class="memSeparator" colspan="2">&#160;</td></tr>
171<tr class="memitem:a9d553495d9a94fa55588ae159d8bda30"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a9d553495d9a94fa55588ae159d8bda30">IsPermuteSupported</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, const <a class="el" href="structarmnn_1_1_permute_descriptor.html">PermuteDescriptor</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 override</td></tr>
172<tr class="separator:a9d553495d9a94fa55588ae159d8bda30"><td class="memSeparator" colspan="2">&#160;</td></tr>
173<tr class="memitem:aa955675303d67b1d1fb51fb7f09d8c21"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#aa955675303d67b1d1fb51fb7f09d8c21">IsPooling2dSupported</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, const <a class="el" href="structarmnn_1_1_pooling2d_descriptor.html">Pooling2dDescriptor</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 override</td></tr>
174<tr class="separator:aa955675303d67b1d1fb51fb7f09d8c21"><td class="memSeparator" colspan="2">&#160;</td></tr>
175<tr class="memitem:a4b36dcedd5edbd5142b3548967aadc2f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a4b36dcedd5edbd5142b3548967aadc2f">IsPreluSupported</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;alpha, 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 override</td></tr>
176<tr class="separator:a4b36dcedd5edbd5142b3548967aadc2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
177<tr class="memitem:ad2c7be6b84b04444e514f52f593b3df7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#ad2c7be6b84b04444e514f52f593b3df7">IsQuantizeSupported</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 override</td></tr>
178<tr class="separator:ad2c7be6b84b04444e514f52f593b3df7"><td class="memSeparator" colspan="2">&#160;</td></tr>
179<tr class="memitem:a281eb6ce87b6ca147e681dd3f6483a87"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a281eb6ce87b6ca147e681dd3f6483a87">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;cellStateIn, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;outputStateIn, 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;outputStateOut, 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 override</td></tr>
180<tr class="separator:a281eb6ce87b6ca147e681dd3f6483a87"><td class="memSeparator" colspan="2">&#160;</td></tr>
181<tr class="memitem:aa02f01bbcb48c67f5b2efc4132ec5e86"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#aa02f01bbcb48c67f5b2efc4132ec5e86">IsReshapeSupported</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, const <a class="el" href="structarmnn_1_1_reshape_descriptor.html">ReshapeDescriptor</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 override</td></tr>
182<tr class="separator:aa02f01bbcb48c67f5b2efc4132ec5e86"><td class="memSeparator" colspan="2">&#160;</td></tr>
183<tr class="memitem:a3d27a3fc6a7df0b68d80cb113aff8b6c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a3d27a3fc6a7df0b68d80cb113aff8b6c">IsResizeSupported</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, const <a class="el" href="structarmnn_1_1_resize_descriptor.html">ResizeDescriptor</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 override</td></tr>
184<tr class="separator:a3d27a3fc6a7df0b68d80cb113aff8b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
185<tr class="memitem:a0f29f31e1ba46a52eedcdecd34f4cc24"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a0f29f31e1ba46a52eedcdecd34f4cc24">IsResizeBilinearSupported</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 override</td></tr>
186<tr class="separator:a0f29f31e1ba46a52eedcdecd34f4cc24"><td class="memSeparator" colspan="2">&#160;</td></tr>
187<tr class="memitem:a10ae4d84b0d31580f6fcd5107322ebcf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a10ae4d84b0d31580f6fcd5107322ebcf">IsRsqrtSupported</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 override</td></tr>
188<tr class="separator:a10ae4d84b0d31580f6fcd5107322ebcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
189<tr class="memitem:a0e14dafa85cfcd4a6b6b752284b51e63"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a0e14dafa85cfcd4a6b6b752284b51e63">IsSliceSupported</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, const <a class="el" href="structarmnn_1_1_slice_descriptor.html">SliceDescriptor</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 override</td></tr>
190<tr class="separator:a0e14dafa85cfcd4a6b6b752284b51e63"><td class="memSeparator" colspan="2">&#160;</td></tr>
191<tr class="memitem:a8385cf8227907904a6a86fac318fc099"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a8385cf8227907904a6a86fac318fc099">IsSoftmaxSupported</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, const <a class="el" href="structarmnn_1_1_softmax_descriptor.html">SoftmaxDescriptor</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 override</td></tr>
192<tr class="separator:a8385cf8227907904a6a86fac318fc099"><td class="memSeparator" colspan="2">&#160;</td></tr>
193<tr class="memitem:a3adfc31e079a970e028e537ec05fabf5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a3adfc31e079a970e028e537ec05fabf5">IsSpaceToBatchNdSupported</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, const <a class="el" href="structarmnn_1_1_space_to_batch_nd_descriptor.html">SpaceToBatchNdDescriptor</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 override</td></tr>
194<tr class="separator:a3adfc31e079a970e028e537ec05fabf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
195<tr class="memitem:ab2af1e7da9490d29e569d271e16b0d5c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#ab2af1e7da9490d29e569d271e16b0d5c">IsSpaceToDepthSupported</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, const <a class="el" href="structarmnn_1_1_space_to_depth_descriptor.html">SpaceToDepthDescriptor</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 override</td></tr>
196<tr class="separator:ab2af1e7da9490d29e569d271e16b0d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
197<tr class="memitem:a17dd12822d49a23d24198f425a6fb9c4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a17dd12822d49a23d24198f425a6fb9c4">IsSplitterSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input, const <a class="el" href="structarmnn_1_1_views_descriptor.html">ViewsDescriptor</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 override</td></tr>
198<tr class="separator:a17dd12822d49a23d24198f425a6fb9c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
199<tr class="memitem:aa746e752ce8874669ea549f8e50896da"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#aa746e752ce8874669ea549f8e50896da">IsSplitterSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input, const std::vector&lt; std::reference_wrapper&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt;&gt; &amp;outputs, const <a class="el" href="structarmnn_1_1_views_descriptor.html">ViewsDescriptor</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 override</td></tr>
200<tr class="separator:aa746e752ce8874669ea549f8e50896da"><td class="memSeparator" colspan="2">&#160;</td></tr>
201<tr class="memitem:ab4609f1baf5fcd295951f3c8abdffd90"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#ab4609f1baf5fcd295951f3c8abdffd90">IsStackSupported</a> (const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> *&gt; &amp;inputs, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;output, const <a class="el" href="structarmnn_1_1_stack_descriptor.html">StackDescriptor</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 override</td></tr>
202<tr class="separator:ab4609f1baf5fcd295951f3c8abdffd90"><td class="memSeparator" colspan="2">&#160;</td></tr>
203<tr class="memitem:ac054cb25099005eac854afb1511340f0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#ac054cb25099005eac854afb1511340f0">IsStridedSliceSupported</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, const <a class="el" href="structarmnn_1_1_strided_slice_descriptor.html">StridedSliceDescriptor</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 override</td></tr>
204<tr class="separator:ac054cb25099005eac854afb1511340f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
205<tr class="memitem:af6c947e4d4b25bc49d92d18d4ff26736"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#af6c947e4d4b25bc49d92d18d4ff26736">IsSubtractionSupported</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 override</td></tr>
206<tr class="separator:af6c947e4d4b25bc49d92d18d4ff26736"><td class="memSeparator" colspan="2">&#160;</td></tr>
207<tr class="memitem:a0c69484f19ed650ad48b716719114e51"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_layer_support.html#a0c69484f19ed650ad48b716719114e51">IsTransposeConvolution2dSupported</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, const <a class="el" href="structarmnn_1_1_transpose_convolution2d_descriptor.html">TransposeConvolution2dDescriptor</a> &amp;descriptor, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;weights, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;biases, <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>
208<tr class="separator:a0c69484f19ed650ad48b716719114e51"><td class="memSeparator" colspan="2">&#160;</td></tr>
209<tr class="inherit_header pub_methods_classarmnn_1_1_layer_support_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1_layer_support_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1_layer_support_base.html">LayerSupportBase</a></td></tr>
210<tr class="memitem:a87a66c5e87a19534ce3e6c374c9b8f09 inherit pub_methods_classarmnn_1_1_layer_support_base"><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#a87a66c5e87a19534ce3e6c374c9b8f09">IsDebugSupported</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 override</td></tr>
211<tr class="separator:a87a66c5e87a19534ce3e6c374c9b8f09 inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
212<tr class="memitem:a50af275d7755a5bb1be69736d7e4b02f inherit pub_methods_classarmnn_1_1_layer_support_base"><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#a50af275d7755a5bb1be69736d7e4b02f">IsDetectionPostProcessSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;<a class="el" href="_neon_end_to_end_tests_8cpp.html#ada422a73ac4e68bcb1b1b1f0b44028d9">boxEncodings</a>, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;<a class="el" href="_neon_end_to_end_tests_8cpp.html#a0348e6bb67ace72535bd105219bb6237">scores</a>, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;<a class="el" href="_neon_end_to_end_tests_8cpp.html#ac0981848e4ae57729f14f72bd4caa9f8">anchors</a>, 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 override</td></tr>
213<tr class="separator:a50af275d7755a5bb1be69736d7e4b02f inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
214<tr class="memitem:afb6ad04c6ff234b193f3dfc0cfabcbd5 inherit pub_methods_classarmnn_1_1_layer_support_base"><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#afb6ad04c6ff234b193f3dfc0cfabcbd5">IsEqualSupported</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 override</td></tr>
215<tr class="separator:afb6ad04c6ff234b193f3dfc0cfabcbd5 inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
216<tr class="memitem:aab7318aa8adc0a8a3b6a1780cfc1f90b inherit pub_methods_classarmnn_1_1_layer_support_base"><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#aab7318aa8adc0a8a3b6a1780cfc1f90b">IsFakeQuantizationSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input, const <a class="el" href="structarmnn_1_1_fake_quantization_descriptor.html">FakeQuantizationDescriptor</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 override</td></tr>
217<tr class="separator:aab7318aa8adc0a8a3b6a1780cfc1f90b inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
218<tr class="memitem:aef77aa4bb0e68e88dcf5ab8b5882a2d3 inherit pub_methods_classarmnn_1_1_layer_support_base"><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#aef77aa4bb0e68e88dcf5ab8b5882a2d3">IsGatherSupported</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 override</td></tr>
219<tr class="separator:aef77aa4bb0e68e88dcf5ab8b5882a2d3 inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
220<tr class="memitem:aa0380b797cb9932fb03067dbe2cdecfb inherit pub_methods_classarmnn_1_1_layer_support_base"><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#aa0380b797cb9932fb03067dbe2cdecfb">IsLogSoftmaxSupported</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, const <a class="el" href="namespacearmnn.html#ac14705405cbcdd580df613de6766fe65">LogSoftmaxDescriptor</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 override</td></tr>
221<tr class="separator:aa0380b797cb9932fb03067dbe2cdecfb inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
222<tr class="memitem:a9d25fabf725313fda40a41400155bafe inherit pub_methods_classarmnn_1_1_layer_support_base"><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#a9d25fabf725313fda40a41400155bafe">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 override</td></tr>
223<tr class="separator:a9d25fabf725313fda40a41400155bafe inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
224<tr class="memitem:a334181d8098b943d03ccd820753ace75 inherit pub_methods_classarmnn_1_1_layer_support_base"><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#a334181d8098b943d03ccd820753ace75">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 override</td></tr>
225<tr class="separator:a334181d8098b943d03ccd820753ace75 inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<tr class="memitem:aa9bbc383cac59d6f02d2ef7d2cc0076f inherit pub_methods_classarmnn_1_1_layer_support_base"><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#aa9bbc383cac59d6f02d2ef7d2cc0076f">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 override</td></tr>
227<tr class="separator:aa9bbc383cac59d6f02d2ef7d2cc0076f inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
228<tr class="memitem:adc1a598f2f572564818e3d343af93486 inherit pub_methods_classarmnn_1_1_layer_support_base"><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#adc1a598f2f572564818e3d343af93486">IsPreCompiledSupported</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;input, const <a class="el" href="structarmnn_1_1_pre_compiled_descriptor.html">PreCompiledDescriptor</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 override</td></tr>
229<tr class="separator:adc1a598f2f572564818e3d343af93486 inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
230<tr class="memitem:a68a4c180fc48e266995db8596f6279d3 inherit pub_methods_classarmnn_1_1_layer_support_base"><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#a68a4c180fc48e266995db8596f6279d3">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 override</td></tr>
231<tr class="separator:a68a4c180fc48e266995db8596f6279d3 inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
232<tr class="memitem:a8c12a49b0d261836c11a57916e01805d inherit pub_methods_classarmnn_1_1_layer_support_base"><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#a8c12a49b0d261836c11a57916e01805d">IsSwitchSupported</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;output0, const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;output1, <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>
233<tr class="separator:a8c12a49b0d261836c11a57916e01805d inherit pub_methods_classarmnn_1_1_layer_support_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
234</table><table class="memberdecls">
235<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
236Additional Inherited Members</h2></td></tr>
237<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>
238<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>
239<tr class="separator:aab2a487bc88047443d8a0f87c3c40b8d inherit pro_methods_classarmnn_1_1_i_layer_support"><td class="memSeparator" colspan="2">&#160;</td></tr>
240<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>
241<tr class="separator:a9e7f4f28576904804cd759e49173beeb inherit pro_methods_classarmnn_1_1_i_layer_support"><td class="memSeparator" colspan="2">&#160;</td></tr>
242</table>
243<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
244<div class="textblock">
245<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8hpp_source.html#l00012">12</a> of file <a class="el" href="_neon_layer_support_8hpp_source.html">NeonLayerSupport.hpp</a>.</p>
246</div><h2 class="groupheader">Member Function Documentation</h2>
247<a id="abd7fa8c2233f8a653e30ae2f3b839d92"></a>
248<h2 class="memtitle"><span class="permalink"><a href="#abd7fa8c2233f8a653e30ae2f3b839d92">&#9670;&nbsp;</a></span>IsAbsSupported()</h2>
249
250<div class="memitem">
251<div class="memproto">
252<table class="mlabels">
253 <tr>
254 <td class="mlabels-left">
255 <table class="memname">
256 <tr>
257 <td class="memname">bool IsAbsSupported </td>
258 <td>(</td>
259 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
260 <td class="paramname"><em>input</em>, </td>
261 </tr>
262 <tr>
263 <td class="paramkey"></td>
264 <td></td>
265 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
266 <td class="paramname"><em>output</em>, </td>
267 </tr>
268 <tr>
269 <td class="paramkey"></td>
270 <td></td>
271 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
272 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
273 </tr>
274 <tr>
275 <td></td>
276 <td>)</td>
277 <td></td><td> const</td>
278 </tr>
279 </table>
280 </td>
281 <td class="mlabels-right">
282<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
283 </tr>
284</table>
285</div><div class="memdoc">
286
287<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#abd7fa8c2233f8a653e30ae2f3b839d92">LayerSupportBase</a>.</p>
288
289<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00123">123</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
290<div class="fragment"><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; ElementwiseUnaryDescriptor descriptor(<a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">UnaryOperation::Abs</a>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_neon_layer_support.html#a61c5b4e5dc224ef0c876e43353b34030">IsElementwiseUnarySupported</a>(input, output, descriptor, reasonIfUnsupported);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">armnn::ActivationFunction::Abs</a></div></div>
291<div class="ttc" id="classarmnn_1_1_neon_layer_support_html_a61c5b4e5dc224ef0c876e43353b34030"><div class="ttname"><a href="classarmnn_1_1_neon_layer_support.html#a61c5b4e5dc224ef0c876e43353b34030">armnn::NeonLayerSupport::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="_neon_layer_support_8cpp_source.html#l00356">NeonLayerSupport.cpp:356</a></div></div>
292</div><!-- fragment -->
293</div>
294</div>
295<a id="ab3adb3a28736529682e4ff0ea976dcd3"></a>
296<h2 class="memtitle"><span class="permalink"><a href="#ab3adb3a28736529682e4ff0ea976dcd3">&#9670;&nbsp;</a></span>IsActivationSupported()</h2>
297
298<div class="memitem">
299<div class="memproto">
300<table class="mlabels">
301 <tr>
302 <td class="mlabels-left">
303 <table class="memname">
304 <tr>
305 <td class="memname">bool IsActivationSupported </td>
306 <td>(</td>
307 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
308 <td class="paramname"><em>input</em>, </td>
309 </tr>
310 <tr>
311 <td class="paramkey"></td>
312 <td></td>
313 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
314 <td class="paramname"><em>output</em>, </td>
315 </tr>
316 <tr>
317 <td class="paramkey"></td>
318 <td></td>
319 <td class="paramtype">const <a class="el" href="structarmnn_1_1_activation_descriptor.html">ActivationDescriptor</a> &amp;&#160;</td>
320 <td class="paramname"><em>descriptor</em>, </td>
321 </tr>
322 <tr>
323 <td class="paramkey"></td>
324 <td></td>
325 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
326 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
327 </tr>
328 <tr>
329 <td></td>
330 <td>)</td>
331 <td></td><td> const</td>
332 </tr>
333 </table>
334 </td>
335 <td class="mlabels-right">
336<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
337 </tr>
338</table>
339</div><div class="memdoc">
340
341<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#ab3adb3a28736529682e4ff0ea976dcd3">LayerSupportBase</a>.</p>
342
343<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00131">131</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
344
345<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_activation_workload_8cpp_source.html#l00015">armnn::NeonActivationWorkloadValidate()</a>.</p>
346<div class="fragment"><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; ignore_unused(descriptor);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a46495807633a01d826851e1cb498f071">NeonActivationWorkloadValidate</a>,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; input,</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; output,</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; descriptor);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a46495807633a01d826851e1cb498f071"><div class="ttname"><a href="namespacearmnn.html#a46495807633a01d826851e1cb498f071">armnn::NeonActivationWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonActivationWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const ActivationDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_activation_workload_8cpp_source.html#l00015">NeonActivationWorkload.cpp:15</a></div></div>
347<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
348</div><!-- fragment -->
349</div>
350</div>
351<a id="a48177e22e47448adb3d83e145dadf735"></a>
352<h2 class="memtitle"><span class="permalink"><a href="#a48177e22e47448adb3d83e145dadf735">&#9670;&nbsp;</a></span>IsAdditionSupported()</h2>
353
354<div class="memitem">
355<div class="memproto">
356<table class="mlabels">
357 <tr>
358 <td class="mlabels-left">
359 <table class="memname">
360 <tr>
361 <td class="memname">bool IsAdditionSupported </td>
362 <td>(</td>
363 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
364 <td class="paramname"><em>input0</em>, </td>
365 </tr>
366 <tr>
367 <td class="paramkey"></td>
368 <td></td>
369 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
370 <td class="paramname"><em>input1</em>, </td>
371 </tr>
372 <tr>
373 <td class="paramkey"></td>
374 <td></td>
375 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
376 <td class="paramname"><em>output</em>, </td>
377 </tr>
378 <tr>
379 <td class="paramkey"></td>
380 <td></td>
381 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
382 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
383 </tr>
384 <tr>
385 <td></td>
386 <td>)</td>
387 <td></td><td> const</td>
388 </tr>
389 </table>
390 </td>
391 <td class="mlabels-right">
392<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
393 </tr>
394</table>
395</div><div class="memdoc">
396
397<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a48177e22e47448adb3d83e145dadf735">LayerSupportBase</a>.</p>
398
399<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00144">144</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
400
401<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_addition_workload_8cpp_source.html#l00017">armnn::NeonAdditionWorkloadValidate()</a>.</p>
402<div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#afc541536011ccfb06853c45bfaba2dfd">NeonAdditionWorkloadValidate</a>,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; input0,</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; input1,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; output);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_afc541536011ccfb06853c45bfaba2dfd"><div class="ttname"><a href="namespacearmnn.html#afc541536011ccfb06853c45bfaba2dfd">armnn::NeonAdditionWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonAdditionWorkloadValidate(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_addition_workload_8cpp_source.html#l00017">NeonAdditionWorkload.cpp:17</a></div></div>
403<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
404</div><!-- fragment -->
405</div>
406</div>
407<a id="a0f4841f89f21fd794786b4c03c2425fd"></a>
408<h2 class="memtitle"><span class="permalink"><a href="#a0f4841f89f21fd794786b4c03c2425fd">&#9670;&nbsp;</a></span>IsArgMinMaxSupported()</h2>
409
410<div class="memitem">
411<div class="memproto">
412<table class="mlabels">
413 <tr>
414 <td class="mlabels-left">
415 <table class="memname">
416 <tr>
417 <td class="memname">bool IsArgMinMaxSupported </td>
418 <td>(</td>
419 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
420 <td class="paramname"><em>input</em>, </td>
421 </tr>
422 <tr>
423 <td class="paramkey"></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>output</em>, </td>
427 </tr>
428 <tr>
429 <td class="paramkey"></td>
430 <td></td>
431 <td class="paramtype">const <a class="el" href="structarmnn_1_1_arg_min_max_descriptor.html">ArgMinMaxDescriptor</a> &amp;&#160;</td>
432 <td class="paramname"><em>descriptor</em>, </td>
433 </tr>
434 <tr>
435 <td class="paramkey"></td>
436 <td></td>
437 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
438 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
439 </tr>
440 <tr>
441 <td></td>
442 <td>)</td>
443 <td></td><td> const</td>
444 </tr>
445 </table>
446 </td>
447 <td class="mlabels-right">
448<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
449 </tr>
450</table>
451</div><div class="memdoc">
452
453<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a0f4841f89f21fd794786b4c03c2425fd">LayerSupportBase</a>.</p>
454
455<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00156">156</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
456
457<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_arg_min_max_workload_8cpp_source.html#l00029">armnn::NeonArgMinMaxWorkloadValidate()</a>.</p>
458<div class="fragment"><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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a61d1f39297fec6e3062e4047dc5f236e">NeonArgMinMaxWorkloadValidate</a>,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; input,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; output,</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; descriptor);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a61d1f39297fec6e3062e4047dc5f236e"><div class="ttname"><a href="namespacearmnn.html#a61d1f39297fec6e3062e4047dc5f236e">armnn::NeonArgMinMaxWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonArgMinMaxWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const ArgMinMaxDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_arg_min_max_workload_8cpp_source.html#l00029">NeonArgMinMaxWorkload.cpp:29</a></div></div>
459<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
460</div><!-- fragment -->
461</div>
462</div>
463<a id="a67c970dd054b991e14369de523ca3a5a"></a>
464<h2 class="memtitle"><span class="permalink"><a href="#a67c970dd054b991e14369de523ca3a5a">&#9670;&nbsp;</a></span>IsBatchNormalizationSupported()</h2>
465
466<div class="memitem">
467<div class="memproto">
468<table class="mlabels">
469 <tr>
470 <td class="mlabels-left">
471 <table class="memname">
472 <tr>
473 <td class="memname">bool IsBatchNormalizationSupported </td>
474 <td>(</td>
475 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
476 <td class="paramname"><em>input</em>, </td>
477 </tr>
478 <tr>
479 <td class="paramkey"></td>
480 <td></td>
481 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
482 <td class="paramname"><em>output</em>, </td>
483 </tr>
484 <tr>
485 <td class="paramkey"></td>
486 <td></td>
487 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
488 <td class="paramname"><em>mean</em>, </td>
489 </tr>
490 <tr>
491 <td class="paramkey"></td>
492 <td></td>
493 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
494 <td class="paramname"><em>var</em>, </td>
495 </tr>
496 <tr>
497 <td class="paramkey"></td>
498 <td></td>
499 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
500 <td class="paramname"><em>beta</em>, </td>
501 </tr>
502 <tr>
503 <td class="paramkey"></td>
504 <td></td>
505 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
506 <td class="paramname"><em>gamma</em>, </td>
507 </tr>
508 <tr>
509 <td class="paramkey"></td>
510 <td></td>
511 <td class="paramtype">const <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a> &amp;&#160;</td>
512 <td class="paramname"><em>descriptor</em>, </td>
513 </tr>
514 <tr>
515 <td class="paramkey"></td>
516 <td></td>
517 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
518 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
519 </tr>
520 <tr>
521 <td></td>
522 <td>)</td>
523 <td></td><td> const</td>
524 </tr>
525 </table>
526 </td>
527 <td class="mlabels-right">
528<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
529 </tr>
530</table>
531</div><div class="memdoc">
532
533<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a67c970dd054b991e14369de523ca3a5a">LayerSupportBase</a>.</p>
534
535<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00168">168</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
536
537<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_batch_normalization_workload_8cpp_source.html#l00020">armnn::NeonBatchNormalizationValidate()</a>.</p>
538<div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;{</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a6c856ceba1828fe201b2b6c032d70371">NeonBatchNormalizationValidate</a>,</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; input,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; output,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; mean,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; var,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; beta,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; gamma,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; descriptor);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a6c856ceba1828fe201b2b6c032d70371"><div class="ttname"><a href="namespacearmnn.html#a6c856ceba1828fe201b2b6c032d70371">armnn::NeonBatchNormalizationValidate</a></div><div class="ttdeci">arm_compute::Status NeonBatchNormalizationValidate(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)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_batch_normalization_workload_8cpp_source.html#l00020">NeonBatchNormalizationWorkload.cpp:20</a></div></div>
539<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
540</div><!-- fragment -->
541</div>
542</div>
543<a id="adc5695cc25f4055c7ed54bdc8604a098"></a>
544<h2 class="memtitle"><span class="permalink"><a href="#adc5695cc25f4055c7ed54bdc8604a098">&#9670;&nbsp;</a></span>IsBatchToSpaceNdSupported()</h2>
545
546<div class="memitem">
547<div class="memproto">
548<table class="mlabels">
549 <tr>
550 <td class="mlabels-left">
551 <table class="memname">
552 <tr>
553 <td class="memname">bool IsBatchToSpaceNdSupported </td>
554 <td>(</td>
555 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
556 <td class="paramname"><em>input</em>, </td>
557 </tr>
558 <tr>
559 <td class="paramkey"></td>
560 <td></td>
561 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
562 <td class="paramname"><em>output</em>, </td>
563 </tr>
564 <tr>
565 <td class="paramkey"></td>
566 <td></td>
567 <td class="paramtype">const <a class="el" href="structarmnn_1_1_batch_to_space_nd_descriptor.html">BatchToSpaceNdDescriptor</a> &amp;&#160;</td>
568 <td class="paramname"><em>descriptor</em>, </td>
569 </tr>
570 <tr>
571 <td class="paramkey"></td>
572 <td></td>
573 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
574 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
575 </tr>
576 <tr>
577 <td></td>
578 <td>)</td>
579 <td></td><td> const</td>
580 </tr>
581 </table>
582 </td>
583 <td class="mlabels-right">
584<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
585 </tr>
586</table>
587</div><div class="memdoc">
588
589<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#adc5695cc25f4055c7ed54bdc8604a098">LayerSupportBase</a>.</p>
590
591<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00188">188</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
592
593<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_batch_to_space_nd_workload_8cpp_source.html#l00016">armnn::NeonBatchToSpaceNdWorkloadValidate()</a>.</p>
594<div class="fragment"><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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a00623eeb8f77dac6dbbc1395b5270dbb">NeonBatchToSpaceNdWorkloadValidate</a>,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; input,</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; output,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; descriptor);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a00623eeb8f77dac6dbbc1395b5270dbb"><div class="ttname"><a href="namespacearmnn.html#a00623eeb8f77dac6dbbc1395b5270dbb">armnn::NeonBatchToSpaceNdWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonBatchToSpaceNdWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const BatchToSpaceNdDescriptor &amp;desc)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_batch_to_space_nd_workload_8cpp_source.html#l00016">NeonBatchToSpaceNdWorkload.cpp:16</a></div></div>
595<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
596</div><!-- fragment -->
597</div>
598</div>
599<a id="a7c52726a684dd76258c61af124012537"></a>
600<h2 class="memtitle"><span class="permalink"><a href="#a7c52726a684dd76258c61af124012537">&#9670;&nbsp;</a></span>IsComparisonSupported()</h2>
601
602<div class="memitem">
603<div class="memproto">
604<table class="mlabels">
605 <tr>
606 <td class="mlabels-left">
607 <table class="memname">
608 <tr>
609 <td class="memname">bool IsComparisonSupported </td>
610 <td>(</td>
611 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
612 <td class="paramname"><em>input0</em>, </td>
613 </tr>
614 <tr>
615 <td class="paramkey"></td>
616 <td></td>
617 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
618 <td class="paramname"><em>input1</em>, </td>
619 </tr>
620 <tr>
621 <td class="paramkey"></td>
622 <td></td>
623 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
624 <td class="paramname"><em>output</em>, </td>
625 </tr>
626 <tr>
627 <td class="paramkey"></td>
628 <td></td>
629 <td class="paramtype">const <a class="el" href="structarmnn_1_1_comparison_descriptor.html">ComparisonDescriptor</a> &amp;&#160;</td>
630 <td class="paramname"><em>descriptor</em>, </td>
631 </tr>
632 <tr>
633 <td class="paramkey"></td>
634 <td></td>
635 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
636 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
637 </tr>
638 <tr>
639 <td></td>
640 <td>)</td>
641 <td></td><td> const</td>
642 </tr>
643 </table>
644 </td>
645 <td class="mlabels-right">
646<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
647 </tr>
648</table>
649</div><div class="memdoc">
650
651<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a7c52726a684dd76258c61af124012537">LayerSupportBase</a>.</p>
652
653<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00200">200</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
654
655<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, <a class="el" href="_descriptors_8hpp_source.html#l00078">ComparisonDescriptor::m_Operation</a>, and <a class="el" href="_neon_greater_workload_8cpp_source.html#l00013">armnn::NeonGreaterWorkloadValidate()</a>.</p>
656<div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;{</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (descriptor.m_Operation == <a class="code" href="namespacearmnn.html#a2d299363c9fc33334c571fa29ca4f58ca8768a6821cd735aea4f5b0df88c1fc6a">ComparisonOperation::Greater</a>)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#ad536149438b0481b7278ad741e18fb5a">NeonGreaterWorkloadValidate</a>,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; input0,</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; input1,</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; output);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a2d299363c9fc33334c571fa29ca4f58ca8768a6821cd735aea4f5b0df88c1fc6a"><div class="ttname"><a href="namespacearmnn.html#a2d299363c9fc33334c571fa29ca4f58ca8768a6821cd735aea4f5b0df88c1fc6a">armnn::ComparisonOperation::Greater</a></div></div>
657<div class="ttc" id="namespacearmnn_html_ad536149438b0481b7278ad741e18fb5a"><div class="ttname"><a href="namespacearmnn.html#ad536149438b0481b7278ad741e18fb5a">armnn::NeonGreaterWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonGreaterWorkloadValidate(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_greater_workload_8cpp_source.html#l00013">NeonGreaterWorkload.cpp:13</a></div></div>
658<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
659</div><!-- fragment -->
660</div>
661</div>
662<a id="a3dca8ffbcb5f3afa1799aa7d354a3016"></a>
663<h2 class="memtitle"><span class="permalink"><a href="#a3dca8ffbcb5f3afa1799aa7d354a3016">&#9670;&nbsp;</a></span>IsConcatSupported()</h2>
664
665<div class="memitem">
666<div class="memproto">
667<table class="mlabels">
668 <tr>
669 <td class="mlabels-left">
670 <table class="memname">
671 <tr>
672 <td class="memname">bool IsConcatSupported </td>
673 <td>(</td>
674 <td class="paramtype">const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> *&gt;&#160;</td>
675 <td class="paramname"><em>inputs</em>, </td>
676 </tr>
677 <tr>
678 <td class="paramkey"></td>
679 <td></td>
680 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
681 <td class="paramname"><em>output</em>, </td>
682 </tr>
683 <tr>
684 <td class="paramkey"></td>
685 <td></td>
686 <td class="paramtype">const <a class="el" href="namespacearmnn.html#a7863c179ff92feec660c48ab7b95ae55">ConcatDescriptor</a> &amp;&#160;</td>
687 <td class="paramname"><em>descriptor</em>, </td>
688 </tr>
689 <tr>
690 <td class="paramkey"></td>
691 <td></td>
692 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
693 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
694 </tr>
695 <tr>
696 <td></td>
697 <td>)</td>
698 <td></td><td> const</td>
699 </tr>
700 </table>
701 </td>
702 <td class="mlabels-right">
703<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
704 </tr>
705</table>
706</div><div class="memdoc">
707
708<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a1542179a03961e3635bb5bef993c8e0e">LayerSupportBase</a>.</p>
709
710<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00218">218</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
711
712<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, <a class="el" href="_descriptors_8cpp_source.html#l00154">OriginsDescriptor::GetConcatAxis()</a>, <a class="el" href="_descriptors_8cpp_source.html#l00184">OriginsDescriptor::GetNumDimensions()</a>, <a class="el" href="_tensor_8cpp_source.html#l00218">TensorInfo::IsTypeSpaceMatch()</a>, <a class="el" href="_neon_concat_workload_8cpp_source.html#l00028">armnn::NeonConcatWorkloadValidate()</a>, and <a class="el" href="_layer_support_common_8hpp_source.html#l00018">armnn::SetValueChecked()</a>.</p>
713<div class="fragment"><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; <span class="keywordflow">if</span> (descriptor.GetNumDimensions() &lt;= descriptor.GetConcatAxis())</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="namespacearmnn.html#a13c7d751e4d37f65a6d40c3c6e50d2b8">SetValueChecked</a>(reasonIfUnsupported, <span class="stringliteral">&quot;Neon Concat: Concat axis &gt; Number of dimensions.&quot;</span>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> concatInnerAxis = (descriptor.GetNumDimensions() - descriptor.GetConcatAxis()) - 1;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span>(concatInnerAxis &lt; 3) <span class="comment">// Width, height, or channels</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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a8a219633e750d6daffcef3b641fa11f3">NeonConcatWorkloadValidate</a>,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; inputs,</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; output,</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; descriptor);</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (concatInnerAxis == 3)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; input : inputs)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (input &amp;&amp; !output.IsTypeSpaceMatch(*input)) <span class="comment">// Cannot use sub-tensors if the types are not same space</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; <a class="code" href="namespacearmnn.html#a13c7d751e4d37f65a6d40c3c6e50d2b8">SetValueChecked</a>(reasonIfUnsupported, <span class="stringliteral">&quot;Neon Concat: Types and quantization parameters must match.&quot;</span>);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</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; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// Sub-tensors support concat along batch</span></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"> 250</span>&#160; <span class="keywordflow">else</span> <span class="comment">// &gt; 4 dimensions not supported.</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="namespacearmnn.html#a13c7d751e4d37f65a6d40c3c6e50d2b8">SetValueChecked</a>(reasonIfUnsupported, <span class="stringliteral">&quot;Neon Concat: Maximum of 4 dimensions supported.&quot;</span>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a8a219633e750d6daffcef3b641fa11f3"><div class="ttname"><a href="namespacearmnn.html#a8a219633e750d6daffcef3b641fa11f3">armnn::NeonConcatWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonConcatWorkloadValidate(const std::vector&lt; const TensorInfo *&gt; &amp;inputs, const TensorInfo &amp;output, const OriginsDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_concat_workload_8cpp_source.html#l00028">NeonConcatWorkload.cpp:28</a></div></div>
714<div class="ttc" id="namespacearmnn_html_a13c7d751e4d37f65a6d40c3c6e50d2b8"><div class="ttname"><a href="namespacearmnn.html#a13c7d751e4d37f65a6d40c3c6e50d2b8">armnn::SetValueChecked</a></div><div class="ttdeci">void SetValueChecked(Optional&lt; T &amp;&gt; optionalRef, V &amp;&amp;val)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_common_8hpp_source.html#l00018">LayerSupportCommon.hpp:18</a></div></div>
715<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
716</div><!-- fragment -->
717</div>
718</div>
719<a id="adf18c4fa8fc9e0cdae1967990aa90fe8"></a>
720<h2 class="memtitle"><span class="permalink"><a href="#adf18c4fa8fc9e0cdae1967990aa90fe8">&#9670;&nbsp;</a></span>IsConstantSupported()</h2>
721
722<div class="memitem">
723<div class="memproto">
724<table class="mlabels">
725 <tr>
726 <td class="mlabels-left">
727 <table class="memname">
728 <tr>
729 <td class="memname">bool IsConstantSupported </td>
730 <td>(</td>
731 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
732 <td class="paramname"><em>output</em>, </td>
733 </tr>
734 <tr>
735 <td class="paramkey"></td>
736 <td></td>
737 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
738 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
739 </tr>
740 <tr>
741 <td></td>
742 <td>)</td>
743 <td></td><td> const</td>
744 </tr>
745 </table>
746 </td>
747 <td class="mlabels-right">
748<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
749 </tr>
750</table>
751</div><div class="memdoc">
752
753<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#adf18c4fa8fc9e0cdae1967990aa90fe8">LayerSupportBase</a>.</p>
754
755<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00257">257</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
756
757<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00095">TensorInfo::GetDataType()</a>.</p>
758<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;{</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> IsSupportedForDataTypeNeon(reasonIfUnsupported,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; output.GetDataType(),</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; &amp;TrueFunc&lt;&gt;,</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; &amp;TrueFunc&lt;&gt;);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}</div></div><!-- fragment -->
759</div>
760</div>
761<a id="a1efcaf6f02892442fefca09f49ea3d7c"></a>
762<h2 class="memtitle"><span class="permalink"><a href="#a1efcaf6f02892442fefca09f49ea3d7c">&#9670;&nbsp;</a></span>IsConvertFp16ToFp32Supported()</h2>
763
764<div class="memitem">
765<div class="memproto">
766<table class="mlabels">
767 <tr>
768 <td class="mlabels-left">
769 <table class="memname">
770 <tr>
771 <td class="memname">bool IsConvertFp16ToFp32Supported </td>
772 <td>(</td>
773 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
774 <td class="paramname"><em>input</em>, </td>
775 </tr>
776 <tr>
777 <td class="paramkey"></td>
778 <td></td>
779 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
780 <td class="paramname"><em>output</em>, </td>
781 </tr>
782 <tr>
783 <td class="paramkey"></td>
784 <td></td>
785 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
786 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
787 </tr>
788 <tr>
789 <td></td>
790 <td>)</td>
791 <td></td><td> const</td>
792 </tr>
793 </table>
794 </td>
795 <td class="mlabels-right">
796<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
797 </tr>
798</table>
799</div><div class="memdoc">
800
801<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a1efcaf6f02892442fefca09f49ea3d7c">LayerSupportBase</a>.</p>
802
803<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00266">266</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
804<div class="fragment"><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;{</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; ignore_unused(input);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; ignore_unused(output);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; ignore_unused(reasonIfUnsupported);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div></div><!-- fragment -->
805</div>
806</div>
807<a id="a91fb5f44d8b9427dc45443aa9ebfe13e"></a>
808<h2 class="memtitle"><span class="permalink"><a href="#a91fb5f44d8b9427dc45443aa9ebfe13e">&#9670;&nbsp;</a></span>IsConvertFp32ToFp16Supported()</h2>
809
810<div class="memitem">
811<div class="memproto">
812<table class="mlabels">
813 <tr>
814 <td class="mlabels-left">
815 <table class="memname">
816 <tr>
817 <td class="memname">bool IsConvertFp32ToFp16Supported </td>
818 <td>(</td>
819 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
820 <td class="paramname"><em>input</em>, </td>
821 </tr>
822 <tr>
823 <td class="paramkey"></td>
824 <td></td>
825 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
826 <td class="paramname"><em>output</em>, </td>
827 </tr>
828 <tr>
829 <td class="paramkey"></td>
830 <td></td>
831 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
832 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
833 </tr>
834 <tr>
835 <td></td>
836 <td>)</td>
837 <td></td><td> const</td>
838 </tr>
839 </table>
840 </td>
841 <td class="mlabels-right">
842<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
843 </tr>
844</table>
845</div><div class="memdoc">
846
847<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a91fb5f44d8b9427dc45443aa9ebfe13e">LayerSupportBase</a>.</p>
848
849<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00276">276</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
850<div class="fragment"><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; ignore_unused(input);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; ignore_unused(output);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; ignore_unused(reasonIfUnsupported);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;}</div></div><!-- fragment -->
851</div>
852</div>
853<a id="af7ff06bd8115a6a9cc6d41e5c762798e"></a>
854<h2 class="memtitle"><span class="permalink"><a href="#af7ff06bd8115a6a9cc6d41e5c762798e">&#9670;&nbsp;</a></span>IsConvolution2dSupported()</h2>
855
856<div class="memitem">
857<div class="memproto">
858<table class="mlabels">
859 <tr>
860 <td class="mlabels-left">
861 <table class="memname">
862 <tr>
863 <td class="memname">bool IsConvolution2dSupported </td>
864 <td>(</td>
865 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
866 <td class="paramname"><em>input</em>, </td>
867 </tr>
868 <tr>
869 <td class="paramkey"></td>
870 <td></td>
871 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
872 <td class="paramname"><em>output</em>, </td>
873 </tr>
874 <tr>
875 <td class="paramkey"></td>
876 <td></td>
877 <td class="paramtype">const <a class="el" href="structarmnn_1_1_convolution2d_descriptor.html">Convolution2dDescriptor</a> &amp;&#160;</td>
878 <td class="paramname"><em>descriptor</em>, </td>
879 </tr>
880 <tr>
881 <td class="paramkey"></td>
882 <td></td>
883 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
884 <td class="paramname"><em>weights</em>, </td>
885 </tr>
886 <tr>
887 <td class="paramkey"></td>
888 <td></td>
889 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;&#160;</td>
890 <td class="paramname"><em>biases</em>, </td>
891 </tr>
892 <tr>
893 <td class="paramkey"></td>
894 <td></td>
895 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
896 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
897 </tr>
898 <tr>
899 <td></td>
900 <td>)</td>
901 <td></td><td> const</td>
902 </tr>
903 </table>
904 </td>
905 <td class="mlabels-right">
906<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
907 </tr>
908</table>
909</div><div class="memdoc">
910
911<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#af7ff06bd8115a6a9cc6d41e5c762798e">LayerSupportBase</a>.</p>
912
913<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00286">286</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
914
915<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_convolution2d_workload_8cpp_source.html#l00022">armnn::NeonConvolution2dWorkloadValidate()</a>.</p>
916<div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#af64bb043263ba7d09c98fd88da60726d">NeonConvolution2dWorkloadValidate</a>,</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; input,</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; output,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; descriptor,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; weights,</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; biases);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_af64bb043263ba7d09c98fd88da60726d"><div class="ttname"><a href="namespacearmnn.html#af64bb043263ba7d09c98fd88da60726d">armnn::NeonConvolution2dWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonConvolution2dWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const Convolution2dDescriptor &amp;descriptor, const TensorInfo &amp;weights, const Optional&lt; TensorInfo &gt; &amp;biases)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_convolution2d_workload_8cpp_source.html#l00022">NeonConvolution2dWorkload.cpp:22</a></div></div>
917<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
918</div><!-- fragment -->
919</div>
920</div>
921<a id="a128fb9890897e08251a3f621e570cd23"></a>
922<h2 class="memtitle"><span class="permalink"><a href="#a128fb9890897e08251a3f621e570cd23">&#9670;&nbsp;</a></span>IsDepthToSpaceSupported()</h2>
923
924<div class="memitem">
925<div class="memproto">
926<table class="mlabels">
927 <tr>
928 <td class="mlabels-left">
929 <table class="memname">
930 <tr>
931 <td class="memname">bool IsDepthToSpaceSupported </td>
932 <td>(</td>
933 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
934 <td class="paramname"><em>input</em>, </td>
935 </tr>
936 <tr>
937 <td class="paramkey"></td>
938 <td></td>
939 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
940 <td class="paramname"><em>output</em>, </td>
941 </tr>
942 <tr>
943 <td class="paramkey"></td>
944 <td></td>
945 <td class="paramtype">const <a class="el" href="namespacearmnn.html#a3647f60510bc8ddaced01c51b0ee8714">DepthToSpaceDescriptor</a> &amp;&#160;</td>
946 <td class="paramname"><em>descriptor</em>, </td>
947 </tr>
948 <tr>
949 <td class="paramkey"></td>
950 <td></td>
951 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
952 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
953 </tr>
954 <tr>
955 <td></td>
956 <td>)</td>
957 <td></td><td> const</td>
958 </tr>
959 </table>
960 </td>
961 <td class="mlabels-right">
962<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
963 </tr>
964</table>
965</div><div class="memdoc">
966
967<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a128fb9890897e08251a3f621e570cd23">LayerSupportBase</a>.</p>
968
969<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00302">302</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
970
971<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_depth_to_space_workload_8cpp_source.html#l00020">armnn::NeonDepthToSpaceWorkloadValidate()</a>.</p>
972<div class="fragment"><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;{</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a116d88067bf98ce9858ab73e68f605f9">NeonDepthToSpaceWorkloadValidate</a>,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; input,</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; output,</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; descriptor);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a116d88067bf98ce9858ab73e68f605f9"><div class="ttname"><a href="namespacearmnn.html#a116d88067bf98ce9858ab73e68f605f9">armnn::NeonDepthToSpaceWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonDepthToSpaceWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const DepthToSpaceDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_depth_to_space_workload_8cpp_source.html#l00020">NeonDepthToSpaceWorkload.cpp:20</a></div></div>
973<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
974</div><!-- fragment -->
975</div>
976</div>
977<a id="adc84390751f227fe03a115b5fa10b0fc"></a>
978<h2 class="memtitle"><span class="permalink"><a href="#adc84390751f227fe03a115b5fa10b0fc">&#9670;&nbsp;</a></span>IsDepthwiseConvolutionSupported()</h2>
979
980<div class="memitem">
981<div class="memproto">
982<table class="mlabels">
983 <tr>
984 <td class="mlabels-left">
985 <table class="memname">
986 <tr>
987 <td class="memname">bool IsDepthwiseConvolutionSupported </td>
988 <td>(</td>
989 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
990 <td class="paramname"><em>input</em>, </td>
991 </tr>
992 <tr>
993 <td class="paramkey"></td>
994 <td></td>
995 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
996 <td class="paramname"><em>output</em>, </td>
997 </tr>
998 <tr>
999 <td class="paramkey"></td>
1000 <td></td>
1001 <td class="paramtype">const <a class="el" href="structarmnn_1_1_depthwise_convolution2d_descriptor.html">DepthwiseConvolution2dDescriptor</a> &amp;&#160;</td>
1002 <td class="paramname"><em>descriptor</em>, </td>
1003 </tr>
1004 <tr>
1005 <td class="paramkey"></td>
1006 <td></td>
1007 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1008 <td class="paramname"><em>weights</em>, </td>
1009 </tr>
1010 <tr>
1011 <td class="paramkey"></td>
1012 <td></td>
1013 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;&#160;</td>
1014 <td class="paramname"><em>biases</em>, </td>
1015 </tr>
1016 <tr>
1017 <td class="paramkey"></td>
1018 <td></td>
1019 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1020 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1021 </tr>
1022 <tr>
1023 <td></td>
1024 <td>)</td>
1025 <td></td><td> const</td>
1026 </tr>
1027 </table>
1028 </td>
1029 <td class="mlabels-right">
1030<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1031 </tr>
1032</table>
1033</div><div class="memdoc">
1034
1035<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#adc84390751f227fe03a115b5fa10b0fc">LayerSupportBase</a>.</p>
1036
1037<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00314">314</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1038
1039<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_depthwise_convolution_workload_8cpp_source.html#l00028">armnn::NeonDepthwiseConvolutionWorkloadValidate()</a>.</p>
1040
1041<p class="reference">Referenced by <a class="el" href="_neon_layer_tests_8cpp_source.html#l00267">BOOST_AUTO_TEST_CASE()</a>.</p>
1042<div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;{</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a168ebb908e1ee4bac24cb7992510de73">NeonDepthwiseConvolutionWorkloadValidate</a>,</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; input,</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; output,</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; descriptor,</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; weights,</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; biases);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a168ebb908e1ee4bac24cb7992510de73"><div class="ttname"><a href="namespacearmnn.html#a168ebb908e1ee4bac24cb7992510de73">armnn::NeonDepthwiseConvolutionWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const DepthwiseConvolution2dDescriptor &amp;descriptor, const TensorInfo &amp;weights, const Optional&lt; TensorInfo &gt; &amp;biases)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_depthwise_convolution_workload_8cpp_source.html#l00028">NeonDepthwiseConvolutionWorkload.cpp:28</a></div></div>
1043<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1044</div><!-- fragment -->
1045</div>
1046</div>
1047<a id="a2e89c72cf60df7c2d2d7e5d98822b672"></a>
1048<h2 class="memtitle"><span class="permalink"><a href="#a2e89c72cf60df7c2d2d7e5d98822b672">&#9670;&nbsp;</a></span>IsDequantizeSupported()</h2>
1049
1050<div class="memitem">
1051<div class="memproto">
1052<table class="mlabels">
1053 <tr>
1054 <td class="mlabels-left">
1055 <table class="memname">
1056 <tr>
1057 <td class="memname">bool IsDequantizeSupported </td>
1058 <td>(</td>
1059 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1060 <td class="paramname"><em>input</em>, </td>
1061 </tr>
1062 <tr>
1063 <td class="paramkey"></td>
1064 <td></td>
1065 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1066 <td class="paramname"><em>output</em>, </td>
1067 </tr>
1068 <tr>
1069 <td class="paramkey"></td>
1070 <td></td>
1071 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1072 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1073 </tr>
1074 <tr>
1075 <td></td>
1076 <td>)</td>
1077 <td></td><td> const</td>
1078 </tr>
1079 </table>
1080 </td>
1081 <td class="mlabels-right">
1082<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1083 </tr>
1084</table>
1085</div><div class="memdoc">
1086
1087<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a2e89c72cf60df7c2d2d7e5d98822b672">LayerSupportBase</a>.</p>
1088
1089<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00330">330</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1090
1091<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_dequantize_workload_8cpp_source.html#l00021">armnn::NeonDequantizeWorkloadValidate()</a>.</p>
1092<div class="fragment"><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;{</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#acefede7cc57c71ea4cfe1c888bb413e0">NeonDequantizeWorkloadValidate</a>,</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; input,</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; output);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_acefede7cc57c71ea4cfe1c888bb413e0"><div class="ttname"><a href="namespacearmnn.html#acefede7cc57c71ea4cfe1c888bb413e0">armnn::NeonDequantizeWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonDequantizeWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_dequantize_workload_8cpp_source.html#l00021">NeonDequantizeWorkload.cpp:21</a></div></div>
1093<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1094</div><!-- fragment -->
1095</div>
1096</div>
1097<a id="a16c8cd49a7fa487b904b5c9cc83673e7"></a>
1098<h2 class="memtitle"><span class="permalink"><a href="#a16c8cd49a7fa487b904b5c9cc83673e7">&#9670;&nbsp;</a></span>IsDilatedDepthwiseConvolutionSupported()</h2>
1099
1100<div class="memitem">
1101<div class="memproto">
1102<table class="mlabels">
1103 <tr>
1104 <td class="mlabels-left">
1105 <table class="memname">
1106 <tr>
1107 <td class="memname">bool IsDilatedDepthwiseConvolutionSupported </td>
1108 <td>(</td>
1109 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1110 <td class="paramname"><em>input</em>, </td>
1111 </tr>
1112 <tr>
1113 <td class="paramkey"></td>
1114 <td></td>
1115 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1116 <td class="paramname"><em>output</em>, </td>
1117 </tr>
1118 <tr>
1119 <td class="paramkey"></td>
1120 <td></td>
1121 <td class="paramtype">const <a class="el" href="structarmnn_1_1_depthwise_convolution2d_descriptor.html">DepthwiseConvolution2dDescriptor</a> &amp;&#160;</td>
1122 <td class="paramname"><em>descriptor</em>, </td>
1123 </tr>
1124 <tr>
1125 <td class="paramkey"></td>
1126 <td></td>
1127 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1128 <td class="paramname"><em>weights</em>, </td>
1129 </tr>
1130 <tr>
1131 <td class="paramkey"></td>
1132 <td></td>
1133 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;&#160;</td>
1134 <td class="paramname"><em>biases</em>, </td>
1135 </tr>
1136 <tr>
1137 <td class="paramkey"></td>
1138 <td></td>
1139 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1140 <td class="paramname"><em>reason</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1141 </tr>
1142 <tr>
1143 <td></td>
1144 <td>)</td>
1145 <td></td><td> const</td>
1146 </tr>
1147 </table>
1148 </td>
1149 <td class="mlabels-right">
1150<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1151 </tr>
1152</table>
1153</div><div class="memdoc">
1154
1155<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a55d91a97ff664f42cd5cd62b60c15f80">LayerSupportBase</a>.</p>
1156
1157<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00340">340</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1158
1159<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_depthwise_convolution_workload_8cpp_source.html#l00028">armnn::NeonDepthwiseConvolutionWorkloadValidate()</a>.</p>
1160<div class="fragment"><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;{</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a168ebb908e1ee4bac24cb7992510de73">NeonDepthwiseConvolutionWorkloadValidate</a>,</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; input,</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; output,</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; descriptor,</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; weights,</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; biases);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a168ebb908e1ee4bac24cb7992510de73"><div class="ttname"><a href="namespacearmnn.html#a168ebb908e1ee4bac24cb7992510de73">armnn::NeonDepthwiseConvolutionWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const DepthwiseConvolution2dDescriptor &amp;descriptor, const TensorInfo &amp;weights, const Optional&lt; TensorInfo &gt; &amp;biases)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_depthwise_convolution_workload_8cpp_source.html#l00028">NeonDepthwiseConvolutionWorkload.cpp:28</a></div></div>
1161<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1162</div><!-- fragment -->
1163</div>
1164</div>
1165<a id="a08f55136b1f0907e7083d70d719f697f"></a>
1166<h2 class="memtitle"><span class="permalink"><a href="#a08f55136b1f0907e7083d70d719f697f">&#9670;&nbsp;</a></span>IsDivisionSupported()</h2>
1167
1168<div class="memitem">
1169<div class="memproto">
1170<table class="mlabels">
1171 <tr>
1172 <td class="mlabels-left">
1173 <table class="memname">
1174 <tr>
1175 <td class="memname">bool IsDivisionSupported </td>
1176 <td>(</td>
1177 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1178 <td class="paramname"><em>input0</em>, </td>
1179 </tr>
1180 <tr>
1181 <td class="paramkey"></td>
1182 <td></td>
1183 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1184 <td class="paramname"><em>input1</em>, </td>
1185 </tr>
1186 <tr>
1187 <td class="paramkey"></td>
1188 <td></td>
1189 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1190 <td class="paramname"><em>output</em>, </td>
1191 </tr>
1192 <tr>
1193 <td class="paramkey"></td>
1194 <td></td>
1195 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1196 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1197 </tr>
1198 <tr>
1199 <td></td>
1200 <td>)</td>
1201 <td></td><td> const</td>
1202 </tr>
1203 </table>
1204 </td>
1205 <td class="mlabels-right">
1206<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1207 </tr>
1208</table>
1209</div><div class="memdoc">
1210
1211<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a08f55136b1f0907e7083d70d719f697f">LayerSupportBase</a>.</p>
1212
1213<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00525">525</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1214
1215<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_division_workload_8cpp_source.html#l00013">armnn::NeonDivisionWorkloadValidate()</a>.</p>
1216<div class="fragment"><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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a3a62359fc5ebfe9628871c0ba79fb37c">NeonDivisionWorkloadValidate</a>,</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; input0,</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; input1,</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; output);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a3a62359fc5ebfe9628871c0ba79fb37c"><div class="ttname"><a href="namespacearmnn.html#a3a62359fc5ebfe9628871c0ba79fb37c">armnn::NeonDivisionWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonDivisionWorkloadValidate(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_division_workload_8cpp_source.html#l00013">NeonDivisionWorkload.cpp:13</a></div></div>
1217<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1218</div><!-- fragment -->
1219</div>
1220</div>
1221<a id="a61c5b4e5dc224ef0c876e43353b34030"></a>
1222<h2 class="memtitle"><span class="permalink"><a href="#a61c5b4e5dc224ef0c876e43353b34030">&#9670;&nbsp;</a></span>IsElementwiseUnarySupported()</h2>
1223
1224<div class="memitem">
1225<div class="memproto">
1226<table class="mlabels">
1227 <tr>
1228 <td class="mlabels-left">
1229 <table class="memname">
1230 <tr>
1231 <td class="memname">bool IsElementwiseUnarySupported </td>
1232 <td>(</td>
1233 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1234 <td class="paramname"><em>input</em>, </td>
1235 </tr>
1236 <tr>
1237 <td class="paramkey"></td>
1238 <td></td>
1239 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1240 <td class="paramname"><em>output</em>, </td>
1241 </tr>
1242 <tr>
1243 <td class="paramkey"></td>
1244 <td></td>
1245 <td class="paramtype">const <a class="el" href="structarmnn_1_1_elementwise_unary_descriptor.html">ElementwiseUnaryDescriptor</a> &amp;&#160;</td>
1246 <td class="paramname"><em>descriptor</em>, </td>
1247 </tr>
1248 <tr>
1249 <td class="paramkey"></td>
1250 <td></td>
1251 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1252 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1253 </tr>
1254 <tr>
1255 <td></td>
1256 <td>)</td>
1257 <td></td><td> const</td>
1258 </tr>
1259 </table>
1260 </td>
1261 <td class="mlabels-right">
1262<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1263 </tr>
1264</table>
1265</div><div class="memdoc">
1266
1267<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a61c5b4e5dc224ef0c876e43353b34030">LayerSupportBase</a>.</p>
1268
1269<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00356">356</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1270
1271<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, <a class="el" href="_descriptors_8hpp_source.html#l00098">ElementwiseUnaryDescriptor::m_Operation</a>, <a class="el" href="_neon_abs_workload_8cpp_source.html#l00018">armnn::NeonAbsWorkloadValidate()</a>, and <a class="el" href="_neon_rsqrt_workload_8cpp_source.html#l00018">armnn::NeonRsqrtWorkloadValidate()</a>.</p>
1272<div class="fragment"><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; <span class="keywordflow">if</span> (descriptor.m_Operation == <a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">UnaryOperation::Abs</a>)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#afc773aec6f845adc0cc547ce475dfe3f">NeonAbsWorkloadValidate</a>,</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; input,</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; output);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (descriptor.m_Operation == <a class="code" href="namespacearmnn.html#a1cfaa710db2a54673b21d2ea2da757c8a09bb7f6e2118c85a6a55bd4bf2beeca4">UnaryOperation::Rsqrt</a>)</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="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#aa7d1b5e38aa8cb731519ff12e2a73350">NeonRsqrtWorkloadValidate</a>,</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; input,</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; output);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">armnn::ActivationFunction::Abs</a></div></div>
1273<div class="ttc" id="namespacearmnn_html_afc773aec6f845adc0cc547ce475dfe3f"><div class="ttname"><a href="namespacearmnn.html#afc773aec6f845adc0cc547ce475dfe3f">armnn::NeonAbsWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonAbsWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_abs_workload_8cpp_source.html#l00018">NeonAbsWorkload.cpp:18</a></div></div>
1274<div class="ttc" id="namespacearmnn_html_aa7d1b5e38aa8cb731519ff12e2a73350"><div class="ttname"><a href="namespacearmnn.html#aa7d1b5e38aa8cb731519ff12e2a73350">armnn::NeonRsqrtWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonRsqrtWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_rsqrt_workload_8cpp_source.html#l00018">NeonRsqrtWorkload.cpp:18</a></div></div>
1275<div class="ttc" id="namespacearmnn_html_a1cfaa710db2a54673b21d2ea2da757c8a09bb7f6e2118c85a6a55bd4bf2beeca4"><div class="ttname"><a href="namespacearmnn.html#a1cfaa710db2a54673b21d2ea2da757c8a09bb7f6e2118c85a6a55bd4bf2beeca4">armnn::UnaryOperation::Rsqrt</a></div></div>
1276<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1277</div><!-- fragment -->
1278</div>
1279</div>
1280<a id="a53c7593d1aa26207eac5d5814a9d56dc"></a>
1281<h2 class="memtitle"><span class="permalink"><a href="#a53c7593d1aa26207eac5d5814a9d56dc">&#9670;&nbsp;</a></span>IsFloorSupported()</h2>
1282
1283<div class="memitem">
1284<div class="memproto">
1285<table class="mlabels">
1286 <tr>
1287 <td class="mlabels-left">
1288 <table class="memname">
1289 <tr>
1290 <td class="memname">bool IsFloorSupported </td>
1291 <td>(</td>
1292 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1293 <td class="paramname"><em>input</em>, </td>
1294 </tr>
1295 <tr>
1296 <td class="paramkey"></td>
1297 <td></td>
1298 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1299 <td class="paramname"><em>output</em>, </td>
1300 </tr>
1301 <tr>
1302 <td class="paramkey"></td>
1303 <td></td>
1304 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1305 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1306 </tr>
1307 <tr>
1308 <td></td>
1309 <td>)</td>
1310 <td></td><td> const</td>
1311 </tr>
1312 </table>
1313 </td>
1314 <td class="mlabels-right">
1315<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1316 </tr>
1317</table>
1318</div><div class="memdoc">
1319
1320<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a53c7593d1aa26207eac5d5814a9d56dc">LayerSupportBase</a>.</p>
1321
1322<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00379">379</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1323
1324<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00095">TensorInfo::GetDataType()</a>, and <a class="el" href="_layer_support_common_8hpp_source.html#l00028">armnn::IsSupportedForDataTypeGeneric()</a>.</p>
1325<div class="fragment"><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; ignore_unused(output);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">return</span> IsNeonBackendSupported(reasonIfUnsupported) &amp;&amp;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="namespacearmnn.html#af6dbe371ec651a8e0063624fdf32afc0">IsSupportedForDataTypeGeneric</a>(reasonIfUnsupported,</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; input.GetDataType(),</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; &amp;FalseFuncF16&lt;&gt;,</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; &amp;TrueFunc&lt;&gt;,</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; &amp;FalseFuncU8&lt;&gt;,</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; &amp;FalseFuncI32&lt;&gt;,</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; &amp;FalseFuncU8&lt;&gt;);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_af6dbe371ec651a8e0063624fdf32afc0"><div class="ttname"><a href="namespacearmnn.html#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.html#l00028">LayerSupportCommon.hpp:28</a></div></div>
1326</div><!-- fragment -->
1327</div>
1328</div>
1329<a id="aeaf971dd9dffd6f6bc7e5a1ae6b6af5c"></a>
1330<h2 class="memtitle"><span class="permalink"><a href="#aeaf971dd9dffd6f6bc7e5a1ae6b6af5c">&#9670;&nbsp;</a></span>IsFullyConnectedSupported()</h2>
1331
1332<div class="memitem">
1333<div class="memproto">
1334<table class="mlabels">
1335 <tr>
1336 <td class="mlabels-left">
1337 <table class="memname">
1338 <tr>
1339 <td class="memname">bool IsFullyConnectedSupported </td>
1340 <td>(</td>
1341 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1342 <td class="paramname"><em>input</em>, </td>
1343 </tr>
1344 <tr>
1345 <td class="paramkey"></td>
1346 <td></td>
1347 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1348 <td class="paramname"><em>output</em>, </td>
1349 </tr>
1350 <tr>
1351 <td class="paramkey"></td>
1352 <td></td>
1353 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1354 <td class="paramname"><em>weights</em>, </td>
1355 </tr>
1356 <tr>
1357 <td class="paramkey"></td>
1358 <td></td>
1359 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1360 <td class="paramname"><em>biases</em>, </td>
1361 </tr>
1362 <tr>
1363 <td class="paramkey"></td>
1364 <td></td>
1365 <td class="paramtype">const <a class="el" href="structarmnn_1_1_fully_connected_descriptor.html">FullyConnectedDescriptor</a> &amp;&#160;</td>
1366 <td class="paramname"><em>descriptor</em>, </td>
1367 </tr>
1368 <tr>
1369 <td class="paramkey"></td>
1370 <td></td>
1371 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1372 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1373 </tr>
1374 <tr>
1375 <td></td>
1376 <td>)</td>
1377 <td></td><td> const</td>
1378 </tr>
1379 </table>
1380 </td>
1381 <td class="mlabels-right">
1382<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1383 </tr>
1384</table>
1385</div><div class="memdoc">
1386
1387<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#aeaf971dd9dffd6f6bc7e5a1ae6b6af5c">LayerSupportBase</a>.</p>
1388
1389<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00394">394</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1390
1391<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_fully_connected_workload_8cpp_source.html#l00019">armnn::NeonFullyConnectedWorkloadValidate()</a>.</p>
1392<div class="fragment"><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;{</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a0b7897a2a04016aa7fa24e2a1d10e944">NeonFullyConnectedWorkloadValidate</a>,</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; input,</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; output,</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; weights,</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; biases,</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; descriptor);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a0b7897a2a04016aa7fa24e2a1d10e944"><div class="ttname"><a href="namespacearmnn.html#a0b7897a2a04016aa7fa24e2a1d10e944">armnn::NeonFullyConnectedWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonFullyConnectedWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const TensorInfo &amp;weights, const TensorInfo &amp;biases, const FullyConnectedDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_fully_connected_workload_8cpp_source.html#l00019">NeonFullyConnectedWorkload.cpp:19</a></div></div>
1393<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1394</div><!-- fragment -->
1395</div>
1396</div>
1397<a id="a14e45f3699e823d7859d5d352d89265c"></a>
1398<h2 class="memtitle"><span class="permalink"><a href="#a14e45f3699e823d7859d5d352d89265c">&#9670;&nbsp;</a></span>IsGreaterSupported()</h2>
1399
1400<div class="memitem">
1401<div class="memproto">
1402<table class="mlabels">
1403 <tr>
1404 <td class="mlabels-left">
1405 <table class="memname">
1406 <tr>
1407 <td class="memname">bool IsGreaterSupported </td>
1408 <td>(</td>
1409 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1410 <td class="paramname"><em>input0</em>, </td>
1411 </tr>
1412 <tr>
1413 <td class="paramkey"></td>
1414 <td></td>
1415 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1416 <td class="paramname"><em>input1</em>, </td>
1417 </tr>
1418 <tr>
1419 <td class="paramkey"></td>
1420 <td></td>
1421 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1422 <td class="paramname"><em>output</em>, </td>
1423 </tr>
1424 <tr>
1425 <td class="paramkey"></td>
1426 <td></td>
1427 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1428 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1429 </tr>
1430 <tr>
1431 <td></td>
1432 <td>)</td>
1433 <td></td><td> const</td>
1434 </tr>
1435 </table>
1436 </td>
1437 <td class="mlabels-right">
1438<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1439 </tr>
1440</table>
1441</div><div class="memdoc">
1442
1443<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a14e45f3699e823d7859d5d352d89265c">LayerSupportBase</a>.</p>
1444
1445<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00410">410</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1446<div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;{</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; ComparisonDescriptor descriptor(<a class="code" href="namespacearmnn.html#a2d299363c9fc33334c571fa29ca4f58ca8768a6821cd735aea4f5b0df88c1fc6a">ComparisonOperation::Greater</a>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_neon_layer_support.html#a7c52726a684dd76258c61af124012537">IsComparisonSupported</a>(input0, input1, output, descriptor, reasonIfUnsupported);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a2d299363c9fc33334c571fa29ca4f58ca8768a6821cd735aea4f5b0df88c1fc6a"><div class="ttname"><a href="namespacearmnn.html#a2d299363c9fc33334c571fa29ca4f58ca8768a6821cd735aea4f5b0df88c1fc6a">armnn::ComparisonOperation::Greater</a></div></div>
1447<div class="ttc" id="classarmnn_1_1_neon_layer_support_html_a7c52726a684dd76258c61af124012537"><div class="ttname"><a href="classarmnn_1_1_neon_layer_support.html#a7c52726a684dd76258c61af124012537">armnn::NeonLayerSupport::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="_neon_layer_support_8cpp_source.html#l00200">NeonLayerSupport.cpp:200</a></div></div>
1448</div><!-- fragment -->
1449</div>
1450</div>
1451<a id="ad29d99ecd719c640ed22dcf5c688c6a5"></a>
1452<h2 class="memtitle"><span class="permalink"><a href="#ad29d99ecd719c640ed22dcf5c688c6a5">&#9670;&nbsp;</a></span>IsInputSupported()</h2>
1453
1454<div class="memitem">
1455<div class="memproto">
1456<table class="mlabels">
1457 <tr>
1458 <td class="mlabels-left">
1459 <table class="memname">
1460 <tr>
1461 <td class="memname">bool IsInputSupported </td>
1462 <td>(</td>
1463 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1464 <td class="paramname"><em>input</em>, </td>
1465 </tr>
1466 <tr>
1467 <td class="paramkey"></td>
1468 <td></td>
1469 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1470 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1471 </tr>
1472 <tr>
1473 <td></td>
1474 <td>)</td>
1475 <td></td><td> const</td>
1476 </tr>
1477 </table>
1478 </td>
1479 <td class="mlabels-right">
1480<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1481 </tr>
1482</table>
1483</div><div class="memdoc">
1484
1485<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#ad29d99ecd719c640ed22dcf5c688c6a5">LayerSupportBase</a>.</p>
1486
1487<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00419">419</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1488<div class="fragment"><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;{</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> IsNeonBackendSupported(reasonIfUnsupported, input);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;}</div></div><!-- fragment -->
1489</div>
1490</div>
1491<a id="a0813546a09bf2caba6794014d1960624"></a>
1492<h2 class="memtitle"><span class="permalink"><a href="#a0813546a09bf2caba6794014d1960624">&#9670;&nbsp;</a></span>IsInstanceNormalizationSupported()</h2>
1493
1494<div class="memitem">
1495<div class="memproto">
1496<table class="mlabels">
1497 <tr>
1498 <td class="mlabels-left">
1499 <table class="memname">
1500 <tr>
1501 <td class="memname">bool IsInstanceNormalizationSupported </td>
1502 <td>(</td>
1503 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1504 <td class="paramname"><em>input</em>, </td>
1505 </tr>
1506 <tr>
1507 <td class="paramkey"></td>
1508 <td></td>
1509 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1510 <td class="paramname"><em>output</em>, </td>
1511 </tr>
1512 <tr>
1513 <td class="paramkey"></td>
1514 <td></td>
1515 <td class="paramtype">const <a class="el" href="structarmnn_1_1_instance_normalization_descriptor.html">InstanceNormalizationDescriptor</a> &amp;&#160;</td>
1516 <td class="paramname"><em>descriptor</em>, </td>
1517 </tr>
1518 <tr>
1519 <td class="paramkey"></td>
1520 <td></td>
1521 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1522 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1523 </tr>
1524 <tr>
1525 <td></td>
1526 <td>)</td>
1527 <td></td><td> const</td>
1528 </tr>
1529 </table>
1530 </td>
1531 <td class="mlabels-right">
1532<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1533 </tr>
1534</table>
1535</div><div class="memdoc">
1536
1537<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a0813546a09bf2caba6794014d1960624">LayerSupportBase</a>.</p>
1538
1539<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00425">425</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1540
1541<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_instance_normalization_workload_8cpp_source.html#l00019">armnn::NeonInstanceNormalizationWorkloadValidate()</a>.</p>
1542<div class="fragment"><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;{</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#aea722abe239545030f4c6fe4e083816f">NeonInstanceNormalizationWorkloadValidate</a>,</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; input,</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; output,</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; descriptor);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_aea722abe239545030f4c6fe4e083816f"><div class="ttname"><a href="namespacearmnn.html#aea722abe239545030f4c6fe4e083816f">armnn::NeonInstanceNormalizationWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonInstanceNormalizationWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const InstanceNormalizationDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_instance_normalization_workload_8cpp_source.html#l00019">NeonInstanceNormalizationWorkload.cpp:19</a></div></div>
1543<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1544</div><!-- fragment -->
1545</div>
1546</div>
1547<a id="aca4acda7ab553edfda828658d8f3882b"></a>
1548<h2 class="memtitle"><span class="permalink"><a href="#aca4acda7ab553edfda828658d8f3882b">&#9670;&nbsp;</a></span>IsL2NormalizationSupported()</h2>
1549
1550<div class="memitem">
1551<div class="memproto">
1552<table class="mlabels">
1553 <tr>
1554 <td class="mlabels-left">
1555 <table class="memname">
1556 <tr>
1557 <td class="memname">bool IsL2NormalizationSupported </td>
1558 <td>(</td>
1559 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1560 <td class="paramname"><em>input</em>, </td>
1561 </tr>
1562 <tr>
1563 <td class="paramkey"></td>
1564 <td></td>
1565 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1566 <td class="paramname"><em>output</em>, </td>
1567 </tr>
1568 <tr>
1569 <td class="paramkey"></td>
1570 <td></td>
1571 <td class="paramtype">const <a class="el" href="structarmnn_1_1_l2_normalization_descriptor.html">L2NormalizationDescriptor</a> &amp;&#160;</td>
1572 <td class="paramname"><em>descriptor</em>, </td>
1573 </tr>
1574 <tr>
1575 <td class="paramkey"></td>
1576 <td></td>
1577 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1578 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1579 </tr>
1580 <tr>
1581 <td></td>
1582 <td>)</td>
1583 <td></td><td> const</td>
1584 </tr>
1585 </table>
1586 </td>
1587 <td class="mlabels-right">
1588<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1589 </tr>
1590</table>
1591</div><div class="memdoc">
1592
1593<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#aca4acda7ab553edfda828658d8f3882b">LayerSupportBase</a>.</p>
1594
1595<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00437">437</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1596
1597<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_l2_normalization_float_workload_8cpp_source.html#l00018">armnn::NeonL2NormalizationWorkloadValidate()</a>.</p>
1598<div class="fragment"><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;{</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#ae838df3960d2b5d18d73ed2a07aee917">NeonL2NormalizationWorkloadValidate</a>, reasonIfUnsupported, input, output, descriptor);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_ae838df3960d2b5d18d73ed2a07aee917"><div class="ttname"><a href="namespacearmnn.html#ae838df3960d2b5d18d73ed2a07aee917">armnn::NeonL2NormalizationWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonL2NormalizationWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const L2NormalizationDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_l2_normalization_float_workload_8cpp_source.html#l00018">NeonL2NormalizationFloatWorkload.cpp:18</a></div></div>
1599<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1600</div><!-- fragment -->
1601</div>
1602</div>
1603<a id="a862535721737220f62a49f14ff494dd5"></a>
1604<h2 class="memtitle"><span class="permalink"><a href="#a862535721737220f62a49f14ff494dd5">&#9670;&nbsp;</a></span>IsLstmSupported()</h2>
1605
1606<div class="memitem">
1607<div class="memproto">
1608<table class="mlabels">
1609 <tr>
1610 <td class="mlabels-left">
1611 <table class="memname">
1612 <tr>
1613 <td class="memname">bool IsLstmSupported </td>
1614 <td>(</td>
1615 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1616 <td class="paramname"><em>input</em>, </td>
1617 </tr>
1618 <tr>
1619 <td class="paramkey"></td>
1620 <td></td>
1621 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1622 <td class="paramname"><em>outputStateIn</em>, </td>
1623 </tr>
1624 <tr>
1625 <td class="paramkey"></td>
1626 <td></td>
1627 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1628 <td class="paramname"><em>cellStateIn</em>, </td>
1629 </tr>
1630 <tr>
1631 <td class="paramkey"></td>
1632 <td></td>
1633 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1634 <td class="paramname"><em>scratchBuffer</em>, </td>
1635 </tr>
1636 <tr>
1637 <td class="paramkey"></td>
1638 <td></td>
1639 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1640 <td class="paramname"><em>outputStateOut</em>, </td>
1641 </tr>
1642 <tr>
1643 <td class="paramkey"></td>
1644 <td></td>
1645 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1646 <td class="paramname"><em>cellStateOut</em>, </td>
1647 </tr>
1648 <tr>
1649 <td class="paramkey"></td>
1650 <td></td>
1651 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1652 <td class="paramname"><em>output</em>, </td>
1653 </tr>
1654 <tr>
1655 <td class="paramkey"></td>
1656 <td></td>
1657 <td class="paramtype">const <a class="el" href="structarmnn_1_1_lstm_descriptor.html">LstmDescriptor</a> &amp;&#160;</td>
1658 <td class="paramname"><em>descriptor</em>, </td>
1659 </tr>
1660 <tr>
1661 <td class="paramkey"></td>
1662 <td></td>
1663 <td class="paramtype">const <a class="el" href="structarmnn_1_1_lstm_input_params_info.html">LstmInputParamsInfo</a> &amp;&#160;</td>
1664 <td class="paramname"><em>paramsInfo</em>, </td>
1665 </tr>
1666 <tr>
1667 <td class="paramkey"></td>
1668 <td></td>
1669 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1670 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1671 </tr>
1672 <tr>
1673 <td></td>
1674 <td>)</td>
1675 <td></td><td> const</td>
1676 </tr>
1677 </table>
1678 </td>
1679 <td class="mlabels-right">
1680<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1681 </tr>
1682</table>
1683</div><div class="memdoc">
1684
1685<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a862535721737220f62a49f14ff494dd5">LayerSupportBase</a>.</p>
1686
1687<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00445">445</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1688
1689<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_lstm_float_workload_8cpp_source.html#l00271">armnn::NeonLstmFloatWorkloadValidate()</a>.</p>
1690<div class="fragment"><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a9e06cc2a2ac8b88fc72972695a17910f">NeonLstmFloatWorkloadValidate</a>,</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; input,</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; outputStateIn,</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; cellStateIn,</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; scratchBuffer,</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; outputStateOut,</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; cellStateOut,</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; output,</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; descriptor,</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; paramsInfo);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a9e06cc2a2ac8b88fc72972695a17910f"><div class="ttname"><a href="namespacearmnn.html#a9e06cc2a2ac8b88fc72972695a17910f">armnn::NeonLstmFloatWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonLstmFloatWorkloadValidate(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)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_lstm_float_workload_8cpp_source.html#l00271">NeonLstmFloatWorkload.cpp:271</a></div></div>
1691<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1692</div><!-- fragment -->
1693</div>
1694</div>
1695<a id="afef9436c86b37b973471f2ae546ac00a"></a>
1696<h2 class="memtitle"><span class="permalink"><a href="#afef9436c86b37b973471f2ae546ac00a">&#9670;&nbsp;</a></span>IsMaximumSupported()</h2>
1697
1698<div class="memitem">
1699<div class="memproto">
1700<table class="mlabels">
1701 <tr>
1702 <td class="mlabels-left">
1703 <table class="memname">
1704 <tr>
1705 <td class="memname">bool IsMaximumSupported </td>
1706 <td>(</td>
1707 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1708 <td class="paramname"><em>input0</em>, </td>
1709 </tr>
1710 <tr>
1711 <td class="paramkey"></td>
1712 <td></td>
1713 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1714 <td class="paramname"><em>input1</em>, </td>
1715 </tr>
1716 <tr>
1717 <td class="paramkey"></td>
1718 <td></td>
1719 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1720 <td class="paramname"><em>output</em>, </td>
1721 </tr>
1722 <tr>
1723 <td class="paramkey"></td>
1724 <td></td>
1725 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1726 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1727 </tr>
1728 <tr>
1729 <td></td>
1730 <td>)</td>
1731 <td></td><td> const</td>
1732 </tr>
1733 </table>
1734 </td>
1735 <td class="mlabels-right">
1736<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1737 </tr>
1738</table>
1739</div><div class="memdoc">
1740
1741<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#afef9436c86b37b973471f2ae546ac00a">LayerSupportBase</a>.</p>
1742
1743<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00469">469</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1744
1745<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_maximum_workload_8cpp_source.html#l00013">armnn::NeonMaximumWorkloadValidate()</a>.</p>
1746<div class="fragment"><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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a8d2ea79addd8ef64be2ca0dad3408f00">NeonMaximumWorkloadValidate</a>,</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; input0,</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; input1,</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; output);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a8d2ea79addd8ef64be2ca0dad3408f00"><div class="ttname"><a href="namespacearmnn.html#a8d2ea79addd8ef64be2ca0dad3408f00">armnn::NeonMaximumWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonMaximumWorkloadValidate(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_maximum_workload_8cpp_source.html#l00013">NeonMaximumWorkload.cpp:13</a></div></div>
1747<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1748</div><!-- fragment -->
1749</div>
1750</div>
1751<a id="ab268618580d4f53bf5e9b5a47dee3f6a"></a>
1752<h2 class="memtitle"><span class="permalink"><a href="#ab268618580d4f53bf5e9b5a47dee3f6a">&#9670;&nbsp;</a></span>IsMeanSupported()</h2>
1753
1754<div class="memitem">
1755<div class="memproto">
1756<table class="mlabels">
1757 <tr>
1758 <td class="mlabels-left">
1759 <table class="memname">
1760 <tr>
1761 <td class="memname">bool IsMeanSupported </td>
1762 <td>(</td>
1763 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1764 <td class="paramname"><em>input</em>, </td>
1765 </tr>
1766 <tr>
1767 <td class="paramkey"></td>
1768 <td></td>
1769 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1770 <td class="paramname"><em>output</em>, </td>
1771 </tr>
1772 <tr>
1773 <td class="paramkey"></td>
1774 <td></td>
1775 <td class="paramtype">const <a class="el" href="structarmnn_1_1_mean_descriptor.html">MeanDescriptor</a> &amp;&#160;</td>
1776 <td class="paramname"><em>descriptor</em>, </td>
1777 </tr>
1778 <tr>
1779 <td class="paramkey"></td>
1780 <td></td>
1781 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1782 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1783 </tr>
1784 <tr>
1785 <td></td>
1786 <td>)</td>
1787 <td></td><td> const</td>
1788 </tr>
1789 </table>
1790 </td>
1791 <td class="mlabels-right">
1792<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1793 </tr>
1794</table>
1795</div><div class="memdoc">
1796
1797<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#ab268618580d4f53bf5e9b5a47dee3f6a">LayerSupportBase</a>.</p>
1798
1799<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00481">481</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1800
1801<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_mean_workload_8cpp_source.html#l00018">armnn::NeonMeanWorkloadValidate()</a>.</p>
1802<div class="fragment"><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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#ab81dd6d40850f8fea025ee7ce51f86d0">NeonMeanWorkloadValidate</a>,</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; input,</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; output,</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; descriptor);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_ab81dd6d40850f8fea025ee7ce51f86d0"><div class="ttname"><a href="namespacearmnn.html#ab81dd6d40850f8fea025ee7ce51f86d0">armnn::NeonMeanWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonMeanWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const MeanDescriptor &amp;desc)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_mean_workload_8cpp_source.html#l00018">NeonMeanWorkload.cpp:18</a></div></div>
1803<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1804</div><!-- fragment -->
1805</div>
1806</div>
1807<a id="aa9309ea64f9f7447efe3567f77417d29"></a>
1808<h2 class="memtitle"><span class="permalink"><a href="#aa9309ea64f9f7447efe3567f77417d29">&#9670;&nbsp;</a></span>IsMergerSupported()</h2>
1809
1810<div class="memitem">
1811<div class="memproto">
1812<table class="mlabels">
1813 <tr>
1814 <td class="mlabels-left">
1815 <table class="memname">
1816 <tr>
1817 <td class="memname">bool IsMergerSupported </td>
1818 <td>(</td>
1819 <td class="paramtype">const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> *&gt;&#160;</td>
1820 <td class="paramname"><em>inputs</em>, </td>
1821 </tr>
1822 <tr>
1823 <td class="paramkey"></td>
1824 <td></td>
1825 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1826 <td class="paramname"><em>output</em>, </td>
1827 </tr>
1828 <tr>
1829 <td class="paramkey"></td>
1830 <td></td>
1831 <td class="paramtype">const <a class="el" href="namespacearmnn.html#a003d213dd28b0b8c0f26fbf268ccb975">MergerDescriptor</a> &amp;&#160;</td>
1832 <td class="paramname"><em>descriptor</em>, </td>
1833 </tr>
1834 <tr>
1835 <td class="paramkey"></td>
1836 <td></td>
1837 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1838 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1839 </tr>
1840 <tr>
1841 <td></td>
1842 <td>)</td>
1843 <td></td><td> const</td>
1844 </tr>
1845 </table>
1846 </td>
1847 <td class="mlabels-right">
1848<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1849 </tr>
1850</table>
1851</div><div class="memdoc">
1852
1853<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a77ae1b686e92a561de76388ac55cab06">LayerSupportBase</a>.</p>
1854
1855<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00493">493</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1856
1857<p class="reference">References <a class="el" href="namespacearmnn.html#a757df85e956e425c1a082d35a98ca4a9">armnn::IsConcatSupported()</a>.</p>
1858<div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;{</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_neon_layer_support.html#a3dca8ffbcb5f3afa1799aa7d354a3016">IsConcatSupported</a>(inputs, output, descriptor, reasonIfUnsupported);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_neon_layer_support_html_a3dca8ffbcb5f3afa1799aa7d354a3016"><div class="ttname"><a href="classarmnn_1_1_neon_layer_support.html#a3dca8ffbcb5f3afa1799aa7d354a3016">armnn::NeonLayerSupport::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="_neon_layer_support_8cpp_source.html#l00218">NeonLayerSupport.cpp:218</a></div></div>
1859</div><!-- fragment -->
1860</div>
1861</div>
1862<a id="a3d0eafb3de560b3482f857b56b2b2116"></a>
1863<h2 class="memtitle"><span class="permalink"><a href="#a3d0eafb3de560b3482f857b56b2b2116">&#9670;&nbsp;</a></span>IsMinimumSupported()</h2>
1864
1865<div class="memitem">
1866<div class="memproto">
1867<table class="mlabels">
1868 <tr>
1869 <td class="mlabels-left">
1870 <table class="memname">
1871 <tr>
1872 <td class="memname">bool IsMinimumSupported </td>
1873 <td>(</td>
1874 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1875 <td class="paramname"><em>input0</em>, </td>
1876 </tr>
1877 <tr>
1878 <td class="paramkey"></td>
1879 <td></td>
1880 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1881 <td class="paramname"><em>input1</em>, </td>
1882 </tr>
1883 <tr>
1884 <td class="paramkey"></td>
1885 <td></td>
1886 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1887 <td class="paramname"><em>output</em>, </td>
1888 </tr>
1889 <tr>
1890 <td class="paramkey"></td>
1891 <td></td>
1892 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1893 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1894 </tr>
1895 <tr>
1896 <td></td>
1897 <td>)</td>
1898 <td></td><td> const</td>
1899 </tr>
1900 </table>
1901 </td>
1902 <td class="mlabels-right">
1903<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1904 </tr>
1905</table>
1906</div><div class="memdoc">
1907
1908<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a3d0eafb3de560b3482f857b56b2b2116">LayerSupportBase</a>.</p>
1909
1910<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00501">501</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1911
1912<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_minimum_workload_8cpp_source.html#l00013">armnn::NeonMinimumWorkloadValidate()</a>.</p>
1913<div class="fragment"><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;{</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#ab81159ebfa638af1b91fe1e8c5de1955">NeonMinimumWorkloadValidate</a>,</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; input0,</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; input1,</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; output);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_ab81159ebfa638af1b91fe1e8c5de1955"><div class="ttname"><a href="namespacearmnn.html#ab81159ebfa638af1b91fe1e8c5de1955">armnn::NeonMinimumWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonMinimumWorkloadValidate(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_minimum_workload_8cpp_source.html#l00013">NeonMinimumWorkload.cpp:13</a></div></div>
1914<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1915</div><!-- fragment -->
1916</div>
1917</div>
1918<a id="a421e1f3865d99d52613003048342c49a"></a>
1919<h2 class="memtitle"><span class="permalink"><a href="#a421e1f3865d99d52613003048342c49a">&#9670;&nbsp;</a></span>IsMultiplicationSupported()</h2>
1920
1921<div class="memitem">
1922<div class="memproto">
1923<table class="mlabels">
1924 <tr>
1925 <td class="mlabels-left">
1926 <table class="memname">
1927 <tr>
1928 <td class="memname">bool IsMultiplicationSupported </td>
1929 <td>(</td>
1930 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1931 <td class="paramname"><em>input0</em>, </td>
1932 </tr>
1933 <tr>
1934 <td class="paramkey"></td>
1935 <td></td>
1936 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1937 <td class="paramname"><em>input1</em>, </td>
1938 </tr>
1939 <tr>
1940 <td class="paramkey"></td>
1941 <td></td>
1942 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1943 <td class="paramname"><em>output</em>, </td>
1944 </tr>
1945 <tr>
1946 <td class="paramkey"></td>
1947 <td></td>
1948 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
1949 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
1950 </tr>
1951 <tr>
1952 <td></td>
1953 <td>)</td>
1954 <td></td><td> const</td>
1955 </tr>
1956 </table>
1957 </td>
1958 <td class="mlabels-right">
1959<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1960 </tr>
1961</table>
1962</div><div class="memdoc">
1963
1964<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a421e1f3865d99d52613003048342c49a">LayerSupportBase</a>.</p>
1965
1966<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00513">513</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
1967
1968<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_multiplication_workload_8cpp_source.html#l00015">armnn::NeonMultiplicationWorkloadValidate()</a>.</p>
1969<div class="fragment"><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;{</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a38bdbed2a1e28ab15cac0cc0f42c3fa6">NeonMultiplicationWorkloadValidate</a>,</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; input0,</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; input1,</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; output);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a38bdbed2a1e28ab15cac0cc0f42c3fa6"><div class="ttname"><a href="namespacearmnn.html#a38bdbed2a1e28ab15cac0cc0f42c3fa6">armnn::NeonMultiplicationWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonMultiplicationWorkloadValidate(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_multiplication_workload_8cpp_source.html#l00015">NeonMultiplicationWorkload.cpp:15</a></div></div>
1970<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
1971</div><!-- fragment -->
1972</div>
1973</div>
1974<a id="a994c2065561141bf37fcd2ff7bb4af4d"></a>
1975<h2 class="memtitle"><span class="permalink"><a href="#a994c2065561141bf37fcd2ff7bb4af4d">&#9670;&nbsp;</a></span>IsNormalizationSupported()</h2>
1976
1977<div class="memitem">
1978<div class="memproto">
1979<table class="mlabels">
1980 <tr>
1981 <td class="mlabels-left">
1982 <table class="memname">
1983 <tr>
1984 <td class="memname">bool IsNormalizationSupported </td>
1985 <td>(</td>
1986 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1987 <td class="paramname"><em>input</em>, </td>
1988 </tr>
1989 <tr>
1990 <td class="paramkey"></td>
1991 <td></td>
1992 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
1993 <td class="paramname"><em>output</em>, </td>
1994 </tr>
1995 <tr>
1996 <td class="paramkey"></td>
1997 <td></td>
1998 <td class="paramtype">const <a class="el" href="structarmnn_1_1_normalization_descriptor.html">NormalizationDescriptor</a> &amp;&#160;</td>
1999 <td class="paramname"><em>descriptor</em>, </td>
2000 </tr>
2001 <tr>
2002 <td class="paramkey"></td>
2003 <td></td>
2004 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2005 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2006 </tr>
2007 <tr>
2008 <td></td>
2009 <td>)</td>
2010 <td></td><td> const</td>
2011 </tr>
2012 </table>
2013 </td>
2014 <td class="mlabels-right">
2015<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2016 </tr>
2017</table>
2018</div><div class="memdoc">
2019
2020<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a994c2065561141bf37fcd2ff7bb4af4d">LayerSupportBase</a>.</p>
2021
2022<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00537">537</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2023
2024<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_normalization_float_workload_8cpp_source.html#l00047">armnn::NeonNormalizationWorkloadValidate()</a>.</p>
2025<div class="fragment"><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;{</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a2ec6297db90d1d4c258c13d2d72b13d9">NeonNormalizationWorkloadValidate</a>,</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; input,</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; output,</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; descriptor);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a2ec6297db90d1d4c258c13d2d72b13d9"><div class="ttname"><a href="namespacearmnn.html#a2ec6297db90d1d4c258c13d2d72b13d9">armnn::NeonNormalizationWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonNormalizationWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const NormalizationDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_normalization_float_workload_8cpp_source.html#l00047">NeonNormalizationFloatWorkload.cpp:47</a></div></div>
2026<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2027</div><!-- fragment -->
2028</div>
2029</div>
2030<a id="aef3244c0ef64c8f2f352d21ce0c06985"></a>
2031<h2 class="memtitle"><span class="permalink"><a href="#aef3244c0ef64c8f2f352d21ce0c06985">&#9670;&nbsp;</a></span>IsOutputSupported()</h2>
2032
2033<div class="memitem">
2034<div class="memproto">
2035<table class="mlabels">
2036 <tr>
2037 <td class="mlabels-left">
2038 <table class="memname">
2039 <tr>
2040 <td class="memname">bool IsOutputSupported </td>
2041 <td>(</td>
2042 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2043 <td class="paramname"><em>output</em>, </td>
2044 </tr>
2045 <tr>
2046 <td class="paramkey"></td>
2047 <td></td>
2048 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2049 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2050 </tr>
2051 <tr>
2052 <td></td>
2053 <td>)</td>
2054 <td></td><td> const</td>
2055 </tr>
2056 </table>
2057 </td>
2058 <td class="mlabels-right">
2059<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2060 </tr>
2061</table>
2062</div><div class="memdoc">
2063
2064<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#aef3244c0ef64c8f2f352d21ce0c06985">LayerSupportBase</a>.</p>
2065
2066<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00549">549</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2067<div class="fragment"><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;{</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">return</span> IsNeonBackendSupported(reasonIfUnsupported, output);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;}</div></div><!-- fragment -->
2068</div>
2069</div>
2070<a id="a0534291adf9f3436ba331552eba29a43"></a>
2071<h2 class="memtitle"><span class="permalink"><a href="#a0534291adf9f3436ba331552eba29a43">&#9670;&nbsp;</a></span>IsPadSupported()</h2>
2072
2073<div class="memitem">
2074<div class="memproto">
2075<table class="mlabels">
2076 <tr>
2077 <td class="mlabels-left">
2078 <table class="memname">
2079 <tr>
2080 <td class="memname">bool IsPadSupported </td>
2081 <td>(</td>
2082 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2083 <td class="paramname"><em>input</em>, </td>
2084 </tr>
2085 <tr>
2086 <td class="paramkey"></td>
2087 <td></td>
2088 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2089 <td class="paramname"><em>output</em>, </td>
2090 </tr>
2091 <tr>
2092 <td class="paramkey"></td>
2093 <td></td>
2094 <td class="paramtype">const <a class="el" href="structarmnn_1_1_pad_descriptor.html">PadDescriptor</a> &amp;&#160;</td>
2095 <td class="paramname"><em>descriptor</em>, </td>
2096 </tr>
2097 <tr>
2098 <td class="paramkey"></td>
2099 <td></td>
2100 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2101 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2102 </tr>
2103 <tr>
2104 <td></td>
2105 <td>)</td>
2106 <td></td><td> const</td>
2107 </tr>
2108 </table>
2109 </td>
2110 <td class="mlabels-right">
2111<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2112 </tr>
2113</table>
2114</div><div class="memdoc">
2115
2116<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a0534291adf9f3436ba331552eba29a43">LayerSupportBase</a>.</p>
2117
2118<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00555">555</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2119
2120<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_pad_workload_8cpp_source.html#l00048">armnn::NeonPadWorkloadValidate()</a>.</p>
2121<div class="fragment"><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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a39209c0c078e83227222eb885317c2c5">NeonPadWorkloadValidate</a>,</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; input,</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; output,</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; descriptor);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a39209c0c078e83227222eb885317c2c5"><div class="ttname"><a href="namespacearmnn.html#a39209c0c078e83227222eb885317c2c5">armnn::NeonPadWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonPadWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const PadDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_pad_workload_8cpp_source.html#l00048">NeonPadWorkload.cpp:48</a></div></div>
2122<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2123</div><!-- fragment -->
2124</div>
2125</div>
2126<a id="a9d553495d9a94fa55588ae159d8bda30"></a>
2127<h2 class="memtitle"><span class="permalink"><a href="#a9d553495d9a94fa55588ae159d8bda30">&#9670;&nbsp;</a></span>IsPermuteSupported()</h2>
2128
2129<div class="memitem">
2130<div class="memproto">
2131<table class="mlabels">
2132 <tr>
2133 <td class="mlabels-left">
2134 <table class="memname">
2135 <tr>
2136 <td class="memname">bool IsPermuteSupported </td>
2137 <td>(</td>
2138 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2139 <td class="paramname"><em>input</em>, </td>
2140 </tr>
2141 <tr>
2142 <td class="paramkey"></td>
2143 <td></td>
2144 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2145 <td class="paramname"><em>output</em>, </td>
2146 </tr>
2147 <tr>
2148 <td class="paramkey"></td>
2149 <td></td>
2150 <td class="paramtype">const <a class="el" href="structarmnn_1_1_permute_descriptor.html">PermuteDescriptor</a> &amp;&#160;</td>
2151 <td class="paramname"><em>descriptor</em>, </td>
2152 </tr>
2153 <tr>
2154 <td class="paramkey"></td>
2155 <td></td>
2156 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2157 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2158 </tr>
2159 <tr>
2160 <td></td>
2161 <td>)</td>
2162 <td></td><td> const</td>
2163 </tr>
2164 </table>
2165 </td>
2166 <td class="mlabels-right">
2167<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2168 </tr>
2169</table>
2170</div><div class="memdoc">
2171
2172<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a9d553495d9a94fa55588ae159d8bda30">LayerSupportBase</a>.</p>
2173
2174<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00567">567</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2175
2176<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_permute_workload_8cpp_source.html#l00015">armnn::NeonPermuteWorkloadValidate()</a>.</p>
2177<div class="fragment"><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;{</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a70650f6b1d3b8511fcdb989ca769cdbb">NeonPermuteWorkloadValidate</a>, reasonIfUnsupported, input, output, descriptor);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a70650f6b1d3b8511fcdb989ca769cdbb"><div class="ttname"><a href="namespacearmnn.html#a70650f6b1d3b8511fcdb989ca769cdbb">armnn::NeonPermuteWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonPermuteWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const PermuteDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_permute_workload_8cpp_source.html#l00015">NeonPermuteWorkload.cpp:15</a></div></div>
2178<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2179</div><!-- fragment -->
2180</div>
2181</div>
2182<a id="aa955675303d67b1d1fb51fb7f09d8c21"></a>
2183<h2 class="memtitle"><span class="permalink"><a href="#aa955675303d67b1d1fb51fb7f09d8c21">&#9670;&nbsp;</a></span>IsPooling2dSupported()</h2>
2184
2185<div class="memitem">
2186<div class="memproto">
2187<table class="mlabels">
2188 <tr>
2189 <td class="mlabels-left">
2190 <table class="memname">
2191 <tr>
2192 <td class="memname">bool IsPooling2dSupported </td>
2193 <td>(</td>
2194 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2195 <td class="paramname"><em>input</em>, </td>
2196 </tr>
2197 <tr>
2198 <td class="paramkey"></td>
2199 <td></td>
2200 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2201 <td class="paramname"><em>output</em>, </td>
2202 </tr>
2203 <tr>
2204 <td class="paramkey"></td>
2205 <td></td>
2206 <td class="paramtype">const <a class="el" href="structarmnn_1_1_pooling2d_descriptor.html">Pooling2dDescriptor</a> &amp;&#160;</td>
2207 <td class="paramname"><em>descriptor</em>, </td>
2208 </tr>
2209 <tr>
2210 <td class="paramkey"></td>
2211 <td></td>
2212 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2213 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2214 </tr>
2215 <tr>
2216 <td></td>
2217 <td>)</td>
2218 <td></td><td> const</td>
2219 </tr>
2220 </table>
2221 </td>
2222 <td class="mlabels-right">
2223<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2224 </tr>
2225</table>
2226</div><div class="memdoc">
2227
2228<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#aa955675303d67b1d1fb51fb7f09d8c21">LayerSupportBase</a>.</p>
2229
2230<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00575">575</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2231
2232<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_pooling2d_workload_8cpp_source.html#l00020">armnn::NeonPooling2dWorkloadValidate()</a>.</p>
2233<div class="fragment"><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;{</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a1f07655db8ad7f2738bb0d3d9e2316cc">NeonPooling2dWorkloadValidate</a>, reasonIfUnsupported, input, output, descriptor);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;}</div><div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2234<div class="ttc" id="namespacearmnn_html_a1f07655db8ad7f2738bb0d3d9e2316cc"><div class="ttname"><a href="namespacearmnn.html#a1f07655db8ad7f2738bb0d3d9e2316cc">armnn::NeonPooling2dWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonPooling2dWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const Pooling2dDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_pooling2d_workload_8cpp_source.html#l00020">NeonPooling2dWorkload.cpp:20</a></div></div>
2235</div><!-- fragment -->
2236</div>
2237</div>
2238<a id="a4b36dcedd5edbd5142b3548967aadc2f"></a>
2239<h2 class="memtitle"><span class="permalink"><a href="#a4b36dcedd5edbd5142b3548967aadc2f">&#9670;&nbsp;</a></span>IsPreluSupported()</h2>
2240
2241<div class="memitem">
2242<div class="memproto">
2243<table class="mlabels">
2244 <tr>
2245 <td class="mlabels-left">
2246 <table class="memname">
2247 <tr>
2248 <td class="memname">bool IsPreluSupported </td>
2249 <td>(</td>
2250 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2251 <td class="paramname"><em>input</em>, </td>
2252 </tr>
2253 <tr>
2254 <td class="paramkey"></td>
2255 <td></td>
2256 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2257 <td class="paramname"><em>alpha</em>, </td>
2258 </tr>
2259 <tr>
2260 <td class="paramkey"></td>
2261 <td></td>
2262 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2263 <td class="paramname"><em>output</em>, </td>
2264 </tr>
2265 <tr>
2266 <td class="paramkey"></td>
2267 <td></td>
2268 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2269 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2270 </tr>
2271 <tr>
2272 <td></td>
2273 <td>)</td>
2274 <td></td><td> const</td>
2275 </tr>
2276 </table>
2277 </td>
2278 <td class="mlabels-right">
2279<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2280 </tr>
2281</table>
2282</div><div class="memdoc">
2283
2284<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a93cf81b28c4275a338f41c536a451158">LayerSupportBase</a>.</p>
2285
2286<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00583">583</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2287
2288<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_prelu_workload_8cpp_source.html#l00015">armnn::NeonPreluWorkloadValidate()</a>.</p>
2289<div class="fragment"><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;{</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a188adc104b16db3dc23ed2c5ff06cbb8">NeonPreluWorkloadValidate</a>, reasonIfUnsupported, input, alpha, output);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a188adc104b16db3dc23ed2c5ff06cbb8"><div class="ttname"><a href="namespacearmnn.html#a188adc104b16db3dc23ed2c5ff06cbb8">armnn::NeonPreluWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonPreluWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;alpha, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_prelu_workload_8cpp_source.html#l00015">NeonPreluWorkload.cpp:15</a></div></div>
2290<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2291</div><!-- fragment -->
2292</div>
2293</div>
2294<a id="a281eb6ce87b6ca147e681dd3f6483a87"></a>
2295<h2 class="memtitle"><span class="permalink"><a href="#a281eb6ce87b6ca147e681dd3f6483a87">&#9670;&nbsp;</a></span>IsQuantizedLstmSupported()</h2>
2296
2297<div class="memitem">
2298<div class="memproto">
2299<table class="mlabels">
2300 <tr>
2301 <td class="mlabels-left">
2302 <table class="memname">
2303 <tr>
2304 <td class="memname">bool IsQuantizedLstmSupported </td>
2305 <td>(</td>
2306 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2307 <td class="paramname"><em>input</em>, </td>
2308 </tr>
2309 <tr>
2310 <td class="paramkey"></td>
2311 <td></td>
2312 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2313 <td class="paramname"><em>cellStateIn</em>, </td>
2314 </tr>
2315 <tr>
2316 <td class="paramkey"></td>
2317 <td></td>
2318 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2319 <td class="paramname"><em>outputStateIn</em>, </td>
2320 </tr>
2321 <tr>
2322 <td class="paramkey"></td>
2323 <td></td>
2324 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2325 <td class="paramname"><em>cellStateOut</em>, </td>
2326 </tr>
2327 <tr>
2328 <td class="paramkey"></td>
2329 <td></td>
2330 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2331 <td class="paramname"><em>outputStateOut</em>, </td>
2332 </tr>
2333 <tr>
2334 <td class="paramkey"></td>
2335 <td></td>
2336 <td class="paramtype">const <a class="el" href="structarmnn_1_1_quantized_lstm_input_params_info.html">QuantizedLstmInputParamsInfo</a> &amp;&#160;</td>
2337 <td class="paramname"><em>paramsInfo</em>, </td>
2338 </tr>
2339 <tr>
2340 <td class="paramkey"></td>
2341 <td></td>
2342 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2343 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2344 </tr>
2345 <tr>
2346 <td></td>
2347 <td>)</td>
2348 <td></td><td> const</td>
2349 </tr>
2350 </table>
2351 </td>
2352 <td class="mlabels-right">
2353<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2354 </tr>
2355</table>
2356</div><div class="memdoc">
2357
2358<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#af1be52d9f968bfab069344756bf232c4">LayerSupportBase</a>.</p>
2359
2360<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00601">601</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2361
2362<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_quantized_lstm_workload_8cpp_source.html#l00130">armnn::NeonQuantizedLstmWorkloadValidate()</a>.</p>
2363<div class="fragment"><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;{</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#ae83632e641892ad2de78f316376f6bd0">NeonQuantizedLstmWorkloadValidate</a>,</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; input,</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; cellStateIn,</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; outputStateIn,</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; cellStateOut,</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; outputStateOut,</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; paramsInfo);</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_ae83632e641892ad2de78f316376f6bd0"><div class="ttname"><a href="namespacearmnn.html#ae83632e641892ad2de78f316376f6bd0">armnn::NeonQuantizedLstmWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonQuantizedLstmWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;cellStateIn, const TensorInfo &amp;outputStateIn, const TensorInfo &amp;cellStateOut, const TensorInfo &amp;outputStateOut, const QuantizedLstmInputParamsInfo &amp;paramsInfo)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_quantized_lstm_workload_8cpp_source.html#l00130">NeonQuantizedLstmWorkload.cpp:130</a></div></div>
2364<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2365</div><!-- fragment -->
2366</div>
2367</div>
2368<a id="ad2c7be6b84b04444e514f52f593b3df7"></a>
2369<h2 class="memtitle"><span class="permalink"><a href="#ad2c7be6b84b04444e514f52f593b3df7">&#9670;&nbsp;</a></span>IsQuantizeSupported()</h2>
2370
2371<div class="memitem">
2372<div class="memproto">
2373<table class="mlabels">
2374 <tr>
2375 <td class="mlabels-left">
2376 <table class="memname">
2377 <tr>
2378 <td class="memname">bool IsQuantizeSupported </td>
2379 <td>(</td>
2380 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2381 <td class="paramname"><em>input</em>, </td>
2382 </tr>
2383 <tr>
2384 <td class="paramkey"></td>
2385 <td></td>
2386 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2387 <td class="paramname"><em>output</em>, </td>
2388 </tr>
2389 <tr>
2390 <td class="paramkey"></td>
2391 <td></td>
2392 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2393 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2394 </tr>
2395 <tr>
2396 <td></td>
2397 <td>)</td>
2398 <td></td><td> const</td>
2399 </tr>
2400 </table>
2401 </td>
2402 <td class="mlabels-right">
2403<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2404 </tr>
2405</table>
2406</div><div class="memdoc">
2407
2408<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#ad2c7be6b84b04444e514f52f593b3df7">LayerSupportBase</a>.</p>
2409
2410<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00591">591</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2411
2412<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_quantize_workload_8cpp_source.html#l00019">armnn::NeonQuantizeWorkloadValidate()</a>.</p>
2413<div class="fragment"><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;{</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a4d1e35c8bbe48e99dd522ac0f75f77d7">NeonQuantizeWorkloadValidate</a>,</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; input,</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; output);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a4d1e35c8bbe48e99dd522ac0f75f77d7"><div class="ttname"><a href="namespacearmnn.html#a4d1e35c8bbe48e99dd522ac0f75f77d7">armnn::NeonQuantizeWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonQuantizeWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_quantize_workload_8cpp_source.html#l00019">NeonQuantizeWorkload.cpp:19</a></div></div>
2414<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2415</div><!-- fragment -->
2416</div>
2417</div>
2418<a id="aa02f01bbcb48c67f5b2efc4132ec5e86"></a>
2419<h2 class="memtitle"><span class="permalink"><a href="#aa02f01bbcb48c67f5b2efc4132ec5e86">&#9670;&nbsp;</a></span>IsReshapeSupported()</h2>
2420
2421<div class="memitem">
2422<div class="memproto">
2423<table class="mlabels">
2424 <tr>
2425 <td class="mlabels-left">
2426 <table class="memname">
2427 <tr>
2428 <td class="memname">bool IsReshapeSupported </td>
2429 <td>(</td>
2430 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2431 <td class="paramname"><em>input</em>, </td>
2432 </tr>
2433 <tr>
2434 <td class="paramkey"></td>
2435 <td></td>
2436 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2437 <td class="paramname"><em>output</em>, </td>
2438 </tr>
2439 <tr>
2440 <td class="paramkey"></td>
2441 <td></td>
2442 <td class="paramtype">const <a class="el" href="structarmnn_1_1_reshape_descriptor.html">ReshapeDescriptor</a> &amp;&#160;</td>
2443 <td class="paramname"><em>descriptor</em>, </td>
2444 </tr>
2445 <tr>
2446 <td class="paramkey"></td>
2447 <td></td>
2448 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2449 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2450 </tr>
2451 <tr>
2452 <td></td>
2453 <td>)</td>
2454 <td></td><td> const</td>
2455 </tr>
2456 </table>
2457 </td>
2458 <td class="mlabels-right">
2459<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2460 </tr>
2461</table>
2462</div><div class="memdoc">
2463
2464<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#aa02f01bbcb48c67f5b2efc4132ec5e86">LayerSupportBase</a>.</p>
2465
2466<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00619">619</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2467
2468<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_reshape_workload_8cpp_source.html#l00017">armnn::NeonReshapeWorkloadValidate()</a>.</p>
2469<div class="fragment"><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; ignore_unused(descriptor);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a430021076042c8157a926a3bb3a37152">NeonReshapeWorkloadValidate</a>,</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; input,</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; output);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a430021076042c8157a926a3bb3a37152"><div class="ttname"><a href="namespacearmnn.html#a430021076042c8157a926a3bb3a37152">armnn::NeonReshapeWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonReshapeWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_reshape_workload_8cpp_source.html#l00017">NeonReshapeWorkload.cpp:17</a></div></div>
2470<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2471</div><!-- fragment -->
2472</div>
2473</div>
2474<a id="a0f29f31e1ba46a52eedcdecd34f4cc24"></a>
2475<h2 class="memtitle"><span class="permalink"><a href="#a0f29f31e1ba46a52eedcdecd34f4cc24">&#9670;&nbsp;</a></span>IsResizeBilinearSupported()</h2>
2476
2477<div class="memitem">
2478<div class="memproto">
2479<table class="mlabels">
2480 <tr>
2481 <td class="mlabels-left">
2482 <table class="memname">
2483 <tr>
2484 <td class="memname">bool IsResizeBilinearSupported </td>
2485 <td>(</td>
2486 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2487 <td class="paramname"><em>input</em>, </td>
2488 </tr>
2489 <tr>
2490 <td class="paramkey"></td>
2491 <td></td>
2492 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2493 <td class="paramname"><em>output</em>, </td>
2494 </tr>
2495 <tr>
2496 <td class="paramkey"></td>
2497 <td></td>
2498 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2499 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2500 </tr>
2501 <tr>
2502 <td></td>
2503 <td>)</td>
2504 <td></td><td> const</td>
2505 </tr>
2506 </table>
2507 </td>
2508 <td class="mlabels-right">
2509<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2510 </tr>
2511</table>
2512</div><div class="memdoc">
2513
2514<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a0f29f31e1ba46a52eedcdecd34f4cc24">LayerSupportBase</a>.</p>
2515
2516<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00643">643</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2517
2518<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_layer_support_8cpp_source.html#l00541">armnn::IsResizeSupported()</a>, <a class="el" href="_descriptors_8hpp_source.html#l00751">ResizeDescriptor::m_DataLayout</a>, <a class="el" href="_descriptors_8hpp_source.html#l00749">ResizeDescriptor::m_Method</a>, <a class="el" href="_descriptors_8hpp_source.html#l00746">ResizeDescriptor::m_TargetHeight</a>, and <a class="el" href="_descriptors_8hpp_source.html#l00744">ResizeDescriptor::m_TargetWidth</a>.</p>
2519<div class="fragment"><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; ResizeDescriptor descriptor;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; descriptor.m_Method = <a class="code" href="namespacearmnn.html#a9a2af2f8c4af4f9efa8e79417d505ac4aaf17c98bbd83c27d6426d2ff3fa81d7f">ResizeMethod::Bilinear</a>;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; descriptor.m_DataLayout = <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a>;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keyword">const</span> TensorShape&amp; outputShape = output.GetShape();</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; descriptor.m_TargetHeight = outputShape[2];</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; descriptor.m_TargetWidth = outputShape[3];</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; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_neon_layer_support.html#a3d27a3fc6a7df0b68d80cb113aff8b6c">IsResizeSupported</a>(input, output, descriptor, reasonIfUnsupported);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f"><div class="ttname"><a href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::DataLayout::NCHW</a></div></div>
2520<div class="ttc" id="classarmnn_1_1_neon_layer_support_html_a3d27a3fc6a7df0b68d80cb113aff8b6c"><div class="ttname"><a href="classarmnn_1_1_neon_layer_support.html#a3d27a3fc6a7df0b68d80cb113aff8b6c">armnn::NeonLayerSupport::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="_neon_layer_support_8cpp_source.html#l00631">NeonLayerSupport.cpp:631</a></div></div>
2521<div class="ttc" id="namespacearmnn_html_a9a2af2f8c4af4f9efa8e79417d505ac4aaf17c98bbd83c27d6426d2ff3fa81d7f"><div class="ttname"><a href="namespacearmnn.html#a9a2af2f8c4af4f9efa8e79417d505ac4aaf17c98bbd83c27d6426d2ff3fa81d7f">armnn::ResizeMethod::Bilinear</a></div></div>
2522</div><!-- fragment -->
2523</div>
2524</div>
2525<a id="a3d27a3fc6a7df0b68d80cb113aff8b6c"></a>
2526<h2 class="memtitle"><span class="permalink"><a href="#a3d27a3fc6a7df0b68d80cb113aff8b6c">&#9670;&nbsp;</a></span>IsResizeSupported()</h2>
2527
2528<div class="memitem">
2529<div class="memproto">
2530<table class="mlabels">
2531 <tr>
2532 <td class="mlabels-left">
2533 <table class="memname">
2534 <tr>
2535 <td class="memname">bool IsResizeSupported </td>
2536 <td>(</td>
2537 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2538 <td class="paramname"><em>input</em>, </td>
2539 </tr>
2540 <tr>
2541 <td class="paramkey"></td>
2542 <td></td>
2543 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2544 <td class="paramname"><em>output</em>, </td>
2545 </tr>
2546 <tr>
2547 <td class="paramkey"></td>
2548 <td></td>
2549 <td class="paramtype">const <a class="el" href="structarmnn_1_1_resize_descriptor.html">ResizeDescriptor</a> &amp;&#160;</td>
2550 <td class="paramname"><em>descriptor</em>, </td>
2551 </tr>
2552 <tr>
2553 <td class="paramkey"></td>
2554 <td></td>
2555 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2556 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2557 </tr>
2558 <tr>
2559 <td></td>
2560 <td>)</td>
2561 <td></td><td> const</td>
2562 </tr>
2563 </table>
2564 </td>
2565 <td class="mlabels-right">
2566<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2567 </tr>
2568</table>
2569</div><div class="memdoc">
2570
2571<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a3d27a3fc6a7df0b68d80cb113aff8b6c">LayerSupportBase</a>.</p>
2572
2573<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00631">631</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2574
2575<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_resize_workload_8cpp_source.html#l00020">armnn::NeonResizeWorkloadValidate()</a>.</p>
2576<div class="fragment"><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="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a552d65f4e0a6c9e7c7796e77590063e9">NeonResizeWorkloadValidate</a>,</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; input,</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; output,</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; descriptor);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a552d65f4e0a6c9e7c7796e77590063e9"><div class="ttname"><a href="namespacearmnn.html#a552d65f4e0a6c9e7c7796e77590063e9">armnn::NeonResizeWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonResizeWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const ResizeDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_resize_workload_8cpp_source.html#l00020">NeonResizeWorkload.cpp:20</a></div></div>
2577<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2578</div><!-- fragment -->
2579</div>
2580</div>
2581<a id="a10ae4d84b0d31580f6fcd5107322ebcf"></a>
2582<h2 class="memtitle"><span class="permalink"><a href="#a10ae4d84b0d31580f6fcd5107322ebcf">&#9670;&nbsp;</a></span>IsRsqrtSupported()</h2>
2583
2584<div class="memitem">
2585<div class="memproto">
2586<table class="mlabels">
2587 <tr>
2588 <td class="mlabels-left">
2589 <table class="memname">
2590 <tr>
2591 <td class="memname">bool IsRsqrtSupported </td>
2592 <td>(</td>
2593 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2594 <td class="paramname"><em>input</em>, </td>
2595 </tr>
2596 <tr>
2597 <td class="paramkey"></td>
2598 <td></td>
2599 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2600 <td class="paramname"><em>output</em>, </td>
2601 </tr>
2602 <tr>
2603 <td class="paramkey"></td>
2604 <td></td>
2605 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2606 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2607 </tr>
2608 <tr>
2609 <td></td>
2610 <td>)</td>
2611 <td></td><td> const</td>
2612 </tr>
2613 </table>
2614 </td>
2615 <td class="mlabels-right">
2616<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2617 </tr>
2618</table>
2619</div><div class="memdoc">
2620
2621<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a10ae4d84b0d31580f6fcd5107322ebcf">LayerSupportBase</a>.</p>
2622
2623<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00658">658</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2624<div class="fragment"><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;{</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; ElementwiseUnaryDescriptor descriptor(<a class="code" href="namespacearmnn.html#a1cfaa710db2a54673b21d2ea2da757c8a09bb7f6e2118c85a6a55bd4bf2beeca4">UnaryOperation::Rsqrt</a>);</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_neon_layer_support.html#a61c5b4e5dc224ef0c876e43353b34030">IsElementwiseUnarySupported</a>(input, output, descriptor, reasonIfUnsupported);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_neon_layer_support_html_a61c5b4e5dc224ef0c876e43353b34030"><div class="ttname"><a href="classarmnn_1_1_neon_layer_support.html#a61c5b4e5dc224ef0c876e43353b34030">armnn::NeonLayerSupport::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="_neon_layer_support_8cpp_source.html#l00356">NeonLayerSupport.cpp:356</a></div></div>
2625<div class="ttc" id="namespacearmnn_html_a1cfaa710db2a54673b21d2ea2da757c8a09bb7f6e2118c85a6a55bd4bf2beeca4"><div class="ttname"><a href="namespacearmnn.html#a1cfaa710db2a54673b21d2ea2da757c8a09bb7f6e2118c85a6a55bd4bf2beeca4">armnn::UnaryOperation::Rsqrt</a></div></div>
2626</div><!-- fragment -->
2627</div>
2628</div>
2629<a id="a0e14dafa85cfcd4a6b6b752284b51e63"></a>
2630<h2 class="memtitle"><span class="permalink"><a href="#a0e14dafa85cfcd4a6b6b752284b51e63">&#9670;&nbsp;</a></span>IsSliceSupported()</h2>
2631
2632<div class="memitem">
2633<div class="memproto">
2634<table class="mlabels">
2635 <tr>
2636 <td class="mlabels-left">
2637 <table class="memname">
2638 <tr>
2639 <td class="memname">bool IsSliceSupported </td>
2640 <td>(</td>
2641 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2642 <td class="paramname"><em>input</em>, </td>
2643 </tr>
2644 <tr>
2645 <td class="paramkey"></td>
2646 <td></td>
2647 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2648 <td class="paramname"><em>output</em>, </td>
2649 </tr>
2650 <tr>
2651 <td class="paramkey"></td>
2652 <td></td>
2653 <td class="paramtype">const <a class="el" href="structarmnn_1_1_slice_descriptor.html">SliceDescriptor</a> &amp;&#160;</td>
2654 <td class="paramname"><em>descriptor</em>, </td>
2655 </tr>
2656 <tr>
2657 <td class="paramkey"></td>
2658 <td></td>
2659 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2660 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2661 </tr>
2662 <tr>
2663 <td></td>
2664 <td>)</td>
2665 <td></td><td> const</td>
2666 </tr>
2667 </table>
2668 </td>
2669 <td class="mlabels-right">
2670<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2671 </tr>
2672</table>
2673</div><div class="memdoc">
2674
2675<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a0e14dafa85cfcd4a6b6b752284b51e63">LayerSupportBase</a>.</p>
2676
2677<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00666">666</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2678
2679<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_slice_workload_8cpp_source.html#l00019">armnn::NeonSliceWorkloadValidate()</a>.</p>
2680<div class="fragment"><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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a0a223c0997e3f7faa373ed55f954252b">NeonSliceWorkloadValidate</a>,</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; input,</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; output,</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; descriptor);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a0a223c0997e3f7faa373ed55f954252b"><div class="ttname"><a href="namespacearmnn.html#a0a223c0997e3f7faa373ed55f954252b">armnn::NeonSliceWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonSliceWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const SliceDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_slice_workload_8cpp_source.html#l00019">NeonSliceWorkload.cpp:19</a></div></div>
2681<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2682</div><!-- fragment -->
2683</div>
2684</div>
2685<a id="a8385cf8227907904a6a86fac318fc099"></a>
2686<h2 class="memtitle"><span class="permalink"><a href="#a8385cf8227907904a6a86fac318fc099">&#9670;&nbsp;</a></span>IsSoftmaxSupported()</h2>
2687
2688<div class="memitem">
2689<div class="memproto">
2690<table class="mlabels">
2691 <tr>
2692 <td class="mlabels-left">
2693 <table class="memname">
2694 <tr>
2695 <td class="memname">bool IsSoftmaxSupported </td>
2696 <td>(</td>
2697 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2698 <td class="paramname"><em>input</em>, </td>
2699 </tr>
2700 <tr>
2701 <td class="paramkey"></td>
2702 <td></td>
2703 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2704 <td class="paramname"><em>output</em>, </td>
2705 </tr>
2706 <tr>
2707 <td class="paramkey"></td>
2708 <td></td>
2709 <td class="paramtype">const <a class="el" href="structarmnn_1_1_softmax_descriptor.html">SoftmaxDescriptor</a> &amp;&#160;</td>
2710 <td class="paramname"><em>descriptor</em>, </td>
2711 </tr>
2712 <tr>
2713 <td class="paramkey"></td>
2714 <td></td>
2715 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2716 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2717 </tr>
2718 <tr>
2719 <td></td>
2720 <td>)</td>
2721 <td></td><td> const</td>
2722 </tr>
2723 </table>
2724 </td>
2725 <td class="mlabels-right">
2726<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2727 </tr>
2728</table>
2729</div><div class="memdoc">
2730
2731<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a8385cf8227907904a6a86fac318fc099">LayerSupportBase</a>.</p>
2732
2733<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00678">678</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2734
2735<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_softmax_base_workload_8cpp_source.html#l00016">armnn::NeonSoftmaxWorkloadValidate()</a>.</p>
2736<div class="fragment"><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;{</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a4077a9771ba9c551f4ce61863f65e798">NeonSoftmaxWorkloadValidate</a>, reasonIfUnsupported, input, output, descriptor);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a4077a9771ba9c551f4ce61863f65e798"><div class="ttname"><a href="namespacearmnn.html#a4077a9771ba9c551f4ce61863f65e798">armnn::NeonSoftmaxWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonSoftmaxWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const SoftmaxDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_softmax_base_workload_8cpp_source.html#l00016">NeonSoftmaxBaseWorkload.cpp:16</a></div></div>
2737<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2738</div><!-- fragment -->
2739</div>
2740</div>
2741<a id="a3adfc31e079a970e028e537ec05fabf5"></a>
2742<h2 class="memtitle"><span class="permalink"><a href="#a3adfc31e079a970e028e537ec05fabf5">&#9670;&nbsp;</a></span>IsSpaceToBatchNdSupported()</h2>
2743
2744<div class="memitem">
2745<div class="memproto">
2746<table class="mlabels">
2747 <tr>
2748 <td class="mlabels-left">
2749 <table class="memname">
2750 <tr>
2751 <td class="memname">bool IsSpaceToBatchNdSupported </td>
2752 <td>(</td>
2753 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2754 <td class="paramname"><em>input</em>, </td>
2755 </tr>
2756 <tr>
2757 <td class="paramkey"></td>
2758 <td></td>
2759 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2760 <td class="paramname"><em>output</em>, </td>
2761 </tr>
2762 <tr>
2763 <td class="paramkey"></td>
2764 <td></td>
2765 <td class="paramtype">const <a class="el" href="structarmnn_1_1_space_to_batch_nd_descriptor.html">SpaceToBatchNdDescriptor</a> &amp;&#160;</td>
2766 <td class="paramname"><em>descriptor</em>, </td>
2767 </tr>
2768 <tr>
2769 <td class="paramkey"></td>
2770 <td></td>
2771 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2772 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2773 </tr>
2774 <tr>
2775 <td></td>
2776 <td>)</td>
2777 <td></td><td> const</td>
2778 </tr>
2779 </table>
2780 </td>
2781 <td class="mlabels-right">
2782<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2783 </tr>
2784</table>
2785</div><div class="memdoc">
2786
2787<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a3adfc31e079a970e028e537ec05fabf5">LayerSupportBase</a>.</p>
2788
2789<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00686">686</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2790
2791<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_space_to_batch_nd_workload_8cpp_source.html#l00016">armnn::NeonSpaceToBatchNdWorkloadValidate()</a>.</p>
2792<div class="fragment"><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;{</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#ab29257da888af2c4971db1344d8a526c">NeonSpaceToBatchNdWorkloadValidate</a>,</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; input,</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; output,</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; descriptor);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;}</div><div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2793<div class="ttc" id="namespacearmnn_html_ab29257da888af2c4971db1344d8a526c"><div class="ttname"><a href="namespacearmnn.html#ab29257da888af2c4971db1344d8a526c">armnn::NeonSpaceToBatchNdWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonSpaceToBatchNdWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const SpaceToBatchNdDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_space_to_batch_nd_workload_8cpp_source.html#l00016">NeonSpaceToBatchNdWorkload.cpp:16</a></div></div>
2794</div><!-- fragment -->
2795</div>
2796</div>
2797<a id="ab2af1e7da9490d29e569d271e16b0d5c"></a>
2798<h2 class="memtitle"><span class="permalink"><a href="#ab2af1e7da9490d29e569d271e16b0d5c">&#9670;&nbsp;</a></span>IsSpaceToDepthSupported()</h2>
2799
2800<div class="memitem">
2801<div class="memproto">
2802<table class="mlabels">
2803 <tr>
2804 <td class="mlabels-left">
2805 <table class="memname">
2806 <tr>
2807 <td class="memname">bool IsSpaceToDepthSupported </td>
2808 <td>(</td>
2809 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2810 <td class="paramname"><em>input</em>, </td>
2811 </tr>
2812 <tr>
2813 <td class="paramkey"></td>
2814 <td></td>
2815 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2816 <td class="paramname"><em>output</em>, </td>
2817 </tr>
2818 <tr>
2819 <td class="paramkey"></td>
2820 <td></td>
2821 <td class="paramtype">const <a class="el" href="structarmnn_1_1_space_to_depth_descriptor.html">SpaceToDepthDescriptor</a> &amp;&#160;</td>
2822 <td class="paramname"><em>descriptor</em>, </td>
2823 </tr>
2824 <tr>
2825 <td class="paramkey"></td>
2826 <td></td>
2827 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2828 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2829 </tr>
2830 <tr>
2831 <td></td>
2832 <td>)</td>
2833 <td></td><td> const</td>
2834 </tr>
2835 </table>
2836 </td>
2837 <td class="mlabels-right">
2838<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2839 </tr>
2840</table>
2841</div><div class="memdoc">
2842
2843<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#ab2af1e7da9490d29e569d271e16b0d5c">LayerSupportBase</a>.</p>
2844
2845<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00698">698</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2846
2847<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_space_to_depth_workload_8cpp_source.html#l00015">armnn::NeonSpaceToDepthWorkloadValidate()</a>.</p>
2848<div class="fragment"><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;{</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#af6d2d40482240def4614deb694933d1e">NeonSpaceToDepthWorkloadValidate</a>,</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; input,</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; output,</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; descriptor);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_af6d2d40482240def4614deb694933d1e"><div class="ttname"><a href="namespacearmnn.html#af6d2d40482240def4614deb694933d1e">armnn::NeonSpaceToDepthWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonSpaceToDepthWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const SpaceToDepthDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_space_to_depth_workload_8cpp_source.html#l00015">NeonSpaceToDepthWorkload.cpp:15</a></div></div>
2849<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2850</div><!-- fragment -->
2851</div>
2852</div>
2853<a id="a17dd12822d49a23d24198f425a6fb9c4"></a>
2854<h2 class="memtitle"><span class="permalink"><a href="#a17dd12822d49a23d24198f425a6fb9c4">&#9670;&nbsp;</a></span>IsSplitterSupported() <span class="overload">[1/2]</span></h2>
2855
2856<div class="memitem">
2857<div class="memproto">
2858<table class="mlabels">
2859 <tr>
2860 <td class="mlabels-left">
2861 <table class="memname">
2862 <tr>
2863 <td class="memname">bool IsSplitterSupported </td>
2864 <td>(</td>
2865 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2866 <td class="paramname"><em>input</em>, </td>
2867 </tr>
2868 <tr>
2869 <td class="paramkey"></td>
2870 <td></td>
2871 <td class="paramtype">const <a class="el" href="structarmnn_1_1_views_descriptor.html">ViewsDescriptor</a> &amp;&#160;</td>
2872 <td class="paramname"><em>descriptor</em>, </td>
2873 </tr>
2874 <tr>
2875 <td class="paramkey"></td>
2876 <td></td>
2877 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2878 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2879 </tr>
2880 <tr>
2881 <td></td>
2882 <td>)</td>
2883 <td></td><td> const</td>
2884 </tr>
2885 </table>
2886 </td>
2887 <td class="mlabels-right">
2888<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2889 </tr>
2890</table>
2891</div><div class="memdoc">
2892
2893<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a17dd12822d49a23d24198f425a6fb9c4">LayerSupportBase</a>.</p>
2894
2895<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00710">710</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2896
2897<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00095">TensorInfo::GetDataType()</a>.</p>
2898<div class="fragment"><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;{</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; ignore_unused(descriptor);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">return</span> IsSupportedForDataTypeNeon(reasonIfUnsupported,</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; input.GetDataType(),</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; &amp;TrueFunc&lt;&gt;,</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; &amp;TrueFunc&lt;&gt;);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;}</div></div><!-- fragment -->
2899</div>
2900</div>
2901<a id="aa746e752ce8874669ea549f8e50896da"></a>
2902<h2 class="memtitle"><span class="permalink"><a href="#aa746e752ce8874669ea549f8e50896da">&#9670;&nbsp;</a></span>IsSplitterSupported() <span class="overload">[2/2]</span></h2>
2903
2904<div class="memitem">
2905<div class="memproto">
2906<table class="mlabels">
2907 <tr>
2908 <td class="mlabels-left">
2909 <table class="memname">
2910 <tr>
2911 <td class="memname">bool IsSplitterSupported </td>
2912 <td>(</td>
2913 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2914 <td class="paramname"><em>input</em>, </td>
2915 </tr>
2916 <tr>
2917 <td class="paramkey"></td>
2918 <td></td>
2919 <td class="paramtype">const std::vector&lt; std::reference_wrapper&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt;&gt; &amp;&#160;</td>
2920 <td class="paramname"><em>outputs</em>, </td>
2921 </tr>
2922 <tr>
2923 <td class="paramkey"></td>
2924 <td></td>
2925 <td class="paramtype">const <a class="el" href="structarmnn_1_1_views_descriptor.html">ViewsDescriptor</a> &amp;&#160;</td>
2926 <td class="paramname"><em>descriptor</em>, </td>
2927 </tr>
2928 <tr>
2929 <td class="paramkey"></td>
2930 <td></td>
2931 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2932 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2933 </tr>
2934 <tr>
2935 <td></td>
2936 <td>)</td>
2937 <td></td><td> const</td>
2938 </tr>
2939 </table>
2940 </td>
2941 <td class="mlabels-right">
2942<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2943 </tr>
2944</table>
2945</div><div class="memdoc">
2946
2947<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#aa746e752ce8874669ea549f8e50896da">LayerSupportBase</a>.</p>
2948
2949<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00721">721</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
2950
2951<p class="reference">References <a class="el" href="_arm_compute_utils_8hpp_source.html#l00154">armnn::ComputeSplitAxis()</a>, <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, <a class="el" href="_descriptors_8cpp_source.html#l00292">ViewsDescriptor::GetNumDimensions()</a>, <a class="el" href="_tensor_8hpp_source.html#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_tensor_8cpp_source.html#l00218">TensorInfo::IsTypeSpaceMatch()</a>, <a class="el" href="_neon_splitter_workload_8cpp_source.html#l00031">armnn::NeonSplitterWorkloadValidate()</a>, and <a class="el" href="_layer_support_common_8hpp_source.html#l00018">armnn::SetValueChecked()</a>.</p>
2952<div class="fragment"><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;{</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor">#if defined(ARMCOMPUTENEON_ENABLED)</span></div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="comment">// Split along the last dimension, cannot use sub-tensors</span></div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="comment">// as width and height of the sub-tensors do not match</span></div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="comment">// the width and height of the parent tensor</span></div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="comment">// in case of input with more than 2D.</span></div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; std::set&lt;unsigned int&gt; splitAxis = <a class="code" href="namespacearmnn.html#a8cbabc875597b3bed0ccdc0adb289fde">ComputeSplitAxis</a>(descriptor, input.GetShape());</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">if</span> (descriptor.GetNumDimensions() &gt; 2 &amp;&amp; splitAxis.size() == 1 &amp;&amp;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; *splitAxis.begin() == descriptor.GetNumDimensions() - 1 )</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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#aab5ea316b3decb05430323d847e3a773">NeonSplitterWorkloadValidate</a>,</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; input,</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; outputs,</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; *splitAxis.begin());</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="preprocessor">#endif</span></div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; boost::ignore_unused(descriptor);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> output : outputs)</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">if</span> (!input.IsTypeSpaceMatch(output)) <span class="comment">// Cannot use sub-tensors if the types are not same space</span></div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <a class="code" href="namespacearmnn.html#a13c7d751e4d37f65a6d40c3c6e50d2b8">SetValueChecked</a>(reasonIfUnsupported, <span class="stringliteral">&quot;Neon Splitter: Types and quantization parameters must match.&quot;</span>);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; }</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; }</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a8cbabc875597b3bed0ccdc0adb289fde"><div class="ttname"><a href="namespacearmnn.html#a8cbabc875597b3bed0ccdc0adb289fde">armnn::ComputeSplitAxis</a></div><div class="ttdeci">std::set&lt; unsigned int &gt; ComputeSplitAxis(const armnn::SplitterDescriptor &amp;desc, const TensorShape &amp;input)</div><div class="ttdef"><b>Definition:</b> <a href="_arm_compute_utils_8hpp_source.html#l00154">ArmComputeUtils.hpp:154</a></div></div>
2953<div class="ttc" id="namespacearmnn_html_a13c7d751e4d37f65a6d40c3c6e50d2b8"><div class="ttname"><a href="namespacearmnn.html#a13c7d751e4d37f65a6d40c3c6e50d2b8">armnn::SetValueChecked</a></div><div class="ttdeci">void SetValueChecked(Optional&lt; T &amp;&gt; optionalRef, V &amp;&amp;val)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_support_common_8hpp_source.html#l00018">LayerSupportCommon.hpp:18</a></div></div>
2954<div class="ttc" id="namespacearmnn_html_aab5ea316b3decb05430323d847e3a773"><div class="ttname"><a href="namespacearmnn.html#aab5ea316b3decb05430323d847e3a773">armnn::NeonSplitterWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonSplitterWorkloadValidate(const TensorInfo &amp;input, const std::vector&lt; std::reference_wrapper&lt; TensorInfo &gt;&gt; &amp;outputs, unsigned int splitAxis)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_splitter_workload_8cpp_source.html#l00031">NeonSplitterWorkload.cpp:31</a></div></div>
2955<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
2956</div><!-- fragment -->
2957</div>
2958</div>
2959<a id="ab4609f1baf5fcd295951f3c8abdffd90"></a>
2960<h2 class="memtitle"><span class="permalink"><a href="#ab4609f1baf5fcd295951f3c8abdffd90">&#9670;&nbsp;</a></span>IsStackSupported()</h2>
2961
2962<div class="memitem">
2963<div class="memproto">
2964<table class="mlabels">
2965 <tr>
2966 <td class="mlabels-left">
2967 <table class="memname">
2968 <tr>
2969 <td class="memname">bool IsStackSupported </td>
2970 <td>(</td>
2971 <td class="paramtype">const std::vector&lt; const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> *&gt; &amp;&#160;</td>
2972 <td class="paramname"><em>inputs</em>, </td>
2973 </tr>
2974 <tr>
2975 <td class="paramkey"></td>
2976 <td></td>
2977 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
2978 <td class="paramname"><em>output</em>, </td>
2979 </tr>
2980 <tr>
2981 <td class="paramkey"></td>
2982 <td></td>
2983 <td class="paramtype">const <a class="el" href="structarmnn_1_1_stack_descriptor.html">StackDescriptor</a> &amp;&#160;</td>
2984 <td class="paramname"><em>descriptor</em>, </td>
2985 </tr>
2986 <tr>
2987 <td class="paramkey"></td>
2988 <td></td>
2989 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
2990 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
2991 </tr>
2992 <tr>
2993 <td></td>
2994 <td>)</td>
2995 <td></td><td> const</td>
2996 </tr>
2997 </table>
2998 </td>
2999 <td class="mlabels-right">
3000<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
3001 </tr>
3002</table>
3003</div><div class="memdoc">
3004
3005<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#ab4609f1baf5fcd295951f3c8abdffd90">LayerSupportBase</a>.</p>
3006
3007<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00754">754</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
3008
3009<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_stack_workload_8cpp_source.html#l00028">armnn::NeonStackWorkloadValidate()</a>.</p>
3010<div class="fragment"><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;{</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a65c83c74bdbd66cdd547d331998952eb">NeonStackWorkloadValidate</a>,</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; inputs,</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; output,</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; descriptor);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a65c83c74bdbd66cdd547d331998952eb"><div class="ttname"><a href="namespacearmnn.html#a65c83c74bdbd66cdd547d331998952eb">armnn::NeonStackWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonStackWorkloadValidate(const std::vector&lt; const TensorInfo *&gt; &amp;inputs, const TensorInfo &amp;output, const StackDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_stack_workload_8cpp_source.html#l00028">NeonStackWorkload.cpp:28</a></div></div>
3011<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
3012</div><!-- fragment -->
3013</div>
3014</div>
3015<a id="ac054cb25099005eac854afb1511340f0"></a>
3016<h2 class="memtitle"><span class="permalink"><a href="#ac054cb25099005eac854afb1511340f0">&#9670;&nbsp;</a></span>IsStridedSliceSupported()</h2>
3017
3018<div class="memitem">
3019<div class="memproto">
3020<table class="mlabels">
3021 <tr>
3022 <td class="mlabels-left">
3023 <table class="memname">
3024 <tr>
3025 <td class="memname">bool IsStridedSliceSupported </td>
3026 <td>(</td>
3027 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
3028 <td class="paramname"><em>input</em>, </td>
3029 </tr>
3030 <tr>
3031 <td class="paramkey"></td>
3032 <td></td>
3033 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
3034 <td class="paramname"><em>output</em>, </td>
3035 </tr>
3036 <tr>
3037 <td class="paramkey"></td>
3038 <td></td>
3039 <td class="paramtype">const <a class="el" href="structarmnn_1_1_strided_slice_descriptor.html">StridedSliceDescriptor</a> &amp;&#160;</td>
3040 <td class="paramname"><em>descriptor</em>, </td>
3041 </tr>
3042 <tr>
3043 <td class="paramkey"></td>
3044 <td></td>
3045 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
3046 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
3047 </tr>
3048 <tr>
3049 <td></td>
3050 <td>)</td>
3051 <td></td><td> const</td>
3052 </tr>
3053 </table>
3054 </td>
3055 <td class="mlabels-right">
3056<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
3057 </tr>
3058</table>
3059</div><div class="memdoc">
3060
3061<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#ac054cb25099005eac854afb1511340f0">LayerSupportBase</a>.</p>
3062
3063<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00766">766</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
3064
3065<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_strided_slice_workload_8cpp_source.html#l00017">armnn::NeonStridedSliceWorkloadValidate()</a>.</p>
3066<div class="fragment"><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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#ac71d08bf1257807c112b4d019802acc3">NeonStridedSliceWorkloadValidate</a>,</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; input,</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; output,</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; descriptor);</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;}</div><div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
3067<div class="ttc" id="namespacearmnn_html_ac71d08bf1257807c112b4d019802acc3"><div class="ttname"><a href="namespacearmnn.html#ac71d08bf1257807c112b4d019802acc3">armnn::NeonStridedSliceWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonStridedSliceWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const StridedSliceDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_strided_slice_workload_8cpp_source.html#l00017">NeonStridedSliceWorkload.cpp:17</a></div></div>
3068</div><!-- fragment -->
3069</div>
3070</div>
3071<a id="af6c947e4d4b25bc49d92d18d4ff26736"></a>
3072<h2 class="memtitle"><span class="permalink"><a href="#af6c947e4d4b25bc49d92d18d4ff26736">&#9670;&nbsp;</a></span>IsSubtractionSupported()</h2>
3073
3074<div class="memitem">
3075<div class="memproto">
3076<table class="mlabels">
3077 <tr>
3078 <td class="mlabels-left">
3079 <table class="memname">
3080 <tr>
3081 <td class="memname">bool IsSubtractionSupported </td>
3082 <td>(</td>
3083 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
3084 <td class="paramname"><em>input0</em>, </td>
3085 </tr>
3086 <tr>
3087 <td class="paramkey"></td>
3088 <td></td>
3089 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
3090 <td class="paramname"><em>input1</em>, </td>
3091 </tr>
3092 <tr>
3093 <td class="paramkey"></td>
3094 <td></td>
3095 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
3096 <td class="paramname"><em>output</em>, </td>
3097 </tr>
3098 <tr>
3099 <td class="paramkey"></td>
3100 <td></td>
3101 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
3102 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
3103 </tr>
3104 <tr>
3105 <td></td>
3106 <td>)</td>
3107 <td></td><td> const</td>
3108 </tr>
3109 </table>
3110 </td>
3111 <td class="mlabels-right">
3112<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
3113 </tr>
3114</table>
3115</div><div class="memdoc">
3116
3117<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#af6c947e4d4b25bc49d92d18d4ff26736">LayerSupportBase</a>.</p>
3118
3119<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00778">778</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
3120
3121<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_subtraction_workload_8cpp_source.html#l00017">armnn::NeonSubtractionWorkloadValidate()</a>.</p>
3122<div class="fragment"><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; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#a73c15f02c46f64c1adf0fafb4c7c2cac">NeonSubtractionWorkloadValidate</a>,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; input0,</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; input1,</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; output);</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a73c15f02c46f64c1adf0fafb4c7c2cac"><div class="ttname"><a href="namespacearmnn.html#a73c15f02c46f64c1adf0fafb4c7c2cac">armnn::NeonSubtractionWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonSubtractionWorkloadValidate(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_subtraction_workload_8cpp_source.html#l00017">NeonSubtractionWorkload.cpp:17</a></div></div>
3123<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
3124</div><!-- fragment -->
3125</div>
3126</div>
3127<a id="a0c69484f19ed650ad48b716719114e51"></a>
3128<h2 class="memtitle"><span class="permalink"><a href="#a0c69484f19ed650ad48b716719114e51">&#9670;&nbsp;</a></span>IsTransposeConvolution2dSupported()</h2>
3129
3130<div class="memitem">
3131<div class="memproto">
3132<table class="mlabels">
3133 <tr>
3134 <td class="mlabels-left">
3135 <table class="memname">
3136 <tr>
3137 <td class="memname">bool IsTransposeConvolution2dSupported </td>
3138 <td>(</td>
3139 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
3140 <td class="paramname"><em>input</em>, </td>
3141 </tr>
3142 <tr>
3143 <td class="paramkey"></td>
3144 <td></td>
3145 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
3146 <td class="paramname"><em>output</em>, </td>
3147 </tr>
3148 <tr>
3149 <td class="paramkey"></td>
3150 <td></td>
3151 <td class="paramtype">const <a class="el" href="structarmnn_1_1_transpose_convolution2d_descriptor.html">TransposeConvolution2dDescriptor</a> &amp;&#160;</td>
3152 <td class="paramname"><em>descriptor</em>, </td>
3153 </tr>
3154 <tr>
3155 <td class="paramkey"></td>
3156 <td></td>
3157 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;&#160;</td>
3158 <td class="paramname"><em>weights</em>, </td>
3159 </tr>
3160 <tr>
3161 <td class="paramkey"></td>
3162 <td></td>
3163 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &gt; &amp;&#160;</td>
3164 <td class="paramname"><em>biases</em>, </td>
3165 </tr>
3166 <tr>
3167 <td class="paramkey"></td>
3168 <td></td>
3169 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; std::string &amp;&gt;&#160;</td>
3170 <td class="paramname"><em>reasonIfUnsupported</em> = <code><a class="el" href="structarmnn_1_1_empty_optional.html">EmptyOptional</a>()</code>&#160;</td>
3171 </tr>
3172 <tr>
3173 <td></td>
3174 <td>)</td>
3175 <td></td><td> const</td>
3176 </tr>
3177 </table>
3178 </td>
3179 <td class="mlabels-right">
3180<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
3181 </tr>
3182</table>
3183</div><div class="memdoc">
3184
3185<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer_support_base.html#a0c69484f19ed650ad48b716719114e51">LayerSupportBase</a>.</p>
3186
3187<p class="definition">Definition at line <a class="el" href="_neon_layer_support_8cpp_source.html#l00790">790</a> of file <a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a>.</p>
3188
3189<p class="reference">References <a class="el" href="_neon_layer_support_8cpp_source.html#l00115">FORWARD_WORKLOAD_VALIDATE_FUNC</a>, and <a class="el" href="_neon_transpose_convolution2d_workload_8cpp_source.html#l00026">armnn::NeonTransposeConvolution2dWorkloadValidate()</a>.</p>
3190<div class="fragment"><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;{</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <a class="code" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a>(<a class="code" href="namespacearmnn.html#abc73c3c9a09f91c22c64d7c166e9be4d">NeonTransposeConvolution2dWorkloadValidate</a>,</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; reasonIfUnsupported,</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; input,</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; output,</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; descriptor,</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; weights,</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; biases);</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_abc73c3c9a09f91c22c64d7c166e9be4d"><div class="ttname"><a href="namespacearmnn.html#abc73c3c9a09f91c22c64d7c166e9be4d">armnn::NeonTransposeConvolution2dWorkloadValidate</a></div><div class="ttdeci">arm_compute::Status NeonTransposeConvolution2dWorkloadValidate(const TensorInfo &amp;input, const TensorInfo &amp;output, const TransposeConvolution2dDescriptor &amp;descriptor, const TensorInfo &amp;weights, const Optional&lt; TensorInfo &gt; &amp;biases)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_transpose_convolution2d_workload_8cpp_source.html#l00026">NeonTransposeConvolution2dWorkload.cpp:26</a></div></div>
3191<div class="ttc" id="_neon_layer_support_8cpp_html_af0383f6bb43d6d5df6f3265367b6ebf9"><div class="ttname"><a href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">FORWARD_WORKLOAD_VALIDATE_FUNC</a></div><div class="ttdeci">#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)</div><div class="ttdef"><b>Definition:</b> <a href="_neon_layer_support_8cpp_source.html#l00115">NeonLayerSupport.cpp:115</a></div></div>
3192</div><!-- fragment -->
3193</div>
3194</div>
3195<hr/>The documentation for this class was generated from the following files:<ul>
3196<li>src/backends/neon/<a class="el" href="_neon_layer_support_8hpp_source.html">NeonLayerSupport.hpp</a></li>
3197<li>src/backends/neon/<a class="el" href="_neon_layer_support_8cpp_source.html">NeonLayerSupport.cpp</a></li>
3198</ul>
3199</div><!-- contents -->
3200</div><!-- doc-content -->
3201<!-- start footer part -->
3202<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
3203 <ul>
3204 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_neon_layer_support.html">NeonLayerSupport</a></li>
3205 <li class="footer">Generated on Fri Mar 13 2020 16:07:04 for ArmNN by
3206 <a href="http://www.doxygen.org/index.html">
3207 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
3208 </ul>
3209</div>
3210</body>
3211</html>