<!-- HTML header for doxygen 1.8.15-->
<!-- Remember to use version doxygen 1.8.15 +-->
<!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.15"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: 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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</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="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="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">19.08</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<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('namespacemembers_func.xhtml','');});
/* @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="contents">
&#160;

<h3><a id="index_a"></a>- a -</h3><ul>
<li>absolute_difference()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a4be63f36f5a22cb9f23c4ad003998c83">arm_compute::test::validation::reference</a>
</li>
<li>accumulate()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a48e7832f8e28c3f7fc0ded12467f8bb0">arm_compute::test::validation::reference</a>
</li>
<li>accumulate_squared()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a158ea97c295a1672d7a7d09afdf90307">arm_compute::test::validation::reference</a>
</li>
<li>accumulate_weighted()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a80107badc51d92c79886955f52c61a1b">arm_compute::test::validation::reference</a>
</li>
<li>activate_float()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a7a20c17062ce636db94d101bb3f01a0e">arm_compute::test::validation::reference</a>
</li>
<li>activation_layer()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a3802a0604503a4f9c4eb7189db69f11d">arm_compute::test::validation::reference</a>
</li>
<li>activation_layer&lt; int16_t &gt;()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ad988691e7bd192624a4d8544a80340c1">arm_compute::test::validation::reference</a>
</li>
<li>activation_layer&lt; uint8_t &gt;()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ad5b06ffc3863187ee11b4410e19425c0">arm_compute::test::validation::reference</a>
</li>
<li>add_sat()
: <a class="el" href="namespacearm__compute_1_1wrapper.xhtml#ac4358b7409261f013124bd6068aeee79">arm_compute::wrapper</a>
</li>
<li>adjust_down()
: <a class="el" href="namespacearm__compute.xhtml#a41c1523098580451b378f76b8c37a0f0">arm_compute</a>
</li>
<li>adjust_odd_shape()
: <a class="el" href="namespacearm__compute.xhtml#add7f7487c235331a6518dd16ad1e3b38">arm_compute</a>
</li>
<li>adjust_up()
: <a class="el" href="namespacearm__compute.xhtml#ab16fcfbfc3ee6dbc0c112f0bc9b3d9c2">arm_compute</a>
</li>
<li>align()
: <a class="el" href="namespacearm__compute_1_1support_1_1cpp11.xhtml#a9e51e04e3f86c823883757ef22d4f39a">arm_compute::support::cpp11</a>
</li>
<li>all_inputs_are_visited()
: <a class="el" href="namespacearm__compute_1_1graph_1_1detail.xhtml#ae668406fdc43b21e5dcb3904fa683ea0">arm_compute::graph::detail</a>
</li>
<li>allocate_all_input_tensors()
: <a class="el" href="namespacearm__compute_1_1graph_1_1detail.xhtml#a4312e5b00714a9de04fc54d2a5dcc119">arm_compute::graph::detail</a>
</li>
<li>allocate_all_output_tensors()
: <a class="el" href="namespacearm__compute_1_1graph_1_1detail.xhtml#aa39e0698b2de495c235129b12fa39b08">arm_compute::graph::detail</a>
</li>
<li>allocate_all_tensors()
: <a class="el" href="namespacearm__compute_1_1graph_1_1detail.xhtml#a766bb5055ef388455c941869b32981ed">arm_compute::graph::detail</a>
</li>
<li>allocate_const_tensors()
: <a class="el" href="namespacearm__compute_1_1graph_1_1detail.xhtml#a3ef7cb28de6aea7026a1e8572639f300">arm_compute::graph::detail</a>
</li>
<li>allocator()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a817d7768d04140a832d2cb27f83edb12">arm_compute::test::validation</a>
</li>
<li>angle_wrap_value()
: <a class="el" href="namespacearm__compute_1_1logging.xhtml#a369e0192e9a39349e4f7b8eca465ac60">arm_compute::logging</a>
</li>
<li>apply()
: <a class="el" href="namespacearm__compute_1_1test.xhtml#ab3a61953b0f41e932f8a2ce8918e7aec">arm_compute::test</a>
</li>
<li>apply_2d_spatial_filter()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">arm_compute::test::validation</a>
</li>
<li>apply_impl()
: <a class="el" href="namespacearm__compute_1_1test_1_1framework.xhtml#a1ce487275e4d9e2072af217789dcdcc5">arm_compute::test::framework</a>
</li>
<li>arithmetic_division()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ad3ab69a504e69097ee96b458cb26e011">arm_compute::test::validation::reference</a>
</li>
<li>arithmetic_operation()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a22dc6973039d30ebe25370d5e64717a0">arm_compute::test::validation::reference</a>
</li>
<li>arithmetic_to_string()
: <a class="el" href="namespacearm__compute_1_1test.xhtml#a93690f80f7fb88ea733fdc6f9f3b3ada">arm_compute::test</a>
</li>
<li>ARM_COMPUTE_ASSERT_EQUAL_IMPL()
: <a class="el" href="namespacearm__compute_1_1test_1_1framework_1_1detail.xhtml#af78c3c4f8aca44d2ba3de3af92cd0f96">arm_compute::test::framework::detail</a>
</li>
<li>ARM_COMPUTE_ASSERT_NOT_EQUAL_IMPL()
: <a class="el" href="namespacearm__compute_1_1test_1_1framework_1_1detail.xhtml#aaa05b2025b37c285ce6e9edfb437fc06">arm_compute::test::framework::detail</a>
</li>
<li>ARM_COMPUTE_EXPECT()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7139545f7f5f8b854c5686666b675c69">arm_compute::test::validation</a>
</li>
<li>ARM_COMPUTE_EXPECT_EQUAL_IMPL()
: <a class="el" href="namespacearm__compute_1_1test_1_1framework_1_1detail.xhtml#ae9bc925970822e824eb1f740d46f2e8a">arm_compute::test::framework::detail</a>
</li>
<li>ARM_COMPUTE_EXPECT_NOT_EQUAL_IMPL()
: <a class="el" href="namespacearm__compute_1_1test_1_1framework_1_1detail.xhtml#a8d2500614dd09dd9edf7df40934e7a77">arm_compute::test::framework::detail</a>
</li>
<li>ARM_COMPUTE_PRINT_INFO()
: <a class="el" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7457955ed1c49b6478071caa7b5c5be2">arm_compute::test::framework</a>
</li>
<li>arm_non_uniform_workgroup_supported()
: <a class="el" href="namespacearm__compute.xhtml#a0019d1de2500c73f16b673d8a883a767">arm_compute</a>
</li>
<li>asymm_int_mult()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#aea27abcd3d58d627282320dfdd213596">arm_compute::test::validation</a>
</li>
<li>asymm_rounding_divide_by_pow2()
: <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5bab95cbeb5c6bf05049df7afd32d823">arm_compute::test::validation</a>
</li>
<li>auto_init_if_empty()
: <a class="el" href="namespacearm__compute.xhtml#a47be6fa38308d0003c25b60b7dbc45ce">arm_compute</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 Mon Sep 2 2019 11:47:42 for Compute Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>
