<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: Namespace Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">20.02</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('namespacemembers_func_s.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

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

<div class="contents">
&#160;

<h3><a id="index_s"></a>- s -</h3><ul>
<li>SampleDynamicBackendId()
: <a class="el" href="namespacearmnn.xhtml#a40c8a268a9dc9dc910e348534d479f7a">armnn</a>
</li>
<li>SelectiveDequantize()
: <a class="el" href="namespacearmnn_utils.xhtml#a5135dc1ce7a8aeb97623c1a92c5a3543">armnnUtils</a>
</li>
<li>SelectiveQuantize()
: <a class="el" href="namespacearmnn_utils.xhtml#a21b249bca87a5ad47359abd9ec7acada">armnnUtils</a>
</li>
<li>SelectTensorHandleStrategy()
: <a class="el" href="namespacearmnn.xhtml#a5d3468fb5880eb444cd25b55a86220ff">armnn</a>
</li>
<li>SetAllLoggingSinks()
: <a class="el" href="namespacearmnn.xhtml#a7f8325a4bc02f2f687ba1968b595ec0a">armnn</a>
</li>
<li>SetClSliceData()
: <a class="el" href="namespacearmnn.xhtml#a460e01ad4cd0bfa6bde4eccaf0e77220">armnn</a>
</li>
<li>SetClStridedSliceData()
: <a class="el" href="namespacearmnn.xhtml#a6d4bdf4368a1422943f8f2b1740ec491">armnn</a>
</li>
<li>SetLogFilter()
: <a class="el" href="namespacearmnn.xhtml#ac9aad76a34137b6359a867b282ea7cfb">armnn</a>
</li>
<li>SetLoggingSinks()
: <a class="el" href="namespacearmnn.xhtml#a5f523aee1752323aeaf899085649320b">armnn</a>
</li>
<li>SetNeonSliceData()
: <a class="el" href="namespacearmnn.xhtml#ab40e30cea5a328a3c35aa32f9b7db1c1">armnn</a>
</li>
<li>SetNeonStridedSliceData()
: <a class="el" href="namespacearmnn.xhtml#a01d1e745f360ccd0b655214645bcef32">armnn</a>
</li>
<li>SetNonBlocking()
: <a class="el" href="namespacearmnn_utils_1_1_sockets.xhtml#a8396c0d14fc0e7284b175fedfeceef37">armnnUtils::Sockets</a>
</li>
<li>SetupQuantize()
: <a class="el" href="namespacearmnn.xhtml#a52cbff9d344ba4a1fe01d4da2c1f7ba2">armnn</a>
</li>
<li>SetValueChecked()
: <a class="el" href="namespacearmnn.xhtml#a13c7d751e4d37f65a6d40c3c6e50d2b8">armnn</a>
</li>
<li>Slice()
: <a class="el" href="namespacearmnn.xhtml#a044ea0cc993d4d1fbe4ec877b17b8d39">armnn</a>
</li>
<li>Softmax()
: <a class="el" href="namespacearmnn.xhtml#aa999ff2585ad75b95954a9323f63c32b">armnn</a>
</li>
<li>SpaceToBatchNd()
: <a class="el" href="namespacearmnn.xhtml#a4a180e425d4c19b2cdea4ce5760180e1">armnn</a>
</li>
<li>SpaceToDepth()
: <a class="el" href="namespacearmnn.xhtml#a5e1dc69443b64ad16b669388a6023f7a">armnn</a>
</li>
<li>Split()
: <a class="el" href="namespacearmnn.xhtml#ac4d30f99e7fa46fe375e925a6ad537be">armnn</a>
</li>
<li>SplitBy()
: <a class="el" href="namespacearmnn_utils.xhtml#a158a68b143d2564fa1ca047646cf4185">armnnUtils</a>
</li>
<li>Splitter()
: <a class="el" href="namespacearmnn.xhtml#a427c3d26d05b518b1ace407035f5920e">armnn</a>
</li>
<li>Stack()
: <a class="el" href="namespacearmnn.xhtml#a6ef2dcac2ec0683d52df1b051404e7d6">armnn</a>
</li>
<li>StrEqual()
: <a class="el" href="namespacearmnn.xhtml#a637fea04314a9870c1dc4355c1bed429">armnn</a>
</li>
<li>StridedSlice()
: <a class="el" href="namespacearmnn.xhtml#a86d7a7168ac00b75b4971f9aad623698">armnn</a>
</li>
<li>StringToSwTraceString()
: <a class="el" href="namespacearmnn_1_1profiling.xhtml#a5e25734c0aca661f0fe02479743719a1">armnn::profiling</a>
</li>
<li>Strip()
: <a class="el" href="namespacearmnn_utils.xhtml#a14be0364a6fc0975d45e84737dfe21bc">armnnUtils</a>
</li>
<li>swap()
: <a class="el" href="namespacearmnn.xhtml#a686b8288a04b3ffff67d560eea53f6be">armnn</a>
</li>
</ul>
</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 Fri Mar 13 2020 16:09:21 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
