<!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="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: File 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>
<link href="doxygen.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;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ArmNN
   &#160;<span id="projectnumber">NotReleased</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('globals_f.html','');});
</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 file members with links to the files they belong to:</div>

<h3><a id="index_f"></a>- f -</h3><ul>
<li>FactoryType
: <a class="el" href="_cl_layer_tests_8cpp.html#a255d08081b372809a176b588529296aa">ClLayerTests.cpp</a>
, <a class="el" href="_neon_layer_tests_8cpp.html#a1d69b9f69cd9022e871ca4e2ce74eacf">NeonLayerTests.cpp</a>
, <a class="el" href="_ref_layer_tests_8cpp.html#a2b33aa9bf2131e4232892913fcf532b3">RefLayerTests.cpp</a>
</li>
<li>FakeQuantizationTest()
: <a class="el" href="_fake_quantization_test_impl_8cpp.html#a01bfe16b093483307fb23aaae0405a3a">FakeQuantizationTestImpl.cpp</a>
, <a class="el" href="_fake_quantization_test_impl_8hpp.html#a01bfe16b093483307fb23aaae0405a3a">FakeQuantizationTestImpl.hpp</a>
</li>
<li>false
: <a class="el" href="_ref_layer_tests_8cpp.html#a67e2647a90dec71bb79c8b38872ba570">RefLayerTests.cpp</a>
, <a class="el" href="_cl_layer_tests_8cpp.html#a67e2647a90dec71bb79c8b38872ba570">ClLayerTests.cpp</a>
, <a class="el" href="_neon_layer_tests_8cpp.html#ab95b439385bde10e3a148b07e78c3c0f">NeonLayerTests.cpp</a>
</li>
<li>FORWARD_CL_LAYER_SUPPORT_FUNC
: <a class="el" href="_cl_layer_support_8cpp.html#a5cced62cc843be3b7f0614fc73d2c93b">ClLayerSupport.cpp</a>
</li>
<li>FORWARD_LAYER_SUPPORT_FUNC
: <a class="el" href="_layer_support_8cpp.html#aaed0ec9df6d4157960512266e8b74b26">LayerSupport.cpp</a>
</li>
<li>FORWARD_WORKLOAD_VALIDATE_FUNC
: <a class="el" href="_cl_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">ClLayerSupport.cpp</a>
, <a class="el" href="_neon_layer_support_8cpp.html#af0383f6bb43d6d5df6f3265367b6ebf9">NeonLayerSupport.cpp</a>
</li>
<li>FullyConnectedFloat32Test()
: <a class="el" href="_fully_connected_test_impl_8cpp.html#a9aa238fbd4c6a6d1259b31d2a51c93b8">FullyConnectedTestImpl.cpp</a>
, <a class="el" href="_fully_connected_test_impl_8hpp.html#a9aa238fbd4c6a6d1259b31d2a51c93b8">FullyConnectedTestImpl.hpp</a>
</li>
<li>FullyConnectedLargeTest()
: <a class="el" href="_fully_connected_test_impl_8hpp.html#a0fb6957126b671361ccdd80f3549faa9">FullyConnectedTestImpl.hpp</a>
, <a class="el" href="_fully_connected_test_impl_8cpp.html#a0fb6957126b671361ccdd80f3549faa9">FullyConnectedTestImpl.cpp</a>
</li>
<li>FullyConnectedLargeTestCommon()
: <a class="el" href="_fully_connected_test_impl_8cpp.html#ac2fd4978ceeccf895121c47b47cbd237">FullyConnectedTestImpl.cpp</a>
</li>
<li>FullyConnectedTest()
: <a class="el" href="_fully_connected_test_impl_8hpp.html#a25b72d9cbe9cca2c89ba997e6f2cfb87">FullyConnectedTestImpl.hpp</a>
, <a class="el" href="_fully_connected_test_impl_8cpp.html#a25b72d9cbe9cca2c89ba997e6f2cfb87">FullyConnectedTestImpl.cpp</a>
</li>
<li>FullyConnectedTest&lt; armnn::DataType::QAsymmU8 &gt;()
: <a class="el" href="_fully_connected_test_impl_8cpp.html#a3bcde1c62518c032c93eac1fa0ce6062">FullyConnectedTestImpl.cpp</a>
</li>
<li>FullyConnectedTest&lt; armnn::DataType::QSymmS16 &gt;()
: <a class="el" href="_fully_connected_test_impl_8cpp.html#a5577e592bc21307937a26abbc908353f">FullyConnectedTestImpl.cpp</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:07:06 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>
