<!-- HTML header for doxygen 1.8.17-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arm NN: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
  <td id="projectalign" style="padding-left: 0.9em;">
   <div id="projectname">
   &#160;<span id="projectnumber">24.02</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classsdb_1_1_sample_dynamic_layer_support.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">SampleDynamicLayerSupport Member List</div>  </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html">SampleDynamicLayerSupport</a>, including all inherited members.</p>
<table class="directory">
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_1_1_i_layer_support.html#aab2a487bc88047443d8a0f87c3c40b8d">ILayerSupport</a>()</td><td class="entry"><a class="el" href="classarmnn_1_1_i_layer_support.html">ILayerSupport</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
  <tr><td class="entry"><a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html#ae7208c2214c6fe9d2257d465ac68343f">IsAdditionSupported</a>(const armnn::TensorInfo &amp;input0, const armnn::TensorInfo &amp;input1, const armnn::TensorInfo &amp;output, armnn::Optional&lt; std::string &amp; &gt; reasonIfUnsupported=armnn::EmptyOptional()) const</td><td class="entry"><a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html">SampleDynamicLayerSupport</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html#accd2fb6b7713141313cfc310ea460a28">IsDetectionPostProcessSupported</a>(const TensorInfo &amp;boxEncodings, const TensorInfo &amp;scores, const TensorInfo &amp;anchors, const TensorInfo &amp;detectionBoxes, const TensorInfo &amp;detectionClasses, const TensorInfo &amp;detectionScores, const TensorInfo &amp;numDetections, const DetectionPostProcessDescriptor &amp;descriptor, Optional&lt; std::string &amp; &gt; reasonIfUnsupported=EmptyOptional()) const</td><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html">LayerSupportBase</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html#a93adf320caf99d7b70e6db81469eb870">IsInputSupported</a>(const armnn::TensorInfo &amp;input, armnn::Optional&lt; std::string &amp; &gt; reasonIfUnsupported) const</td><td class="entry"><a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html">SampleDynamicLayerSupport</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html#a4a60a937f9f39bc8916af863a305fea2">IsLayerSupported</a>(const armnn::LayerType &amp;type, const std::vector&lt; armnn::TensorInfo &gt; &amp;infos, const armnn::BaseDescriptor &amp;descriptor, const armnn::Optional&lt; armnn::LstmInputParamsInfo &gt; &amp;lstmParamsInfo, const armnn::Optional&lt; armnn::QuantizedLstmInputParamsInfo &gt; &amp;quantizedLstmParamsInfo, armnn::Optional&lt; std::string &amp; &gt; reasonIfUnsupported=armnn::EmptyOptional()) const</td><td class="entry"><a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html">SampleDynamicLayerSupport</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html#a76fea9e8e52d879f59b268b060635145">IsMemCopySupported</a>(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp; &gt; reasonIfUnsupported=EmptyOptional()) const</td><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html">LayerSupportBase</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html#a081cfb99e9e5b240f8b151f0a7090431">IsMemImportSupported</a>(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp; &gt; reasonIfUnsupported=EmptyOptional()) const</td><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html">LayerSupportBase</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html#a21fd6e1714d62eb57f7e31e3ccaaa152">IsMergeSupported</a>(const TensorInfo &amp;input0, const TensorInfo &amp;input1, const TensorInfo &amp;output, Optional&lt; std::string &amp; &gt; reasonIfUnsupported=EmptyOptional()) const</td><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html">LayerSupportBase</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html#aea7ab7da6d24acf40cfdcb831fca0897">IsOutputSupported</a>(const armnn::TensorInfo &amp;output, armnn::Optional&lt; std::string &amp; &gt; reasonIfUnsupported) const</td><td class="entry"><a class="el" href="classsdb_1_1_sample_dynamic_layer_support.html">SampleDynamicLayerSupport</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html#aad6eabce66fdae7c3389450e9dc75df9">IsQuantizedLstmSupported</a>(const TensorInfo &amp;input, const TensorInfo &amp;previousCellStateIn, const TensorInfo &amp;previousOutputIn, const TensorInfo &amp;cellStateOut, const TensorInfo &amp;output, const QuantizedLstmInputParamsInfo &amp;paramsInfo, Optional&lt; std::string &amp; &gt; reasonIfUnsupported=EmptyOptional()) const</td><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html">LayerSupportBase</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html#a4b423d2cd51bbfb363141d823cecf943">IsShapeSupported</a>(const TensorInfo &amp;input, const TensorInfo &amp;output, Optional&lt; std::string &amp; &gt; reasonIfUnsupported=EmptyOptional()) const</td><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html">LayerSupportBase</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html#ad00d990a0de5580f3171e63f0d8dd8d5">IsStandInSupported</a>(const std::vector&lt; const TensorInfo * &gt; &amp;inputs, const std::vector&lt; const TensorInfo * &gt; &amp;outputs, const StandInDescriptor &amp;descriptor, Optional&lt; std::string &amp; &gt; reasonIfUnsupported=EmptyOptional()) const</td><td class="entry"><a class="el" href="classarmnn_1_1_layer_support_base.html">LayerSupportBase</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_1_1_i_layer_support.html#a9e7f4f28576904804cd759e49173beeb">~ILayerSupport</a>()</td><td class="entry"><a class="el" href="classarmnn_1_1_i_layer_support.html">ILayerSupport</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Wed Feb 14 2024 16:36:26 for Arm NN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
