| <!-- HTML header for doxygen 1.8.9.1--> |
| <!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.6"/> |
| <meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines --> |
| <title>Compute Library: arm_compute::test::validation::reference Namespace 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="navtree.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(initResizable); |
| $(window).load(resizeHeight); |
| </script> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/search.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(function() { searchBox.OnSelectItem(0); }); |
| </script> |
| <script type="text/x-mathjax-config"> |
| MathJax.Hub.Config({ |
| extensions: ["tex2jax.js"], |
| jax: ["input/TeX","output/HTML-CSS"], |
| }); |
| </script><script src="http://cdn.mathjax.org/mathjax/latest/MathJax.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 style="padding-left: 0.5em;"> |
| <div id="projectname">Compute Library |
|  <span id="projectnumber">17.10</span> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.8.6 --> |
| <script type="text/javascript"> |
| var searchBox = new SearchBox("searchBox", "search",false,'Search'); |
| </script> |
| <div id="navrow1" class="tabs"> |
| <ul class="tablist"> |
| <li><a href="index.xhtml"><span>Main Page</span></a></li> |
| <li><a href="pages.xhtml"><span>Related Pages</span></a></li> |
| <li class="current"><a href="namespaces.xhtml"><span>Namespaces</span></a></li> |
| <li><a href="annotated.xhtml"><span>Data Structures</span></a></li> |
| <li><a href="files.xhtml"><span>Files</span></a></li> |
| <li> |
| <div id="MSearchBox" class="MSearchBoxInactive"> |
| <span class="left"> |
| <img id="MSearchSelect" src="search/mag_sel.png" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| alt=""/> |
| <input type="text" id="MSearchField" value="Search" accesskey="S" |
| onfocus="searchBox.OnSearchFieldFocus(true)" |
| onblur="searchBox.OnSearchFieldFocus(false)" |
| onkeyup="searchBox.OnSearchFieldChange(event)"/> |
| </span><span class="right"> |
| <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> |
| </span> |
| </div> |
| </li> |
| </ul> |
| </div> |
| <div id="navrow2" class="tabs2"> |
| <ul class="tablist"> |
| <li><a href="namespaces.xhtml"><span>Namespace List</span></a></li> |
| <li><a href="namespacemembers.xhtml"><span>Namespace Members</span></a></li> |
| </ul> |
| </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('namespacearm__compute_1_1test_1_1validation_1_1reference.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)"> |
| <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Pages</a></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="#func-members">Functions</a> </div> |
| <div class="headertitle"> |
| <div class="title">arm_compute::test::validation::reference Namespace Reference</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> |
| Functions</h2></td></tr> |
| <tr class="memitem:ad1a73ce85cd5a4a689c605ade2bc8780"><td class="memTemplParams" colspan="2">template<typename T , typename std::enable_if< is_floating_point< T >::value, int >::type > </td></tr> |
| <tr class="memitem:ad1a73ce85cd5a4a689c605ade2bc8780"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ad1a73ce85cd5a4a689c605ade2bc8780">activation_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml">ActivationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:ad1a73ce85cd5a4a689c605ade2bc8780"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab45edd626ed376e74792b87d59ac7913"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab45edd626ed376e74792b87d59ac7913">activation_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml">ActivationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:ab45edd626ed376e74792b87d59ac7913"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:af2f52d261a58bf104da93a90f0171c34"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#af2f52d261a58bf104da93a90f0171c34">activation_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml">ActivationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:af2f52d261a58bf104da93a90f0171c34"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6db4e198a18bcd309c95d93fea7fe255"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6db4e198a18bcd309c95d93fea7fe255">activation_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &src, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml">ActivationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:a6db4e198a18bcd309c95d93fea7fe255"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a09bed76970c9539be9af1693a21180ca"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a09bed76970c9539be9af1693a21180ca">activation_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &src, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml">ActivationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:a09bed76970c9539be9af1693a21180ca"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ae98dcf5421f308ea7bb268ca7a37be5f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:ae98dcf5421f308ea7bb268ca7a37be5f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ae98dcf5421f308ea7bb268ca7a37be5f">arithmetic_addition</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:ae98dcf5421f308ea7bb268ca7a37be5f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9d398f98a548984dc3869c8394a821d3"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a9d398f98a548984dc3869c8394a821d3">arithmetic_addition</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:a9d398f98a548984dc3869c8394a821d3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a426be141440c207990cde03ce6982f19"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a426be141440c207990cde03ce6982f19">arithmetic_addition</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:a426be141440c207990cde03ce6982f19"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab3bad17e7cc30ec6052ff401a069b9df"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab3bad17e7cc30ec6052ff401a069b9df">arithmetic_addition</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:ab3bad17e7cc30ec6052ff401a069b9df"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a7f91038e9c76832b77e2ffc21d43da3b"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a7f91038e9c76832b77e2ffc21d43da3b">arithmetic_addition</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:a7f91038e9c76832b77e2ffc21d43da3b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1564ce88519643851a20bae003f86c4b"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a1564ce88519643851a20bae003f86c4b">arithmetic_addition</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:a1564ce88519643851a20bae003f86c4b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab85904ecf7e8eb65f8b77f8b20f6c109"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:ab85904ecf7e8eb65f8b77f8b20f6c109"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab85904ecf7e8eb65f8b77f8b20f6c109">arithmetic_subtraction</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:ab85904ecf7e8eb65f8b77f8b20f6c109"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ad5e0c329cc342bfb10db654421caeca5"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ad5e0c329cc342bfb10db654421caeca5">arithmetic_subtraction</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:ad5e0c329cc342bfb10db654421caeca5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8d2f7dd1f6f4d926f83a715bb4143971"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a8d2f7dd1f6f4d926f83a715bb4143971">arithmetic_subtraction</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:a8d2f7dd1f6f4d926f83a715bb4143971"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2965c3c1a64d212b9a363edc0da97570"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2965c3c1a64d212b9a363edc0da97570">arithmetic_subtraction</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:a2965c3c1a64d212b9a363edc0da97570"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac8f64dd344b40ee01530079e83b54235"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ac8f64dd344b40ee01530079e83b54235">arithmetic_subtraction</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:ac8f64dd344b40ee01530079e83b54235"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a94b79c69970cb70f27ed07fd8dcca2ef"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a94b79c69970cb70f27ed07fd8dcca2ef">arithmetic_subtraction</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src2, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_data_type, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> convert_policy)</td></tr> |
| <tr class="separator:a94b79c69970cb70f27ed07fd8dcca2ef"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a7dc3318ccd1a590cd13f67d0b7133eb5"><td class="memTemplParams" colspan="2">template<typename T , typename std::enable_if< std::is_integral< T >::value, int >::type * > </td></tr> |
| <tr class="memitem:a7dc3318ccd1a590cd13f67d0b7133eb5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a7dc3318ccd1a590cd13f67d0b7133eb5">batch_normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &mean, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &var, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &beta, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &gamma, float epsilon, int fixed_point_position)</td></tr> |
| <tr class="separator:a7dc3318ccd1a590cd13f67d0b7133eb5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab4756f017d831af39f56b6ddad64eb36"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab4756f017d831af39f56b6ddad64eb36">batch_normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &mean, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &var, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &beta, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &gamma, float epsilon, int fixed_point_position)</td></tr> |
| <tr class="separator:ab4756f017d831af39f56b6ddad64eb36"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a833512b72a849556403efd62572ef455"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a833512b72a849556403efd62572ef455">batch_normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &mean, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &var, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &beta, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &gamma, float epsilon, int fixed_point_position)</td></tr> |
| <tr class="separator:a833512b72a849556403efd62572ef455"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab7085e9ba2421046f0ac70d95629ebee"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab7085e9ba2421046f0ac70d95629ebee">batch_normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &mean, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &var, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &beta, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &gamma, float epsilon, int fixed_point_position)</td></tr> |
| <tr class="separator:ab7085e9ba2421046f0ac70d95629ebee"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a18f9d09022ed3dcae3726a3bc4d04bd3"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a18f9d09022ed3dcae3726a3bc4d04bd3">batch_normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &mean, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &var, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &beta, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &gamma, float epsilon, int fixed_point_position)</td></tr> |
| <tr class="separator:a18f9d09022ed3dcae3726a3bc4d04bd3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a7229d506620fd44c5916716f7bf696b2"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a7229d506620fd44c5916716f7bf696b2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a7229d506620fd44c5916716f7bf696b2">bitwise_and</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src2)</td></tr> |
| <tr class="separator:a7229d506620fd44c5916716f7bf696b2"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a55c7ec1e1273f65d37c51ff1d39a5d77"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a55c7ec1e1273f65d37c51ff1d39a5d77">bitwise_and</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src2)</td></tr> |
| <tr class="separator:a55c7ec1e1273f65d37c51ff1d39a5d77"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:af4713d48a2398823bcfd449c2aafef30"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:af4713d48a2398823bcfd449c2aafef30"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#af4713d48a2398823bcfd449c2aafef30">bitwise_not</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src)</td></tr> |
| <tr class="separator:af4713d48a2398823bcfd449c2aafef30"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a003581bd71ae054b9b7ff70d975856d8"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a003581bd71ae054b9b7ff70d975856d8">bitwise_not</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src)</td></tr> |
| <tr class="separator:a003581bd71ae054b9b7ff70d975856d8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:abe5e573ce60f341bbeebd0498d8e499b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:abe5e573ce60f341bbeebd0498d8e499b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#abe5e573ce60f341bbeebd0498d8e499b">bitwise_or</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src2)</td></tr> |
| <tr class="separator:abe5e573ce60f341bbeebd0498d8e499b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a89ed2687d967ec8a8ffc24195fbda72e"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a89ed2687d967ec8a8ffc24195fbda72e">bitwise_or</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src2)</td></tr> |
| <tr class="separator:a89ed2687d967ec8a8ffc24195fbda72e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aade8c313bbf87320b8b8f81c5ff5aeac"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:aade8c313bbf87320b8b8f81c5ff5aeac"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aade8c313bbf87320b8b8f81c5ff5aeac">bitwise_xor</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src2)</td></tr> |
| <tr class="separator:aade8c313bbf87320b8b8f81c5ff5aeac"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:af05c4e8f9356af6f59bb1e7f48b97d4d"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#af05c4e8f9356af6f59bb1e7f48b97d4d">bitwise_xor</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src1, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src2)</td></tr> |
| <tr class="separator:af05c4e8f9356af6f59bb1e7f48b97d4d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa048ec4655f2ebb10b8d1f301f60df69"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:aa048ec4655f2ebb10b8d1f301f60df69"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aa048ec4655f2ebb10b8d1f301f60df69">box3x3</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, T constant_border_value)</td></tr> |
| <tr class="separator:aa048ec4655f2ebb10b8d1f301f60df69"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2ff0714b006e333c893d87a928d88da6"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2ff0714b006e333c893d87a928d88da6">box3x3</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:a2ff0714b006e333c893d87a928d88da6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aeec300028ef21b06bc60da82c894a010"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:aeec300028ef21b06bc60da82c894a010"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aeec300028ef21b06bc60da82c894a010">convolution_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &<a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:aeec300028ef21b06bc60da82c894a010"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac0a0d3a8a94f2f011d2969ff6b6c591f"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ac0a0d3a8a94f2f011d2969ff6b6c591f">convolution_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &<a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:ac0a0d3a8a94f2f011d2969ff6b6c591f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:acb8d139aa02479d9c5c0d2fcbda92383"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#acb8d139aa02479d9c5c0d2fcbda92383">convolution_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &<a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:acb8d139aa02479d9c5c0d2fcbda92383"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1196fd13dfe164c3b3ac509c2f577b98"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a1196fd13dfe164c3b3ac509c2f577b98">convolution_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &<a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:a1196fd13dfe164c3b3ac509c2f577b98"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a043cd6bdf09803218b2e5366ffc9439d"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a043cd6bdf09803218b2e5366ffc9439d">convolution_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &<a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:a043cd6bdf09803218b2e5366ffc9439d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aaca2b6bea6bd88fd39489d1104497330"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:aaca2b6bea6bd88fd39489d1104497330"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aaca2b6bea6bd88fd39489d1104497330">depthconcatenate_layer</a> (const std::vector< <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T >> &srcs)</td></tr> |
| <tr class="separator:aaca2b6bea6bd88fd39489d1104497330"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a998bf347ddc146fb533250b9ef9ce927"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a998bf347ddc146fb533250b9ef9ce927">depthconcatenate_layer</a> (const std::vector< <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float >> &srcs)</td></tr> |
| <tr class="separator:a998bf347ddc146fb533250b9ef9ce927"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8a116b530186cf21c5f6c7da7acbd178"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a8a116b530186cf21c5f6c7da7acbd178">depthconcatenate_layer</a> (const std::vector< <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> >> &srcs)</td></tr> |
| <tr class="separator:a8a116b530186cf21c5f6c7da7acbd178"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab9d829efe5d789bf902be0ecdc42ee7f"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab9d829efe5d789bf902be0ecdc42ee7f">depthconcatenate_layer</a> (const std::vector< <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> >> &srcs)</td></tr> |
| <tr class="separator:ab9d829efe5d789bf902be0ecdc42ee7f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a05d54bc26134fcc90aa9889fd85beaad"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a05d54bc26134fcc90aa9889fd85beaad">depthconcatenate_layer</a> (const std::vector< <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> >> &srcs)</td></tr> |
| <tr class="separator:a05d54bc26134fcc90aa9889fd85beaad"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a742cdbdf3c1db76c9a189f1bcd745579"><td class="memTemplParams" colspan="2">template<typename T1 , typename T2 , typename std::enable_if< std::is_integral< T1 >::value &&std::is_floating_point< T2 >::value, int >::type > </td></tr> |
| <tr class="memitem:a742cdbdf3c1db76c9a189f1bcd745579"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T2 > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a742cdbdf3c1db76c9a189f1bcd745579">depth_convert</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T1 > &src, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt_out, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> policy, uint32_t shift)</td></tr> |
| <tr class="separator:a742cdbdf3c1db76c9a189f1bcd745579"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a87c420d7f8a98dead76b0b32b2df6777"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a87c420d7f8a98dead76b0b32b2df6777">depth_convert</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt_out, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> policy, uint32_t shift)</td></tr> |
| <tr class="separator:a87c420d7f8a98dead76b0b32b2df6777"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa23e45fa7a8f9f196704d4473721d6ab"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aa23e45fa7a8f9f196704d4473721d6ab">depth_convert</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint16_t > &src, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt_out, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> policy, uint32_t shift)</td></tr> |
| <tr class="separator:aa23e45fa7a8f9f196704d4473721d6ab"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a968f4da89a68d28ad39d8e39d8d19f93"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a968f4da89a68d28ad39d8e39d8d19f93">depth_convert</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt_out, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> policy, uint32_t shift)</td></tr> |
| <tr class="separator:a968f4da89a68d28ad39d8e39d8d19f93"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ae3f03fb276c241cb8545e8f19b0718dc"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ae3f03fb276c241cb8545e8f19b0718dc">depth_convert</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &src, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt_out, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> policy, uint32_t shift)</td></tr> |
| <tr class="separator:ae3f03fb276c241cb8545e8f19b0718dc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a77181952330fca74c9b3528f9a51fa10"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a77181952330fca74c9b3528f9a51fa10">depth_convert</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt_out, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> policy, uint32_t shift)</td></tr> |
| <tr class="separator:a77181952330fca74c9b3528f9a51fa10"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9f8ec1b43b35c3c618cbacbbb4608b3b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a9f8ec1b43b35c3c618cbacbbb4608b3b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a9f8ec1b43b35c3c618cbacbbb4608b3b">depthwise_convolution</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &weights, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &conv_info)</td></tr> |
| <tr class="memdesc:a9f8ec1b43b35c3c618cbacbbb4608b3b"><td class="mdescLeft"> </td><td class="mdescRight">Perform a depthwise convolution. <a href="#a9f8ec1b43b35c3c618cbacbbb4608b3b">More...</a><br/></td></tr> |
| <tr class="separator:a9f8ec1b43b35c3c618cbacbbb4608b3b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a07eb27301d565f8f4018310e3dd000c3"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a07eb27301d565f8f4018310e3dd000c3">depthwise_convolution</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &weights, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &conv_info)</td></tr> |
| <tr class="separator:a07eb27301d565f8f4018310e3dd000c3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a001cc2899961f6e89ad6a775339cf5c4"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a001cc2899961f6e89ad6a775339cf5c4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a001cc2899961f6e89ad6a775339cf5c4">depthwise_separable_convolution_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &depthwise_weights, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &depthwise_out_shape, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &pointwise_weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &biases, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &depthwise_conv_info, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &pointwise_conv_info)</td></tr> |
| <tr class="separator:a001cc2899961f6e89ad6a775339cf5c4"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6b86c6d4d446e068d2eaf96b67c2dfed"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6b86c6d4d446e068d2eaf96b67c2dfed">depthwise_separable_convolution_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &in, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &depthwise_weights, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &depthwise_out_shape, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &pointwise_weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &biases, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &depthwise_conv_info, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &pointwise_conv_info)</td></tr> |
| <tr class="separator:a6b86c6d4d446e068d2eaf96b67c2dfed"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab77dd3bd732636010753d8080608cd3c"><td class="memTemplParams" colspan="2">template<typename T , typename std::enable_if< std::is_integral< T >::value, int >::type > </td></tr> |
| <tr class="memitem:ab77dd3bd732636010753d8080608cd3c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab77dd3bd732636010753d8080608cd3c">dequantization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &min_max)</td></tr> |
| <tr class="separator:ab77dd3bd732636010753d8080608cd3c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6633ef7fc0852265b2f158a5ef7ae900"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6633ef7fc0852265b2f158a5ef7ae900">dequantization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &min_max)</td></tr> |
| <tr class="separator:a6633ef7fc0852265b2f158a5ef7ae900"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a745ca5afa4399233e2e967238a614648"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a745ca5afa4399233e2e967238a614648"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a745ca5afa4399233e2e967238a614648">fixed_point_operation</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a> op)</td></tr> |
| <tr class="separator:a745ca5afa4399233e2e967238a614648"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a98070661bf8ba9b1f4566354956a66ce"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a98070661bf8ba9b1f4566354956a66ce">fixed_point_operation</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &src, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a> op)</td></tr> |
| <tr class="separator:a98070661bf8ba9b1f4566354956a66ce"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac4d1af4ea557e17c82d189de96f41619"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ac4d1af4ea557e17c82d189de96f41619">fixed_point_operation</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a> op)</td></tr> |
| <tr class="separator:ac4d1af4ea557e17c82d189de96f41619"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a33d228262e4f4d071d5d188ffddcc8ac"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a33d228262e4f4d071d5d188ffddcc8ac"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a33d228262e4f4d071d5d188ffddcc8ac">flatten_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src)</td></tr> |
| <tr class="separator:a33d228262e4f4d071d5d188ffddcc8ac"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aba4e68b4d0f8fa70109062ffbbb7a877"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aba4e68b4d0f8fa70109062ffbbb7a877">flatten_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src)</td></tr> |
| <tr class="separator:aba4e68b4d0f8fa70109062ffbbb7a877"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a25907a4887aa2edaa8cebe140bd7b9c0"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a25907a4887aa2edaa8cebe140bd7b9c0">flatten_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src)</td></tr> |
| <tr class="separator:a25907a4887aa2edaa8cebe140bd7b9c0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a85acbada271bb0feecdb6e1a2c887574"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a85acbada271bb0feecdb6e1a2c887574">flatten_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &src)</td></tr> |
| <tr class="separator:a85acbada271bb0feecdb6e1a2c887574"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a3e4fbac72d0548bc22a4ae03b419204d"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a3e4fbac72d0548bc22a4ae03b419204d">flatten_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &src)</td></tr> |
| <tr class="separator:a3e4fbac72d0548bc22a4ae03b419204d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6c81be98812b8cb462be45d9e3d21464"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a6c81be98812b8cb462be45d9e3d21464"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6c81be98812b8cb462be45d9e3d21464">floor_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src)</td></tr> |
| <tr class="separator:a6c81be98812b8cb462be45d9e3d21464"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a0aa1e471728da9ae3dd19f50fa4ef1b0"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a0aa1e471728da9ae3dd19f50fa4ef1b0">floor_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src)</td></tr> |
| <tr class="separator:a0aa1e471728da9ae3dd19f50fa4ef1b0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2211dde69485a1533f0b86430e9d0588"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a2211dde69485a1533f0b86430e9d0588"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2211dde69485a1533f0b86430e9d0588">fully_connected_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape)</td></tr> |
| <tr class="separator:a2211dde69485a1533f0b86430e9d0588"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a843363150af3e3fedf2582aaa7e3a4a8"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a843363150af3e3fedf2582aaa7e3a4a8">fully_connected_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape)</td></tr> |
| <tr class="separator:a843363150af3e3fedf2582aaa7e3a4a8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac11b244329e583c4695ef44cc03630bc"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ac11b244329e583c4695ef44cc03630bc">fully_connected_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape)</td></tr> |
| <tr class="separator:ac11b244329e583c4695ef44cc03630bc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab82c5ef588e5cc0e80fba92f2460aed6"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab82c5ef588e5cc0e80fba92f2460aed6">fully_connected_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape)</td></tr> |
| <tr class="separator:ab82c5ef588e5cc0e80fba92f2460aed6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9a781850308f2eee7db6bc0a9693ccde"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a9a781850308f2eee7db6bc0a9693ccde">fully_connected_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &src, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &weights, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &bias, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape)</td></tr> |
| <tr class="separator:a9a781850308f2eee7db6bc0a9693ccde"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a08625a89b22993b65e923139bdf3b9e1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a08625a89b22993b65e923139bdf3b9e1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a08625a89b22993b65e923139bdf3b9e1">gaussian3x3</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, T constant_border_value)</td></tr> |
| <tr class="separator:a08625a89b22993b65e923139bdf3b9e1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a0bf5cc0e54ac74aee07c3034844a27f8"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a0bf5cc0e54ac74aee07c3034844a27f8">gaussian3x3</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:a0bf5cc0e54ac74aee07c3034844a27f8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ae74885d96f07f242e6974979cce5673b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:ae74885d96f07f242e6974979cce5673b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ae74885d96f07f242e6974979cce5673b">gaussian5x5</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, T constant_border_value)</td></tr> |
| <tr class="separator:ae74885d96f07f242e6974979cce5673b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a45e01cc48f39327d25187bfc0ab27287"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a45e01cc48f39327d25187bfc0ab27287">gaussian5x5</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:a45e01cc48f39327d25187bfc0ab27287"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa8bf3ead30905547609084db58ee70de"><td class="memTemplParams" colspan="2">template<typename T , typename std::enable_if< is_floating_point< T >::value, int >::type > </td></tr> |
| <tr class="memitem:aa8bf3ead30905547609084db58ee70de"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aa8bf3ead30905547609084db58ee70de">gemm</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &a, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &b, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &c, float alpha, float beta)</td></tr> |
| <tr class="separator:aa8bf3ead30905547609084db58ee70de"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:acc8055ed1ae62ec87a4b389047c1464a"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#acc8055ed1ae62ec87a4b389047c1464a">gemm</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &a, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &b, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &c, float alpha, float beta)</td></tr> |
| <tr class="separator:acc8055ed1ae62ec87a4b389047c1464a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ae62fed24d8b0bf2e0b74d81bbe92df38"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ae62fed24d8b0bf2e0b74d81bbe92df38">gemm</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &a, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &b, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &c, float alpha, float beta)</td></tr> |
| <tr class="separator:ae62fed24d8b0bf2e0b74d81bbe92df38"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a37ab0d11ac78c506c87200005ea33b43"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a37ab0d11ac78c506c87200005ea33b43">gemm</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &a, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &b, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &c, float alpha, float beta)</td></tr> |
| <tr class="separator:a37ab0d11ac78c506c87200005ea33b43"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:acebd35396a1f8b1eddab16a509ae0a29"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#acebd35396a1f8b1eddab16a509ae0a29">gemm</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &a, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &b, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &c, float alpha, float beta)</td></tr> |
| <tr class="separator:acebd35396a1f8b1eddab16a509ae0a29"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1313eff6c71b0b3cd56cb6a1592c25a7"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a1313eff6c71b0b3cd56cb6a1592c25a7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a1313eff6c71b0b3cd56cb6a1592c25a7">gemmlowp</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &a, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &b, <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &c, int32_t a_offset, int32_t b_offset, int32_t c_offset, int32_t c_mult_int, int32_t out_shift)</td></tr> |
| <tr class="separator:a1313eff6c71b0b3cd56cb6a1592c25a7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aae8ba97f3019d90146956ebc8c138999"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aae8ba97f3019d90146956ebc8c138999">gemmlowp</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &a, const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &b, <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &c, int32_t a_offset, int32_t b_offset, int32_t c_offset, int32_t c_mult_int, int32_t out_shift)</td></tr> |
| <tr class="separator:aae8ba97f3019d90146956ebc8c138999"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:adc64cfa88bef3958e1603bfca23db47a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:adc64cfa88bef3958e1603bfca23db47a"><td class="memTemplItemLeft" align="right" valign="top">std::vector< <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#adc64cfa88bef3958e1603bfca23db47a">harris_corner_detector</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, float <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">threshold</a>, float min_dist, float sensitivity, int gradient_size, int block_size, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, T constant_border_value)</td></tr> |
| <tr class="separator:adc64cfa88bef3958e1603bfca23db47a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab2ac7813f2c360028d700e7feb88afca"><td class="memItemLeft" align="right" valign="top">template std::vector< <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab2ac7813f2c360028d700e7feb88afca">harris_corner_detector</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, float <a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">threshold</a>, float min_dist, float sensitivity, int gradient_size, int block_size, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:ab2ac7813f2c360028d700e7feb88afca"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6d4691ec28061cbb6e38600f5f78a9bf"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a6d4691ec28061cbb6e38600f5f78a9bf"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint32_t > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6d4691ec28061cbb6e38600f5f78a9bf">integral_image</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src)</td></tr> |
| <tr class="separator:a6d4691ec28061cbb6e38600f5f78a9bf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a751a624d19add33a7c81b6260386d550"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint32_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a751a624d19add33a7c81b6260386d550">integral_image</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src)</td></tr> |
| <tr class="separator:a751a624d19add33a7c81b6260386d550"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a238d3ab8cdae100387631d6491204c6b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a238d3ab8cdae100387631d6491204c6b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a238d3ab8cdae100387631d6491204c6b">l2_normalize</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, unsigned int axis, float epsilon)</td></tr> |
| <tr class="separator:a238d3ab8cdae100387631d6491204c6b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:af0e1f08a54d6896f4d1e7b5ee7f54852"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#af0e1f08a54d6896f4d1e7b5ee7f54852">l2_normalize</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, unsigned int axis, float epsilon)</td></tr> |
| <tr class="separator:af0e1f08a54d6896f4d1e7b5ee7f54852"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:afcceed1cef9bd62b3429d3f76e577a23"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:afcceed1cef9bd62b3429d3f76e577a23"><td class="memTemplItemLeft" align="right" valign="top">std::pair< float, float > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#afcceed1cef9bd62b3429d3f76e577a23">mean_and_standard_deviation</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &in)</td></tr> |
| <tr class="separator:afcceed1cef9bd62b3429d3f76e577a23"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a4bbe9971a7eab2c7bb6b54dabaf479bf"><td class="memItemLeft" align="right" valign="top">template std::pair< float, float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a4bbe9971a7eab2c7bb6b54dabaf479bf">mean_and_standard_deviation</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &in)</td></tr> |
| <tr class="separator:a4bbe9971a7eab2c7bb6b54dabaf479bf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9585c7c2f19c8c051da1d927d3687e70"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a9585c7c2f19c8c051da1d927d3687e70"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a9585c7c2f19c8c051da1d927d3687e70">compute_min_max</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, T &min, T &max)</td></tr> |
| <tr class="separator:a9585c7c2f19c8c051da1d927d3687e70"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac5e4b8af4086cce7dac5667735daf91a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:ac5e4b8af4086cce7dac5667735daf91a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structarm__compute_1_1_min_max_location_values.xhtml">MinMaxLocationValues</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ac5e4b8af4086cce7dac5667735daf91a">min_max_location</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src)</td></tr> |
| <tr class="separator:ac5e4b8af4086cce7dac5667735daf91a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab2647e679a5282c102f65c83d08043a7"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="structarm__compute_1_1_min_max_location_values.xhtml">MinMaxLocationValues</a><br class="typebreak"/> |
| < uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab2647e679a5282c102f65c83d08043a7">min_max_location</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src)</td></tr> |
| <tr class="separator:ab2647e679a5282c102f65c83d08043a7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa4de1dd61ace6805d93248d25c0b2caa"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="structarm__compute_1_1_min_max_location_values.xhtml">MinMaxLocationValues</a><br class="typebreak"/> |
| < int16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aa4de1dd61ace6805d93248d25c0b2caa">min_max_location</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src)</td></tr> |
| <tr class="separator:aa4de1dd61ace6805d93248d25c0b2caa"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aff675bcce573bbd26e6d531b2e073ab8"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="structarm__compute_1_1_min_max_location_values.xhtml">MinMaxLocationValues</a><br class="typebreak"/> |
| < float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aff675bcce573bbd26e6d531b2e073ab8">min_max_location</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src)</td></tr> |
| <tr class="separator:aff675bcce573bbd26e6d531b2e073ab8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:af00274a4d66faf0892f122870f1d9fd9"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:af00274a4d66faf0892f122870f1d9fd9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#af00274a4d66faf0892f122870f1d9fd9">non_linear_filter</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> function, unsigned int mask_size, <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a> pattern, const uint8_t *mask, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:af00274a4d66faf0892f122870f1d9fd9"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a29d57ba8afd317719a954d18599956cd"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a29d57ba8afd317719a954d18599956cd">non_linear_filter</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> function, unsigned int mask_size, <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a> pattern, const uint8_t *mask, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:a29d57ba8afd317719a954d18599956cd"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a60e89e48713565425943913adec65294"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a60e89e48713565425943913adec65294"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a60e89e48713565425943913adec65294">non_maxima_suppression</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, T constant_border_value)</td></tr> |
| <tr class="separator:a60e89e48713565425943913adec65294"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a4f89718e67b6cc5ce13ce5ea3a789a88"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a4f89718e67b6cc5ce13ce5ea3a789a88">non_maxima_suppression</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, float constant_border_value)</td></tr> |
| <tr class="separator:a4f89718e67b6cc5ce13ce5ea3a789a88"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a041ee28e793d018db2379eb8eb3d1722"><td class="memTemplParams" colspan="2">template<typename T , typename std::enable_if< is_floating_point< T >::value, int >::type > </td></tr> |
| <tr class="memitem:a041ee28e793d018db2379eb8eb3d1722"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a041ee28e793d018db2379eb8eb3d1722">normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:a041ee28e793d018db2379eb8eb3d1722"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a451c44627ad6c06f72667812f2a9782d"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a451c44627ad6c06f72667812f2a9782d">normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:a451c44627ad6c06f72667812f2a9782d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a677c65b33a30875799e387168f59758e"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a677c65b33a30875799e387168f59758e">normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src, <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:a677c65b33a30875799e387168f59758e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ad78a2e5549c4eebcb99adf18e8d19bb2"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ad78a2e5549c4eebcb99adf18e8d19bb2">normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &src, <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:ad78a2e5549c4eebcb99adf18e8d19bb2"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ad3782be7520e0bdb74a2ac1ec27d8d49"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ad3782be7520e0bdb74a2ac1ec27d8d49">normalization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &src, <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:ad3782be7520e0bdb74a2ac1ec27d8d49"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9b408e7726bf08bb8bb9a289ee622df3"><td class="memTemplParams" colspan="2">template<typename T , typename std::enable_if< is_floating_point< T >::value, int >::type > </td></tr> |
| <tr class="memitem:a9b408e7726bf08bb8bb9a289ee622df3"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a9b408e7726bf08bb8bb9a289ee622df3">pooling_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:a9b408e7726bf08bb8bb9a289ee622df3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aafa91a9cde1d264c9a234bb69fc86a3a"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aafa91a9cde1d264c9a234bb69fc86a3a">pooling_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:aafa91a9cde1d264c9a234bb69fc86a3a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:af1789f248f7ece261e772471ee497857"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#af1789f248f7ece261e772471ee497857">pooling_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src, <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:af1789f248f7ece261e772471ee497857"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ae9e2b2b91f2c8195675d81861bae19d6"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ae9e2b2b91f2c8195675d81861bae19d6">pooling_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &src, <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:ae9e2b2b91f2c8195675d81861bae19d6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2a84919eea23e2df4398efb5286c1403"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2a84919eea23e2df4398efb5286c1403">pooling_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &src, <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a> <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</td></tr> |
| <tr class="separator:a2a84919eea23e2df4398efb5286c1403"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a62fb59da715742ecee9c7ba8fbcd344d"><td class="memTemplParams" colspan="2">template<typename T , typename std::enable_if< is_floating_point< T >::value, int >::type > </td></tr> |
| <tr class="memitem:a62fb59da715742ecee9c7ba8fbcd344d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a62fb59da715742ecee9c7ba8fbcd344d">quantization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src)</td></tr> |
| <tr class="separator:a62fb59da715742ecee9c7ba8fbcd344d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ad3bc20f240f3917b6fc0cef0b49c8202"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ad3bc20f240f3917b6fc0cef0b49c8202">quantization_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src)</td></tr> |
| <tr class="separator:ad3bc20f240f3917b6fc0cef0b49c8202"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a0959ac5a94af6e44f1e2b3124d6511f4"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a0959ac5a94af6e44f1e2b3124d6511f4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a0959ac5a94af6e44f1e2b3124d6511f4">reduction_operation</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape, unsigned int axis, <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45b">ReductionOperation</a> op)</td></tr> |
| <tr class="separator:a0959ac5a94af6e44f1e2b3124d6511f4"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa87350949ad1bfc7a723b31f9b08bf48"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aa87350949ad1bfc7a723b31f9b08bf48">reduction_operation</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &dst_shape, unsigned int axis, <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45b">ReductionOperation</a> op)</td></tr> |
| <tr class="separator:aa87350949ad1bfc7a723b31f9b08bf48"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:adeeeba93b83ffdad47f4357c08cfea0e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:adeeeba93b83ffdad47f4357c08cfea0e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#adeeeba93b83ffdad47f4357c08cfea0e">reshape_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape)</td></tr> |
| <tr class="separator:adeeeba93b83ffdad47f4357c08cfea0e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:afea45dc2b397b75108739c4300aa18ad"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#afea45dc2b397b75108739c4300aa18ad">reshape_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape)</td></tr> |
| <tr class="separator:afea45dc2b397b75108739c4300aa18ad"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a572f373a0f24d9e7d749454280411318"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a572f373a0f24d9e7d749454280411318">reshape_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int8_t > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape)</td></tr> |
| <tr class="separator:a572f373a0f24d9e7d749454280411318"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a79a315f543d17f87f44d7b142e1efbbe"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a79a315f543d17f87f44d7b142e1efbbe">reshape_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint16_t > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape)</td></tr> |
| <tr class="separator:a79a315f543d17f87f44d7b142e1efbbe"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1b2ecbb6f4180bb42c65ed575c8fd313"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a1b2ecbb6f4180bb42c65ed575c8fd313">reshape_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape)</td></tr> |
| <tr class="separator:a1b2ecbb6f4180bb42c65ed575c8fd313"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a42623cecebd86038ac287252a1ead241"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint32_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a42623cecebd86038ac287252a1ead241">reshape_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint32_t > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape)</td></tr> |
| <tr class="separator:a42623cecebd86038ac287252a1ead241"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1406fe85a6bec4007f13cc57c4e99767"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int32_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a1406fe85a6bec4007f13cc57c4e99767">reshape_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int32_t > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape)</td></tr> |
| <tr class="separator:a1406fe85a6bec4007f13cc57c4e99767"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a60d98374b4adcd883653831e70b13b4c"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a60d98374b4adcd883653831e70b13b4c">reshape_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape)</td></tr> |
| <tr class="separator:a60d98374b4adcd883653831e70b13b4c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac3850e0704ba9d6ef260170e87ca1e66"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ac3850e0704ba9d6ef260170e87ca1e66">reshape_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &output_shape)</td></tr> |
| <tr class="separator:ac3850e0704ba9d6ef260170e87ca1e66"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2c08fc82f2e4b9733cd0dacd6eabe579"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a2c08fc82f2e4b9733cd0dacd6eabe579"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">scale</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &in, float scale_x, float scale_y, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, T constant_border_value)</td></tr> |
| <tr class="separator:a2c08fc82f2e4b9733cd0dacd6eabe579"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9daab5cda42ace9c365597bd108d0498"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a9daab5cda42ace9c365597bd108d0498">scale</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, float scale_x, float scale_y, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:a9daab5cda42ace9c365597bd108d0498"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a568158ce2891b0d97ddc5607150e27da"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a568158ce2891b0d97ddc5607150e27da">scale</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src, float scale_x, float scale_y, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, int16_t constant_border_value)</td></tr> |
| <tr class="separator:a568158ce2891b0d97ddc5607150e27da"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ad00179f43330d2c67fc89d38d2b63f23"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ad00179f43330d2c67fc89d38d2b63f23">scale</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src, float scale_x, float scale_y, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> constant_border_value)</td></tr> |
| <tr class="separator:ad00179f43330d2c67fc89d38d2b63f23"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8d8a03a157fc437903c617f00416c3ad"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a8d8a03a157fc437903c617f00416c3ad">scale</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src, float scale_x, float scale_y, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, float constant_border_value)</td></tr> |
| <tr class="separator:a8d8a03a157fc437903c617f00416c3ad"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab2abc08344c057ffd1ae0043f7d005a6"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr> |
| <tr class="memitem:ab2abc08344c057ffd1ae0043f7d005a6"><td class="memTemplItemLeft" align="right" valign="top">std::pair< <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T ><br class="typebreak"/> |
| , <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#ab2abc08344c057ffd1ae0043f7d005a6">sobel</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< U > &src, int filter_size, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:ab2abc08344c057ffd1ae0043f7d005a6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9d96f3d086bf8a1996d8c1a7ddfd9794"><td class="memItemLeft" align="right" valign="top">template std::pair<br class="typebreak"/> |
| < <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t ><br class="typebreak"/> |
| , <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a9d96f3d086bf8a1996d8c1a7ddfd9794">sobel</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, int filter_size, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:a9d96f3d086bf8a1996d8c1a7ddfd9794"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a856573f640c9c0f9b091299183597663"><td class="memTemplParams" colspan="2">template<typename T , typename std::enable_if< is_floating_point< T >::value, int >::type > </td></tr> |
| <tr class="memitem:a856573f640c9c0f9b091299183597663"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a856573f640c9c0f9b091299183597663">softmax_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src)</td></tr> |
| <tr class="separator:a856573f640c9c0f9b091299183597663"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a32ff73221df59e6aa387eb062c456d5b"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a32ff73221df59e6aa387eb062c456d5b">softmax_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > &src)</td></tr> |
| <tr class="separator:a32ff73221df59e6aa387eb062c456d5b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a589da1eaf38c3806576f2cd0cf9105bc"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a589da1eaf38c3806576f2cd0cf9105bc">softmax_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> > &src)</td></tr> |
| <tr class="separator:a589da1eaf38c3806576f2cd0cf9105bc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:af89324addc3fe39fb53f8b3ccf92ded3"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#af89324addc3fe39fb53f8b3ccf92ded3">softmax_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> > &src)</td></tr> |
| <tr class="separator:af89324addc3fe39fb53f8b3ccf92ded3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6c194e884eacf4e5388d468e773d0f53"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6c194e884eacf4e5388d468e773d0f53">softmax_layer</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> > &src)</td></tr> |
| <tr class="separator:a6c194e884eacf4e5388d468e773d0f53"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a935c4b1c0ddcd108097e6a4a7fd520e8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a935c4b1c0ddcd108097e6a4a7fd520e8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a935c4b1c0ddcd108097e6a4a7fd520e8">table_lookup</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, const std::map< T, T > &rawlut)</td></tr> |
| <tr class="separator:a935c4b1c0ddcd108097e6a4a7fd520e8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a3a87ef7fe41b158671d4cf7a511aebec"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a3a87ef7fe41b158671d4cf7a511aebec">table_lookup</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, const std::map< uint8_t, uint8_t > &rawlut)</td></tr> |
| <tr class="separator:a3a87ef7fe41b158671d4cf7a511aebec"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2860e24e7982ebd58891aae4d0a90ad0"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2860e24e7982ebd58891aae4d0a90ad0">table_lookup</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > &src, const std::map< int16_t, int16_t > &rawlut)</td></tr> |
| <tr class="separator:a2860e24e7982ebd58891aae4d0a90ad0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6cae310822a46019ba25a00ddb0f7e62"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a6cae310822a46019ba25a00ddb0f7e62"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">threshold</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, T threshold, T false_value, T true_value, <a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649">ThresholdType</a> type, T upper)</td></tr> |
| <tr class="separator:a6cae310822a46019ba25a00ddb0f7e62"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8a56f5d40af92249b49b8fabc89cfcd3"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a8a56f5d40af92249b49b8fabc89cfcd3">threshold</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, uint8_t threshold, uint8_t false_value, uint8_t true_value, <a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649">ThresholdType</a> type, uint8_t upper)</td></tr> |
| <tr class="separator:a8a56f5d40af92249b49b8fabc89cfcd3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a3064cbee60ab97935e8d1df617f82b5c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a3064cbee60ab97935e8d1df617f82b5c">valid_bilinear_policy</a> (float xn, float yn, int width, int height, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode)</td></tr> |
| <tr class="separator:a3064cbee60ab97935e8d1df617f82b5c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a97fb6802b7b8641c51fcc29aa03248ed"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a97fb6802b7b8641c51fcc29aa03248ed"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a97fb6802b7b8641c51fcc29aa03248ed">warp_affine</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &valid_mask, const float *matrix, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:a97fb6802b7b8641c51fcc29aa03248ed"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:acec59b1e80034018a6a0880bf29a130d"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#acec59b1e80034018a6a0880bf29a130d">warp_affine</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &valid_mask, const float *matrix, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:acec59b1e80034018a6a0880bf29a130d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a36be7020a6004680d96138fa8c300de7"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a36be7020a6004680d96138fa8c300de7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a36be7020a6004680d96138fa8c300de7">warp_perspective</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &src, <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > &valid_mask, const float *matrix, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:a36be7020a6004680d96138fa8c300de7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a29ddb612c916a0cd4c57ec03ceffd9b9"><td class="memItemLeft" align="right" valign="top">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a29ddb612c916a0cd4c57ec03ceffd9b9">warp_perspective</a> (const <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &src, <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > &valid_mask, const float *matrix, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr> |
| <tr class="separator:a29ddb612c916a0cd4c57ec03ceffd9b9"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <h2 class="groupheader">Function Documentation</h2> |
| <a class="anchor" id="ad1a73ce85cd5a4a689c605ade2bc8780"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > activation_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ActivationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_activation_layer_8cpp_source.xhtml#l00039">39</a> of file <a class="el" href="validation_2_c_p_p_2_activation_layer_8cpp_source.xhtml">ActivationLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00545">ActivationLayerInfo::a()</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaa7d8a220d2262f9d6c658d549ee12cf2c">ActivationLayerInfo::ABS</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00914">arm_compute::test::fixed_point_arithmetic::detail::abs()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00541">ActivationLayerInfo::activation()</a>, <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00549">ActivationLayerInfo::b()</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaacc516ab03b98f1c908ddf6ed4a7c45e9">ActivationLayerInfo::BOUNDED_RELU</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00924">arm_compute::test::fixed_point_arithmetic::detail::exp()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaac7e80a3de04936f4e423e1b564fdca10">ActivationLayerInfo::LEAKY_RELU</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaaaac544aacc3615aada24897a215f5046">ActivationLayerInfo::LINEAR</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00929">arm_compute::test::fixed_point_arithmetic::detail::log()</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaa72ee60fba0509af07cbbd91398d8db9d">ActivationLayerInfo::LOGISTIC</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaaab1d4411a9e7f5e82002512cddfdc33a">ActivationLayerInfo::LU_BOUNDED_RELU</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaad346bb4679d29be241279f15d7795c1c">ActivationLayerInfo::RELU</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaadcc44a50c791a591c74e00ecdda7c58d">ActivationLayerInfo::SOFT_RELU</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaa36875f2500a09ee35d0bb7eb8c0b91b0">ActivationLayerInfo::SQRT</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaa12dec4e1f7ec620651b2b95c440ffac0">ActivationLayerInfo::SQUARE</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaa143c8c6f51b9bb893ce71e38702e3cc1">ActivationLayerInfo::TANH</a>, and <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00939">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  SimpleTensor<T> dst{ src.shape(), src.data_type(), 1, src.fixed_point_position() };</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> T a(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.a());</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> T b(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.b());</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  T x = src[i];</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">switch</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.activation())</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  {</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::ABS:</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  dst[i] = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ae115fc750a92fb6a5e094998b56fcc56">std::abs</a>(x);</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LINEAR:</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  dst[i] = a * x + b;</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LOGISTIC:</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  dst[i] = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(1) / (static_cast<T>(1) + <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aa4e01e9be9adcc40a69a4da48fa83a43">std::exp</a>(-x));</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::RELU:</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  dst[i] = std::max<T>(<span class="keyword">static_cast<</span>T<span class="keyword">></span>(0), x);</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::BOUNDED_RELU:</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  dst[i] = std::min<T>(a, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(static_cast<T>(0), x));</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LU_BOUNDED_RELU:</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  dst[i] = std::min<T>(a, std::max<T>(b, x));</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LEAKY_RELU:</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  dst[i] = (x > 0) ? x : a * x;</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::SOFT_RELU:</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  dst[i] = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a8c8ce35c61b4f71cccec28d18161eaa1">std::log</a>(static_cast<T>(1) + <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aa4e01e9be9adcc40a69a4da48fa83a43">std::exp</a>(x));</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::SQRT:</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  dst[i] = std::sqrt(x);</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::SQUARE:</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  dst[i] = x * x;</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::TANH:</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  dst[i] = a * <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">std::tanh</a>(b * x);</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Unsupported activation function"</span>);</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aa4e01e9be9adcc40a69a4da48fa83a43"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aa4e01e9be9adcc40a69a4da48fa83a43">arm_compute::test::fixed_point_arithmetic::detail::exp</a></div><div class="ttdeci">fixed_point< T > exp(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00924">FixedPoint.h:924</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a096668313a9a819d54a2e65ec21ff0cc"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info</a></div><div class="ttdeci">src info() -> set_format(Format::S16)</div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_a8c8ce35c61b4f71cccec28d18161eaa1"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a8c8ce35c61b4f71cccec28d18161eaa1">arm_compute::test::fixed_point_arithmetic::detail::log</a></div><div class="ttdeci">fixed_point< T > log(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00929">FixedPoint.h:929</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_a6854479935f66029852441b051e1a3e0"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">arm_compute::test::fixed_point_arithmetic::detail::tanh</a></div><div class="ttdeci">fixed_point< T > tanh(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00939">FixedPoint.h:939</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ae115fc750a92fb6a5e094998b56fcc56"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ae115fc750a92fb6a5e094998b56fcc56">arm_compute::test::fixed_point_arithmetic::detail::abs</a></div><div class="ttdeci">fixed_point< T > abs(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00914">FixedPoint.h:914</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="ab45edd626ed376e74792b87d59ac7913"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::activation_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ActivationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="af2f52d261a58bf104da93a90f0171c34"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::activation_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ActivationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a6db4e198a18bcd309c95d93fea7fe255"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>> arm_compute::test::validation::reference::activation_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ActivationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a09bed76970c9539be9af1693a21180ca"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>> arm_compute::test::validation::reference::activation_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ActivationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ae98dcf5421f308ea7bb268ca7a37be5f"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > arithmetic_addition </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_arithmetic_addition_8cpp_source.xhtml#l00039">39</a> of file <a class="el" href="_c_p_p_2_arithmetic_addition_8cpp_source.xhtml">ArithmeticAddition.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86">arm_compute::SATURATE</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  SimpleTensor<T> result(src1.shape(), dst_data_type);</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">using</span> intermediate_type = <span class="keyword">typename</span> common_promoted_signed_type<T>::intermediate_type;</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src1.num_elements(); ++i)</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  intermediate_type val = <span class="keyword">static_cast<</span>intermediate_type<span class="keyword">></span>(src1[i]) + static_cast<intermediate_type>(src2[i]);</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  result[i] = (convert_policy == ConvertPolicy::SATURATE) ? saturate_cast<T>(val) : <span class="keyword">static_cast<</span>T<span class="keyword">></span>(val);</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">return</span> result;</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a9d398f98a548984dc3869c8394a821d3"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::arithmetic_addition </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a426be141440c207990cde03ce6982f19"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int16_t> arm_compute::test::validation::reference::arithmetic_addition </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ab3bad17e7cc30ec6052ff401a069b9df"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int8_t> arm_compute::test::validation::reference::arithmetic_addition </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a7f91038e9c76832b77e2ffc21d43da3b"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::arithmetic_addition </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a1564ce88519643851a20bae003f86c4b"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::arithmetic_addition </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ab85904ecf7e8eb65f8b77f8b20f6c109"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > arithmetic_subtraction </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_arithmetic_subtraction_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_c_p_p_2_arithmetic_subtraction_8cpp_source.xhtml">ArithmeticSubtraction.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86">arm_compute::SATURATE</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  SimpleTensor<T> result(src1.shape(), dst_data_type);</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">using</span> intermediate_type = <span class="keyword">typename</span> common_promoted_signed_type<T>::intermediate_type;</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src1.num_elements(); ++i)</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  intermediate_type val = <span class="keyword">static_cast<</span>intermediate_type<span class="keyword">></span>(src1[i]) - static_cast<intermediate_type>(src2[i]);</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  result[i] = (convert_policy == ConvertPolicy::SATURATE) ? saturate_cast<T>(val) : <span class="keyword">static_cast<</span>T<span class="keyword">></span>(val);</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  }</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> result;</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="ad5e0c329cc342bfb10db654421caeca5"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::arithmetic_subtraction </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a8d2f7dd1f6f4d926f83a715bb4143971"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int16_t> arm_compute::test::validation::reference::arithmetic_subtraction </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2965c3c1a64d212b9a363edc0da97570"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int8_t> arm_compute::test::validation::reference::arithmetic_subtraction </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ac8f64dd344b40ee01530079e83b54235"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::arithmetic_subtraction </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a94b79c69970cb70f27ed07fd8dcca2ef"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::arithmetic_subtraction </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dst_data_type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>convert_policy</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a7dc3318ccd1a590cd13f67d0b7133eb5"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > batch_normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>mean</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>var</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>beta</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>gamma</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>epsilon</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>fixed_point_position</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_batch_normalization_layer_8cpp_source.xhtml#l00039">39</a> of file <a class="el" href="validation_2_c_p_p_2_batch_normalization_layer_8cpp_source.xhtml">BatchNormalizationLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00934">arm_compute::test::fixed_point_arithmetic::detail::inv_sqrt()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00225">fixed_point< T >::raw()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  SimpleTensor<T> result(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> <span class="keyword">auto</span> cols = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(src.shape()[0]);</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> <span class="keyword">auto</span> rows = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(src.shape()[1]);</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> <span class="keyword">auto</span> depth = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(src.shape()[2]);</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordtype">int</span> upper_dims = src.shape().total_size() / (cols * rows * depth);</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r < upper_dims; ++r)</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < depth; ++i)</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k < rows; ++k)</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> l = 0; l < cols; ++l)</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> pos = l + k * cols + i * rows * cols + r * cols * rows * depth;</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  fixed_point_arithmetic::fixed_point<T> src_qs(src[pos], fixed_point_position, <span class="keyword">true</span>);</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  fixed_point_arithmetic::fixed_point<T> var_qs(var[i], fixed_point_position, <span class="keyword">true</span>);</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  fixed_point_arithmetic::fixed_point<T> mean_qs(mean[i], fixed_point_position, <span class="keyword">true</span>);</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  fixed_point_arithmetic::fixed_point<T> beta_qs(beta[i], fixed_point_position, <span class="keyword">true</span>);</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  fixed_point_arithmetic::fixed_point<T> gamma_qs(gamma[i], fixed_point_position, <span class="keyword">true</span>);</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  fixed_point_arithmetic::fixed_point<T> epsilon_qs(epsilon, fixed_point_position);</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">auto</span> denominator = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a2b7623d9dd3fde1d0a3bbe034967cff5">fixed_point_arithmetic::inv_sqrt</a>(var_qs + epsilon_qs);</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">auto</span> numerator = src_qs - mean_qs;</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">auto</span> x_bar = numerator * denominator;</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  x_bar = beta_qs + x_bar * gamma_qs;</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  result[pos] = x_bar.raw();</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">return</span> result;</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_a2b7623d9dd3fde1d0a3bbe034967cff5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a2b7623d9dd3fde1d0a3bbe034967cff5">arm_compute::test::fixed_point_arithmetic::detail::inv_sqrt</a></div><div class="ttdeci">fixed_point< T > inv_sqrt(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00934">FixedPoint.h:934</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="ab4756f017d831af39f56b6ddad64eb36"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::batch_normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>mean</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>var</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>beta</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>gamma</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>epsilon</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>fixed_point_position</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a833512b72a849556403efd62572ef455"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int8_t> arm_compute::test::validation::reference::batch_normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>mean</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>var</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>beta</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>gamma</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>epsilon</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>fixed_point_position</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ab7085e9ba2421046f0ac70d95629ebee"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int16_t> arm_compute::test::validation::reference::batch_normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>mean</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>var</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>beta</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>gamma</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>epsilon</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>fixed_point_position</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a18f9d09022ed3dcae3726a3bc4d04bd3"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::batch_normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>mean</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>var</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>beta</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>gamma</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>epsilon</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>fixed_point_position</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a7229d506620fd44c5916716f7bf696b2"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > bitwise_and </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src2</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_bitwise_and_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_c_p_p_2_bitwise_and_8cpp_source.xhtml">BitwiseAnd.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  SimpleTensor<T> dst(src1.shape(), src1.data_type());</div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src1.num_elements(); ++i)</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  dst[i] = src1[i] & src2[i];</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a55c7ec1e1273f65d37c51ff1d39a5d77"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::bitwise_and </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src2</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="af4713d48a2398823bcfd449c2aafef30"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > bitwise_not </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_bitwise_not_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_c_p_p_2_bitwise_not_8cpp_source.xhtml">BitwiseNot.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  SimpleTensor<T> dst(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  dst[i] = ~src[i];</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a003581bd71ae054b9b7ff70d975856d8"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::bitwise_not </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="abe5e573ce60f341bbeebd0498d8e499b"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > bitwise_or </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src2</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_bitwise_or_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_c_p_p_2_bitwise_or_8cpp_source.xhtml">BitwiseOr.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  SimpleTensor<T> dst(src1.shape(), src1.data_type());</div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src1.num_elements(); ++i)</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  dst[i] = src1[i] | src2[i];</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a89ed2687d967ec8a8ffc24195fbda72e"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::bitwise_or </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src2</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aade8c313bbf87320b8b8f81c5ff5aeac"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > bitwise_xor </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src2</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_bitwise_xor_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_c_p_p_2_bitwise_xor_8cpp_source.xhtml">BitwiseXor.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  SimpleTensor<T> dst(src1.shape(), src1.data_type());</div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src1.num_elements(); ++i)</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  dst[i] = src1[i] ^ src2[i];</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="af05c4e8f9356af6f59bb1e7f48b97d4d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::bitwise_xor </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src1</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src2</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aa048ec4655f2ebb10b8d1f301f60df69"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > box3x3 </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_box3x3_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_c_p_p_2_box3x3_8cpp_source.xhtml">Box3x3.cpp</a>.</p> |
| |
| <p>References <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00081">arm_compute::test::validation::apply_2d_spatial_filter()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00308">arm_compute::test::index2coord()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="_c_p_p_2_scale_8cpp_source.xhtml#l00039">scale()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">arm_compute::U</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  SimpleTensor<T> dst(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> std::array<T, 9> filter{ { 1, 1, 1, 1, 1, 1, 1, 1, 1 } };</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">scale</a> = 1.f / <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(filter.size());</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> element_idx = 0; element_idx < src.num_elements(); ++element_idx)</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  {</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> Coordinates <span class="keywordtype">id</span> = <a class="code" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a>(src.shape(), element_idx);</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">apply_2d_spatial_filter</a>(<span class="keywordtype">id</span>, src, dst, TensorShape(3U, 3U), filter.data(), <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">scale</a>, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a5d1175c32ed7ea771e8ea46c936ea5c7"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">arm_compute::test::validation::apply_2d_spatial_filter</a></div><div class="ttdeci">void apply_2d_spatial_filter(Coordinates coord, const SimpleTensor< T > &src, SimpleTensor< U > &dst, const TensorShape &filter_shape, const V *filter_itr, double scale, BorderMode border_mode, T constant_border_value=T(0))</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00081">Utils.h:81</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a24d8c0391cfa38e78969b6ad97c0ff09"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">arm_compute::test::index2coord</a></div><div class="ttdeci">Coordinates index2coord(const TensorShape &shape, int index)</div><div class="ttdoc">Convert a linear index into n-dimensional coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00308">Utils.h:308</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_a2c08fc82f2e4b9733cd0dacd6eabe579"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">arm_compute::test::validation::reference::scale</a></div><div class="ttdeci">SimpleTensor< T > scale(const SimpleTensor< T > &in, float scale_x, float scale_y, InterpolationPolicy policy, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_2_scale_8cpp_source.xhtml#l00039">Scale.cpp:39</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a2ff0714b006e333c893d87a928d88da6"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::box3x3 </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Referenced by <a class="el" href="_c_l_2_box3x3_8cpp_source.xhtml#l00053">arm_compute::test::validation::DATA_TEST_CASE()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a9585c7c2f19c8c051da1d927d3687e70"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void arm_compute::test::validation::reference::compute_min_max </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T & </td> |
| <td class="paramname"><em>min</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T & </td> |
| <td class="paramname"><em>max</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_min_max_location_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_c_p_p_2_min_max_location_8cpp_source.xhtml">MinMaxLocation.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="comment">// Set min and max to first pixel</span></div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a> = src[0];</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">max</a> = src[0];</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(src.num_elements() == 0);</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// Look for min and max values</span></div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span>(src[i] < <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>)</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a> = src[i];</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">if</span>(src[i] > <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">max</a>)</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">max</a> = src[i];</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="aeec300028ef21b06bc60da82c894a010"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > convolution_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_convolution_layer_8cpp_source.xhtml#l00137">137</a> of file <a class="el" href="validation_2_c_p_p_2_convolution_layer_8cpp_source.xhtml">ConvolutionLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00429">PadStrideInfo::pad()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00425">PadStrideInfo::stride()</a>.</p> |
| |
| <p>Referenced by <a class="el" href="validation_2_c_p_p_2_depthwise_separable_convolution_layer_8cpp_source.xhtml#l00043">depthwise_separable_convolution_layer()</a>, and <a class="el" href="_alex_net_network_8h_source.xhtml#l00057">AlexNetNetwork< ITensorType, TensorType, SubTensorType, arm_compute::test::Accessor, ActivationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, FullyConnectedLayerFunction, NormalizationLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction >::init()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div> |
| <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  SimpleTensor<T> dst{ output_shape, src.data_type(), 1, src.fixed_point_position() };</div> |
| <div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div> |
| <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width_in = src.shape().x();</div> |
| <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> height_in = src.shape().y();</div> |
| <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> depth_in = src.shape().z();</div> |
| <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width_out = dst.shape().x();</div> |
| <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> height_out = dst.shape().y();</div> |
| <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> depth_out = dst.shape().z();</div> |
| <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width_weights = weights.shape().x();</div> |
| <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> height_weights = weights.shape().y();</div> |
| <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> depth_weights = weights.shape().z();</div> |
| <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> pad_xi = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(static_cast<int>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pad().first), width_weights / 2);</div> |
| <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> pad_yi = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(static_cast<int>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pad().second), height_weights / 2);</div> |
| <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> start_xi = width_weights / 2 - pad_xi;</div> |
| <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> start_yi = height_weights / 2 - pad_yi;</div> |
| <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> end_xi = width_in - start_xi;</div> |
| <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> end_yi = height_in - start_yi;</div> |
| <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> stride_xi = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.stride().first;</div> |
| <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> stride_yi = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.stride().second;</div> |
| <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> num_batches = src.shape().total_size() / (width_in * height_in * depth_in);</div> |
| <div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div> |
| <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r < num_batches; ++r)</div> |
| <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  {</div> |
| <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> yi = start_yi; yi < end_yi; yi += stride_yi)</div> |
| <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div> |
| <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> xi = start_xi; xi < end_xi; xi += stride_xi)</div> |
| <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  {</div> |
| <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ofm = 0; ofm < depth_out; ++ofm)</div> |
| <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  {</div> |
| <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// Compute input and output offsets</span></div> |
| <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> offset_in = r * width_in * height_in * depth_in;</div> |
| <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> xo = (xi - start_xi) / stride_xi;</div> |
| <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> yo = (yi - start_yi) / stride_yi;</div> |
| <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> offset_out = xo + yo * width_out + ofm * width_out * height_out + r * width_out * height_out * depth_out;</div> |
| <div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div> |
| <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// Compute 3D convolution</span></div> |
| <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  convolution3d(src.data() + offset_in,</div> |
| <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  weights.data() + ofm * width_weights * height_weights * depth_weights,</div> |
| <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  bias.data() + ofm,</div> |
| <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  dst.data() + offset_out,</div> |
| <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  xi, yi,</div> |
| <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  width_in, height_in, depth_in,</div> |
| <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  width_weights, height_weights,</div> |
| <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  src.fixed_point_position());</div> |
| <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div> |
| <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div> |
| <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div> |
| <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div> |
| <div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div> |
| <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00191"></a><span class="lineno"> 191</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a096668313a9a819d54a2e65ec21ff0cc"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info</a></div><div class="ttdeci">src info() -> set_format(Format::S16)</div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="ac0a0d3a8a94f2f011d2969ff6b6c591f"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::convolution_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="acb8d139aa02479d9c5c0d2fcbda92383"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::convolution_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a1196fd13dfe164c3b3ac509c2f577b98"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>> arm_compute::test::validation::reference::convolution_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a043cd6bdf09803218b2e5366ffc9439d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>> arm_compute::test::validation::reference::convolution_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a742cdbdf3c1db76c9a189f1bcd745579"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T2 > depth_convert </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T1 > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dt_out</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>shift</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_depth_convert_8cpp_source.xhtml#l00040">40</a> of file <a class="el" href="_c_p_p_2_depth_convert_8cpp_source.xhtml">DepthConvert.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(policy);</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(shift);</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">using namespace </span>fixed_point_arithmetic;</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  SimpleTensor<T2> result(src.shape(), dt_out);</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> fixed_point_position = src.fixed_point_position();</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  result[i] = <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(fixed_point<T1>(src[i], fixed_point_position, <span class="keyword">true</span>));</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">return</span> result;</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a87c420d7f8a98dead76b0b32b2df6777"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int32_t > depth_convert </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dt_out</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>shift</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aa23e45fa7a8f9f196704d4473721d6ab"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint32_t > depth_convert </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dt_out</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>shift</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a968f4da89a68d28ad39d8e39d8d19f93"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > depth_convert </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dt_out</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>shift</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ae3f03fb276c241cb8545e8f19b0718dc"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::depth_convert </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dt_out</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>shift</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a77181952330fca74c9b3528f9a51fa10"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int16_t > depth_convert </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">DataType </td> |
| <td class="paramname"><em>dt_out</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ConvertPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>shift</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aaca2b6bea6bd88fd39489d1104497330"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > depthconcatenate_layer </td> |
| <td>(</td> |
| <td class="paramtype">const std::vector< SimpleTensor< T >> & </td> |
| <td class="paramname"><em>srcs</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_depth_concatenate_layer_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_c_p_p_2_depth_concatenate_layer_8cpp_source.xhtml">DepthConcatenateLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8cpp_source.xhtml#l00074">arm_compute::test::validation::calculate_depth_concatenate_shape()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">arm_compute::UNKNOWN</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  std::vector<TensorShape> shapes;</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &src : srcs)</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  {</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  shapes.emplace_back(src.shape());</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dst_type = srcs.empty() ? DataType::UNKNOWN : srcs[0].data_type();</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  TensorShape dst_shape = <a class="code" href="namespacearm__compute.xhtml#a075313545533c34978309ed57d18333f">calculate_depth_concatenate_shape</a>(shapes);</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  SimpleTensor<T> dst(dst_shape, dst_type);</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordtype">int</span> depth_offset = 0;</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width_out = dst.shape().x();</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> height_out = dst.shape().y();</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> depth_out = dst.shape().z();</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> out_stride_z = width_out * height_out;</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> batches = dst.shape().total_size_upper(3);</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// Set output tensor to 0</span></div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  std::fill_n(dst.data(), dst.num_elements(), 0);</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &src : srcs)</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(depth_offset >= depth_out);</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(batches != static_cast<int>(src.shape().total_size_upper(3)));</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width = src.shape().x();</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> height = src.shape().y();</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> depth = src.shape().z();</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> x_diff = (width_out - width) / 2;</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> y_diff = (height_out - height) / 2;</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">const</span> T *src_ptr = src.data();</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> b = 0; b < batches; ++b)</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> offset_to_first_element = b * out_stride_z * depth_out + depth_offset * out_stride_z + y_diff * width_out + x_diff;</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> d = 0; d < depth; ++d)</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r < height; ++r)</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  std::copy(src_ptr, src_ptr + width, dst.data() + offset_to_first_element + d * out_stride_z + r * width_out);</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  src_ptr += width;</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  depth_offset += depth;</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div> |
| <div class="ttc" id="namespacearm__compute_xhtml_a075313545533c34978309ed57d18333f"><div class="ttname"><a href="namespacearm__compute.xhtml#a075313545533c34978309ed57d18333f">arm_compute::calculate_depth_concatenate_shape</a></div><div class="ttdeci">TensorShape calculate_depth_concatenate_shape(const std::vector< T * > &inputs_vector)</div><div class="ttdoc">Calculate the output shapes of the depth concatenate function. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l00430">Utils.h:430</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">arm_compute::DataType</a></div><div class="ttdeci">DataType</div><div class="ttdoc">Available data types. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00064">Types.h:64</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a998bf347ddc146fb533250b9ef9ce927"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::depthconcatenate_layer </td> |
| <td>(</td> |
| <td class="paramtype">const std::vector< SimpleTensor< float >> & </td> |
| <td class="paramname"><em>srcs</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a8a116b530186cf21c5f6c7da7acbd178"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::depthconcatenate_layer </td> |
| <td>(</td> |
| <td class="paramtype">const std::vector< SimpleTensor< half >> & </td> |
| <td class="paramname"><em>srcs</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ab9d829efe5d789bf902be0ecdc42ee7f"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>> arm_compute::test::validation::reference::depthconcatenate_layer </td> |
| <td>(</td> |
| <td class="paramtype">const std::vector< SimpleTensor< qint8_t >> & </td> |
| <td class="paramname"><em>srcs</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a05d54bc26134fcc90aa9889fd85beaad"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>> arm_compute::test::validation::reference::depthconcatenate_layer </td> |
| <td>(</td> |
| <td class="paramtype">const std::vector< SimpleTensor< qint16_t >> & </td> |
| <td class="paramname"><em>srcs</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a9f8ec1b43b35c3c618cbacbbb4608b3b"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > depthwise_convolution </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>conv_info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Perform a depthwise convolution. </p> |
| <ul> |
| <li>Three dimensions tensors</li> |
| <li>Third dimention is number of channels</li> |
| <li>Depths of input tensor and filter are equals</li> |
| <li>Padding, stride and output shape "match" </li> |
| </ul> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_depthwise_convolution_8cpp_source.xhtml#l00048">48</a> of file <a class="el" href="validation_2_c_p_p_2_depthwise_convolution_8cpp_source.xhtml">DepthwiseConvolution.cpp</a>.</p> |
| |
| <p>References <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">arm_compute::CONSTANT</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00429">PadStrideInfo::pad()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00278">arm_compute::test::saturate_cast()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00074">Dimensions< T >::set()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00425">PadStrideInfo::stride()</a>, and <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">arm_compute::test::validation::tensor_elem_at()</a>.</p> |
| |
| <p>Referenced by <a class="el" href="validation_2_c_p_p_2_depthwise_separable_convolution_layer_8cpp_source.xhtml#l00043">depthwise_separable_convolution_layer()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  SimpleTensor<T> dst{ dst_shape, src.data_type(), 1, src.fixed_point_position() };</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> filter_width = weights.shape().x();</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> filter_height = weights.shape().y();</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> filter_plane = filter_width * filter_height;</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> input_width = src.shape().x();</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> input_height = src.shape().y();</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> input_depth = src.shape().z();</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> num_batches = src.shape().total_size() / (input_width * input_height * input_depth);</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> filter_half_width = filter_width / 2;</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> filter_half_height = filter_height / 2;</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> pad_x = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(filter_half_width, static_cast<size_t>(conv_info.pad().first));</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> pad_y = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(filter_half_height, static_cast<size_t>(conv_info.pad().second));</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> minimum_x = -pad_x + filter_half_width;</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> minimum_y = -pad_y + filter_half_height;</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">int</span> out_pos = 0;</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r < num_batches; ++r)</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> z = 0; z < input_depth; ++z)</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> y = minimum_y; y < input_height - minimum_y; y += conv_info.stride().second)</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> x = minimum_x; x < input_width - minimum_x; x += conv_info.stride().first)</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  Coordinates coords(static_cast<int>(x), static_cast<int>(y), static_cast<int>(z), static_cast<int>(r));</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordtype">size_t</span> filter_offset = filter_plane * z;</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  T val = 0;</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = y - filter_half_height; j <= static_cast<int>(y + filter_half_height); ++j)</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = x - filter_half_width; i <= static_cast<int>(x + filter_half_width); ++i)</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  coords.set(0, i);</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  coords.set(1, j);</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  val += *(weights.data() + filter_offset) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, coords, BorderMode::CONSTANT, 0.f);</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  ++filter_offset;</div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  coords.set(0, x);</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  coords.set(1, y);</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  dst[out_pos++] = <a class="code" href="namespacearm__compute_1_1test.xhtml#a4965b2f6821e0cf0afee738158bd8377">saturate_cast</a><T>(val);</div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div> |
| <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div> |
| <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div> |
| <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div> |
| <div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a4f489943d8618d47b1ad4611f0b9b7ff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">arm_compute::test::validation::tensor_elem_at</a></div><div class="ttdeci">T tensor_elem_at(const SimpleTensor< T > &src, Coordinates coord, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">Utils.h:46</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a4965b2f6821e0cf0afee738158bd8377"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a4965b2f6821e0cf0afee738158bd8377">arm_compute::test::saturate_cast</a></div><div class="ttdeci">T saturate_cast(T val)</div><div class="ttdoc">Saturate a value of type T against the numeric limits of type U. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00278">Utils.h:278</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a07eb27301d565f8f4018310e3dd000c3"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::depthwise_convolution </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>conv_info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a001cc2899961f6e89ad6a775339cf5c4"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > depthwise_separable_convolution_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>depthwise_weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>depthwise_out_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>pointwise_weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>biases</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>depthwise_conv_info</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>pointwise_conv_info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_depthwise_separable_convolution_layer_8cpp_source.xhtml#l00043">43</a> of file <a class="el" href="validation_2_c_p_p_2_depthwise_separable_convolution_layer_8cpp_source.xhtml">DepthwiseSeparableConvolutionLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="validation_2_c_p_p_2_convolution_layer_8cpp_source.xhtml#l00137">convolution_layer()</a>, and <a class="el" href="validation_2_c_p_p_2_depthwise_convolution_8cpp_source.xhtml#l00048">depthwise_convolution()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  SimpleTensor<T> depthwise_out = <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a9f8ec1b43b35c3c618cbacbbb4608b3b">depthwise_convolution</a>(src, depthwise_weights, depthwise_out_shape, depthwise_conv_info);</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  SimpleTensor<T> dst = <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aeec300028ef21b06bc60da82c894a010">convolution_layer</a>(depthwise_out, pointwise_weights, biases, dst_shape, pointwise_conv_info);</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_aeec300028ef21b06bc60da82c894a010"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#aeec300028ef21b06bc60da82c894a010">arm_compute::test::validation::reference::convolution_layer</a></div><div class="ttdeci">SimpleTensor< T > convolution_layer(const SimpleTensor< T > &src, const SimpleTensor< T > &weights, const SimpleTensor< T > &bias, const TensorShape &output_shape, const PadStrideInfo &info)</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_p_p_2_convolution_layer_8cpp_source.xhtml#l00137">ConvolutionLayer.cpp:137</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_a9f8ec1b43b35c3c618cbacbbb4608b3b"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a9f8ec1b43b35c3c618cbacbbb4608b3b">arm_compute::test::validation::reference::depthwise_convolution</a></div><div class="ttdeci">SimpleTensor< T > depthwise_convolution(const SimpleTensor< T > &src, const SimpleTensor< T > &weights, const TensorShape &dst_shape, const PadStrideInfo &conv_info)</div><div class="ttdoc">Perform a depthwise convolution. </div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_p_p_2_depthwise_convolution_8cpp_source.xhtml#l00048">DepthwiseConvolution.cpp:48</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a6b86c6d4d446e068d2eaf96b67c2dfed"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::depthwise_separable_convolution_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>in</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>depthwise_weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>depthwise_out_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>pointwise_weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>biases</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>depthwise_conv_info</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const PadStrideInfo & </td> |
| <td class="paramname"><em>pointwise_conv_info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ab77dd3bd732636010753d8080608cd3c"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< float > dequantization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>min_max</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_dequantization_layer_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_c_p_p_2_dequantization_layer_8cpp_source.xhtml">DequantizationLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::F32</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00145">TensorShape::total_size_upper()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  SimpleTensor<float> dst{ src.shape(), DataType::F32 };</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width = src.shape().x();</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> height = src.shape().y();</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> depth = src.shape().z();</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> stride_w = width * height * depth;</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> num_batches = min_max.<a class="code" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml#aba5871b3e4a65d057ec1c28fce8b00ba">shape</a>().<a class="code" href="classarm__compute_1_1_tensor_shape.xhtml#a91d8061f66e7f8bc56da91d965f04376">total_size_upper</a>(1);</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k < num_batches; ++k)</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a> = min_max[k * 2 + 0];</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">max</a> = min_max[k * 2 + 1];</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> range = max - <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>;</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> scaling = range / 255.0f;</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < stride_w; ++i)</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  dst[i + k * stride_w] = (<span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(src[i + k * stride_w]) * scaling) + <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>;</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1test_1_1_simple_tensor_xhtml_aba5871b3e4a65d057ec1c28fce8b00ba"><div class="ttname"><a href="classarm__compute_1_1test_1_1_simple_tensor.xhtml#aba5871b3e4a65d057ec1c28fce8b00ba">arm_compute::test::SimpleTensor::shape</a></div><div class="ttdeci">TensorShape shape() const override</div><div class="ttdoc">Shape of the tensor. </div><div class="ttdef"><b>Definition:</b> <a href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor.h:234</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1_tensor_shape_xhtml_a91d8061f66e7f8bc56da91d965f04376"><div class="ttname"><a href="classarm__compute_1_1_tensor_shape.xhtml#a91d8061f66e7f8bc56da91d965f04376">arm_compute::TensorShape::total_size_upper</a></div><div class="ttdeci">size_t total_size_upper(size_t dimension) const </div><div class="ttdoc">Collapses given dimension and above. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_shape_8h_source.xhtml#l00145">TensorShape.h:145</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a6633ef7fc0852265b2f158a5ef7ae900"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::dequantization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>min_max</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a745ca5afa4399233e2e967238a614648"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > fixed_point_operation </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">FixedPointOp </td> |
| <td class="paramname"><em>op</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_fixed_point_8cpp_source.xhtml#l00039">39</a> of file <a class="el" href="_c_p_p_2_fixed_point_8cpp_source.xhtml">FixedPoint.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00909">arm_compute::test::fixed_point_arithmetic::detail::div()</a>, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7">arm_compute::EXP</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00924">arm_compute::test::fixed_point_arithmetic::detail::exp()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b">arm_compute::INV_SQRT</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00934">arm_compute::test::fixed_point_arithmetic::detail::inv_sqrt()</a>, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3">arm_compute::LOG</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00929">arm_compute::test::fixed_point_arithmetic::detail::log()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1">arm_compute::RECIPROCAL</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  SimpleTensor<T> result(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> p = src.fixed_point_position();</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">switch</span>(op)</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">case</span> FixedPointOp::EXP:</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  result[i] = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aa4e01e9be9adcc40a69a4da48fa83a43">fixed_point_arithmetic::exp</a>(fixed_point_arithmetic::fixed_point<T>(src[i], p, <span class="keyword">true</span>)).raw();</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">case</span> FixedPointOp::LOG:</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  result[i] = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a8c8ce35c61b4f71cccec28d18161eaa1">fixed_point_arithmetic::log</a>(fixed_point_arithmetic::fixed_point<T>(src[i], p, <span class="keyword">true</span>)).raw();</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">case</span> FixedPointOp::INV_SQRT:</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  result[i] = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a2b7623d9dd3fde1d0a3bbe034967cff5">fixed_point_arithmetic::inv_sqrt</a>(fixed_point_arithmetic::fixed_point<T>(src[i], p, <span class="keyword">true</span>)).raw();</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">case</span> FixedPointOp::RECIPROCAL:</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  result[i] = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a9d53af9692ab2f7ae6fc0017faeb46f0">fixed_point_arithmetic::div</a>(fixed_point_arithmetic::fixed_point<T>(1, p), fixed_point_arithmetic::fixed_point<T>(src[i], p, <span class="keyword">true</span>)).raw();</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Fixed point operation not supported"</span>);</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> result;</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aa4e01e9be9adcc40a69a4da48fa83a43"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aa4e01e9be9adcc40a69a4da48fa83a43">arm_compute::test::fixed_point_arithmetic::detail::exp</a></div><div class="ttdeci">fixed_point< T > exp(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00924">FixedPoint.h:924</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_a8c8ce35c61b4f71cccec28d18161eaa1"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a8c8ce35c61b4f71cccec28d18161eaa1">arm_compute::test::fixed_point_arithmetic::detail::log</a></div><div class="ttdeci">fixed_point< T > log(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00929">FixedPoint.h:929</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_a2b7623d9dd3fde1d0a3bbe034967cff5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a2b7623d9dd3fde1d0a3bbe034967cff5">arm_compute::test::fixed_point_arithmetic::detail::inv_sqrt</a></div><div class="ttdeci">fixed_point< T > inv_sqrt(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00934">FixedPoint.h:934</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_a9d53af9692ab2f7ae6fc0017faeb46f0"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a9d53af9692ab2f7ae6fc0017faeb46f0">arm_compute::test::fixed_point_arithmetic::detail::div</a></div><div class="ttdeci">fixed_point< T > div(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00909">FixedPoint.h:909</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a98070661bf8ba9b1f4566354956a66ce"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int8_t> arm_compute::test::validation::reference::fixed_point_operation </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">FixedPointOp </td> |
| <td class="paramname"><em>op</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ac4d1af4ea557e17c82d189de96f41619"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int16_t> arm_compute::test::validation::reference::fixed_point_operation </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">FixedPointOp </td> |
| <td class="paramname"><em>op</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a33d228262e4f4d071d5d188ffddcc8ac"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > flatten_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_flatten_layer_8cpp_source.xhtml#l00037">37</a> of file <a class="el" href="_flatten_layer_8cpp_source.xhtml">FlattenLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00074">TensorShape::set()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  TensorShape shape_flatten(src.shape());</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  shape_flatten.set(0, src.shape()[0] * src.shape()[1] * src.shape()[2]);</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  shape_flatten.remove_dimension(1);</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  shape_flatten.remove_dimension(1);</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  SimpleTensor<T> dst(shape_flatten, src.data_type(), 1, src.fixed_point_position());</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// Note: Since the reference implementation does not use padding bytes, we can copy directly the content of the source tensor</span></div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  std::copy(src.data(), src.data() + src.num_elements(), dst.data());</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="aba4e68b4d0f8fa70109062ffbbb7a877"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::flatten_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a25907a4887aa2edaa8cebe140bd7b9c0"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::flatten_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a85acbada271bb0feecdb6e1a2c887574"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>> arm_compute::test::validation::reference::flatten_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a3e4fbac72d0548bc22a4ae03b419204d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>> arm_compute::test::validation::reference::flatten_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a6c81be98812b8cb462be45d9e3d21464"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > floor_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_floor_8cpp_source.xhtml#l00039">39</a> of file <a class="el" href="validation_2_c_p_p_2_floor_8cpp_source.xhtml">Floor.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  SimpleTensor<T> dst{ src.shape(), src.data_type() };</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  dst[i] = std::floor(src[i]);</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  }</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a0aa1e471728da9ae3dd19f50fa4ef1b0"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::floor_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2211dde69485a1533f0b86430e9d0588"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > fully_connected_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_fully_connected_layer_8cpp_source.xhtml#l00089">89</a> of file <a class="el" href="validation_2_c_p_p_2_fully_connected_layer_8cpp_source.xhtml">FullyConnectedLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00109">Dimensions< T >::num_dimensions()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00145">TensorShape::total_size_upper()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> {</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  SimpleTensor<T> dst{ TensorShape{ dst_shape }, src.data_type(), 1, src.fixed_point_position() };</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// Sanity checks</span></div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> num_batch_dimensions = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, static_cast<int>(dst_shape.num_dimensions()) - 1);</div> |
| <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> num_input_dimensions = src.shape().num_dimensions() - num_batch_dimensions;</div> |
| <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> linear_input_size = src.shape().total_size_lower(num_input_dimensions);</div> |
| <div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div> |
| <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(num_batch_dimensions);</div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(num_input_dimensions);</div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(linear_input_size);</div> |
| <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(weights.shape().x() != linear_input_size);</div> |
| <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(weights.shape().y() != bias.shape().x());</div> |
| <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(weights.shape().y() != dst.shape().x());</div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div> |
| <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> cols_weights = weights.shape().x();</div> |
| <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> rows_weights = weights.shape().y();</div> |
| <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> num_batches = dst_shape.total_size_upper(1);</div> |
| <div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div> |
| <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k < num_batches; ++k)</div> |
| <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div> |
| <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  vector_matrix_multiply<T>(src.data() + k * cols_weights,</div> |
| <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  weights.data(),</div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  bias.data(),</div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  dst.data() + k * rows_weights,</div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  cols_weights,</div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  rows_weights,</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  src.fixed_point_position());</div> |
| <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div> |
| <div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div> |
| <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00123"></a><span class="lineno"> 123</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a843363150af3e3fedf2582aaa7e3a4a8"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::fully_connected_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ac11b244329e583c4695ef44cc03630bc"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::fully_connected_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ab82c5ef588e5cc0e80fba92f2460aed6"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>> arm_compute::test::validation::reference::fully_connected_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a9a781850308f2eee7db6bc0a9693ccde"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>> arm_compute::test::validation::reference::fully_connected_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>weights</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>bias</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a08625a89b22993b65e923139bdf3b9e1"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > gaussian3x3 </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_gaussian3x3_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_c_p_p_2_gaussian3x3_8cpp_source.xhtml">Gaussian3x3.cpp</a>.</p> |
| |
| <p>References <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00081">arm_compute::test::validation::apply_2d_spatial_filter()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00308">arm_compute::test::index2coord()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="_c_p_p_2_scale_8cpp_source.xhtml#l00039">scale()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">arm_compute::U</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  SimpleTensor<T> dst(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> std::array<T, 9> filter{ { 1, 2, 1, 2, 4, 2, 1, 2, 1 } };</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">scale</a> = 1.f / 16.f;</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> element_idx = 0; element_idx < src.num_elements(); ++element_idx)</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  {</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> Coordinates <span class="keywordtype">id</span> = <a class="code" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a>(src.shape(), element_idx);</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">apply_2d_spatial_filter</a>(<span class="keywordtype">id</span>, src, dst, TensorShape(3U, 3U), filter.data(), <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">scale</a>, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a5d1175c32ed7ea771e8ea46c936ea5c7"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">arm_compute::test::validation::apply_2d_spatial_filter</a></div><div class="ttdeci">void apply_2d_spatial_filter(Coordinates coord, const SimpleTensor< T > &src, SimpleTensor< U > &dst, const TensorShape &filter_shape, const V *filter_itr, double scale, BorderMode border_mode, T constant_border_value=T(0))</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00081">Utils.h:81</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a24d8c0391cfa38e78969b6ad97c0ff09"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">arm_compute::test::index2coord</a></div><div class="ttdeci">Coordinates index2coord(const TensorShape &shape, int index)</div><div class="ttdoc">Convert a linear index into n-dimensional coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00308">Utils.h:308</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_a2c08fc82f2e4b9733cd0dacd6eabe579"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">arm_compute::test::validation::reference::scale</a></div><div class="ttdeci">SimpleTensor< T > scale(const SimpleTensor< T > &in, float scale_x, float scale_y, InterpolationPolicy policy, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_2_scale_8cpp_source.xhtml#l00039">Scale.cpp:39</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a0bf5cc0e54ac74aee07c3034844a27f8"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::gaussian3x3 </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ae74885d96f07f242e6974979cce5673b"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > gaussian5x5 </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_gaussian5x5_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_c_p_p_2_gaussian5x5_8cpp_source.xhtml">Gaussian5x5.cpp</a>.</p> |
| |
| <p>References <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00081">arm_compute::test::validation::apply_2d_spatial_filter()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00308">arm_compute::test::index2coord()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="_c_p_p_2_scale_8cpp_source.xhtml#l00039">scale()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">arm_compute::U</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  SimpleTensor<T> dst(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> std::array<T, 25> filter{ {</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  1, 4, 6, 4, 1,</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  4, 16, 24, 16, 4,</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  6, 24, 36, 24, 6,</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  4, 16, 24, 16, 4,</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  1, 4, 6, 4, 1</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  } };</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">scale</a> = 1.f / 256.f;</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> element_idx = 0; element_idx < src.num_elements(); ++element_idx)</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">const</span> Coordinates <span class="keywordtype">id</span> = <a class="code" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a>(src.shape(), element_idx);</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">apply_2d_spatial_filter</a>(<span class="keywordtype">id</span>, src, dst, TensorShape(5U, 5U), filter.data(), <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">scale</a>, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a5d1175c32ed7ea771e8ea46c936ea5c7"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">arm_compute::test::validation::apply_2d_spatial_filter</a></div><div class="ttdeci">void apply_2d_spatial_filter(Coordinates coord, const SimpleTensor< T > &src, SimpleTensor< U > &dst, const TensorShape &filter_shape, const V *filter_itr, double scale, BorderMode border_mode, T constant_border_value=T(0))</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00081">Utils.h:81</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a24d8c0391cfa38e78969b6ad97c0ff09"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">arm_compute::test::index2coord</a></div><div class="ttdeci">Coordinates index2coord(const TensorShape &shape, int index)</div><div class="ttdoc">Convert a linear index into n-dimensional coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00308">Utils.h:308</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_a2c08fc82f2e4b9733cd0dacd6eabe579"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a2c08fc82f2e4b9733cd0dacd6eabe579">arm_compute::test::validation::reference::scale</a></div><div class="ttdeci">SimpleTensor< T > scale(const SimpleTensor< T > &in, float scale_x, float scale_y, InterpolationPolicy policy, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_2_scale_8cpp_source.xhtml#l00039">Scale.cpp:39</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a45e01cc48f39327d25187bfc0ab27287"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::gaussian5x5 </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aa8bf3ead30905547609084db58ee70de"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > gemm </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>a</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>b</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>c</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>alpha</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>beta</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_g_e_m_m_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="validation_2_c_p_p_2_g_e_m_m_8cpp_source.xhtml">GEMM.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  SimpleTensor<T> dst{ c.shape(), c.data_type(), 1, c.fixed_point_position() };</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> M = dst.shape().y();</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> N = dst.shape().x();</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> K = a.shape().x();</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> row = 0; row < M; ++row)</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> col = 0; col < N; ++col)</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  T acc(0);</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k < K; ++k)</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  acc += a[row * K + k] * b[k * N + col];</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// Finalize the result: alpha * A * B + beta * C</span></div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  dst[col + row * N] = alpha * acc + beta * c[col + row * N];</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="acc8055ed1ae62ec87a4b389047c1464a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::gemm </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>a</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>b</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>c</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>alpha</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>beta</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ae62fed24d8b0bf2e0b74d81bbe92df38"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::gemm </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>a</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>b</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>c</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>alpha</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>beta</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a37ab0d11ac78c506c87200005ea33b43"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>> arm_compute::test::validation::reference::gemm </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>a</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>b</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>c</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>alpha</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>beta</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="acebd35396a1f8b1eddab16a509ae0a29"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>> arm_compute::test::validation::reference::gemm </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>a</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>b</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>c</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>alpha</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>beta</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Referenced by <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00064">arm_compute::test::validation::DATA_TEST_CASE()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a1313eff6c71b0b3cd56cb6a1592c25a7"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > gemmlowp </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>a</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>b</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">SimpleTensor< T > & </td> |
| <td class="paramname"><em>c</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>a_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>b_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>c_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>c_mult_int</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>out_shift</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_g_e_m_m_lowp_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_c_p_p_2_g_e_m_m_lowp_8cpp_source.xhtml">GEMMLowp.cpp</a>.</p> |
| |
| <p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> K = a.shape().x();</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> b_width = b.shape().x();</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> rows = c.shape().y(); <span class="comment">//M</span></div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> cols = c.shape().x(); <span class="comment">//N</span></div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  std::vector<int32_t> acc;</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  acc.resize(cols);</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < rows; ++i)</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j < cols; ++j)</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  acc[j] = 0;</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k < K; ++k)</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">const</span> int32_t tmp_a = a_offset + <span class="keyword">static_cast<</span>int32_t<span class="keyword">></span>(a[k + i * K]);</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j < b_width; ++j)</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> int32_t tmp_b = b_offset + <span class="keyword">static_cast<</span>int32_t<span class="keyword">></span>(b[j + k * b_width]);</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">const</span> int32_t mult_as_int = tmp_a * tmp_b;</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  acc[j] += mult_as_int;</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j < cols; ++j)</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> int32_t result = ((c_offset + acc[j]) * c_mult_int) >> out_shift;</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  c[j + i * cols] = <span class="keyword">static_cast<</span>uint8_t<span class="keyword">></span>(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(255, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, result)));</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span> c;</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="aae8ba97f3019d90146956ebc8c138999"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::gemmlowp </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>a</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>b</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>c</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>a_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>b_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>c_offset</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>c_mult_int</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>out_shift</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="adc64cfa88bef3958e1603bfca23db47a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">std::vector< <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> > harris_corner_detector </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>threshold</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>min_dist</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>sensitivity</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>gradient_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>block_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_harris_corner_detector_8cpp_source.xhtml#l00187">187</a> of file <a class="el" href="_harris_corner_detector_8cpp_source.xhtml">HarrisCornerDetector.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_c_p_p_2_threshold_8cpp_source.xhtml#l00035">threshold()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> {</div> |
| <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span>(gradient_size < 7)</div> |
| <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div> |
| <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">return</span> harris_corner_detector_impl<int16_t>(src, <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">threshold</a>, min_dist, sensitivity, gradient_size, block_size, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div> |
| <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  {</div> |
| <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> harris_corner_detector_impl<int32_t>(src, <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">threshold</a>, min_dist, sensitivity, gradient_size, block_size, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div> |
| <div class="line"><a name="l00198"></a><span class="lineno"> 198</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_a6cae310822a46019ba25a00ddb0f7e62"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">arm_compute::test::validation::reference::threshold</a></div><div class="ttdeci">SimpleTensor< T > threshold(const SimpleTensor< T > &src, T threshold, T false_value, T true_value, ThresholdType type, T upper)</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_2_threshold_8cpp_source.xhtml#l00035">Threshold.cpp:35</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="ab2ac7813f2c360028d700e7feb88afca"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template std::vector<<a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a>> arm_compute::test::validation::reference::harris_corner_detector </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>threshold</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>min_dist</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>sensitivity</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>gradient_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>block_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a6d4691ec28061cbb6e38600f5f78a9bf"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint32_t > integral_image </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_integral_image_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_c_p_p_2_integral_image_8cpp_source.xhtml">IntegralImage.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">arm_compute::U32</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  SimpleTensor<uint32_t> dst(src.shape(), DataType::U32);</div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="comment">// Length of dimensions</span></div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> width = src.shape().x();</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> height = src.shape().y();</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> depth = src.shape().total_size_upper(2);</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> image_size = width * height;</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> z = 0; z < depth; ++z)</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordtype">size_t</span> current_image = z * image_size;</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">//First element of each image</span></div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  dst[current_image] = src[current_image];</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// First row of each image (add only pixel on the left)</span></div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> x = 1; x < width; ++x)</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  dst[current_image + x] = <span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(src[current_image + x]) + dst[current_image + x - 1];</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// Subsequent rows</span></div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> y = 1; y < height; ++y)</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  {</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">size_t</span> current_row = current_image + (width * y);</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// First element of each row (add only pixel up)</span></div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  dst[current_row] = <span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(src[current_row]) + dst[current_row - width];</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">// Following row elements</span></div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> x = 1; x < width; ++x)</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">size_t</span> current_pixel = current_row + x;</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// out = in + up(out) + left(out) - up_left(out)</span></div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  dst[current_pixel] = <span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(src[current_pixel]) + dst[current_pixel - 1]</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  + dst[current_pixel - width] - dst[current_pixel - width - 1];</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a751a624d19add33a7c81b6260386d550"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint32_t> arm_compute::test::validation::reference::integral_image </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a238d3ab8cdae100387631d6491204c6b"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > l2_normalize </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">unsigned int </td> |
| <td class="paramname"><em>axis</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>epsilon</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_l2_normalize_8cpp_source.xhtml#l00051">51</a> of file <a class="el" href="_c_p_p_2_l2_normalize_8cpp_source.xhtml">L2Normalize.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="_c_p_p_2_reduction_operation_8cpp_source.xhtml#l00064">reduction_operation()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>, and <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45ba2ce6e134b828b72fad160fa17c8d1b64">arm_compute::SUM_SQUARE</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  SimpleTensor<T> dst{ src.shape(), src.data_type() };</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="comment">// Reduce across given axis</span></div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  SimpleTensor<T> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = <a class="code" href="reduction__operation_8cl.xhtml#af8f01aa7a1c524a2a9e2674f2cbae54d">reduction_operation</a>(src, get_output_shape(src.shape(), axis), axis, ReductionOperation::SUM_SQUARE);</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> elems = src.shape()[axis];</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> upper_dims = src.shape().total_size_upper(axis + 1);</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> du = 0; du < upper_dims; ++du)</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span>(axis == 0)</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> T *src_row_ptr = src.data() + du * elems;</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  T *dst_row_ptr = dst.data() + du * elems;</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> T normalization_value = std::sqrt(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(sum[du], epsilon));</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  std::transform(src_row_ptr, src_row_ptr + elems, dst_row_ptr, [normalization_value](T val)</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">return</span> val / normalization_value;</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  });</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Unsupported normalization axis"</span>);</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div> |
| <div class="ttc" id="reduction__operation_8cl_xhtml_ab0df00f5333da51860deb93deb44a782"><div class="ttname"><a href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a></div><div class="ttdeci">DATA_TYPE sum(__global const DATA_TYPE *input)</div><div class="ttdoc">Calculate sum of a vector. </div><div class="ttdef"><b>Definition:</b> <a href="reduction__operation_8cl_source.xhtml#l00052">reduction_operation.cl:52</a></div></div> |
| <div class="ttc" id="reduction__operation_8cl_xhtml_af8f01aa7a1c524a2a9e2674f2cbae54d"><div class="ttname"><a href="reduction__operation_8cl.xhtml#af8f01aa7a1c524a2a9e2674f2cbae54d">reduction_operation</a></div><div class="ttdeci">__kernel void reduction_operation(__global uchar *src_ptr, uint src_stride_x, uint src_step_x, uint src_offset_first_element_in_bytes, __global uchar *partial_sum_ptr, uint partial_sum_stride_x, uint partial_sum_step_x, uint partial_sum_offset_first_element_in_bytes, __local DATA_TYPE *local_sums)</div><div class="ttdoc">This kernel performs reduction given an operation. </div><div class="ttdef"><b>Definition:</b> <a href="reduction__operation_8cl_source.xhtml#l00080">reduction_operation.cl:80</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="af0e1f08a54d6896f4d1e7b5ee7f54852"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::l2_normalize </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">unsigned int </td> |
| <td class="paramname"><em>axis</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>epsilon</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="afcceed1cef9bd62b3429d3f76e577a23"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">std::pair< float, float > mean_and_standard_deviation </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>in</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_mean_std_dev_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_c_p_p_2_mean_std_dev_8cpp_source.xhtml">MeanStdDev.cpp</a>.</p> |
| |
| <p>References <a class="el" href="accumulate_8cl_source.xhtml#l00041">accumulate()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> num_elements = in.num_elements();</div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="comment">// Calculate mean</span></div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordtype">float</span> mean = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(in.data(), in.data() + num_elements, 0.f) / num_elements;</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">// Calculate standard deviation</span></div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordtype">float</span> std_dev = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(in.data(), in.data() + num_elements, 0.f, [&mean](<span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b)</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  {</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">return</span> a + (mean - b) * (mean - b);</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  });</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  std_dev = std::sqrt(std_dev / num_elements);</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> std::make_pair(mean, std_dev);</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div> |
| <div class="ttc" id="accumulate_8cl_xhtml_a00e540076dd545ad59ac7482f8cdf514"><div class="ttname"><a href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">accumulate</a></div><div class="ttdeci">__kernel void accumulate(__global uchar *input_ptr, uint input_stride_x, uint input_step_x, uint input_stride_y, uint input_step_y, uint input_offset_first_element_in_bytes, __global uchar *accu_ptr, uint accu_stride_x, uint accu_step_x, uint accu_stride_y, uint accu_step_y, uint accu_offset_first_element_in_bytes)</div><div class="ttdoc">This function accumulates an input image into output image. </div><div class="ttdef"><b>Definition:</b> <a href="accumulate_8cl_source.xhtml#l00041">accumulate.cl:41</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a4bbe9971a7eab2c7bb6b54dabaf479bf"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template std::pair<float, float> arm_compute::test::validation::reference::mean_and_standard_deviation </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>in</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ac5e4b8af4086cce7dac5667735daf91a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="structarm__compute_1_1_min_max_location_values.xhtml">MinMaxLocationValues</a>< T > min_max_location </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_min_max_location_8cpp_source.xhtml#l00058">58</a> of file <a class="el" href="_c_p_p_2_min_max_location_8cpp_source.xhtml">MinMaxLocation.cpp</a>.</p> |
| |
| <p>References <a class="el" href="tests_2_types_8h_source.xhtml#l00049">MinMaxLocationValues< MinMaxType >::max</a>, <a class="el" href="tests_2_types_8h_source.xhtml#l00051">MinMaxLocationValues< MinMaxType >::max_loc</a>, <a class="el" href="tests_2_types_8h_source.xhtml#l00048">MinMaxLocationValues< MinMaxType >::min</a>, <a class="el" href="tests_2_types_8h_source.xhtml#l00050">MinMaxLocationValues< MinMaxType >::min_loc</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00296">Coordinates2D::x</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> {</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  MinMaxLocationValues<T> dst;</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> width = src.shape().x();</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  compute_min_max<T>(src, dst.min, dst.max);</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="struct_coordinates2_d.xhtml">Coordinates2D</a> coord{ 0, 0 };</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  coord.<a class="code" href="struct_coordinates2_d.xhtml#a6150e0515f7202e2fb518f7206ed97dc">x</a> = <span class="keyword">static_cast<</span>int32_t<span class="keyword">></span>(i % width);</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  coord.y = <span class="keyword">static_cast<</span>int32_t<span class="keyword">></span>(i / width);</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">if</span>(src[i] == dst.min)</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  dst.min_loc.push_back(coord);</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span>(src[i] == dst.max)</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  dst.max_loc.push_back(coord);</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div> |
| <div class="ttc" id="struct_coordinates2_d_xhtml"><div class="ttname"><a href="struct_coordinates2_d.xhtml">Coordinates2D</a></div><div class="ttdoc">2D Coordinates structure </div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.xhtml#l00028">types.h:28</a></div></div> |
| <div class="ttc" id="struct_coordinates2_d_xhtml_a6150e0515f7202e2fb518f7206ed97dc"><div class="ttname"><a href="struct_coordinates2_d.xhtml#a6150e0515f7202e2fb518f7206ed97dc">Coordinates2D::x</a></div><div class="ttdeci">int x</div><div class="ttdoc">The x coordinate. </div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.xhtml#l00030">types.h:30</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="ab2647e679a5282c102f65c83d08043a7"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="structarm__compute_1_1_min_max_location_values.xhtml">MinMaxLocationValues</a><uint8_t> arm_compute::test::validation::reference::min_max_location </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aa4de1dd61ace6805d93248d25c0b2caa"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="structarm__compute_1_1_min_max_location_values.xhtml">MinMaxLocationValues</a><int16_t> arm_compute::test::validation::reference::min_max_location </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aff675bcce573bbd26e6d531b2e073ab8"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="structarm__compute_1_1_min_max_location_values.xhtml">MinMaxLocationValues</a><float> arm_compute::test::validation::reference::min_max_location </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="af00274a4d66faf0892f122870f1d9fd9"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > non_linear_filter </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">NonLinearFilterFunction </td> |
| <td class="paramname"><em>function</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">unsigned int </td> |
| <td class="paramname"><em>mask_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">MatrixPattern </td> |
| <td class="paramname"><em>pattern</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const uint8_t * </td> |
| <td class="paramname"><em>mask</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_non_linear_filter_8cpp_source.xhtml#l00036">36</a> of file <a class="el" href="_c_p_p_2_non_linear_filter_8cpp_source.xhtml">NonLinearFilter.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00308">arm_compute::test::index2coord()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00355">arm_compute::test::is_in_valid_region()</a>, <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">arm_compute::MAX</a>, <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a8ab0c3a037e882577dec378985477074">arm_compute::MEDIAN</a>, <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653">arm_compute::MIN</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb">arm_compute::OTHER</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00278">arm_compute::test::saturate_cast()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00193">arm_compute::test::shape_to_valid_region()</a>, <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">arm_compute::test::validation::tensor_elem_at()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">arm_compute::UNDEFINED</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions< T >::x()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  SimpleTensor<T> dst(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(pattern == MatrixPattern::OTHER && mask == <span class="keyword">nullptr</span>);</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(pattern);</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">using</span> intermediate_type = <span class="keyword">typename</span> common_promoted_signed_type<T>::intermediate_type;</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> sq_mask_size = mask_size * mask_size;</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> half_mask_size = mask_size / 2;</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  std::vector<intermediate_type> vals(sq_mask_size);</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  intermediate_type current_value = 0;</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">const</span> ValidRegion valid_region = <a class="code" href="namespacearm__compute_1_1test.xhtml#a4c9ad143c34306817986409ffb1dbd40">shape_to_valid_region</a>(src.shape(), border_mode == BorderMode::UNDEFINED, BorderSize(half_mask_size));</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> element_idx = 0, count = 0, index = 0; element_idx < src.num_elements(); ++element_idx, count = 0, index = 0)</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  Coordinates <span class="keywordtype">id</span> = <a class="code" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a>(src.shape(), element_idx);</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test.xhtml#a856b55fc20ddcbdbeb84c35ae27bedac">is_in_valid_region</a>(valid_region, <span class="keywordtype">id</span>))</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordtype">int</span> idx = <span class="keywordtype">id</span>.<a class="code" href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">x</a>();</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">int</span> idy = <span class="keywordtype">id</span>.y();</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> y = idy - half_mask_size; y <= idy + half_mask_size; ++y)</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  {</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> x = idx - half_mask_size; x <= idx + half_mask_size; ++x, ++index)</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordtype">id</span>.set(0, x);</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordtype">id</span>.set(1, y);</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  current_value = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, <span class="keywordtype">id</span>, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">if</span>(mask[index] == 255)</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  vals[count] = <span class="keyword">static_cast<</span>intermediate_type<span class="keyword">></span>(current_value);</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  ++count;</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  std::sort(vals.begin(), vals.begin() + count);</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(count == 0);</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">switch</span>(<span class="keyword">function</span>)</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">case</span> NonLinearFilterFunction::MIN:</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  dst[element_idx] = <a class="code" href="namespacearm__compute_1_1test.xhtml#a4965b2f6821e0cf0afee738158bd8377">saturate_cast</a><T>(vals[0]);</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">case</span> NonLinearFilterFunction::MAX:</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  dst[element_idx] = <a class="code" href="namespacearm__compute_1_1test.xhtml#a4965b2f6821e0cf0afee738158bd8377">saturate_cast</a><T>(vals[count - 1]);</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">case</span> NonLinearFilterFunction::MEDIAN:</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  dst[element_idx] = <a class="code" href="namespacearm__compute_1_1test.xhtml#a4965b2f6821e0cf0afee738158bd8377">saturate_cast</a><T>(vals[count / 2]);</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Unsupported NonLinearFilter function."</span>);</div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div> |
| <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a4f489943d8618d47b1ad4611f0b9b7ff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">arm_compute::test::validation::tensor_elem_at</a></div><div class="ttdeci">T tensor_elem_at(const SimpleTensor< T > &src, Coordinates coord, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">Utils.h:46</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a4c9ad143c34306817986409ffb1dbd40"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a4c9ad143c34306817986409ffb1dbd40">arm_compute::test::shape_to_valid_region</a></div><div class="ttdeci">ValidRegion shape_to_valid_region(TensorShape shape, bool border_undefined=false, BorderSize border_size=BorderSize(0))</div><div class="ttdoc">Create a valid region based on tensor shape, border mode and border size. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00193">Utils.h:193</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1_dimensions_xhtml_afb5cd37bb08f1029691590372e6330f0"><div class="ttname"><a href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">arm_compute::Dimensions::x</a></div><div class="ttdeci">T x() const </div><div class="ttdoc">Alias to access the size of the first dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_dimensions_8h_source.xhtml#l00081">Dimensions.h:81</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a856b55fc20ddcbdbeb84c35ae27bedac"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a856b55fc20ddcbdbeb84c35ae27bedac">arm_compute::test::is_in_valid_region</a></div><div class="ttdeci">bool is_in_valid_region(const ValidRegion &valid_region, Coordinates coord)</div><div class="ttdoc">Check if a coordinate is within a valid region. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00355">Utils.h:355</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a24d8c0391cfa38e78969b6ad97c0ff09"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">arm_compute::test::index2coord</a></div><div class="ttdeci">Coordinates index2coord(const TensorShape &shape, int index)</div><div class="ttdoc">Convert a linear index into n-dimensional coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00308">Utils.h:308</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a4965b2f6821e0cf0afee738158bd8377"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a4965b2f6821e0cf0afee738158bd8377">arm_compute::test::saturate_cast</a></div><div class="ttdeci">T saturate_cast(T val)</div><div class="ttdoc">Saturate a value of type T against the numeric limits of type U. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00278">Utils.h:278</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a29d57ba8afd317719a954d18599956cd"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::non_linear_filter </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">NonLinearFilterFunction </td> |
| <td class="paramname"><em>function</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">unsigned int </td> |
| <td class="paramname"><em>mask_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">MatrixPattern </td> |
| <td class="paramname"><em>pattern</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const uint8_t * </td> |
| <td class="paramname"><em>mask</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a60e89e48713565425943913adec65294"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > non_maxima_suppression </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_non_maxima_suppression_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_non_maxima_suppression_8cpp_source.xhtml">NonMaximaSuppression.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00308">arm_compute::test::index2coord()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00355">arm_compute::test::is_in_valid_region()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00278">SimpleTensor< T >::num_channels()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00193">arm_compute::test::shape_to_valid_region()</a>, <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">arm_compute::test::validation::tensor_elem_at()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">arm_compute::UNDEFINED</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions< T >::x()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00086">Dimensions< T >::y()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  constexpr <span class="keywordtype">int</span> block_size = 3;</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  SimpleTensor<T> dst(src.shape(), src.data_type(), src.num_channels());</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  ValidRegion valid_region = <a class="code" href="namespacearm__compute_1_1test.xhtml#a4c9ad143c34306817986409ffb1dbd40">shape_to_valid_region</a>(src.shape(), border_mode == BorderMode::UNDEFINED, BorderSize(block_size / 2));</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  Coordinates coord = <a class="code" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a>(src.shape(), i);</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordtype">int</span> x = coord.<a class="code" href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">x</a>();</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordtype">int</span> y = coord.y();</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">if</span>(!<a class="code" href="namespacearm__compute_1_1test.xhtml#a856b55fc20ddcbdbeb84c35ae27bedac">is_in_valid_region</a>(valid_region, coord))</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">continue</span>;</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">if</span>(src[i] >= <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, Coordinates(x - 1, y - 1), border_mode, constant_border_value) && src[i] >= <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, Coordinates(x, y - 1), border_mode, constant_border_value)</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  && src[i] >= <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, Coordinates(x + 1, y - 1), border_mode, constant_border_value) && src[i] >= <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, Coordinates(x - 1, y), border_mode, constant_border_value)</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  && src[i] > <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, Coordinates(x + 1, y), border_mode, constant_border_value) && src[i] > <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, Coordinates(x - 1, y + 1), border_mode, constant_border_value)</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  && src[i] > <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, Coordinates(x, y + 1), border_mode, constant_border_value) && src[i] > <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, Coordinates(x + 1, y + 1), border_mode, constant_border_value))</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  dst[i] = src[i];</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  dst[i] = T(0);</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a4f489943d8618d47b1ad4611f0b9b7ff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">arm_compute::test::validation::tensor_elem_at</a></div><div class="ttdeci">T tensor_elem_at(const SimpleTensor< T > &src, Coordinates coord, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">Utils.h:46</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a4c9ad143c34306817986409ffb1dbd40"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a4c9ad143c34306817986409ffb1dbd40">arm_compute::test::shape_to_valid_region</a></div><div class="ttdeci">ValidRegion shape_to_valid_region(TensorShape shape, bool border_undefined=false, BorderSize border_size=BorderSize(0))</div><div class="ttdoc">Create a valid region based on tensor shape, border mode and border size. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00193">Utils.h:193</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1_dimensions_xhtml_afb5cd37bb08f1029691590372e6330f0"><div class="ttname"><a href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">arm_compute::Dimensions::x</a></div><div class="ttdeci">T x() const </div><div class="ttdoc">Alias to access the size of the first dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_dimensions_8h_source.xhtml#l00081">Dimensions.h:81</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a856b55fc20ddcbdbeb84c35ae27bedac"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a856b55fc20ddcbdbeb84c35ae27bedac">arm_compute::test::is_in_valid_region</a></div><div class="ttdeci">bool is_in_valid_region(const ValidRegion &valid_region, Coordinates coord)</div><div class="ttdoc">Check if a coordinate is within a valid region. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00355">Utils.h:355</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a24d8c0391cfa38e78969b6ad97c0ff09"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">arm_compute::test::index2coord</a></div><div class="ttdeci">Coordinates index2coord(const TensorShape &shape, int index)</div><div class="ttdoc">Convert a linear index into n-dimensional coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00308">Utils.h:308</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a4f89718e67b6cc5ce13ce5ea3a789a88"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::non_maxima_suppression </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a041ee28e793d018db2379eb8eb3d1722"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">NormalizationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_normalization_layer_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="validation_2_c_p_p_2_normalization_layer_8cpp_source.xhtml">NormalizationLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00588">NormalizationLayerInfo::beta()</a>, <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5">arm_compute::CROSS_MAP</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00924">arm_compute::test::fixed_point_arithmetic::detail::exp()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e">arm_compute::IN_MAP_2D</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00592">NormalizationLayerInfo::kappa()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00929">arm_compute::test::fixed_point_arithmetic::detail::log()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00580">NormalizationLayerInfo::norm_size()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00603">NormalizationLayerInfo::scale_coeff()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="hwc_8hpp_source.xhtml#l00204">mali_userspace::type</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00576">NormalizationLayerInfo::type()</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00269">value</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  SimpleTensor<T> dst{ src.shape(), src.data_type(), 1, src.fixed_point_position() };</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> uint32_t norm_size = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.norm_size();</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a> <a class="code" href="namespacemali__userspace.xhtml#ad44b615021ed3ccb734fcaf583ef4a03">type</a> = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.type();</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordtype">float</span> beta = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.beta();</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  uint32_t kappa = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.kappa();</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> cols = src.shape()[0];</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> rows = src.shape()[1];</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> depth = src.shape()[2];</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">int</span> upper_dims = src.shape().total_size() / (cols * rows);</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordtype">float</span> coeff = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.scale_coeff();</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">int</span> radius_cols = norm_size / 2;</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">// IN_MAP_1D and CROSS_MAP normalize over a single axis only</span></div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordtype">int</span> radius_rows = (NormType::IN_MAP_2D == <a class="code" href="namespacemali__userspace.xhtml#ad44b615021ed3ccb734fcaf583ef4a03">type</a>) ? norm_size / 2 : 0;</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">if</span>(type == NormType::CROSS_MAP)</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  {</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// Remove also depth from upper dimensions since it is the dimension we</span></div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// want to use for normalization</span></div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  upper_dims /= depth;</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r < upper_dims; ++r)</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < rows; ++i)</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k < cols; ++k)</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> l = 0; l < depth; ++l)</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">float</span> accumulated_scale = 0.f;</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = -radius_cols; j <= radius_cols; ++j)</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> z = l + j;</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span>(z >= 0 && z < depth)</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">const</span> T <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a> = src[k + i * cols + z * rows * cols + r * cols * rows * depth];</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  accumulated_scale += value * <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>;</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  dst[k + i * cols + l * rows * cols + r * cols * rows * depth] = kappa + accumulated_scale * coeff;</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r < upper_dims; ++r)</div> |
| <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div> |
| <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < rows; ++i)</div> |
| <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div> |
| <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k < cols; ++k)</div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">float</span> accumulated_scale = 0.f;</div> |
| <div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div> |
| <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = -radius_rows; j <= radius_rows; ++j)</div> |
| <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  {</div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> y = i + j;</div> |
| <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> l = -radius_cols; l <= radius_cols; ++l)</div> |
| <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div> |
| <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> x = k + l;</div> |
| <div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div> |
| <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span>((x >= 0 && y >= 0) && (x < cols && y < rows))</div> |
| <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div> |
| <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">const</span> T <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a> = src[x + y * cols + r * cols * rows];</div> |
| <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  accumulated_scale += value * <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>;</div> |
| <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  dst[k + i * cols + r * cols * rows] = kappa + accumulated_scale * coeff;</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div> |
| <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div> |
| <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div> |
| <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div> |
| <div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div> |
| <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span>(beta == 1.f)</div> |
| <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div> |
| <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < dst.num_elements(); ++i)</div> |
| <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div> |
| <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  dst[i] = src[i] / dst[i];</div> |
| <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  }</div> |
| <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div> |
| <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(beta == 0.5f)</div> |
| <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div> |
| <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < dst.num_elements(); ++i)</div> |
| <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div> |
| <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  dst[i] = src[i] / std::sqrt(dst[i]);</div> |
| <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div> |
| <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div> |
| <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div> |
| <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < dst.num_elements(); ++i)</div> |
| <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  {</div> |
| <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  dst[i] = src[i] * <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aa4e01e9be9adcc40a69a4da48fa83a43">std::exp</a>(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a8c8ce35c61b4f71cccec28d18161eaa1">std::log</a>(dst[i]) * -beta);</div> |
| <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div> |
| <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div> |
| <div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div> |
| <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aa4e01e9be9adcc40a69a4da48fa83a43"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aa4e01e9be9adcc40a69a4da48fa83a43">arm_compute::test::fixed_point_arithmetic::detail::exp</a></div><div class="ttdeci">fixed_point< T > exp(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00924">FixedPoint.h:924</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a096668313a9a819d54a2e65ec21ff0cc"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info</a></div><div class="ttdeci">src info() -> set_format(Format::S16)</div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_a8c8ce35c61b4f71cccec28d18161eaa1"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a8c8ce35c61b4f71cccec28d18161eaa1">arm_compute::test::fixed_point_arithmetic::detail::log</a></div><div class="ttdeci">fixed_point< T > log(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00929">FixedPoint.h:929</a></div></div> |
| <div class="ttc" id="hwc_8hpp_xhtml_a0f61d63b009d0880a89c843bd50d8d76"><div class="ttname"><a href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a></div><div class="ttdeci">void * value</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00269">hwc.hpp:269</a></div></div> |
| <div class="ttc" id="namespacemali__userspace_xhtml_ad44b615021ed3ccb734fcaf583ef4a03"><div class="ttname"><a href="namespacemali__userspace.xhtml#ad44b615021ed3ccb734fcaf583ef4a03">mali_userspace::type</a></div><div class="ttdeci">uint32_t type</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00204">hwc.hpp:204</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_ad4bb8dabdbf8ad75e34220cc666b59ca"><div class="ttname"><a href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">arm_compute::NormType</a></div><div class="ttdeci">NormType</div><div class="ttdoc">The normalization type used for the normalization layer. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00357">Types.h:357</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a451c44627ad6c06f72667812f2a9782d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">NormalizationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a677c65b33a30875799e387168f59758e"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">NormalizationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ad78a2e5549c4eebcb99adf18e8d19bb2"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>> arm_compute::test::validation::reference::normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">NormalizationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ad3782be7520e0bdb74a2ac1ec27d8d49"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>> arm_compute::test::validation::reference::normalization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">NormalizationLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a9b408e7726bf08bb8bb9a289ee622df3"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > pooling_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">PoolingLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="validation_2_c_p_p_2_pooling_layer_8cpp_source.xhtml#l00055">55</a> of file <a class="el" href="validation_2_c_p_p_2_pooling_layer_8cpp_source.xhtml">PoolingLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a">arm_compute::AVG</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info()</a>, <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">arm_compute::MAX</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00429">PadStrideInfo::pad()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00466">PoolingLayerInfo::pad_stride_info()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00462">PoolingLayerInfo::pool_size()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00458">PoolingLayerInfo::pool_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00425">PadStrideInfo::stride()</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00204">mali_userspace::type</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> pool_size = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pool_size();</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a> <a class="code" href="namespacemali__userspace.xhtml#ad44b615021ed3ccb734fcaf583ef4a03">type</a> = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pool_type();</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">int</span> pool_stride_x = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pad_stride_info().stride().first;</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">int</span> pool_stride_y = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pad_stride_info().stride().second;</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordtype">int</span> pad_x = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pad_stride_info().pad().first;</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">int</span> pad_y = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pad_stride_info().pad().second;</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> <span class="keyword">auto</span> w_src = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(src.shape()[0]);</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <span class="keyword">auto</span> h_src = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(src.shape()[1]);</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> upper_dims = src.shape().total_size() / (w_src * h_src);</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  SimpleTensor<T> dst{ calculate_output_shape(src.shape(), <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>), src.data_type(), 1, src.fixed_point_position() };</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <span class="keyword">auto</span> w_dst = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(dst.shape()[0]);</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <span class="keyword">auto</span> h_dst = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(dst.shape()[1]);</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span>(type == PoolingType::MAX)</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r < upper_dims; ++r)</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> h = 0; h < h_dst; ++h)</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> w = 0; w < w_dst; ++w)</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">int</span> wstart = w * pool_stride_x - pad_x;</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">int</span> hstart = h * pool_stride_y - pad_y;</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordtype">int</span> wend = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(wstart + pool_size, w_src);</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">int</span> hend = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(hstart + pool_size, h_src);</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  wstart = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(wstart, 0);</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  hstart = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(hstart, 0);</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  T max_val = std::numeric_limits<T>::lowest();</div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> y = hstart; y < hend; ++y)</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  {</div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> x = wstart; x < wend; ++x)</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">const</span> T val = src[r * h_src * w_src + y * w_src + x];</div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">if</span>(val > max_val)</div> |
| <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div> |
| <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  max_val = val;</div> |
| <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div> |
| <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div> |
| <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  dst[r * h_dst * w_dst + h * w_dst + w] = max_val;</div> |
| <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div> |
| <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div> |
| <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div> |
| <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">else</span> <span class="comment">// Average or l2 pooling</span></div> |
| <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div> |
| <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r < upper_dims; ++r)</div> |
| <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div> |
| <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> h = 0; h < h_dst; ++h)</div> |
| <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div> |
| <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> w = 0; w < w_dst; ++w)</div> |
| <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  T avg_val(0);</div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordtype">int</span> wstart = w * pool_stride_x - pad_x;</div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordtype">int</span> hstart = h * pool_stride_y - pad_y;</div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordtype">int</span> wend = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(wstart + pool_size, w_src + pad_x);</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordtype">int</span> hend = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(hstart + pool_size, h_src + pad_y);</div> |
| <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">int</span> pool = (hend - hstart) * (wend - wstart);</div> |
| <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  wstart = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(wstart, 0);</div> |
| <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  hstart = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(hstart, 0);</div> |
| <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  wend = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(wend, w_src);</div> |
| <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  hend = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(hend, h_src);</div> |
| <div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div> |
| <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span>(type == PoolingType::AVG)</div> |
| <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div> |
| <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> y = hstart; y < hend; ++y)</div> |
| <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div> |
| <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> x = wstart; x < wend; ++x)</div> |
| <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div> |
| <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  avg_val += src[r * h_src * w_src + y * w_src + x];</div> |
| <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div> |
| <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div> |
| <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  dst[r * h_dst * w_dst + h * w_dst + w] = avg_val / pool;</div> |
| <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div> |
| <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div> |
| <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> y = hstart; y < hend; ++y)</div> |
| <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div> |
| <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> x = wstart; x < wend; ++x)</div> |
| <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div> |
| <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">const</span> T val = src[r * h_src * w_src + y * w_src + x];</div> |
| <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  avg_val += val * val;</div> |
| <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div> |
| <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div> |
| <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  dst[r * h_dst * w_dst + h * w_dst + w] = std::sqrt(avg_val / pool);</div> |
| <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div> |
| <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div> |
| <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div> |
| <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div> |
| <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div> |
| <div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div> |
| <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00155"></a><span class="lineno"> 155</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a096668313a9a819d54a2e65ec21ff0cc"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info</a></div><div class="ttdeci">src info() -> set_format(Format::S16)</div></div> |
| <div class="ttc" id="namespacemali__userspace_xhtml_ad44b615021ed3ccb734fcaf583ef4a03"><div class="ttname"><a href="namespacemali__userspace.xhtml#ad44b615021ed3ccb734fcaf583ef4a03">mali_userspace::type</a></div><div class="ttdeci">uint32_t type</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00204">hwc.hpp:204</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_a9172da722f0a434e5cc07c0a3c115d93"><div class="ttname"><a href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">arm_compute::PoolingType</a></div><div class="ttdeci">PoolingType</div><div class="ttdoc">Available pooling types. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00398">Types.h:398</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="aafa91a9cde1d264c9a234bb69fc86a3a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::pooling_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">PoolingLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="af1789f248f7ece261e772471ee497857"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::pooling_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">PoolingLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ae9e2b2b91f2c8195675d81861bae19d6"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>> arm_compute::test::validation::reference::pooling_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">PoolingLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2a84919eea23e2df4398efb5286c1403"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>> arm_compute::test::validation::reference::pooling_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">PoolingLayerInfo </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a62fb59da715742ecee9c7ba8fbcd344d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< uint8_t > quantization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_quantization_layer_8cpp_source.xhtml#l00037">37</a> of file <a class="el" href="_c_p_p_2_quantization_layer_8cpp_source.xhtml">QuantizationLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">arm_compute::U8</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  SimpleTensor<uint8_t> dst{ src.shape(), DataType::U8 };</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width = src.shape().x();</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> height = src.shape().y();</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> depth = src.shape().z();</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> stride_w = width * height * depth;</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> num_batches = src.shape().total_size_upper(3);</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k < num_batches; ++k)</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">// Compute min and max of the 3D tensor</span></div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">float</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a> = src[k * stride_w];</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">float</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">max</a> = src[k * stride_w];</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// Look for min and max values</span></div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i < stride_w; ++i)</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">float</span> val = src[i + k * stride_w];</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  min = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(min, val);</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  max = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(max, val);</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// Saturate the result in case min = max</span></div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span>(min == max)</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  min = 0.0f;</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  max = 1.0f;</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> range = max - <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>;</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < stride_w; ++i)</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// map values to range [0.0, 1.0]</span></div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">float</span> val = src[i + k * stride_w];</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> normalized = (val - <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>) / range;</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  dst[i + k * stride_w] = <span class="keyword">static_cast<</span>uint8_t<span class="keyword">></span>(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(255.0f, normalized * 256.0f));</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="ad3bc20f240f3917b6fc0cef0b49c8202"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::quantization_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a0959ac5a94af6e44f1e2b3124d6511f4"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > reduction_operation </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">unsigned int </td> |
| <td class="paramname"><em>axis</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ReductionOperation </td> |
| <td class="paramname"><em>op</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_reduction_operation_8cpp_source.xhtml#l00064">64</a> of file <a class="el" href="_c_p_p_2_reduction_operation_8cpp_source.xhtml">ReductionOperation.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| |
| <p>Referenced by <a class="el" href="_c_p_p_2_l2_normalize_8cpp_source.xhtml#l00051">l2_normalize()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> {</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  SimpleTensor<T> dst{ dst_shape, src.data_type() };</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> reduce_elems = src.shape()[axis];</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> upper_dims = src.shape().total_size_upper(axis + 1);</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> du = 0; du < upper_dims; ++du)</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">if</span>(axis == 0)</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> T *src_row_ptr = src.data() + du * reduce_elems;</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  dst[du] = reduce_operation(src_row_ptr, reduce_elems, op);</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Unsupported reduction axis"</span>);</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="aa87350949ad1bfc7a723b31f9b08bf48"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::reduction_operation </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>dst_shape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">unsigned int </td> |
| <td class="paramname"><em>axis</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ReductionOperation </td> |
| <td class="paramname"><em>op</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="adeeeba93b83ffdad47f4357c08cfea0e"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > reshape_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_reshape_layer_8cpp_source.xhtml#l00037">37</a> of file <a class="el" href="_c_p_p_2_reshape_layer_8cpp_source.xhtml">ReshapeLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00135">TensorShape::total_size()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(src.shape().total_size() != output_shape.total_size());</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  SimpleTensor<T> dst(output_shape, src.data_type());</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  std::copy_n(src.data(), src.num_elements(), dst.data());</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="afea45dc2b397b75108739c4300aa18ad"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::reshape_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a572f373a0f24d9e7d749454280411318"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int8_t> arm_compute::test::validation::reference::reshape_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a79a315f543d17f87f44d7b142e1efbbe"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint16_t> arm_compute::test::validation::reference::reshape_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a1b2ecbb6f4180bb42c65ed575c8fd313"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int16_t> arm_compute::test::validation::reference::reshape_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a42623cecebd86038ac287252a1ead241"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint32_t> arm_compute::test::validation::reference::reshape_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint32_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a1406fe85a6bec4007f13cc57c4e99767"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int32_t> arm_compute::test::validation::reference::reshape_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int32_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a60d98374b4adcd883653831e70b13b4c"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::reshape_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ac3850e0704ba9d6ef260170e87ca1e66"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::reshape_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TensorShape & </td> |
| <td class="paramname"><em>output_shape</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2c08fc82f2e4b9733cd0dacd6eabe579"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > scale </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>in</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_x</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_y</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">InterpolationPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_scale_8cpp_source.xhtml#l00039">39</a> of file <a class="el" href="_c_p_p_2_scale_8cpp_source.xhtml">Scale.cpp</a>.</p> |
| |
| <p>References <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">arm_compute::AREA</a>, <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">arm_compute::BILINEAR</a>, <a class="el" href="tests_2validation_2_c_p_p_2_utils_8cpp_source.xhtml#l00036">arm_compute::test::validation::bilinear_policy()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00201">arm_compute::clamp()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">arm_compute::CONSTANT</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00337">arm_compute::test::coord2index()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="hwc_8hpp_source.xhtml#l00252">id</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00308">arm_compute::test::index2coord()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2">arm_compute::NEAREST_NEIGHBOR</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">arm_compute::REPLICATE</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00074">TensorShape::set()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>, <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">arm_compute::test::validation::tensor_elem_at()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions< T >::x()</a>.</p> |
| |
| <p>Referenced by <a class="el" href="_c_p_p_2_box3x3_8cpp_source.xhtml#l00038">box3x3()</a>, <a class="el" href="dequantization__layer_8cl_source.xhtml#l00049">dequantization_layer()</a>, <a class="el" href="_c_p_p_2_gaussian3x3_8cpp_source.xhtml#l00038">gaussian3x3()</a>, <a class="el" href="_c_p_p_2_gaussian5x5_8cpp_source.xhtml#l00038">gaussian5x5()</a>, <a class="el" href="optical__flow__pyramid__lk_8cl_source.xhtml#l00094">init_level_max()</a>, <a class="el" href="optical__flow__pyramid__lk_8cl_source.xhtml#l00123">init_level_max_initial_estimate()</a>, <a class="el" href="cl__events_8cpp_source.xhtml#l00036">main_cl_events()</a>, <a class="el" href="neon__scale_8cpp_source.xhtml#l00032">main_neon_scale()</a>, <a class="el" href="neoncl__scale__median__gaussian_8cpp_source.xhtml#l00042">main_neoncl_scale_median_gaussian()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00184">BorderSize::operator*()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00174">BorderSize::operator*=()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  TensorShape shape_scaled(in.shape());</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  shape_scaled.set(0, in.shape()[0] * scale_x);</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  shape_scaled.set(1, in.shape()[1] * scale_y);</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  SimpleTensor<T> out(shape_scaled, in.data_type());</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// Compute the ratio between source width/height and destination width/height</span></div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> <span class="keyword">auto</span> wr = <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(in.shape()[0]) / static_cast<float>(out.shape()[0]);</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">const</span> <span class="keyword">auto</span> hr = <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(in.shape()[1]) / static_cast<float>(out.shape()[1]);</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">const</span> <span class="keyword">auto</span> width = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(in.shape().x());</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">const</span> <span class="keyword">auto</span> height = <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(in.shape().y());</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Area interpolation behaves as Nearest Neighbour in case of up-sampling</span></div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span>(policy == InterpolationPolicy::AREA && wr <= 1.f && hr <= 1.f)</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  policy = InterpolationPolicy::NEAREST_NEIGHBOR;</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> element_idx = 0, count = 0; element_idx < out.num_elements(); ++element_idx, ++count)</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  Coordinates <span class="keywordtype">id</span> = <a class="code" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a>(out.shape(), element_idx);</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">int</span> idx = <span class="keywordtype">id</span>.<a class="code" href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">x</a>();</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordtype">int</span> idy = <span class="keywordtype">id</span>.y();</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordtype">float</span> x_src = (idx + 0.5f) * wr - 0.5f;</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordtype">float</span> y_src = (idy + 0.5f) * hr - 0.5f;</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">switch</span>(policy)</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  {</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">case</span> InterpolationPolicy::NEAREST_NEIGHBOR:</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">//Calculate the source coords without -0.5f is equivalent to round the x_scr/y_src coords</span></div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  x_src = (idx + 0.5f) * wr;</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  y_src = (idy + 0.5f) * hr;</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">id</span>.set(0, x_src);</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordtype">id</span>.set(1, y_src);</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// If coordinates in range of tensor's width or height</span></div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span>(x_src >= -1 || y_src >= -1 || x_src <= width || y_src <= height)</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  out[element_idx] = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(in, <span class="keywordtype">id</span>, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span>(border_mode == BorderMode::CONSTANT)</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  out[element_idx] = constant_border_value;</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(border_mode == BorderMode::REPLICATE)</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordtype">id</span>.set(0, <a class="code" href="namespacearm__compute.xhtml#a1c0b9414fe3a6ef6a7a23bd324ae9e67">clamp</a>(static_cast<int>(x_src), 0, width - 1));</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">id</span>.set(1, <a class="code" href="namespacearm__compute.xhtml#a1c0b9414fe3a6ef6a7a23bd324ae9e67">clamp</a>(static_cast<int>(y_src), 0, height - 1));</div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  out[element_idx] = in[<a class="code" href="namespacearm__compute_1_1test.xhtml#a9be4cb7e6ee20063a4a10bc3abb750b9">coord2index</a>(in.shape(), <a class="code" href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a>)];</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div> |
| <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">case</span> InterpolationPolicy::BILINEAR:</div> |
| <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div> |
| <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordtype">id</span>.set(0, std::floor(x_src));</div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordtype">id</span>.set(1, std::floor(y_src));</div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span>(x_src >= -1 || y_src >= -1 || x_src <= width || y_src <= height)</div> |
| <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div> |
| <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  out[element_idx] = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a92fd4059750cbbeecd8ad03f279200e1">bilinear_policy</a>(in, <span class="keywordtype">id</span>, x_src, y_src, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  {</div> |
| <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">if</span>(border_mode == BorderMode::CONSTANT)</div> |
| <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div> |
| <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  out[element_idx] = constant_border_value;</div> |
| <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div> |
| <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(border_mode == BorderMode::REPLICATE)</div> |
| <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div> |
| <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordtype">id</span>.set(0, <a class="code" href="namespacearm__compute.xhtml#a1c0b9414fe3a6ef6a7a23bd324ae9e67">clamp</a>(static_cast<int>(x_src), 0, width - 1));</div> |
| <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">id</span>.set(1, <a class="code" href="namespacearm__compute.xhtml#a1c0b9414fe3a6ef6a7a23bd324ae9e67">clamp</a>(static_cast<int>(y_src), 0, height - 1));</div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  out[element_idx] = in[<a class="code" href="namespacearm__compute_1_1test.xhtml#a9be4cb7e6ee20063a4a10bc3abb750b9">coord2index</a>(in.shape(), <a class="code" href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a>)];</div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div> |
| <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">case</span> InterpolationPolicy::AREA:</div> |
| <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div> |
| <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">int</span> x_from = std::floor(idx * wr - 0.5f - x_src);</div> |
| <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">int</span> y_from = std::floor(idy * hr - 0.5f - y_src);</div> |
| <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordtype">int</span> x_to = std::ceil((idx + 1) * wr - 0.5f - x_src);</div> |
| <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordtype">int</span> y_to = std::ceil((idy + 1) * hr - 0.5f - y_src);</div> |
| <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> xi = std::floor(x_src);</div> |
| <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> yi = std::floor(y_src);</div> |
| <div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div> |
| <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// Clamp position to borders</span></div> |
| <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  x_src = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(-1.f, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(x_src, static_cast<float>(width)));</div> |
| <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  y_src = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(-1.f, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(y_src, static_cast<float>(height)));</div> |
| <div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div> |
| <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="comment">// Clamp bounding box offsets to borders</span></div> |
| <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  x_from = ((x_src + x_from) < -1) ? -1 : x_from;</div> |
| <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  y_from = ((y_src + y_from) < -1) ? -1 : y_from;</div> |
| <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  x_to = ((x_src + x_to) > width) ? (width - x_src) : x_to;</div> |
| <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  y_to = ((y_src + y_to) > height) ? (height - y_src) : y_to;</div> |
| <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>((x_to - x_from + 1) == 0 || (y_to - y_from + 1) == 0);</div> |
| <div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div> |
| <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordtype">float</span> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = 0;</div> |
| <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = yi + y_from, je = yi + y_to; j <= je; ++j)</div> |
| <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div> |
| <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = xi + x_from, ie = xi + x_to; i <= ie; ++i)</div> |
| <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  {</div> |
| <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordtype">id</span>.set(0, static_cast<int>(i));</div> |
| <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordtype">id</span>.set(1, static_cast<int>(j));</div> |
| <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  sum += <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(in, <span class="keywordtype">id</span>, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div> |
| <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div> |
| <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  out[element_idx] = sum / ((x_to - x_from + 1) * (y_to - y_from + 1));</div> |
| <div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div> |
| <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div> |
| <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Unsupported interpolation mode"</span>);</div> |
| <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div> |
| <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div> |
| <div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div> |
| <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> out;</div> |
| <div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a4f489943d8618d47b1ad4611f0b9b7ff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">arm_compute::test::validation::tensor_elem_at</a></div><div class="ttdeci">T tensor_elem_at(const SimpleTensor< T > &src, Coordinates coord, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">Utils.h:46</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="hwc_8hpp_xhtml_abaabdc509cdaba7df9f56c6c76f3ae19"><div class="ttname"><a href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a></div><div class="ttdeci">uint32_t id</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00252">hwc.hpp:252</a></div></div> |
| <div class="ttc" id="reduction__operation_8cl_xhtml_ab0df00f5333da51860deb93deb44a782"><div class="ttname"><a href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a></div><div class="ttdeci">DATA_TYPE sum(__global const DATA_TYPE *input)</div><div class="ttdoc">Calculate sum of a vector. </div><div class="ttdef"><b>Definition:</b> <a href="reduction__operation_8cl_source.xhtml#l00052">reduction_operation.cl:52</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_a1c0b9414fe3a6ef6a7a23bd324ae9e67"><div class="ttname"><a href="namespacearm__compute.xhtml#a1c0b9414fe3a6ef6a7a23bd324ae9e67">arm_compute::clamp</a></div><div class="ttdeci">T clamp(const T &n, const T &lower, const T &upper)</div><div class="ttdoc">Performs clamping among a lower and upper value. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00201">Helpers.h:201</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a9be4cb7e6ee20063a4a10bc3abb750b9"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a9be4cb7e6ee20063a4a10bc3abb750b9">arm_compute::test::coord2index</a></div><div class="ttdeci">int coord2index(const TensorShape &shape, const Coordinates &coord)</div><div class="ttdoc">Linearise the given coordinate. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00337">Utils.h:337</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1_dimensions_xhtml_afb5cd37bb08f1029691590372e6330f0"><div class="ttname"><a href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">arm_compute::Dimensions::x</a></div><div class="ttdeci">T x() const </div><div class="ttdoc">Alias to access the size of the first dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_dimensions_8h_source.xhtml#l00081">Dimensions.h:81</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a92fd4059750cbbeecd8ad03f279200e1"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a92fd4059750cbbeecd8ad03f279200e1">arm_compute::test::validation::bilinear_policy</a></div><div class="ttdeci">T bilinear_policy(const SimpleTensor< T > &in, Coordinates id, float xn, float yn, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8cpp_source.xhtml#l00036">Utils.cpp:36</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a24d8c0391cfa38e78969b6ad97c0ff09"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">arm_compute::test::index2coord</a></div><div class="ttdeci">Coordinates index2coord(const TensorShape &shape, int index)</div><div class="ttdoc">Convert a linear index into n-dimensional coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00308">Utils.h:308</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a9daab5cda42ace9c365597bd108d0498"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::scale </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_x</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_y</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">InterpolationPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a568158ce2891b0d97ddc5607150e27da"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int16_t> arm_compute::test::validation::reference::scale </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_x</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_y</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">InterpolationPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int16_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ad00179f43330d2c67fc89d38d2b63f23"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::scale </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_x</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_y</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">InterpolationPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">half </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a8d8a03a157fc437903c617f00416c3ad"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::scale </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_x</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>scale_y</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">InterpolationPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ab2abc08344c057ffd1ae0043f7d005a6"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">std::pair< <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T >, <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > > sobel </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< U > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>filter_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_sobel_8cpp_source.xhtml#l00106">106</a> of file <a class="el" href="_c_p_p_2_sobel_8cpp_source.xhtml">Sobel.cpp</a>.</p> |
| |
| <p>References <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00081">arm_compute::test::validation::apply_2d_spatial_filter()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00308">arm_compute::test::index2coord()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00355">arm_compute::test::is_in_valid_region()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00278">SimpleTensor< T >::num_channels()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00193">arm_compute::test::shape_to_valid_region()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">arm_compute::UNDEFINED</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00269">value</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> {</div> |
| <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  SimpleTensor<T> dst_x(src.shape(), <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">data_type<T>::value</a>, src.num_channels());</div> |
| <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  SimpleTensor<T> dst_y(src.shape(), <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">data_type<T>::value</a>, src.num_channels());</div> |
| <div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div> |
| <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  ValidRegion valid_region = <a class="code" href="namespacearm__compute_1_1test.xhtml#a4c9ad143c34306817986409ffb1dbd40">shape_to_valid_region</a>(src.shape(), border_mode == BorderMode::UNDEFINED, BorderSize(filter_size / 2));</div> |
| <div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div> |
| <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  Coordinates coord = <a class="code" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a>(src.shape(), i);</div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span>(!<a class="code" href="namespacearm__compute_1_1test.xhtml#a856b55fc20ddcbdbeb84c35ae27bedac">is_in_valid_region</a>(valid_region, coord))</div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">continue</span>;</div> |
| <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div> |
| <div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div> |
| <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">apply_2d_spatial_filter</a>(coord, src, dst_x, TensorShape{ <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">></span>(filter_size), static_cast<unsigned int>(filter_size) }, masks.at(filter_size).first, 1.f, border_mode,</div> |
| <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  constant_border_value);</div> |
| <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">apply_2d_spatial_filter</a>(coord, src, dst_y, TensorShape{ <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">></span>(filter_size), static_cast<unsigned int>(filter_size) }, masks.at(filter_size).second, 1.f, border_mode,</div> |
| <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  constant_border_value);</div> |
| <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div> |
| <div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div> |
| <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">return</span> std::make_pair(dst_x, dst_y);</div> |
| <div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a4c9ad143c34306817986409ffb1dbd40"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a4c9ad143c34306817986409ffb1dbd40">arm_compute::test::shape_to_valid_region</a></div><div class="ttdeci">ValidRegion shape_to_valid_region(TensorShape shape, bool border_undefined=false, BorderSize border_size=BorderSize(0))</div><div class="ttdoc">Create a valid region based on tensor shape, border mode and border size. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00193">Utils.h:193</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a5d1175c32ed7ea771e8ea46c936ea5c7"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d1175c32ed7ea771e8ea46c936ea5c7">arm_compute::test::validation::apply_2d_spatial_filter</a></div><div class="ttdeci">void apply_2d_spatial_filter(Coordinates coord, const SimpleTensor< T > &src, SimpleTensor< U > &dst, const TensorShape &filter_shape, const V *filter_itr, double scale, BorderMode border_mode, T constant_border_value=T(0))</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00081">Utils.h:81</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a856b55fc20ddcbdbeb84c35ae27bedac"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a856b55fc20ddcbdbeb84c35ae27bedac">arm_compute::test::is_in_valid_region</a></div><div class="ttdeci">bool is_in_valid_region(const ValidRegion &valid_region, Coordinates coord)</div><div class="ttdoc">Check if a coordinate is within a valid region. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00355">Utils.h:355</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a24d8c0391cfa38e78969b6ad97c0ff09"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">arm_compute::test::index2coord</a></div><div class="ttdeci">Coordinates index2coord(const TensorShape &shape, int index)</div><div class="ttdoc">Convert a linear index into n-dimensional coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00308">Utils.h:308</a></div></div> |
| <div class="ttc" id="hwc_8hpp_xhtml_a0f61d63b009d0880a89c843bd50d8d76"><div class="ttname"><a href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a></div><div class="ttdeci">void * value</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00269">hwc.hpp:269</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a9d96f3d086bf8a1996d8c1a7ddfd9794"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template std::pair< <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int >, <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< int > > sobel </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>filter_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Referenced by <a class="el" href="_c_l_2_sobel_8cpp_source.xhtml#l00052">arm_compute::test::validation::DATA_TEST_CASE()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a856573f640c9c0f9b091299183597663"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > softmax_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_softmax_layer_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_c_p_p_2_softmax_layer_8cpp_source.xhtml">SoftmaxLayer.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00311">SimpleTensor< T >::data()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00924">arm_compute::test::fixed_point_arithmetic::detail::exp()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00246">SimpleTensor< T >::fixed_point_position()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, and <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// Create reference</span></div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  SimpleTensor<T> dst{ src.shape(), src.data_type(), 1, src.fixed_point_position() };</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// Compute reference</span></div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> cols = src.shape()[0];</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> upper_dims = src.num_elements() / cols;</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r < upper_dims; ++r)</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> T *src_row_ptr = src.data() + r * cols;</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  T *dst_row_ptr = dst.data() + r * cols;</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Find max</span></div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> T <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">max</a> = *std::max_element(src_row_ptr, src_row_ptr + cols);</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// Regularize</span></div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  T <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a>(0.f);</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  std::transform(src_row_ptr, src_row_ptr + cols, dst_row_ptr, [&<a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a>, max](T val)</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  {</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">const</span> T res(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aa4e01e9be9adcc40a69a4da48fa83a43">std::exp</a>(val - max));</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> += res;</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> res;</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  });</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// Normalize</span></div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  std::transform(dst_row_ptr, dst_row_ptr + cols, dst_row_ptr, [<a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a>](T val)</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> val / <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a>;</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  });</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }</div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aa4e01e9be9adcc40a69a4da48fa83a43"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aa4e01e9be9adcc40a69a4da48fa83a43">arm_compute::test::fixed_point_arithmetic::detail::exp</a></div><div class="ttdeci">fixed_point< T > exp(fixed_point< T > x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00924">FixedPoint.h:924</a></div></div> |
| <div class="ttc" id="reduction__operation_8cl_xhtml_ab0df00f5333da51860deb93deb44a782"><div class="ttname"><a href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a></div><div class="ttdeci">DATA_TYPE sum(__global const DATA_TYPE *input)</div><div class="ttdoc">Calculate sum of a vector. </div><div class="ttdef"><b>Definition:</b> <a href="reduction__operation_8cl_source.xhtml#l00052">reduction_operation.cl:52</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a32ff73221df59e6aa387eb062c456d5b"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><float> arm_compute::test::validation::reference::softmax_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< float > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a589da1eaf38c3806576f2cd0cf9105bc"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>> arm_compute::test::validation::reference::softmax_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< half > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="af89324addc3fe39fb53f8b3ccf92ded3"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>> arm_compute::test::validation::reference::softmax_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint8_t > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a6c194e884eacf4e5388d468e773d0f53"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>> arm_compute::test::validation::reference::softmax_layer </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< qint16_t > & </td> |
| <td class="paramname"><em>src</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a935c4b1c0ddcd108097e6a4a7fd520e8"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > table_lookup </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const std::map< T, T > & </td> |
| <td class="paramname"><em>rawlut</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_table_lookup_8cpp_source.xhtml#l00037">37</a> of file <a class="el" href="_c_p_p_2_table_lookup_8cpp_source.xhtml">TableLookup.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  SimpleTensor<T> result(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  result[i] = rawlut.at(src[i]);</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">return</span> result;</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a3a87ef7fe41b158671d4cf7a511aebec"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::table_lookup </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const std::map< uint8_t, uint8_t > & </td> |
| <td class="paramname"><em>rawlut</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2860e24e7982ebd58891aae4d0a90ad0"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><int16_t> arm_compute::test::validation::reference::table_lookup </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< int16_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const std::map< int16_t, int16_t > & </td> |
| <td class="paramname"><em>rawlut</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a6cae310822a46019ba25a00ddb0f7e62"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > threshold </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>threshold</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>false_value</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>true_value</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ThresholdType </td> |
| <td class="paramname"><em>type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">T </td> |
| <td class="paramname"><em>upper</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_threshold_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_c_p_p_2_threshold_8cpp_source.xhtml">Threshold.cpp</a>.</p> |
| |
| <p>References <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a98ad0e8750ae10ad556ed7a62affb452">arm_compute::BINARY</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a01036ddcc971d02f6c32c3da31a119f2">arm_compute::RANGE</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>.</p> |
| |
| <p>Referenced by <a class="el" href="fast__corners_8cl_source.xhtml#l00098">compute_strength()</a>, <a class="el" href="_c_l_2_harris_corners_8cpp_source.xhtml#l00057">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="fast__corners_8cl_source.xhtml#l00155">fast_corners()</a>, and <a class="el" href="_harris_corner_detector_8cpp_source.xhtml#l00187">harris_corner_detector()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  SimpleTensor<T> dst(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">switch</span>(<a class="code" href="namespacemali__userspace.xhtml#ad44b615021ed3ccb734fcaf583ef4a03">type</a>)</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">case</span> ThresholdType::BINARY:</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  {</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  dst[i] = ((src[i] > <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a8a56f5d40af92249b49b8fabc89cfcd3">threshold</a>) ? true_value : false_value);</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">case</span> ThresholdType::RANGE:</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < src.num_elements(); ++i)</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">if</span>(src[i] > upper)</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  dst[i] = false_value;</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(src[i] < <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a8a56f5d40af92249b49b8fabc89cfcd3">threshold</a>)</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  dst[i] = false_value;</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  dst[i] = true_value;</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Thresholding type not recognised"</span>);</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div> |
| <div class="ttc" id="namespacemali__userspace_xhtml_ad44b615021ed3ccb734fcaf583ef4a03"><div class="ttname"><a href="namespacemali__userspace.xhtml#ad44b615021ed3ccb734fcaf583ef4a03">mali_userspace::type</a></div><div class="ttdeci">uint32_t type</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00204">hwc.hpp:204</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_a8a56f5d40af92249b49b8fabc89cfcd3"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a8a56f5d40af92249b49b8fabc89cfcd3">arm_compute::test::validation::reference::threshold</a></div><div class="ttdeci">template SimpleTensor< uint8_t > threshold(const SimpleTensor< uint8_t > &src, uint8_t threshold, uint8_t false_value, uint8_t true_value, ThresholdType type, uint8_t upper)</div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a8a56f5d40af92249b49b8fabc89cfcd3"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::threshold </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>threshold</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>false_value</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>true_value</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ThresholdType </td> |
| <td class="paramname"><em>type</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>upper</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a3064cbee60ab97935e8d1df617f82b5c"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">bool arm_compute::test::validation::reference::valid_bilinear_policy </td> |
| <td>(</td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>xn</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>yn</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>width</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>height</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_warp_affine_8cpp_source.xhtml#l00036">36</a> of file <a class="el" href="_c_p_p_2_warp_affine_8cpp_source.xhtml">WarpAffine.cpp</a>.</p> |
| |
| <p>References <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">arm_compute::UNDEFINED</a>.</p> |
| |
| <p>Referenced by <a class="el" href="_c_p_p_2_warp_affine_8cpp_source.xhtml#l00050">warp_affine()</a>, and <a class="el" href="_c_p_p_2_warp_perspective_8cpp_source.xhtml#l00038">warp_perspective()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">if</span>(border_mode != BorderMode::UNDEFINED)</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">if</span>((0 <= yn + 1) && (yn + 1 < height) && (0 <= xn + 1) && (xn + 1 < width))</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  {</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }</div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a97fb6802b7b8641c51fcc29aa03248ed"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > warp_affine </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">SimpleTensor< T > & </td> |
| <td class="paramname"><em>valid_mask</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const float * </td> |
| <td class="paramname"><em>matrix</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">InterpolationPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_warp_affine_8cpp_source.xhtml#l00050">50</a> of file <a class="el" href="_c_p_p_2_warp_affine_8cpp_source.xhtml">WarpAffine.cpp</a>.</p> |
| |
| <p>References <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">arm_compute::AREA</a>, <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">arm_compute::BILINEAR</a>, <a class="el" href="tests_2validation_2_c_p_p_2_utils_8cpp_source.xhtml#l00036">arm_compute::test::validation::bilinear_policy()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">arm_compute::CONSTANT</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00337">arm_compute::test::coord2index()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="hwc_8hpp_source.xhtml#l00252">id</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00308">arm_compute::test::index2coord()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2">arm_compute::NEAREST_NEIGHBOR</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">arm_compute::REPLICATE</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">arm_compute::test::validation::tensor_elem_at()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">arm_compute::UNDEFINED</a>, <a class="el" href="_c_p_p_2_warp_affine_8cpp_source.xhtml#l00036">valid_bilinear_policy()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions< T >::x()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  SimpleTensor<T> dst(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// x0 = M00 * x + M01 * y + M02</span></div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// y0 = M10 * x + M11 * y + M12</span></div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M00 = matrix[0];</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M10 = matrix[1];</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M01 = matrix[0 + 1 * 2];</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M11 = matrix[1 + 1 * 2];</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M02 = matrix[0 + 2 * 2];</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M12 = matrix[1 + 2 * 2];</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width = src.shape().x();</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> height = src.shape().y();</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> element_idx = 0; element_idx < src.num_elements(); ++element_idx)</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  valid_mask[element_idx] = 1;</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  Coordinates <span class="keywordtype">id</span> = <a class="code" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a>(src.shape(), element_idx);</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">int</span> idx = <span class="keywordtype">id</span>.<a class="code" href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">x</a>();</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordtype">int</span> idy = <span class="keywordtype">id</span>.y();</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">float</span> x0 = M00 * idx + M01 * idy + M02;</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">float</span> y0 = M10 * idx + M11 * idy + M12;</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordtype">id</span>.set(0, static_cast<int>(std::floor(x0)));</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordtype">id</span>.set(1, static_cast<int>(std::floor(y0)));</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span>((0 <= y0) && (y0 < height) && (0 <= x0) && (x0 < width))</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">switch</span>(policy)</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">case</span> InterpolationPolicy::NEAREST_NEIGHBOR:</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  dst[element_idx] = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, <span class="keywordtype">id</span>, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">case</span> InterpolationPolicy::BILINEAR:</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  (<a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a3064cbee60ab97935e8d1df617f82b5c">valid_bilinear_policy</a>(x0, y0, width, height, border_mode)) ? dst[element_idx] = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a92fd4059750cbbeecd8ad03f279200e1">bilinear_policy</a>(src, <span class="keywordtype">id</span>, x0, y0, border_mode, constant_border_value) :</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  valid_mask[element_idx] = 0;</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">case</span> InterpolationPolicy::AREA:</div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Interpolation not supported"</span>);</div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  {</div> |
| <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span>(border_mode == BorderMode::UNDEFINED)</div> |
| <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div> |
| <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  valid_mask[element_idx] = 0;</div> |
| <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  {</div> |
| <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">switch</span>(policy)</div> |
| <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div> |
| <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">case</span> InterpolationPolicy::NEAREST_NEIGHBOR:</div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">if</span>(border_mode == BorderMode::CONSTANT)</div> |
| <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  {</div> |
| <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  dst[element_idx] = constant_border_value;</div> |
| <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div> |
| <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(border_mode == BorderMode::REPLICATE)</div> |
| <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div> |
| <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordtype">id</span>.set(0, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(static_cast<int>(x0), width - 1)));</div> |
| <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">id</span>.set(1, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(static_cast<int>(y0), height - 1)));</div> |
| <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  dst[element_idx] = src[<a class="code" href="namespacearm__compute_1_1test.xhtml#a9be4cb7e6ee20063a4a10bc3abb750b9">coord2index</a>(src.shape(), <a class="code" href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a>)];</div> |
| <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">case</span> InterpolationPolicy::BILINEAR:</div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  dst[element_idx] = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a92fd4059750cbbeecd8ad03f279200e1">bilinear_policy</a>(src, <span class="keywordtype">id</span>, x0, y0, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">case</span> InterpolationPolicy::AREA:</div> |
| <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Interpolation not supported"</span>);</div> |
| <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div> |
| <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div> |
| <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div> |
| <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div> |
| <div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div> |
| <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a4f489943d8618d47b1ad4611f0b9b7ff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">arm_compute::test::validation::tensor_elem_at</a></div><div class="ttdeci">T tensor_elem_at(const SimpleTensor< T > &src, Coordinates coord, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">Utils.h:46</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="hwc_8hpp_xhtml_abaabdc509cdaba7df9f56c6c76f3ae19"><div class="ttname"><a href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a></div><div class="ttdeci">uint32_t id</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00252">hwc.hpp:252</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a9be4cb7e6ee20063a4a10bc3abb750b9"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a9be4cb7e6ee20063a4a10bc3abb750b9">arm_compute::test::coord2index</a></div><div class="ttdeci">int coord2index(const TensorShape &shape, const Coordinates &coord)</div><div class="ttdoc">Linearise the given coordinate. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00337">Utils.h:337</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1_dimensions_xhtml_afb5cd37bb08f1029691590372e6330f0"><div class="ttname"><a href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">arm_compute::Dimensions::x</a></div><div class="ttdeci">T x() const </div><div class="ttdoc">Alias to access the size of the first dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_dimensions_8h_source.xhtml#l00081">Dimensions.h:81</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a92fd4059750cbbeecd8ad03f279200e1"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a92fd4059750cbbeecd8ad03f279200e1">arm_compute::test::validation::bilinear_policy</a></div><div class="ttdeci">T bilinear_policy(const SimpleTensor< T > &in, Coordinates id, float xn, float yn, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8cpp_source.xhtml#l00036">Utils.cpp:36</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a24d8c0391cfa38e78969b6ad97c0ff09"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">arm_compute::test::index2coord</a></div><div class="ttdeci">Coordinates index2coord(const TensorShape &shape, int index)</div><div class="ttdoc">Convert a linear index into n-dimensional coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00308">Utils.h:308</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_a3064cbee60ab97935e8d1df617f82b5c"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a3064cbee60ab97935e8d1df617f82b5c">arm_compute::test::validation::reference::valid_bilinear_policy</a></div><div class="ttdeci">bool valid_bilinear_policy(float xn, float yn, int width, int height, BorderMode border_mode)</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_2_warp_affine_8cpp_source.xhtml#l00036">WarpAffine.cpp:36</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="acec59b1e80034018a6a0880bf29a130d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::warp_affine </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>valid_mask</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const float * </td> |
| <td class="paramname"><em>matrix</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">InterpolationPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a36be7020a6004680d96138fa8c300de7"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>< T > warp_perspective </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< T > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">SimpleTensor< T > & </td> |
| <td class="paramname"><em>valid_mask</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const float * </td> |
| <td class="paramname"><em>matrix</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">InterpolationPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="_c_p_p_2_warp_perspective_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_c_p_p_2_warp_perspective_8cpp_source.xhtml">WarpPerspective.cpp</a>.</p> |
| |
| <p>References <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">arm_compute::AREA</a>, <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">arm_compute::BILINEAR</a>, <a class="el" href="tests_2validation_2_c_p_p_2_utils_8cpp_source.xhtml#l00036">arm_compute::test::validation::bilinear_policy()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">arm_compute::CONSTANT</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00337">arm_compute::test::coord2index()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00265">SimpleTensor< T >::data_type()</a>, <a class="el" href="hwc_8hpp_source.xhtml#l00252">id</a>, <a class="el" href="tests_2_utils_8h_source.xhtml#l00308">arm_compute::test::index2coord()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2">arm_compute::NEAREST_NEIGHBOR</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00299">SimpleTensor< T >::num_elements()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">arm_compute::REPLICATE</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00234">SimpleTensor< T >::shape()</a>, <a class="el" href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">arm_compute::test::validation::tensor_elem_at()</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">arm_compute::UNDEFINED</a>, <a class="el" href="_c_p_p_2_warp_affine_8cpp_source.xhtml#l00036">valid_bilinear_policy()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions< T >::x()</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  SimpleTensor<T> dst(src.shape(), src.data_type());</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">// x0 = M00 * x + M01 * y + M02</span></div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// y0 = M10 * x + M11 * y + M12</span></div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// z0 = M20 * x + M21 * y + M22</span></div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// xn = x0 / z0</span></div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// yn = y0 / z0</span></div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M00 = matrix[0];</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M10 = matrix[1];</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M20 = matrix[2];</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M01 = matrix[0 + 1 * 3];</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M11 = matrix[1 + 1 * 3];</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M21 = matrix[2 + 1 * 3];</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M02 = matrix[0 + 2 * 3];</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M12 = matrix[1 + 2 * 3];</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> M22 = matrix[2 + 2 * 3];</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width = src.shape().x();</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> height = src.shape().y();</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> element_idx = 0; element_idx < src.num_elements(); ++element_idx)</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  {</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  valid_mask[element_idx] = 1;</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  Coordinates <span class="keywordtype">id</span> = <a class="code" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a>(src.shape(), element_idx);</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> idx = <span class="keywordtype">id</span>.<a class="code" href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">x</a>();</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> idy = <span class="keywordtype">id</span>.y();</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> z0 = M20 * idx + M21 * idy + M22;</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> x0 = (M00 * idx + M01 * idy + M02);</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> y0 = (M10 * idx + M11 * idy + M12);</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> xn = x0 / z0;</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> yn = y0 / z0;</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">id</span>.set(0, static_cast<int>(std::floor(xn)));</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">id</span>.set(1, static_cast<int>(std::floor(yn)));</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">if</span>((0 <= yn) && (yn < height) && (0 <= xn) && (xn < width))</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">switch</span>(policy)</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">case</span> InterpolationPolicy::NEAREST_NEIGHBOR:</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  dst[element_idx] = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">tensor_elem_at</a>(src, <span class="keywordtype">id</span>, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">case</span> InterpolationPolicy::BILINEAR:</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a997c20c740c2cf8dd5676ad55ad8a1a6">valid_bilinear_policy</a>(xn, yn, width, height, border_mode)) ? dst[element_idx] = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a92fd4059750cbbeecd8ad03f279200e1">bilinear_policy</a>(src, <span class="keywordtype">id</span>, xn, yn, border_mode, constant_border_value) : valid_mask[element_idx] = 0;</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">case</span> InterpolationPolicy::AREA:</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Interpolation not supported"</span>);</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span>(border_mode == BorderMode::UNDEFINED)</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  valid_mask[element_idx] = 0;</div> |
| <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div> |
| <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div> |
| <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">switch</span>(policy)</div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">case</span> InterpolationPolicy::NEAREST_NEIGHBOR:</div> |
| <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span>(border_mode == BorderMode::CONSTANT)</div> |
| <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div> |
| <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  dst[element_idx] = constant_border_value;</div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div> |
| <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(border_mode == BorderMode::REPLICATE)</div> |
| <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div> |
| <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">id</span>.set(0, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(static_cast<int>(xn), width - 1)));</div> |
| <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordtype">id</span>.set(1, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(static_cast<int>(yn), height - 1)));</div> |
| <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  dst[element_idx] = src[<a class="code" href="namespacearm__compute_1_1test.xhtml#a9be4cb7e6ee20063a4a10bc3abb750b9">coord2index</a>(src.shape(), <a class="code" href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a>)];</div> |
| <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div> |
| <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">case</span> InterpolationPolicy::BILINEAR:</div> |
| <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  dst[element_idx] = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a92fd4059750cbbeecd8ad03f279200e1">bilinear_policy</a>(src, <span class="keywordtype">id</span>, xn, yn, border_mode, constant_border_value);</div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">case</span> InterpolationPolicy::AREA:</div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Interpolation not supported"</span>);</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div> |
| <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div> |
| <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div> |
| <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div> |
| <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> dst;</div> |
| <div class="line"><a name="l00125"></a><span class="lineno"> 125</span> }</div> |
| <div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a4f489943d8618d47b1ad4611f0b9b7ff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f489943d8618d47b1ad4611f0b9b7ff">arm_compute::test::validation::tensor_elem_at</a></div><div class="ttdeci">T tensor_elem_at(const SimpleTensor< T > &src, Coordinates coord, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8h_source.xhtml#l00046">Utils.h:46</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point< T > min(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div> |
| <div class="ttc" id="hwc_8hpp_xhtml_abaabdc509cdaba7df9f56c6c76f3ae19"><div class="ttname"><a href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a></div><div class="ttdeci">uint32_t id</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00252">hwc.hpp:252</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a9be4cb7e6ee20063a4a10bc3abb750b9"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a9be4cb7e6ee20063a4a10bc3abb750b9">arm_compute::test::coord2index</a></div><div class="ttdeci">int coord2index(const TensorShape &shape, const Coordinates &coord)</div><div class="ttdoc">Linearise the given coordinate. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00337">Utils.h:337</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1_dimensions_xhtml_afb5cd37bb08f1029691590372e6330f0"><div class="ttname"><a href="classarm__compute_1_1_dimensions.xhtml#afb5cd37bb08f1029691590372e6330f0">arm_compute::Dimensions::x</a></div><div class="ttdeci">T x() const </div><div class="ttdoc">Alias to access the size of the first dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_dimensions_8h_source.xhtml#l00081">Dimensions.h:81</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a92fd4059750cbbeecd8ad03f279200e1"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a92fd4059750cbbeecd8ad03f279200e1">arm_compute::test::validation::bilinear_policy</a></div><div class="ttdeci">T bilinear_policy(const SimpleTensor< T > &in, Coordinates id, float xn, float yn, BorderMode border_mode, T constant_border_value)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8cpp_source.xhtml#l00036">Utils.cpp:36</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_xhtml_a24d8c0391cfa38e78969b6ad97c0ff09"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">arm_compute::test::index2coord</a></div><div class="ttdeci">Coordinates index2coord(const TensorShape &shape, int index)</div><div class="ttdoc">Convert a linear index into n-dimensional coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00308">Utils.h:308</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a997c20c740c2cf8dd5676ad55ad8a1a6"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a997c20c740c2cf8dd5676ad55ad8a1a6">arm_compute::test::validation::valid_bilinear_policy</a></div><div class="ttdeci">bool valid_bilinear_policy(float xn, float yn, int width, int height, BorderMode border_mode)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_c_p_p_2_utils_8cpp_source.xhtml#l00098">Utils.cpp:98</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point< T > max(fixed_point< T > x, fixed_point< T > y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a class="anchor" id="a29ddb612c916a0cd4c57ec03ceffd9b9"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">template <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a><uint8_t> arm_compute::test::validation::reference::warp_perspective </td> |
| <td>(</td> |
| <td class="paramtype">const SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">SimpleTensor< uint8_t > & </td> |
| <td class="paramname"><em>valid_mask</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const float * </td> |
| <td class="paramname"><em>matrix</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">InterpolationPolicy </td> |
| <td class="paramname"><em>policy</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">BorderMode </td> |
| <td class="paramname"><em>border_mode</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>constant_border_value</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| </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="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1test.xhtml">test</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml">validation</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml">reference</a></li> |
| <li class="footer">Generated on Thu Oct 12 2017 14:26:39 for Compute Library by |
| <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |