<!-- 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: tests/validation/CL/MeanStdDevNormalizationLayer.cpp File Reference</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('_c_l_2_mean_std_dev_normalization_layer_8cpp.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="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">MeanStdDevNormalizationLayer.cpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">arm_compute/core/Types.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_c_l_tensor_8h_source.xhtml">arm_compute/runtime/CL/CLTensor.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_c_l_tensor_allocator_8h_source.xhtml">arm_compute/runtime/CL/CLTensorAllocator.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_c_l_mean_std_dev_normalization_layer_8h_source.xhtml">arm_compute/runtime/CL/functions/CLMeanStdDevNormalizationLayer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_c_l_accessor_8h_source.xhtml">tests/CL/CLAccessor.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_padding_calculator_8h_source.xhtml">tests/PaddingCalculator.h</a>&quot;</code><br />
<code>#include &quot;tests/datasets/NormalizationTypesDataset.h&quot;</code><br />
<code>#include &quot;tests/datasets/ShapeDatasets.h&quot;</code><br />
<code>#include &quot;<a class="el" href="_asserts_8h_source.xhtml">tests/framework/Asserts.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="tests_2framework_2_macros_8h_source.xhtml">tests/framework/Macros.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_datasets_8h_source.xhtml">tests/framework/datasets/Datasets.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_validation_8h_source.xhtml">tests/validation/Validation.h</a>&quot;</code><br />
<code>#include &quot;tests/validation/fixtures/MeanStdDevNormalizationLayerFixture.h&quot;</code><br />
</div>
<p><a href="_c_l_2_mean_std_dev_normalization_layer_8cpp_source.xhtml">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacearm__compute"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></td></tr>
<tr class="memdesc:namespacearm__compute"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copyright (c) 2017-2018 ARM Limited. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacearm__compute_1_1test"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml">arm_compute::test</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacearm__compute_1_1test_1_1validation"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml">arm_compute::test::validation</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ad10655f9076dff6f3700d90660fd2bb7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad10655f9076dff6f3700d90660fd2bb7"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad10655f9076dff6f3700d90660fd2bb7">CLMeanStdDevNormalizationLayerFixture</a> = MeanStdDevNormalizationLayerValidationFixture&lt; CLTensor, CLAccessor, CLMeanStdDevNormalizationLayer, T &gt;</td></tr>
<tr class="separator:ad10655f9076dff6f3700d90660fd2bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a315ab8ee116b2cafc206479b69d09edb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a315ab8ee116b2cafc206479b69d09edb">DATA_TEST_CASE</a> (Validate, framework::DatasetMode::ALL, zip(zip(framework::dataset::make(&quot;InputInfo&quot;, { TensorInfo(TensorShape(27U, 13U), 1, DataType::F32), TensorInfo(TensorShape(27U, 13U), 1, DataType::F32), TensorInfo(TensorShape(32U, 13U), 1, DataType::F32), }), framework::dataset::make(&quot;OutputInfo&quot;,{ TensorInfo(TensorShape(27U, 13U), 1, DataType::F16), TensorInfo(TensorShape(27U, 11U), 1, DataType::F32), TensorInfo(TensorShape(32U, 13U), 1, DataType::F32), })), framework::dataset::make(&quot;Expected&quot;, { false, false, true })), input_info, output_info, expected)</td></tr>
<tr class="separator:a315ab8ee116b2cafc206479b69d09edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabc3e4d2e9bde8422ced22bf3f590ed1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#aabc3e4d2e9bde8422ced22bf3f590ed1">FIXTURE_DATA_TEST_CASE</a> (RunSmall, CLMeanStdDevNormalizationLayerFixture&lt; half &gt;, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::Small2DShapes(), framework::dataset::make(&quot;DataType&quot;, DataType::F16)), framework::dataset::make(&quot;InPlace&quot;, { false, true })), framework::dataset::make(&quot;Epsilon&quot;, { 1e-8 })))</td></tr>
<tr class="separator:aabc3e4d2e9bde8422ced22bf3f590ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dc2519b952340c82956b937bfa5ed2e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a0dc2519b952340c82956b937bfa5ed2e">FIXTURE_DATA_TEST_CASE</a> (RunLarge, CLMeanStdDevNormalizationLayerFixture&lt; half &gt;, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::Large2DShapes(), framework::dataset::make(&quot;DataType&quot;, DataType::F16)), framework::dataset::make(&quot;InPlace&quot;, { false, true })), framework::dataset::make(&quot;Epsilon&quot;, { 1e-8 })))</td></tr>
<tr class="separator:a0dc2519b952340c82956b937bfa5ed2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2ed31007ae463a3cec24a581f3651f6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ed31007ae463a3cec24a581f3651f6">TEST_SUITE_END</a> () const auto Int16QuantizedActivationFunctionsDataset = ActivationValidationQuantizedFixture&lt;CLTensor, CLAccessor, CLActivationLayer, T&gt;</td></tr>
<tr class="memdesc:ac2ed31007ae463a3cec24a581f3651f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input data sets.  <a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ed31007ae463a3cec24a581f3651f6">More...</a><br /></td></tr>
<tr class="separator:ac2ed31007ae463a3cec24a581f3651f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff86f79f3dd2d02bf93b1cd3040d4d07"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#aff86f79f3dd2d02bf93b1cd3040d4d07">combine</a> (combine(combine(datasets::Small2DShapes(), framework::dataset::make(&quot;DataType&quot;, DataType::F32)), framework::dataset::make(&quot;InPlace&quot;, { false, true })), framework::dataset::make(&quot;Epsilon&quot;, { 1e-8 })))</td></tr>
<tr class="separator:aff86f79f3dd2d02bf93b1cd3040d4d07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1d24274115ff6924fef09d43f38d14e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#ae1d24274115ff6924fef09d43f38d14e">FIXTURE_DATA_TEST_CASE</a> (RunLarge, CLMeanStdDevNormalizationLayerFixture&lt; float &gt;, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::Large2DShapes(), framework::dataset::make(&quot;DataType&quot;, DataType::F32)), framework::dataset::make(&quot;InPlace&quot;, { false, true })), framework::dataset::make(&quot;Epsilon&quot;, { 1e-8 })))</td></tr>
<tr class="separator:ae1d24274115ff6924fef09d43f38d14e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:abbb104d6d6759ba20b029ee664d0236e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#abbb104d6d6759ba20b029ee664d0236e">CLMeanStdDevNormalizationLayerFixture&lt; float &gt;</a></td></tr>
<tr class="separator:abbb104d6d6759ba20b029ee664d0236e"><td class="memSeparator" colspan="2">&#160;</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="navelem"><a class="el" href="dir_59425e443f801f1f2fd8bbe4959a3ccf.xhtml">tests</a></li><li class="navelem"><a class="el" href="dir_e7c7b16542faa38cb4655ff1750d3604.xhtml">validation</a></li><li class="navelem"><a class="el" href="dir_f7024513cd67abef53e86ee9382ac5ce.xhtml">CL</a></li><li class="navelem"><a class="el" href="_c_l_2_mean_std_dev_normalization_layer_8cpp.xhtml">MeanStdDevNormalizationLayer.cpp</a></li>
    <li class="footer">Generated on Mon Sep 2 2019 11:47:30 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>
