<!-- 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: Class 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('functions_u.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">
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>

<h3><a id="index_u"></a>- u -</h3><ul>
<li>UnimplementedException()
: <a class="el" href="classarmnn_1_1_unimplemented_exception.xhtml#ab6efa077767924b8ce5ab0bf33cb53d5">UnimplementedException</a>
</li>
<li>Unit
: <a class="el" href="structarmnn_1_1_measurement.xhtml#abceb2331ad056e3c5ad27894199a49ed">Measurement</a>
</li>
<li>UnloadNetwork()
: <a class="el" href="classarmnn_1_1_i_runtime.xhtml#a43a7ee9625c9c3f4140fa02c92199fd1">IRuntime</a>
, <a class="el" href="classarmnn_1_1_runtime.xhtml#ae54a3b358f009aec340d443d038805a4">Runtime</a>
</li>
<li>UnloadOpenClRuntime()
: <a class="el" href="classarmnn_1_1_cl_context_control.xhtml#a48f639543a69fe342fec2021b9dfd1d4">ClContextControl</a>
</li>
<li>Unmap()
: <a class="el" href="classarmnn_1_1_cl_sub_tensor_handle.xhtml#a88ab6decf78c152e746b7d8dc2dd931f">ClSubTensorHandle</a>
, <a class="el" href="classarmnn_1_1_cl_tensor_handle.xhtml#a88ab6decf78c152e746b7d8dc2dd931f">ClTensorHandle</a>
, <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a88ab6decf78c152e746b7d8dc2dd931f">ConstCpuTensorHandle</a>
, <a class="el" href="classarmnn_1_1_i_tensor_handle.xhtml#a563609828050f1b3a7868c23f3365923">ITensorHandle</a>
, <a class="el" href="classarmnn_1_1_neon_sub_tensor_handle.xhtml#a88ab6decf78c152e746b7d8dc2dd931f">NeonSubTensorHandle</a>
, <a class="el" href="classarmnn_1_1_neon_tensor_handle.xhtml#a88ab6decf78c152e746b7d8dc2dd931f">NeonTensorHandle</a>
, <a class="el" href="classarmnn_1_1_ref_tensor_handle.xhtml#a88ab6decf78c152e746b7d8dc2dd931f">RefTensorHandle</a>
, <a class="el" href="classarmnn_1_1_sample_tensor_handle.xhtml#a88ab6decf78c152e746b7d8dc2dd931f">SampleTensorHandle</a>
</li>
<li>Unroll()
: <a class="el" href="structarmnn_1_1_broadcast_loop.xhtml#a1b3b461824ae2769251ad66a09da5b52">BroadcastLoop</a>
</li>
<li>Update()
: <a class="el" href="classarmnn_1_1_added_layer_observable.xhtml#a191da1d3efde9128152d3c6dbb869fec">AddedLayerObservable</a>
, <a class="el" href="classarmnn_1_1_erased_layer_names_observable.xhtml#a191da1d3efde9128152d3c6dbb869fec">ErasedLayerNamesObservable</a>
, <a class="el" href="classarmnn_1_1_i_graph_observable.xhtml#a4683739acfc782967e12a58e5041ee38">IGraphObservable</a>
, <a class="el" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#aec0783b5a136e042adcc47bae4fe5291">ProfilingService</a>
</li>
<li>UpdateEventTag()
: <a class="el" href="classarmnn_1_1_profiler.xhtml#afb5ba6c1110d2ea400f49ad7f3ac4d15">Profiler</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>
