blob: f410cb644a8cbabd3033f1edf63e8e8a59dafc99 [file] [log] [blame]
Anthony Barbier871448e2017-03-24 14:54:29 +00001<!-- HTML header for doxygen 1.8.9.1-->
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4<head>
5<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6<meta http-equiv="X-UA-Compatible" content="IE=9"/>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007<meta name="generator" content="Doxygen 1.8.11"/>
Anthony Barbier871448e2017-03-24 14:54:29 +00008<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
Anthony Barbierdbdab852017-06-23 15:42:00 +01009<title>Compute Library: arm_compute Namespace Reference</title>
Anthony Barbier871448e2017-03-24 14:54:29 +000010<link href="tabs.css" rel="stylesheet" type="text/css"/>
11<script type="text/javascript" src="jquery.js"></script>
12<script type="text/javascript" src="dynsections.js"></script>
13<link href="navtree.css" rel="stylesheet" type="text/css"/>
14<script type="text/javascript" src="resize.js"></script>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015<script type="text/javascript" src="navtreedata.js"></script>
Anthony Barbier871448e2017-03-24 14:54:29 +000016<script type="text/javascript" src="navtree.js"></script>
17<script type="text/javascript">
18 $(document).ready(initResizable);
19 $(window).load(resizeHeight);
20</script>
21<link href="search/search.css" rel="stylesheet" type="text/css"/>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022<script type="text/javascript" src="search/searchdata.js"></script>
Anthony Barbier871448e2017-03-24 14:54:29 +000023<script type="text/javascript" src="search/search.js"></script>
24<script type="text/javascript">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025 $(document).ready(function() { init_search(); });
Anthony Barbier871448e2017-03-24 14:54:29 +000026</script>
27<script type="text/x-mathjax-config">
28 MathJax.Hub.Config({
29 extensions: ["tex2jax.js"],
30 jax: ["input/TeX","output/HTML-CSS"],
31});
Anthony Barbier8140e1e2017-12-14 23:48:46 +000032</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
Anthony Barbier871448e2017-03-24 14:54:29 +000033<link href="doxygen.css" rel="stylesheet" type="text/css" />
34</head>
35<body>
36<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
37<div id="titlearea">
38<table cellspacing="0" cellpadding="0">
39 <tbody>
40 <tr style="height: 56px;">
41 <td style="padding-left: 0.5em;">
Anthony Barbierdbdab852017-06-23 15:42:00 +010042 <div id="projectname">Compute Library
Jenkinsc3f34a42018-03-02 12:38:09 +000043 &#160;<span id="projectnumber">18.03</span>
Anthony Barbier871448e2017-03-24 14:54:29 +000044 </div>
45 </td>
46 </tr>
47 </tbody>
48</table>
49</div>
50<!-- end header part -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000051<!-- Generated by Doxygen 1.8.11 -->
Anthony Barbier871448e2017-03-24 14:54:29 +000052<script type="text/javascript">
53var searchBox = new SearchBox("searchBox", "search",false,'Search');
54</script>
55 <div id="navrow1" class="tabs">
56 <ul class="tablist">
57 <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
Anthony Barbierdbdab852017-06-23 15:42:00 +010058 <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
Anthony Barbier871448e2017-03-24 14:54:29 +000059 <li class="current"><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
60 <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
61 <li><a href="files.xhtml"><span>Files</span></a></li>
62 <li>
63 <div id="MSearchBox" class="MSearchBoxInactive">
64 <span class="left">
65 <img id="MSearchSelect" src="search/mag_sel.png"
66 onmouseover="return searchBox.OnSearchSelectShow()"
67 onmouseout="return searchBox.OnSearchSelectHide()"
68 alt=""/>
69 <input type="text" id="MSearchField" value="Search" accesskey="S"
70 onfocus="searchBox.OnSearchFieldFocus(true)"
71 onblur="searchBox.OnSearchFieldFocus(false)"
72 onkeyup="searchBox.OnSearchFieldChange(event)"/>
73 </span><span class="right">
74 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
75 </span>
76 </div>
77 </li>
78 </ul>
79 </div>
80 <div id="navrow2" class="tabs2">
81 <ul class="tablist">
82 <li><a href="namespaces.xhtml"><span>Namespace&#160;List</span></a></li>
83 <li><a href="namespacemembers.xhtml"><span>Namespace&#160;Members</span></a></li>
84 </ul>
85 </div>
86</div><!-- top -->
87<div id="side-nav" class="ui-resizable side-nav-resizable">
88 <div id="nav-tree">
89 <div id="nav-tree-contents">
90 <div id="nav-sync" class="sync"></div>
91 </div>
92 </div>
93 <div id="splitbar" style="-moz-user-select:none;"
94 class="ui-resizable-handle">
95 </div>
96</div>
97<script type="text/javascript">
98$(document).ready(function(){initNavTree('namespacearm__compute.xhtml','');});
99</script>
100<div id="doc-content">
101<!-- window showing the filter options -->
102<div id="MSearchSelectWindow"
103 onmouseover="return searchBox.OnSearchSelectShow()"
104 onmouseout="return searchBox.OnSearchSelectHide()"
105 onkeydown="return searchBox.OnSearchSelectKey(event)">
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000106</div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000107
108<!-- iframe showing the search results (closed by default) -->
109<div id="MSearchResultsWindow">
110<iframe src="javascript:void(0)" frameborder="0"
111 name="MSearchResults" id="MSearchResults">
112</iframe>
113</div>
114
115<div class="header">
116 <div class="summary">
117<a href="#namespaces">Namespaces</a> &#124;
118<a href="#nested-classes">Data Structures</a> &#124;
119<a href="#typedef-members">Typedefs</a> &#124;
120<a href="#enum-members">Enumerations</a> &#124;
121<a href="#func-members">Functions</a> &#124;
122<a href="#var-members">Variables</a> </div>
123 <div class="headertitle">
124<div class="title">arm_compute Namespace Reference</div> </div>
125</div><!--header-->
126<div class="contents">
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000127
128<p>This file contains all available output stages for GEMMLowp on OpenCL.
129<a href="#details">More...</a></p>
Anthony Barbier871448e2017-03-24 14:54:29 +0000130<table class="memberdecls">
131<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
132Namespaces</h2></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000133<tr class="memitem:namespacearm__compute_1_1detail"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1detail.xhtml">detail</a></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000134<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000135<tr class="memitem:namespacearm__compute_1_1gles"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1gles.xhtml">gles</a></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100136<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +0000137<tr class="memitem:namespacearm__compute_1_1gles__compute"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1gles__compute.xhtml">gles_compute</a></td></tr>
138<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000139<tr class="memitem:namespacearm__compute_1_1graph"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1graph.xhtml">graph</a></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100140<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000141<tr class="memitem:namespacearm__compute_1_1graph__utils"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1graph__utils.xhtml">graph_utils</a></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100142<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000143<tr class="memitem:namespacearm__compute_1_1io"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1io.xhtml">io</a></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100144<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000145<tr class="memitem:namespacearm__compute_1_1logging"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1logging.xhtml">logging</a></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100146<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000147<tr class="memitem:namespacearm__compute_1_1misc"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1misc.xhtml">misc</a></td></tr>
148<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
149<tr class="memitem:namespacearm__compute_1_1quantization"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1quantization.xhtml">quantization</a></td></tr>
150<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
151<tr class="memitem:namespacearm__compute_1_1support"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1support.xhtml">support</a></td></tr>
152<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
153<tr class="memitem:namespacearm__compute_1_1test"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml">test</a></td></tr>
154<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
155<tr class="memitem:namespacearm__compute_1_1traits"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1traits.xhtml">traits</a></td></tr>
156<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
157<tr class="memitem:namespacearm__compute_1_1utility"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1utility.xhtml">utility</a></td></tr>
158<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
159<tr class="memitem:namespacearm__compute_1_1utils"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1utils.xhtml">utils</a></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100160<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000161<tr class="memitem:namespacearm__compute_1_1wrapper"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1wrapper.xhtml">wrapper</a></td></tr>
162<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000163</table><table class="memberdecls">
164<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
165Data Structures</h2></td></tr>
166<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_access_window_auto_padding.xhtml">AccessWindowAutoPadding</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000167<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dummy access window. <a href="classarm__compute_1_1_access_window_auto_padding.xhtml#details">More...</a><br /></td></tr>
168<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
169<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_access_window_horizontal.xhtml">AccessWindowHorizontal</a></td></tr>
170<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of a row access pattern. <a href="classarm__compute_1_1_access_window_horizontal.xhtml#details">More...</a><br /></td></tr>
171<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
172<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_access_window_rectangle.xhtml">AccessWindowRectangle</a></td></tr>
173<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of a rectangular access pattern. <a href="classarm__compute_1_1_access_window_rectangle.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000174<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
175<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_access_window_static.xhtml">AccessWindowStatic</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000176<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of a static rectangular access pattern. <a href="classarm__compute_1_1_access_window_static.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000177<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
178<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_access_window_transpose.xhtml">AccessWindowTranspose</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000179<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of a XY-transpose access pattern. <a href="classarm__compute_1_1_access_window_transpose.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000180<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000181<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_access_window_vertical.xhtml">AccessWindowVertical</a></td></tr>
182<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of a column access pattern. <a href="classarm__compute_1_1_access_window_vertical.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000183<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000184<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml">ActivationLayerInfo</a></td></tr>
185<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Activation Layer Information class. <a href="classarm__compute_1_1_activation_layer_info.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000186<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000187<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_allocator.xhtml">Allocator</a></td></tr>
188<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default malloc allocator implementation. <a href="classarm__compute_1_1_allocator.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000189<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000190<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_array.xhtml">Array</a></td></tr>
191<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the <a class="el" href="classarm__compute_1_1_i_array.xhtml" title="Array of type T. ">IArray</a> interface which allocates a static number of T values. <a href="classarm__compute_1_1_array.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000192<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000193<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_blob_lifetime_manager.xhtml">BlobLifetimeManager</a></td></tr>
194<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concrete class that tracks the lifetime of registered tensors and calculates the systems memory requirements in terms of blobs. <a href="classarm__compute_1_1_blob_lifetime_manager.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000195<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000196<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_blob_memory_pool.xhtml">BlobMemoryPool</a></td></tr>
197<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blob memory pool. <a href="classarm__compute_1_1_blob_memory_pool.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000198<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000199<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a></td></tr>
200<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Container for 2D border size. <a href="structarm__compute_1_1_border_size.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000201<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000202<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_absolute_difference.xhtml">CLAbsoluteDifference</a></td></tr>
203<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_absolute_difference_kernel.xhtml">CLAbsoluteDifferenceKernel</a>. <a href="classarm__compute_1_1_c_l_absolute_difference.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000204<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100205<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_absolute_difference_kernel.xhtml">CLAbsoluteDifferenceKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000206<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the absolute difference kernel. <a href="classarm__compute_1_1_c_l_absolute_difference_kernel.xhtml#details">More...</a><br /></td></tr>
207<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
208<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_accumulate.xhtml">CLAccumulate</a></td></tr>
209<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_accumulate_kernel.xhtml">CLAccumulateKernel</a>. <a href="classarm__compute_1_1_c_l_accumulate.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000210<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100211<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_accumulate_kernel.xhtml">CLAccumulateKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000212<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the accumulate kernel. <a href="classarm__compute_1_1_c_l_accumulate_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000213<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000214<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_accumulate_squared.xhtml">CLAccumulateSquared</a></td></tr>
215<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_accumulate_squared_kernel.xhtml">CLAccumulateSquaredKernel</a>. <a href="classarm__compute_1_1_c_l_accumulate_squared.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000216<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100217<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_accumulate_squared_kernel.xhtml">CLAccumulateSquaredKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000218<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the accumulate squared kernel. <a href="classarm__compute_1_1_c_l_accumulate_squared_kernel.xhtml#details">More...</a><br /></td></tr>
219<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
220<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_accumulate_weighted.xhtml">CLAccumulateWeighted</a></td></tr>
221<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_accumulate_weighted_kernel.xhtml">CLAccumulateWeightedKernel</a>. <a href="classarm__compute_1_1_c_l_accumulate_weighted.xhtml#details">More...</a><br /></td></tr>
222<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
223<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_accumulate_weighted_kernel.xhtml">CLAccumulateWeightedKernel</a></td></tr>
224<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the accumulate weighted kernel. <a href="classarm__compute_1_1_c_l_accumulate_weighted_kernel.xhtml#details">More...</a><br /></td></tr>
225<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_activation_layer.xhtml">CLActivationLayer</a></td></tr>
227<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_activation_layer_kernel.xhtml">CLActivationLayerKernel</a>. <a href="classarm__compute_1_1_c_l_activation_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000228<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100229<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_activation_layer_kernel.xhtml">CLActivationLayerKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000230<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the activation layer kernel. <a href="classarm__compute_1_1_c_l_activation_layer_kernel.xhtml#details">More...</a><br /></td></tr>
231<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
232<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_arithmetic_addition.xhtml">CLArithmeticAddition</a></td></tr>
233<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_arithmetic_addition_kernel.xhtml">CLArithmeticAdditionKernel</a>. <a href="classarm__compute_1_1_c_l_arithmetic_addition.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000234<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100235<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_arithmetic_addition_kernel.xhtml">CLArithmeticAdditionKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000236<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the arithmetic addition kernel. <a href="classarm__compute_1_1_c_l_arithmetic_addition_kernel.xhtml#details">More...</a><br /></td></tr>
237<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
238<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_arithmetic_subtraction.xhtml">CLArithmeticSubtraction</a></td></tr>
239<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_arithmetic_subtraction_kernel.xhtml">CLArithmeticSubtractionKernel</a>. <a href="classarm__compute_1_1_c_l_arithmetic_subtraction.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000240<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100241<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_arithmetic_subtraction_kernel.xhtml">CLArithmeticSubtractionKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000242<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the arithmetic subtraction kernel. <a href="classarm__compute_1_1_c_l_arithmetic_subtraction_kernel.xhtml#details">More...</a><br /></td></tr>
243<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
244<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a></td></tr>
245<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_c_l_array.xhtml" title="CLArray implementation. ">CLArray</a> implementation. <a href="classarm__compute_1_1_c_l_array.xhtml#details">More...</a><br /></td></tr>
246<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
247<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_batch_normalization_layer.xhtml">CLBatchNormalizationLayer</a></td></tr>
248<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_normalization_layer_kernel.xhtml">CLNormalizationLayerKernel</a> and simulate a batch normalization layer. <a href="classarm__compute_1_1_c_l_batch_normalization_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000249<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100250<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_batch_normalization_layer_kernel.xhtml">CLBatchNormalizationLayerKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000251<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the BatchNormalization layer kernel. <a href="classarm__compute_1_1_c_l_batch_normalization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
252<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
253<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_bitwise_and.xhtml">CLBitwiseAnd</a></td></tr>
254<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_bitwise_and_kernel.xhtml">CLBitwiseAndKernel</a>. <a href="classarm__compute_1_1_c_l_bitwise_and.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000255<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100256<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_bitwise_and_kernel.xhtml">CLBitwiseAndKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000257<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the bitwise AND operation kernel. <a href="classarm__compute_1_1_c_l_bitwise_and_kernel.xhtml#details">More...</a><br /></td></tr>
258<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
259<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_bitwise_not.xhtml">CLBitwiseNot</a></td></tr>
260<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_bitwise_not_kernel.xhtml">CLBitwiseNotKernel</a>. <a href="classarm__compute_1_1_c_l_bitwise_not.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000261<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100262<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_bitwise_not_kernel.xhtml">CLBitwiseNotKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000263<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the bitwise NOT operation kernel. <a href="classarm__compute_1_1_c_l_bitwise_not_kernel.xhtml#details">More...</a><br /></td></tr>
264<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
265<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_bitwise_or.xhtml">CLBitwiseOr</a></td></tr>
266<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_bitwise_or_kernel.xhtml">CLBitwiseOrKernel</a>. <a href="classarm__compute_1_1_c_l_bitwise_or.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000267<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100268<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_bitwise_or_kernel.xhtml">CLBitwiseOrKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000269<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the bitwise OR operation kernel. <a href="classarm__compute_1_1_c_l_bitwise_or_kernel.xhtml#details">More...</a><br /></td></tr>
270<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
271<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_bitwise_xor.xhtml">CLBitwiseXor</a></td></tr>
272<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_bitwise_xor_kernel.xhtml">CLBitwiseXorKernel</a>. <a href="classarm__compute_1_1_c_l_bitwise_xor.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000273<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100274<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_bitwise_xor_kernel.xhtml">CLBitwiseXorKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000275<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the bitwise XOR operation kernel. <a href="classarm__compute_1_1_c_l_bitwise_xor_kernel.xhtml#details">More...</a><br /></td></tr>
276<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
277<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_box3x3.xhtml">CLBox3x3</a></td></tr>
278<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute box filter 3x3. <a href="classarm__compute_1_1_c_l_box3x3.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000279<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100280<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_box3x3_kernel.xhtml">CLBox3x3Kernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000281<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the box 3x3 filter kernel. <a href="classarm__compute_1_1_c_l_box3x3_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000282<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000283<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_buffer_allocator.xhtml">CLBufferAllocator</a></td></tr>
284<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default OpenCL cl buffer allocator implementation. <a href="classarm__compute_1_1_c_l_buffer_allocator.xhtml#details">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100285<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000286<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_build_options.xhtml">CLBuildOptions</a></td></tr>
287<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build options. <a href="classarm__compute_1_1_c_l_build_options.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000288<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000289<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_canny_edge.xhtml">CLCannyEdge</a></td></tr>
290<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute canny edge on OpenCL. <a href="classarm__compute_1_1_c_l_canny_edge.xhtml#details">More...</a><br /></td></tr>
291<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
292<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_channel_combine.xhtml">CLChannelCombine</a></td></tr>
293<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_channel_combine_kernel.xhtml">CLChannelCombineKernel</a> to perform channel combination. <a href="classarm__compute_1_1_c_l_channel_combine.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000294<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100295<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_channel_combine_kernel.xhtml">CLChannelCombineKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000296<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the channel combine kernel. <a href="classarm__compute_1_1_c_l_channel_combine_kernel.xhtml#details">More...</a><br /></td></tr>
297<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
298<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_channel_extract.xhtml">CLChannelExtract</a></td></tr>
299<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_channel_extract_kernel.xhtml">CLChannelExtractKernel</a> to perform channel extraction. <a href="classarm__compute_1_1_c_l_channel_extract.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000300<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100301<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_channel_extract_kernel.xhtml">CLChannelExtractKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000302<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the channel extract kernel. <a href="classarm__compute_1_1_c_l_channel_extract_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100303<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
304<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_c_l_coefficient_table.xhtml">CLCoefficientTable</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000305<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure for storing Spatial Gradient Matrix and the minimum eigenvalue for each keypoint. <a href="structarm__compute_1_1_c_l_coefficient_table.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100306<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000307<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_col2_im_kernel.xhtml">CLCol2ImKernel</a></td></tr>
308<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the col2im reshaping kernel. <a href="classarm__compute_1_1_c_l_col2_im_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100309<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000310<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_color_convert.xhtml">CLColorConvert</a></td></tr>
311<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_color_convert_kernel.xhtml">CLColorConvertKernel</a>. <a href="classarm__compute_1_1_c_l_color_convert.xhtml#details">More...</a><br /></td></tr>
312<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
313<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_color_convert_kernel.xhtml">CLColorConvertKernel</a></td></tr>
314<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the color convert kernel. <a href="classarm__compute_1_1_c_l_color_convert_kernel.xhtml#details">More...</a><br /></td></tr>
315<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
316<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_convolution3x3.xhtml">CLConvolution3x3</a></td></tr>
317<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute convolution of size 3x3. <a href="classarm__compute_1_1_c_l_convolution3x3.xhtml#details">More...</a><br /></td></tr>
318<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
319<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_convolution_kernel.xhtml">CLConvolutionKernel</a></td></tr>
320<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run an arbitrary size convolution on a tensor. <a href="classarm__compute_1_1_c_l_convolution_kernel.xhtml#details">More...</a><br /></td></tr>
321<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
322<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_convolution_layer.xhtml">CLConvolutionLayer</a></td></tr>
323<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute the convolution layer. <a href="classarm__compute_1_1_c_l_convolution_layer.xhtml#details">More...</a><br /></td></tr>
324<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
325<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_convolution_layer_reshape_weights.xhtml">CLConvolutionLayerReshapeWeights</a></td></tr>
326<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to reshape and transpose the weights. <a href="classarm__compute_1_1_c_l_convolution_layer_reshape_weights.xhtml#details">More...</a><br /></td></tr>
327<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
328<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_convolution_rectangle.xhtml">CLConvolutionRectangle</a></td></tr>
329<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute non-square convolution. <a href="classarm__compute_1_1_c_l_convolution_rectangle.xhtml#details">More...</a><br /></td></tr>
330<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
331<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_convolution_rectangle_kernel.xhtml">CLConvolutionRectangleKernel</a></td></tr>
332<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> for the running convolution on a rectangle matrix. <a href="classarm__compute_1_1_c_l_convolution_rectangle_kernel.xhtml#details">More...</a><br /></td></tr>
333<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
334<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_convolution_square.xhtml">CLConvolutionSquare</a></td></tr>
335<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute square convolution.Currently it supports 5x5, 7x7, 9x9. <a href="classarm__compute_1_1_c_l_convolution_square.xhtml#details">More...</a><br /></td></tr>
336<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
337<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_copy_to_array_kernel.xhtml">CLCopyToArrayKernel</a></td></tr>
338<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CL kernel to copy keypoints information to ICLKeyPointArray and counts the number of key points. <a href="classarm__compute_1_1_c_l_copy_to_array_kernel.xhtml#details">More...</a><br /></td></tr>
339<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +0000340<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_deconvolution_layer.xhtml">CLDeconvolutionLayer</a></td></tr>
341<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to run the deconvolution layer. <a href="classarm__compute_1_1_c_l_deconvolution_layer.xhtml#details">More...</a><br /></td></tr>
342<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
343<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_deconvolution_layer_upsample.xhtml">CLDeconvolutionLayerUpsample</a></td></tr>
344<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_deconvolution_layer_upsample_kernel.xhtml">CLDeconvolutionLayerUpsampleKernel</a>. <a href="classarm__compute_1_1_c_l_deconvolution_layer_upsample.xhtml#details">More...</a><br /></td></tr>
345<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
346<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_deconvolution_layer_upsample_kernel.xhtml">CLDeconvolutionLayerUpsampleKernel</a></td></tr>
347<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the Deconvolution layer kernel on OpenCL. <a href="classarm__compute_1_1_c_l_deconvolution_layer_upsample_kernel.xhtml#details">More...</a><br /></td></tr>
348<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000349<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depth_concatenate_layer.xhtml">CLDepthConcatenateLayer</a></td></tr>
350<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute concatenate tensors along z axis. <a href="classarm__compute_1_1_c_l_depth_concatenate_layer.xhtml#details">More...</a><br /></td></tr>
351<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
352<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depth_concatenate_layer_kernel.xhtml">CLDepthConcatenateLayerKernel</a></td></tr>
353<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depth concatenate kernel. <a href="classarm__compute_1_1_c_l_depth_concatenate_layer_kernel.xhtml#details">More...</a><br /></td></tr>
354<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
355<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depth_convert_layer.xhtml">CLDepthConvertLayer</a></td></tr>
356<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_depth_convert_layer_kernel.xhtml">CLDepthConvertLayerKernel</a>. <a href="classarm__compute_1_1_c_l_depth_convert_layer.xhtml#details">More...</a><br /></td></tr>
357<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
358<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depth_convert_layer_kernel.xhtml">CLDepthConvertLayerKernel</a></td></tr>
359<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depth conversion kernel. <a href="classarm__compute_1_1_c_l_depth_convert_layer_kernel.xhtml#details">More...</a><br /></td></tr>
360<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
361<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depthwise_convolution_layer.xhtml">CLDepthwiseConvolutionLayer</a></td></tr>
362<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute a generic depthwise convolution. <a href="classarm__compute_1_1_c_l_depthwise_convolution_layer.xhtml#details">More...</a><br /></td></tr>
363<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
364<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depthwise_convolution_layer3x3.xhtml">CLDepthwiseConvolutionLayer3x3</a></td></tr>
365<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute a depthwise convolution for kernel size 3x3xC. <a href="classarm__compute_1_1_c_l_depthwise_convolution_layer3x3.xhtml#details">More...</a><br /></td></tr>
366<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
367<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depthwise_convolution_layer3x3_kernel.xhtml">CLDepthwiseConvolutionLayer3x3Kernel</a></td></tr>
368<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run a 3x3 depthwise convolution on a tensor. <a href="classarm__compute_1_1_c_l_depthwise_convolution_layer3x3_kernel.xhtml#details">More...</a><br /></td></tr>
369<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
370<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depthwise_im2_col_kernel.xhtml">CLDepthwiseIm2ColKernel</a></td></tr>
371<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depthwise im2col reshape kernel. <a href="classarm__compute_1_1_c_l_depthwise_im2_col_kernel.xhtml#details">More...</a><br /></td></tr>
372<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
373<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depthwise_separable_convolution_layer.xhtml">CLDepthwiseSeparableConvolutionLayer</a></td></tr>
374<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute depthwise convolution. <a href="classarm__compute_1_1_c_l_depthwise_separable_convolution_layer.xhtml#details">More...</a><br /></td></tr>
375<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
376<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depthwise_vector_to_tensor_kernel.xhtml">CLDepthwiseVectorToTensorKernel</a></td></tr>
377<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depthwise vector to tensor kernel. <a href="classarm__compute_1_1_c_l_depthwise_vector_to_tensor_kernel.xhtml#details">More...</a><br /></td></tr>
378<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
379<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_depthwise_weights_reshape_kernel.xhtml">CLDepthwiseWeightsReshapeKernel</a></td></tr>
380<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depthwise weights reshape kernel. <a href="classarm__compute_1_1_c_l_depthwise_weights_reshape_kernel.xhtml#details">More...</a><br /></td></tr>
381<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
382<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_dequantization_layer.xhtml">CLDequantizationLayer</a></td></tr>
383<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a dequantization layer. <a href="classarm__compute_1_1_c_l_dequantization_layer.xhtml#details">More...</a><br /></td></tr>
384<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
385<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_dequantization_layer_kernel.xhtml">CLDequantizationLayerKernel</a></td></tr>
386<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the dequantization layer kernel. <a href="classarm__compute_1_1_c_l_dequantization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
387<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
388<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_derivative.xhtml">CLDerivative</a></td></tr>
389<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute first order derivative operator. <a href="classarm__compute_1_1_c_l_derivative.xhtml#details">More...</a><br /></td></tr>
390<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
391<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_derivative_kernel.xhtml">CLDerivativeKernel</a></td></tr>
392<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the derivative kernel. <a href="classarm__compute_1_1_c_l_derivative_kernel.xhtml#details">More...</a><br /></td></tr>
393<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
394<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_dilate.xhtml">CLDilate</a></td></tr>
395<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute dilate. <a href="classarm__compute_1_1_c_l_dilate.xhtml#details">More...</a><br /></td></tr>
396<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
397<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_dilate_kernel.xhtml">CLDilateKernel</a></td></tr>
398<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the dilate kernel. <a href="classarm__compute_1_1_c_l_dilate_kernel.xhtml#details">More...</a><br /></td></tr>
399<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
400<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_direct_convolution_layer.xhtml">CLDirectConvolutionLayer</a></td></tr>
401<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute direct convolution function: <a href="classarm__compute_1_1_c_l_direct_convolution_layer.xhtml#details">More...</a><br /></td></tr>
402<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
403<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_direct_convolution_layer_kernel.xhtml">CLDirectConvolutionLayerKernel</a></td></tr>
404<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the direct convolution kernel. <a href="classarm__compute_1_1_c_l_direct_convolution_layer_kernel.xhtml#details">More...</a><br /></td></tr>
405<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000406<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_direct_convolution_layer_output_stage_kernel.xhtml">CLDirectConvolutionLayerOutputStageKernel</a></td></tr>
407<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to accumulate the biases, if provided, or downscale in case of quantized input. <a href="classarm__compute_1_1_c_l_direct_convolution_layer_output_stage_kernel.xhtml#details">More...</a><br /></td></tr>
408<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000409<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_distribution1_d.xhtml">CLDistribution1D</a></td></tr>
410<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_c_l_distribution1_d.xhtml" title="CLDistribution1D object class. ">CLDistribution1D</a> object class. <a href="classarm__compute_1_1_c_l_distribution1_d.xhtml#details">More...</a><br /></td></tr>
411<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
412<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_edge_non_max_suppression_kernel.xhtml">CLEdgeNonMaxSuppressionKernel</a></td></tr>
413<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform Non-Maxima suppression for Canny Edge. <a href="classarm__compute_1_1_c_l_edge_non_max_suppression_kernel.xhtml#details">More...</a><br /></td></tr>
414<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
415<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_edge_trace_kernel.xhtml">CLEdgeTraceKernel</a></td></tr>
416<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform Edge tracing. <a href="classarm__compute_1_1_c_l_edge_trace_kernel.xhtml#details">More...</a><br /></td></tr>
417<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
418<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_equalize_histogram.xhtml">CLEqualizeHistogram</a></td></tr>
419<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute histogram equalization. <a href="classarm__compute_1_1_c_l_equalize_histogram.xhtml#details">More...</a><br /></td></tr>
420<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
421<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_erode.xhtml">CLErode</a></td></tr>
422<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute erode. <a href="classarm__compute_1_1_c_l_erode.xhtml#details">More...</a><br /></td></tr>
423<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
424<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_erode_kernel.xhtml">CLErodeKernel</a></td></tr>
425<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the erode kernel. <a href="classarm__compute_1_1_c_l_erode_kernel.xhtml#details">More...</a><br /></td></tr>
426<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
427<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_fast_corners.xhtml">CLFastCorners</a></td></tr>
428<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute fast corners. <a href="classarm__compute_1_1_c_l_fast_corners.xhtml#details">More...</a><br /></td></tr>
429<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
430<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_fast_corners_kernel.xhtml">CLFastCornersKernel</a></td></tr>
431<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CL kernel to perform fast corners. <a href="classarm__compute_1_1_c_l_fast_corners_kernel.xhtml#details">More...</a><br /></td></tr>
432<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
433<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_fill_border.xhtml">CLFillBorder</a></td></tr>
434<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_fill_border_kernel.xhtml">CLFillBorderKernel</a>. <a href="classarm__compute_1_1_c_l_fill_border.xhtml#details">More...</a><br /></td></tr>
435<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
436<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_fill_border_kernel.xhtml">CLFillBorderKernel</a></td></tr>
437<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for filling the border of a kernel. <a href="classarm__compute_1_1_c_l_fill_border_kernel.xhtml#details">More...</a><br /></td></tr>
438<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
439<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_flatten_layer.xhtml">CLFlattenLayer</a></td></tr>
440<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute flatten. <a href="classarm__compute_1_1_c_l_flatten_layer.xhtml#details">More...</a><br /></td></tr>
441<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
442<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_floor.xhtml">CLFloor</a></td></tr>
443<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_floor_kernel.xhtml">CLFloorKernel</a>. <a href="classarm__compute_1_1_c_l_floor.xhtml#details">More...</a><br /></td></tr>
444<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
445<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_floor_kernel.xhtml">CLFloorKernel</a></td></tr>
446<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform a floor operation. <a href="classarm__compute_1_1_c_l_floor_kernel.xhtml#details">More...</a><br /></td></tr>
447<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
448<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_fully_connected_layer.xhtml">CLFullyConnectedLayer</a></td></tr>
449<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute a Fully Connected layer on OpenCL. <a href="classarm__compute_1_1_c_l_fully_connected_layer.xhtml#details">More...</a><br /></td></tr>
450<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
451<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_fully_connected_layer_reshape_weights.xhtml">CLFullyConnectedLayerReshapeWeights</a></td></tr>
452<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to reshape the weights of Fully Connected layer with OpenCL. <a href="classarm__compute_1_1_c_l_fully_connected_layer_reshape_weights.xhtml#details">More...</a><br /></td></tr>
453<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
454<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian3x3.xhtml">CLGaussian3x3</a></td></tr>
455<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute gaussian filter 3x3. <a href="classarm__compute_1_1_c_l_gaussian3x3.xhtml#details">More...</a><br /></td></tr>
456<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
457<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian3x3_kernel.xhtml">CLGaussian3x3Kernel</a></td></tr>
458<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the Gaussian 3x3 filter kernel. <a href="classarm__compute_1_1_c_l_gaussian3x3_kernel.xhtml#details">More...</a><br /></td></tr>
459<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
460<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian5x5.xhtml">CLGaussian5x5</a></td></tr>
461<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute gaussian filter 5x5. <a href="classarm__compute_1_1_c_l_gaussian5x5.xhtml#details">More...</a><br /></td></tr>
462<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
463<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian5x5_hor_kernel.xhtml">CLGaussian5x5HorKernel</a></td></tr>
464<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the horizontal pass of 5x5 Gaussian filter on a tensor. <a href="classarm__compute_1_1_c_l_gaussian5x5_hor_kernel.xhtml#details">More...</a><br /></td></tr>
465<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
466<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian5x5_vert_kernel.xhtml">CLGaussian5x5VertKernel</a></td></tr>
467<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the vertical pass of 5x5 Gaussian filter on a tensor. <a href="classarm__compute_1_1_c_l_gaussian5x5_vert_kernel.xhtml#details">More...</a><br /></td></tr>
468<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
469<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian_pyramid.xhtml">CLGaussianPyramid</a></td></tr>
470<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface for all Gaussian pyramid functions. <a href="classarm__compute_1_1_c_l_gaussian_pyramid.xhtml#details">More...</a><br /></td></tr>
471<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
472<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian_pyramid_half.xhtml">CLGaussianPyramidHalf</a></td></tr>
473<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute gaussian pyramid with HALF scale factor. <a href="classarm__compute_1_1_c_l_gaussian_pyramid_half.xhtml#details">More...</a><br /></td></tr>
474<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
475<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian_pyramid_hor_kernel.xhtml">CLGaussianPyramidHorKernel</a></td></tr>
476<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform a Gaussian filter and half scaling across width (horizontal pass) <a href="classarm__compute_1_1_c_l_gaussian_pyramid_hor_kernel.xhtml#details">More...</a><br /></td></tr>
477<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
478<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian_pyramid_orb.xhtml">CLGaussianPyramidOrb</a></td></tr>
479<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute gaussian pyramid with ORB scale factor. <a href="classarm__compute_1_1_c_l_gaussian_pyramid_orb.xhtml#details">More...</a><br /></td></tr>
480<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
481<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gaussian_pyramid_vert_kernel.xhtml">CLGaussianPyramidVertKernel</a></td></tr>
482<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform a Gaussian filter and half scaling across height (vertical pass) <a href="classarm__compute_1_1_c_l_gaussian_pyramid_vert_kernel.xhtml#details">More...</a><br /></td></tr>
483<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
484<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m.xhtml">CLGEMM</a></td></tr>
485<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute GEMM on OpenCL. <a href="classarm__compute_1_1_c_l_g_e_m_m.xhtml#details">More...</a><br /></td></tr>
486<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000487<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_convolution_layer.xhtml">CLGEMMConvolutionLayer</a></td></tr>
488<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute the convolution layer. <a href="classarm__compute_1_1_c_l_g_e_m_m_convolution_layer.xhtml#details">More...</a><br /></td></tr>
489<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000490<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4.xhtml">CLGEMMInterleave4x4</a></td></tr>
491<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4_kernel.xhtml" title="OpenCL kernel which interleaves the elements of a matrix A in chunk of 4x4. ">CLGEMMInterleave4x4Kernel</a>. <a href="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4.xhtml#details">More...</a><br /></td></tr>
492<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
493<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4_kernel.xhtml">CLGEMMInterleave4x4Kernel</a></td></tr>
494<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel which interleaves the elements of a matrix A in chunk of 4x4. <a href="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4_kernel.xhtml#details">More...</a><br /></td></tr>
495<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
496<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_a_reduction_kernel.xhtml">CLGEMMLowpMatrixAReductionKernel</a></td></tr>
497<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel used to compute the row-vectors of sums of all the entries in each row of Matrix A. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_a_reduction_kernel.xhtml#details">More...</a><br /></td></tr>
498<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
499<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_b_reduction_kernel.xhtml">CLGEMMLowpMatrixBReductionKernel</a></td></tr>
500<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel used to compute the row-vectors of sums of all the entries in each column of Matrix B. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_b_reduction_kernel.xhtml#details">More...</a><br /></td></tr>
501<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
502<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_multiply_core.xhtml">CLGEMMLowpMatrixMultiplyCore</a></td></tr>
503<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute GEMMLowpMatrixMultiplyCore on OpenCL. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_multiply_core.xhtml#details">More...</a><br /></td></tr>
504<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
505<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_multiply_kernel.xhtml">CLGEMMLowpMatrixMultiplyKernel</a></td></tr>
506<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to multiply matrices. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
507<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
508<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_offset_contribution_kernel.xhtml">CLGEMMLowpOffsetContributionKernel</a></td></tr>
509<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel used to add the offset contribution after <a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_multiply_kernel.xhtml">CLGEMMLowpMatrixMultiplyKernel</a>. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_offset_contribution_kernel.xhtml#details">More...</a><br /></td></tr>
510<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
511<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale.xhtml">CLGEMMLowpQuantizeDownInt32ToUint8Scale</a></td></tr>
512<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale.xhtml" title="Basic function to execute CLGEMMLowpQuantizeDownInt32ToUint8Scale on OpenCL. ">CLGEMMLowpQuantizeDownInt32ToUint8Scale</a> on OpenCL. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale.xhtml#details">More...</a><br /></td></tr>
513<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
514<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point.xhtml">CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint</a></td></tr>
515<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point.xhtml" title="Basic function to execute CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint on OpenCL. ">CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint</a> on OpenCL. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point.xhtml#details">More...</a><br /></td></tr>
516<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
517<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point_kernel.xhtml">CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel</a></td></tr>
518<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel used to quantize down the int32 accumulator values of GEMMLowp to QASYMM8. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point_kernel.xhtml#details">More...</a><br /></td></tr>
519<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
520<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_kernel.xhtml">CLGEMMLowpQuantizeDownInt32ToUint8ScaleKernel</a></td></tr>
521<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel used to quantize down the int32 accumulator values of GEMMLowp to QASYMM8. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_kernel.xhtml#details">More...</a><br /></td></tr>
522<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
523<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_matrix_accumulate_biases_kernel.xhtml">CLGEMMMatrixAccumulateBiasesKernel</a></td></tr>
524<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to add a bias to each row of the input tensor. <a href="classarm__compute_1_1_c_l_g_e_m_m_matrix_accumulate_biases_kernel.xhtml#details">More...</a><br /></td></tr>
525<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
526<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_matrix_addition_kernel.xhtml">CLGEMMMatrixAdditionKernel</a></td></tr>
527<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform the in-place matrix addition between 2 matrices, taking into account that the second matrix might be weighted by a scalar value beta. <a href="classarm__compute_1_1_c_l_g_e_m_m_matrix_addition_kernel.xhtml#details">More...</a><br /></td></tr>
528<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
529<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_matrix_multiply_kernel.xhtml">CLGEMMMatrixMultiplyKernel</a></td></tr>
530<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to multiply two input matrices "A" and "B" . <a href="classarm__compute_1_1_c_l_g_e_m_m_matrix_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
531<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
532<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_matrix_vector_multiply_kernel.xhtml">CLGEMMMatrixVectorMultiplyKernel</a></td></tr>
533<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the GEMM matrix vector multiply kernel. <a href="classarm__compute_1_1_c_l_g_e_m_m_matrix_vector_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
534<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
535<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w.xhtml">CLGEMMTranspose1xW</a></td></tr>
536<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w_kernel.xhtml" title="OpenCL kernel which transposes the elements of a matrix in chunks of 1xW, where W is equal to (16 / e...">CLGEMMTranspose1xWKernel</a>. <a href="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w.xhtml#details">More...</a><br /></td></tr>
537<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
538<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w_kernel.xhtml">CLGEMMTranspose1xWKernel</a></td></tr>
539<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel which transposes the elements of a matrix in chunks of 1xW, where W is equal to (16 / element size of the tensor) <a href="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w_kernel.xhtml#details">More...</a><br /></td></tr>
540<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
541<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_gradient_kernel.xhtml">CLGradientKernel</a></td></tr>
542<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform Gradient computation. <a href="classarm__compute_1_1_c_l_gradient_kernel.xhtml#details">More...</a><br /></td></tr>
543<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
544<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_harris_corners.xhtml">CLHarrisCorners</a></td></tr>
545<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute harris corners detection. <a href="classarm__compute_1_1_c_l_harris_corners.xhtml#details">More...</a><br /></td></tr>
546<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
547<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_harris_score_kernel.xhtml">CLHarrisScoreKernel</a></td></tr>
548<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the harris score kernel. <a href="classarm__compute_1_1_c_l_harris_score_kernel.xhtml#details">More...</a><br /></td></tr>
549<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
550<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_histogram.xhtml">CLHistogram</a></td></tr>
551<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute histogram. <a href="classarm__compute_1_1_c_l_histogram.xhtml#details">More...</a><br /></td></tr>
552<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
553<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_histogram_border_kernel.xhtml">CLHistogramBorderKernel</a></td></tr>
554<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to run the histogram kernel to handle the leftover part of image. <a href="classarm__compute_1_1_c_l_histogram_border_kernel.xhtml#details">More...</a><br /></td></tr>
555<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
556<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_histogram_kernel.xhtml">CLHistogramKernel</a></td></tr>
557<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to run the histogram kernel. <a href="classarm__compute_1_1_c_l_histogram_kernel.xhtml#details">More...</a><br /></td></tr>
558<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
559<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_h_o_g.xhtml">CLHOG</a></td></tr>
560<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL implementation of <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> data-object. <a href="classarm__compute_1_1_c_l_h_o_g.xhtml#details">More...</a><br /></td></tr>
561<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
562<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_h_o_g_block_normalization_kernel.xhtml">CLHOGBlockNormalizationKernel</a></td></tr>
563<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> block normalization. <a href="classarm__compute_1_1_c_l_h_o_g_block_normalization_kernel.xhtml#details">More...</a><br /></td></tr>
564<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
565<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_h_o_g_descriptor.xhtml">CLHOGDescriptor</a></td></tr>
566<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to calculate <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> descriptor. <a href="classarm__compute_1_1_c_l_h_o_g_descriptor.xhtml#details">More...</a><br /></td></tr>
567<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
568<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_h_o_g_detector.xhtml">CLHOGDetector</a></td></tr>
569<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> detector based on linear SVM. <a href="classarm__compute_1_1_c_l_h_o_g_detector.xhtml#details">More...</a><br /></td></tr>
570<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
571<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_h_o_g_detector_kernel.xhtml">CLHOGDetectorKernel</a></td></tr>
572<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> detector kernel using linear SVM. <a href="classarm__compute_1_1_c_l_h_o_g_detector_kernel.xhtml#details">More...</a><br /></td></tr>
573<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
574<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_h_o_g_gradient.xhtml">CLHOGGradient</a></td></tr>
575<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to calculate the gradient for <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a>. <a href="classarm__compute_1_1_c_l_h_o_g_gradient.xhtml#details">More...</a><br /></td></tr>
576<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
577<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_h_o_g_multi_detection.xhtml">CLHOGMultiDetection</a></td></tr>
578<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to detect multiple objects (or the same object at different scales) on the same input image using <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a>. <a href="classarm__compute_1_1_c_l_h_o_g_multi_detection.xhtml#details">More...</a><br /></td></tr>
579<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
580<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_h_o_g_orientation_binning_kernel.xhtml">CLHOGOrientationBinningKernel</a></td></tr>
581<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> Orientation Binning. <a href="classarm__compute_1_1_c_l_h_o_g_orientation_binning_kernel.xhtml#details">More...</a><br /></td></tr>
582<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
583<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_im2_col_kernel.xhtml">CLIm2ColKernel</a></td></tr>
584<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the im2col reshape kernel. <a href="classarm__compute_1_1_c_l_im2_col_kernel.xhtml#details">More...</a><br /></td></tr>
585<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
586<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_integral_image.xhtml">CLIntegralImage</a></td></tr>
587<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute integral image. <a href="classarm__compute_1_1_c_l_integral_image.xhtml#details">More...</a><br /></td></tr>
588<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
589<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_integral_image_hor_kernel.xhtml">CLIntegralImageHorKernel</a></td></tr>
590<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to run the horizontal pass of the integral image kernel. <a href="classarm__compute_1_1_c_l_integral_image_hor_kernel.xhtml#details">More...</a><br /></td></tr>
591<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
592<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_integral_image_vert_kernel.xhtml">CLIntegralImageVertKernel</a></td></tr>
593<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to run the vertical pass of the integral image kernel. <a href="classarm__compute_1_1_c_l_integral_image_vert_kernel.xhtml#details">More...</a><br /></td></tr>
594<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
595<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml">CLKernelLibrary</a></td></tr>
596<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml" title="CLKernelLibrary class. ">CLKernelLibrary</a> class. <a href="classarm__compute_1_1_c_l_kernel_library.xhtml#details">More...</a><br /></td></tr>
597<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
598<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_l2_normalize_layer.xhtml">CLL2NormalizeLayer</a></td></tr>
599<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform reduction operation. <a href="classarm__compute_1_1_c_l_l2_normalize_layer.xhtml#details">More...</a><br /></td></tr>
600<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
601<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_l2_normalize_layer_kernel.xhtml">CLL2NormalizeLayerKernel</a></td></tr>
602<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the reduction operation kernel. <a href="classarm__compute_1_1_c_l_l2_normalize_layer_kernel.xhtml#details">More...</a><br /></td></tr>
603<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
604<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_laplacian_pyramid.xhtml">CLLaplacianPyramid</a></td></tr>
605<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute laplacian pyramid. <a href="classarm__compute_1_1_c_l_laplacian_pyramid.xhtml#details">More...</a><br /></td></tr>
606<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
607<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_laplacian_reconstruct.xhtml">CLLaplacianReconstruct</a></td></tr>
608<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute laplacian reconstruction. <a href="classarm__compute_1_1_c_l_laplacian_reconstruct.xhtml#details">More...</a><br /></td></tr>
609<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
610<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_c_l_l_k_internal_keypoint.xhtml">CLLKInternalKeypoint</a></td></tr>
611<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal keypoint structure for Lucas-Kanade Optical Flow. <a href="structarm__compute_1_1_c_l_l_k_internal_keypoint.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100612<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
613<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_l_k_tracker_finalize_kernel.xhtml">CLLKTrackerFinalizeKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000614<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to run the finalize step of LKTracker, where it truncates the coordinates stored in new_points array. <a href="classarm__compute_1_1_c_l_l_k_tracker_finalize_kernel.xhtml#details">More...</a><br /></td></tr>
615<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
616<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_l_k_tracker_init_kernel.xhtml">CLLKTrackerInitKernel</a></td></tr>
617<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to run the initialization step of LKTracker. <a href="classarm__compute_1_1_c_l_l_k_tracker_init_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100618<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
619<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_l_k_tracker_stage0_kernel.xhtml">CLLKTrackerStage0Kernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000620<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to run the first stage of LKTracker, where A11, A12, A22, min_eig, ival, ixval and iyval are computed. <a href="classarm__compute_1_1_c_l_l_k_tracker_stage0_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100621<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
622<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_l_k_tracker_stage1_kernel.xhtml">CLLKTrackerStage1Kernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000623<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to run the second stage of LKTracker, where the motion vectors of the given points are computed. <a href="classarm__compute_1_1_c_l_l_k_tracker_stage1_kernel.xhtml#details">More...</a><br /></td></tr>
624<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
625<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_locally_connected_layer.xhtml">CLLocallyConnectedLayer</a></td></tr>
626<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute the locally connected layer. <a href="classarm__compute_1_1_c_l_locally_connected_layer.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100627<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
628<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_locally_connected_matrix_multiply_kernel.xhtml">CLLocallyConnectedMatrixMultiplyKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000629<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to multiply each row of first tensor with low 2 dimensions of second tensor. <a href="classarm__compute_1_1_c_l_locally_connected_matrix_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000630<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100631<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_logits1_d_max_kernel.xhtml">CLLogits1DMaxKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000632<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the identifying the max value of 1D Logits. <a href="classarm__compute_1_1_c_l_logits1_d_max_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000633<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000634<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_logits1_d_max_shift_exp_sum_kernel.xhtml">CLLogits1DMaxShiftExpSumKernel</a></td></tr>
635<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for max, shifting, exponentiating and summing the logits. <a href="classarm__compute_1_1_c_l_logits1_d_max_shift_exp_sum_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100636<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100637<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_logits1_d_norm_kernel.xhtml">CLLogits1DNormKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000638<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for calculating the final step of the Softmax Layer where each logit value is multiplied by the inverse of the sum of the logits. <a href="classarm__compute_1_1_c_l_logits1_d_norm_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000639<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000640<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_logits1_d_shift_exp_sum_kernel.xhtml">CLLogits1DShiftExpSumKernel</a></td></tr>
641<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for shifting, exponentiating and summing the logits. <a href="classarm__compute_1_1_c_l_logits1_d_shift_exp_sum_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000642<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000643<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_lut.xhtml">CLLut</a></td></tr>
644<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the OpenCL lut interface. <a href="classarm__compute_1_1_c_l_lut.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000645<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000646<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_lut_allocator.xhtml">CLLutAllocator</a></td></tr>
647<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of a CL memory LUT allocator. <a href="classarm__compute_1_1_c_l_lut_allocator.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000648<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000649<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_magnitude.xhtml">CLMagnitude</a></td></tr>
650<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_magnitude_phase_kernel.xhtml">CLMagnitudePhaseKernel</a>. <a href="classarm__compute_1_1_c_l_magnitude.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000651<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000652<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_magnitude_phase_kernel.xhtml">CLMagnitudePhaseKernel</a></td></tr>
653<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template interface for the kernel to compute magnitude and phase. <a href="classarm__compute_1_1_c_l_magnitude_phase_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000654<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000655<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_mean_std_dev.xhtml">CLMeanStdDev</a></td></tr>
656<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute mean and standard deviation by calling <a class="el" href="classarm__compute_1_1_c_l_mean_std_dev_kernel.xhtml">CLMeanStdDevKernel</a>. <a href="classarm__compute_1_1_c_l_mean_std_dev.xhtml#details">More...</a><br /></td></tr>
657<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
658<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_mean_std_dev_kernel.xhtml">CLMeanStdDevKernel</a></td></tr>
659<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to calculate mean and standard deviation of input image pixels. <a href="classarm__compute_1_1_c_l_mean_std_dev_kernel.xhtml#details">More...</a><br /></td></tr>
660<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
661<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_median3x3.xhtml">CLMedian3x3</a></td></tr>
662<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute median filter. <a href="classarm__compute_1_1_c_l_median3x3.xhtml#details">More...</a><br /></td></tr>
663<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
664<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_median3x3_kernel.xhtml">CLMedian3x3Kernel</a></td></tr>
665<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the median 3x3 filter kernel. <a href="classarm__compute_1_1_c_l_median3x3_kernel.xhtml#details">More...</a><br /></td></tr>
666<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
667<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_min_max_kernel.xhtml">CLMinMaxKernel</a></td></tr>
668<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform min max search on an image. <a href="classarm__compute_1_1_c_l_min_max_kernel.xhtml#details">More...</a><br /></td></tr>
669<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
670<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_min_max_layer_kernel.xhtml">CLMinMaxLayerKernel</a></td></tr>
671<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform min max search on a 3D tensor. <a href="classarm__compute_1_1_c_l_min_max_layer_kernel.xhtml#details">More...</a><br /></td></tr>
672<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
673<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_min_max_location.xhtml">CLMinMaxLocation</a></td></tr>
674<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute min and max location. <a href="classarm__compute_1_1_c_l_min_max_location.xhtml#details">More...</a><br /></td></tr>
675<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
676<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_min_max_location_kernel.xhtml">CLMinMaxLocationKernel</a></td></tr>
677<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to find min max locations of an image. <a href="classarm__compute_1_1_c_l_min_max_location_kernel.xhtml#details">More...</a><br /></td></tr>
678<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
679<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_multi_h_o_g.xhtml">CLMultiHOG</a></td></tr>
680<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the CL multi <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> data-objects. <a href="classarm__compute_1_1_c_l_multi_h_o_g.xhtml#details">More...</a><br /></td></tr>
681<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
682<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_multi_image.xhtml">CLMultiImage</a></td></tr>
683<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the CL multi-planar image interface. <a href="classarm__compute_1_1_c_l_multi_image.xhtml#details">More...</a><br /></td></tr>
684<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
685<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_non_linear_filter.xhtml">CLNonLinearFilter</a></td></tr>
686<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute non linear filter. <a href="classarm__compute_1_1_c_l_non_linear_filter.xhtml#details">More...</a><br /></td></tr>
687<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
688<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_non_linear_filter_kernel.xhtml">CLNonLinearFilterKernel</a></td></tr>
689<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to apply a non-linear filter. <a href="classarm__compute_1_1_c_l_non_linear_filter_kernel.xhtml#details">More...</a><br /></td></tr>
690<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
691<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_non_maxima_suppression3x3.xhtml">CLNonMaximaSuppression3x3</a></td></tr>
692<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute non-maxima suppression over a 3x3 window. <a href="classarm__compute_1_1_c_l_non_maxima_suppression3x3.xhtml#details">More...</a><br /></td></tr>
693<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
694<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_non_maxima_suppression3x3_kernel.xhtml">CLNonMaximaSuppression3x3Kernel</a></td></tr>
695<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to perform Non-Maxima suppression over a 3x3 window using OpenCL. <a href="classarm__compute_1_1_c_l_non_maxima_suppression3x3_kernel.xhtml#details">More...</a><br /></td></tr>
696<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
697<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_normalization_layer.xhtml">CLNormalizationLayer</a></td></tr>
698<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute a normalization layer. <a href="classarm__compute_1_1_c_l_normalization_layer.xhtml#details">More...</a><br /></td></tr>
699<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
700<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_normalization_layer_kernel.xhtml">CLNormalizationLayerKernel</a></td></tr>
701<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the normalization layer kernel. <a href="classarm__compute_1_1_c_l_normalization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
702<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
703<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_c_l_old_value.xhtml">CLOldValue</a></td></tr>
704<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure for storing ival, ixval and iyval for each point inside the window. <a href="structarm__compute_1_1_c_l_old_value.xhtml#details">More...</a><br /></td></tr>
705<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
706<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_optical_flow.xhtml">CLOpticalFlow</a></td></tr>
707<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute optical flow. <a href="classarm__compute_1_1_c_l_optical_flow.xhtml#details">More...</a><br /></td></tr>
708<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +0000709<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_permute.xhtml">CLPermute</a></td></tr>
710<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute an <a class="el" href="classarm__compute_1_1_c_l_permute_kernel.xhtml">CLPermuteKernel</a>. <a href="classarm__compute_1_1_c_l_permute.xhtml#details">More...</a><br /></td></tr>
711<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
712<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_permute_kernel.xhtml">CLPermuteKernel</a></td></tr>
713<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform tensor permutation. <a href="classarm__compute_1_1_c_l_permute_kernel.xhtml#details">More...</a><br /></td></tr>
714<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000715<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_phase.xhtml">CLPhase</a></td></tr>
716<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute an <a class="el" href="classarm__compute_1_1_c_l_magnitude_phase_kernel.xhtml">CLMagnitudePhaseKernel</a>. <a href="classarm__compute_1_1_c_l_phase.xhtml#details">More...</a><br /></td></tr>
717<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
718<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_pixel_wise_multiplication.xhtml">CLPixelWiseMultiplication</a></td></tr>
719<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_pixel_wise_multiplication_kernel.xhtml">CLPixelWiseMultiplicationKernel</a>. <a href="classarm__compute_1_1_c_l_pixel_wise_multiplication.xhtml#details">More...</a><br /></td></tr>
720<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
721<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_pixel_wise_multiplication_kernel.xhtml">CLPixelWiseMultiplicationKernel</a></td></tr>
722<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the pixelwise multiplication kernel. <a href="classarm__compute_1_1_c_l_pixel_wise_multiplication_kernel.xhtml#details">More...</a><br /></td></tr>
723<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
724<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_pooling_layer.xhtml">CLPoolingLayer</a></td></tr>
725<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a pooling layer with the specified pooling operation. <a href="classarm__compute_1_1_c_l_pooling_layer.xhtml#details">More...</a><br /></td></tr>
726<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
727<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_pooling_layer_kernel.xhtml">CLPoolingLayerKernel</a></td></tr>
728<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the pooling layer kernel. <a href="classarm__compute_1_1_c_l_pooling_layer_kernel.xhtml#details">More...</a><br /></td></tr>
729<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
730<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_pyramid.xhtml">CLPyramid</a></td></tr>
731<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the OpenCL pyramid interface. <a href="classarm__compute_1_1_c_l_pyramid.xhtml#details">More...</a><br /></td></tr>
732<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
733<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_quantization_layer.xhtml">CLQuantizationLayer</a></td></tr>
734<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a quantization layer. <a href="classarm__compute_1_1_c_l_quantization_layer.xhtml#details">More...</a><br /></td></tr>
735<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
736<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_quantization_layer_kernel.xhtml">CLQuantizationLayerKernel</a></td></tr>
737<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the quantization layer kernel. <a href="classarm__compute_1_1_c_l_quantization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
738<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
739<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_reduction_operation.xhtml">CLReductionOperation</a></td></tr>
740<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform reduction operation. <a href="classarm__compute_1_1_c_l_reduction_operation.xhtml#details">More...</a><br /></td></tr>
741<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
742<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_reduction_operation_kernel.xhtml">CLReductionOperationKernel</a></td></tr>
743<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the reduction operation kernel. <a href="classarm__compute_1_1_c_l_reduction_operation_kernel.xhtml#details">More...</a><br /></td></tr>
744<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
745<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_remap.xhtml">CLRemap</a></td></tr>
746<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute remap. <a href="classarm__compute_1_1_c_l_remap.xhtml#details">More...</a><br /></td></tr>
747<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
748<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_remap_kernel.xhtml">CLRemapKernel</a></td></tr>
749<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to perform a remap on a tensor. <a href="classarm__compute_1_1_c_l_remap_kernel.xhtml#details">More...</a><br /></td></tr>
750<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
751<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_reshape_layer.xhtml">CLReshapeLayer</a></td></tr>
752<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_reshape_layer_kernel.xhtml">CLReshapeLayerKernel</a>. <a href="classarm__compute_1_1_c_l_reshape_layer.xhtml#details">More...</a><br /></td></tr>
753<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
754<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_reshape_layer_kernel.xhtml">CLReshapeLayerKernel</a></td></tr>
755<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform tensor reshaping. <a href="classarm__compute_1_1_c_l_reshape_layer_kernel.xhtml#details">More...</a><br /></td></tr>
756<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
757<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_r_o_i_pooling_layer.xhtml">CLROIPoolingLayer</a></td></tr>
758<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_r_o_i_pooling_layer_kernel.xhtml">CLROIPoolingLayerKernel</a>. <a href="classarm__compute_1_1_c_l_r_o_i_pooling_layer.xhtml#details">More...</a><br /></td></tr>
759<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
760<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_r_o_i_pooling_layer_kernel.xhtml">CLROIPoolingLayerKernel</a></td></tr>
761<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the <a class="el" href="structarm__compute_1_1_r_o_i.xhtml" title="Region of interest. ">ROI</a> pooling layer kernel. <a href="classarm__compute_1_1_c_l_r_o_i_pooling_layer_kernel.xhtml#details">More...</a><br /></td></tr>
762<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
763<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_scale.xhtml">CLScale</a></td></tr>
764<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_scale_kernel.xhtml">CLScaleKernel</a>. <a href="classarm__compute_1_1_c_l_scale.xhtml#details">More...</a><br /></td></tr>
765<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
766<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_scale_kernel.xhtml">CLScaleKernel</a></td></tr>
767<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the scale kernel. <a href="classarm__compute_1_1_c_l_scale_kernel.xhtml#details">More...</a><br /></td></tr>
768<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
769<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_scharr3x3.xhtml">CLScharr3x3</a></td></tr>
770<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute scharr 3x3 filter. <a href="classarm__compute_1_1_c_l_scharr3x3.xhtml#details">More...</a><br /></td></tr>
771<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
772<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_scharr3x3_kernel.xhtml">CLScharr3x3Kernel</a></td></tr>
773<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run a 3x3 Scharr filter on a tensor. <a href="classarm__compute_1_1_c_l_scharr3x3_kernel.xhtml#details">More...</a><br /></td></tr>
774<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
775<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_scheduler.xhtml">CLScheduler</a></td></tr>
776<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides global access to a CL context and command queue. <a href="classarm__compute_1_1_c_l_scheduler.xhtml#details">More...</a><br /></td></tr>
777<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
778<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_separable_convolution_hor_kernel.xhtml">CLSeparableConvolutionHorKernel</a></td></tr>
779<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> for the Horizontal pass of a Separable Convolution. <a href="classarm__compute_1_1_c_l_separable_convolution_hor_kernel.xhtml#details">More...</a><br /></td></tr>
780<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
781<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_separable_convolution_vert_kernel.xhtml">CLSeparableConvolutionVertKernel</a></td></tr>
782<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> for the Vertical pass of a Separable Convolution. <a href="classarm__compute_1_1_c_l_separable_convolution_vert_kernel.xhtml#details">More...</a><br /></td></tr>
783<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
784<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sobel3x3.xhtml">CLSobel3x3</a></td></tr>
785<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute sobel 3x3 filter. <a href="classarm__compute_1_1_c_l_sobel3x3.xhtml#details">More...</a><br /></td></tr>
786<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
787<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sobel3x3_kernel.xhtml">CLSobel3x3Kernel</a></td></tr>
788<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run a 3x3 Sobel filter on a tensor. <a href="classarm__compute_1_1_c_l_sobel3x3_kernel.xhtml#details">More...</a><br /></td></tr>
789<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
790<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sobel5x5.xhtml">CLSobel5x5</a></td></tr>
791<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute sobel 5x5 filter. <a href="classarm__compute_1_1_c_l_sobel5x5.xhtml#details">More...</a><br /></td></tr>
792<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
793<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sobel5x5_hor_kernel.xhtml">CLSobel5x5HorKernel</a></td></tr>
794<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the horizontal pass of 5x5 Sobel filter on a tensor. <a href="classarm__compute_1_1_c_l_sobel5x5_hor_kernel.xhtml#details">More...</a><br /></td></tr>
795<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
796<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sobel5x5_vert_kernel.xhtml">CLSobel5x5VertKernel</a></td></tr>
797<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the vertical pass of 5x5 Sobel filter on a tensor. <a href="classarm__compute_1_1_c_l_sobel5x5_vert_kernel.xhtml#details">More...</a><br /></td></tr>
798<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
799<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sobel7x7.xhtml">CLSobel7x7</a></td></tr>
800<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute sobel 7x7 filter. <a href="classarm__compute_1_1_c_l_sobel7x7.xhtml#details">More...</a><br /></td></tr>
801<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
802<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sobel7x7_hor_kernel.xhtml">CLSobel7x7HorKernel</a></td></tr>
803<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the horizontal pass of 7x7 Sobel filter on a tensor. <a href="classarm__compute_1_1_c_l_sobel7x7_hor_kernel.xhtml#details">More...</a><br /></td></tr>
804<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
805<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sobel7x7_vert_kernel.xhtml">CLSobel7x7VertKernel</a></td></tr>
806<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the vertical pass of 7x7 Sobel filter on a tensor. <a href="classarm__compute_1_1_c_l_sobel7x7_vert_kernel.xhtml#details">More...</a><br /></td></tr>
807<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
808<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_softmax_layer.xhtml">CLSoftmaxLayer</a></td></tr>
809<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute a SoftmaxLayer. <a href="classarm__compute_1_1_c_l_softmax_layer.xhtml#details">More...</a><br /></td></tr>
810<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
811<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a></td></tr>
812<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the OpenCL sub-tensor interface. <a href="classarm__compute_1_1_c_l_sub_tensor.xhtml#details">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100813<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100814<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_symbols.xhtml">CLSymbols</a></td></tr>
815<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000816<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_table_lookup.xhtml">CLTableLookup</a></td></tr>
817<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_table_lookup_kernel.xhtml">CLTableLookupKernel</a>. <a href="classarm__compute_1_1_c_l_table_lookup.xhtml#details">More...</a><br /></td></tr>
818<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
819<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_table_lookup_kernel.xhtml">CLTableLookupKernel</a></td></tr>
820<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform table lookup calculations. <a href="classarm__compute_1_1_c_l_table_lookup_kernel.xhtml#details">More...</a><br /></td></tr>
821<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
822<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a></td></tr>
823<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the OpenCL tensor interface. <a href="classarm__compute_1_1_c_l_tensor.xhtml#details">More...</a><br /></td></tr>
824<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
825<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a></td></tr>
826<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of a CL memory tensor allocator. <a href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#details">More...</a><br /></td></tr>
827<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
828<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_threshold.xhtml">CLThreshold</a></td></tr>
829<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_threshold_kernel.xhtml">CLThresholdKernel</a>. <a href="classarm__compute_1_1_c_l_threshold.xhtml#details">More...</a><br /></td></tr>
830<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
831<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_threshold_kernel.xhtml">CLThresholdKernel</a></td></tr>
832<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the thresholding kernel. <a href="classarm__compute_1_1_c_l_threshold_kernel.xhtml#details">More...</a><br /></td></tr>
833<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
834<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_transpose.xhtml">CLTranspose</a></td></tr>
835<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to transpose a matrix on OpenCL. <a href="classarm__compute_1_1_c_l_transpose.xhtml#details">More...</a><br /></td></tr>
836<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
837<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_transpose_kernel.xhtml">CLTransposeKernel</a></td></tr>
838<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel which transposes the elements of a matrix. <a href="classarm__compute_1_1_c_l_transpose_kernel.xhtml#details">More...</a><br /></td></tr>
839<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
840<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tuner.xhtml">CLTuner</a></td></tr>
841<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the OpenCL tuner interface. <a href="classarm__compute_1_1_c_l_tuner.xhtml#details">More...</a><br /></td></tr>
842<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
843<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_warp_affine.xhtml">CLWarpAffine</a></td></tr>
844<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_warp_affine_kernel.xhtml">CLWarpAffineKernel</a> for AFFINE transformation. <a href="classarm__compute_1_1_c_l_warp_affine.xhtml#details">More...</a><br /></td></tr>
845<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
846<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_warp_affine_kernel.xhtml">CLWarpAffineKernel</a></td></tr>
847<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the warp affine kernel. <a href="classarm__compute_1_1_c_l_warp_affine_kernel.xhtml#details">More...</a><br /></td></tr>
848<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
849<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_warp_perspective.xhtml">CLWarpPerspective</a></td></tr>
850<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_l_warp_perspective_kernel.xhtml">CLWarpPerspectiveKernel</a> for PERSPECTIVE transformation. <a href="classarm__compute_1_1_c_l_warp_perspective.xhtml#details">More...</a><br /></td></tr>
851<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
852<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_warp_perspective_kernel.xhtml">CLWarpPerspectiveKernel</a></td></tr>
853<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the warp perspective kernel. <a href="classarm__compute_1_1_c_l_warp_perspective_kernel.xhtml#details">More...</a><br /></td></tr>
854<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
855<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_weights_reshape_kernel.xhtml">CLWeightsReshapeKernel</a></td></tr>
856<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000857<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000858<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_coordinates.xhtml" title="Coordinates of an item. ">Coordinates</a> of an item. <a href="classarm__compute_1_1_coordinates.xhtml#details">More...</a><br /></td></tr>
859<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
860<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_coordinates2_d.xhtml">Coordinates2D</a></td></tr>
861<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coordinate type. <a href="structarm__compute_1_1_coordinates2_d.xhtml#details">More...</a><br /></td></tr>
862<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
863<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_coordinates3_d.xhtml">Coordinates3D</a></td></tr>
864<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coordinate type. <a href="structarm__compute_1_1_coordinates3_d.xhtml#details">More...</a><br /></td></tr>
865<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
866<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_p_p_corner_candidates_kernel.xhtml">CPPCornerCandidatesKernel</a></td></tr>
867<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CPP kernel to perform corner candidates. <a href="classarm__compute_1_1_c_p_p_corner_candidates_kernel.xhtml#details">More...</a><br /></td></tr>
868<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
869<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_p_p_detection_window_non_maxima_suppression_kernel.xhtml">CPPDetectionWindowNonMaximaSuppressionKernel</a></td></tr>
870<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CPP kernel to perform in-place computation of euclidean distance on IDetectionWindowArray. <a href="classarm__compute_1_1_c_p_p_detection_window_non_maxima_suppression_kernel.xhtml#details">More...</a><br /></td></tr>
871<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
872<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_p_p_permute.xhtml">CPPPermute</a></td></tr>
873<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_c_p_p_permute_kernel.xhtml">CPPPermuteKernel</a>. <a href="classarm__compute_1_1_c_p_p_permute.xhtml#details">More...</a><br /></td></tr>
874<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
875<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_p_p_permute_kernel.xhtml">CPPPermuteKernel</a></td></tr>
876<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CPP kernel to perform tensor permutation. <a href="classarm__compute_1_1_c_p_p_permute_kernel.xhtml#details">More...</a><br /></td></tr>
877<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
878<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_p_p_scheduler.xhtml">CPPScheduler</a></td></tr>
879<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">C++11 implementation of a pool of threads to automatically split a kernel's execution among several threads. <a href="classarm__compute_1_1_c_p_p_scheduler.xhtml#details">More...</a><br /></td></tr>
880<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
881<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_p_p_sort_euclidean_distance_kernel.xhtml">CPPSortEuclideanDistanceKernel</a></td></tr>
882<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CPP kernel to perform sorting and euclidean distance. <a href="classarm__compute_1_1_c_p_p_sort_euclidean_distance_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000883<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100884<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_c_p_u_info.xhtml">CPUInfo</a></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000885<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000886<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_detection_window.xhtml">DetectionWindow</a></td></tr>
887<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detection window used for the object detection. <a href="structarm__compute_1_1_detection_window.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000888<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
889<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000890<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_dimensions.xhtml" title="Dimensions with dimensionality. ">Dimensions</a> with dimensionality. <a href="classarm__compute_1_1_dimensions.xhtml#details">More...</a><br /></td></tr>
891<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
892<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_distribution1_d.xhtml">Distribution1D</a></td></tr>
893<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the 1D distribution interface. <a href="classarm__compute_1_1_distribution1_d.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000894<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100895<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1enable__bitwise__ops.xhtml">enable_bitwise_ops</a></td></tr>
896<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000897<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1enable__bitwise__ops_3_01arm__compute_1_1_g_p_u_target_01_4.xhtml">enable_bitwise_ops&lt; arm_compute::GPUTarget &gt;</a></td></tr>
898<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable operation operations on GPUTarget enumerations. <a href="structarm__compute_1_1enable__bitwise__ops_3_01arm__compute_1_1_g_p_u_target_01_4.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000899<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000900<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_absolute_difference.xhtml">GCAbsoluteDifference</a></td></tr>
901<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_g_c_absolute_difference_kernel.xhtml">GCAbsoluteDifferenceKernel</a>. <a href="classarm__compute_1_1_g_c_absolute_difference.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000902<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000903<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_absolute_difference_kernel.xhtml">GCAbsoluteDifferenceKernel</a></td></tr>
904<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the absolute difference kernel. <a href="classarm__compute_1_1_g_c_absolute_difference_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100905<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000906<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_activation_layer.xhtml">GCActivationLayer</a></td></tr>
907<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_g_c_activation_layer_kernel.xhtml">GCActivationLayerKernel</a>. <a href="classarm__compute_1_1_g_c_activation_layer.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100908<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000909<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_activation_layer_kernel.xhtml">GCActivationLayerKernel</a></td></tr>
910<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the activation layer kernel. <a href="classarm__compute_1_1_g_c_activation_layer_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100911<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +0000912<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_arithmetic_addition.xhtml">GCArithmeticAddition</a></td></tr>
913<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_g_c_arithmetic_addition_kernel.xhtml">GCArithmeticAdditionKernel</a>. <a href="classarm__compute_1_1_g_c_arithmetic_addition.xhtml#details">More...</a><br /></td></tr>
914<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
915<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_arithmetic_addition_kernel.xhtml">GCArithmeticAdditionKernel</a></td></tr>
916<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the arithmetic addition kernel. <a href="classarm__compute_1_1_g_c_arithmetic_addition_kernel.xhtml#details">More...</a><br /></td></tr>
917<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000918<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_batch_normalization_layer.xhtml">GCBatchNormalizationLayer</a></td></tr>
919<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_g_c_batch_normalization_layer_kernel.xhtml">GCBatchNormalizationLayerKernel</a> and simulate a batch normalization layer. <a href="classarm__compute_1_1_g_c_batch_normalization_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000920<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000921<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_batch_normalization_layer_kernel.xhtml">GCBatchNormalizationLayerKernel</a></td></tr>
922<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the BatchNormalization layer kernel. <a href="classarm__compute_1_1_g_c_batch_normalization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000923<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000924<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_col2_im_kernel.xhtml">GCCol2ImKernel</a></td></tr>
925<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the col2im reshaping kernel. <a href="classarm__compute_1_1_g_c_col2_im_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000926<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +0000927<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_convolution_layer.xhtml">GCConvolutionLayer</a></td></tr>
928<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute the convolution layer. <a href="classarm__compute_1_1_g_c_convolution_layer.xhtml#details">More...</a><br /></td></tr>
929<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
930<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_convolution_layer_reshape_weights.xhtml">GCConvolutionLayerReshapeWeights</a></td></tr>
931<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to reshape and transpose the weights. <a href="classarm__compute_1_1_g_c_convolution_layer_reshape_weights.xhtml#details">More...</a><br /></td></tr>
932<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000933<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_depth_concatenate_layer.xhtml">GCDepthConcatenateLayer</a></td></tr>
934<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute concatenate tensors along z axis. <a href="classarm__compute_1_1_g_c_depth_concatenate_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000935<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000936<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_depth_concatenate_layer_kernel.xhtml">GCDepthConcatenateLayerKernel</a></td></tr>
937<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depth concatenate kernel. <a href="classarm__compute_1_1_g_c_depth_concatenate_layer_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000938<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +0000939<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_depthwise_convolution_layer3x3.xhtml">GCDepthwiseConvolutionLayer3x3</a></td></tr>
940<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute a depthwise convolution for kernel size 3x3xC. <a href="classarm__compute_1_1_g_c_depthwise_convolution_layer3x3.xhtml#details">More...</a><br /></td></tr>
941<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
942<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_depthwise_convolution_layer3x3_kernel.xhtml">GCDepthwiseConvolutionLayer3x3Kernel</a></td></tr>
943<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run a 3x3 depthwise convolution on a tensor. <a href="classarm__compute_1_1_g_c_depthwise_convolution_layer3x3_kernel.xhtml#details">More...</a><br /></td></tr>
944<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000945<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_direct_convolution_layer.xhtml">GCDirectConvolutionLayer</a></td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000946<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute direct convolution function. <a href="classarm__compute_1_1_g_c_direct_convolution_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000947<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000948<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_direct_convolution_layer_kernel.xhtml">GCDirectConvolutionLayerKernel</a></td></tr>
949<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the direct convolution kernel. <a href="classarm__compute_1_1_g_c_direct_convolution_layer_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000950<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000951<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_dropout_layer.xhtml">GCDropoutLayer</a></td></tr>
952<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to do dropout op. <a href="classarm__compute_1_1_g_c_dropout_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000953<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000954<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_dropout_layer_kernel.xhtml">GCDropoutLayerKernel</a></td></tr>
955<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the dropout layer kernel. <a href="classarm__compute_1_1_g_c_dropout_layer_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +0100956<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000957<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_fill_border.xhtml">GCFillBorder</a></td></tr>
958<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_g_c_fill_border_kernel.xhtml">GCFillBorderKernel</a>. <a href="classarm__compute_1_1_g_c_fill_border.xhtml#details">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100959<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000960<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_fill_border_kernel.xhtml">GCFillBorderKernel</a></td></tr>
961<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for filling the border of a kernel. <a href="classarm__compute_1_1_g_c_fill_border_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000962<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000963<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_fully_connected_layer.xhtml">GCFullyConnectedLayer</a></td></tr>
964<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute a Fully Connected layer on OpenGL ES. <a href="classarm__compute_1_1_g_c_fully_connected_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000965<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000966<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_fully_connected_layer_reshape_weights.xhtml">GCFullyConnectedLayerReshapeWeights</a></td></tr>
967<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to reshape the weights of Fully Connected layer with OpenGL ES. <a href="classarm__compute_1_1_g_c_fully_connected_layer_reshape_weights.xhtml#details">More...</a><br /></td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +0100968<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000969<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_g_e_m_m.xhtml">GCGEMM</a></td></tr>
970<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute GEMM on OpenGLES Compute. <a href="classarm__compute_1_1_g_c_g_e_m_m.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000971<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000972<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_g_e_m_m_interleave4x4.xhtml">GCGEMMInterleave4x4</a></td></tr>
973<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_g_c_g_e_m_m_interleave4x4_kernel.xhtml" title="OpenGL ES kernel which interleaves the elements of a matrix A in chunk of 4x4. ">GCGEMMInterleave4x4Kernel</a>. <a href="classarm__compute_1_1_g_c_g_e_m_m_interleave4x4.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100974<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000975<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_g_e_m_m_interleave4x4_kernel.xhtml">GCGEMMInterleave4x4Kernel</a></td></tr>
976<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL ES kernel which interleaves the elements of a matrix A in chunk of 4x4. <a href="classarm__compute_1_1_g_c_g_e_m_m_interleave4x4_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000977<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000978<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_g_e_m_m_matrix_accumulate_biases_kernel.xhtml">GCGEMMMatrixAccumulateBiasesKernel</a></td></tr>
979<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to add a bias to each row of the input tensor. <a href="classarm__compute_1_1_g_c_g_e_m_m_matrix_accumulate_biases_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000980<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000981<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_g_e_m_m_matrix_addition_kernel.xhtml">GCGEMMMatrixAdditionKernel</a></td></tr>
982<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL ES kernel to perform the in-place matrix addition between 2 matrices, taking into account that the second matrix might be weighted by a scalar value beta. <a href="classarm__compute_1_1_g_c_g_e_m_m_matrix_addition_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000983<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000984<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_g_e_m_m_matrix_multiply_kernel.xhtml">GCGEMMMatrixMultiplyKernel</a></td></tr>
985<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">GLES Compute kernel to multiply two input matrices "A" and "B" or to multiply a vector "A" by a matrix "B". <a href="classarm__compute_1_1_g_c_g_e_m_m_matrix_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000986<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000987<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_g_e_m_m_transpose1x_w.xhtml">GCGEMMTranspose1xW</a></td></tr>
988<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_g_c_g_e_m_m_transpose1x_w_kernel.xhtml" title="OpenGLES kernel which transposes the elements of a matrix in chunks of 1xW, where W is equal to (16 /...">GCGEMMTranspose1xWKernel</a>. <a href="classarm__compute_1_1_g_c_g_e_m_m_transpose1x_w.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100989<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000990<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_g_e_m_m_transpose1x_w_kernel.xhtml">GCGEMMTranspose1xWKernel</a></td></tr>
991<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGLES kernel which transposes the elements of a matrix in chunks of 1xW, where W is equal to (16 / element size of the tensor) <a href="classarm__compute_1_1_g_c_g_e_m_m_transpose1x_w_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000992<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000993<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_im2_col_kernel.xhtml">GCIm2ColKernel</a></td></tr>
994<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the im2col reshape kernel. <a href="classarm__compute_1_1_g_c_im2_col_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000995<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000996<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml">GCKernel</a></td></tr>
997<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_g_c_kernel.xhtml" title="GCKernel class. ">GCKernel</a> class. <a href="classarm__compute_1_1_g_c_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000998<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000999<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_kernel_library.xhtml">GCKernelLibrary</a></td></tr>
1000<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_g_c_kernel_library.xhtml" title="GCKernelLibrary class. ">GCKernelLibrary</a> class. <a href="classarm__compute_1_1_g_c_kernel_library.xhtml#details">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001001<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001002<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_logits1_d_max_kernel.xhtml">GCLogits1DMaxKernel</a></td></tr>
1003<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the identifying the max value of 1D Logits. <a href="classarm__compute_1_1_g_c_logits1_d_max_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001004<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001005<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_logits1_d_norm_kernel.xhtml">GCLogits1DNormKernel</a></td></tr>
1006<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for calculating the final step of the Softmax Layer where each logit value is multiplied by the inverse of the sum of the logits. <a href="classarm__compute_1_1_g_c_logits1_d_norm_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001007<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001008<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_logits1_d_shift_exp_sum_kernel.xhtml">GCLogits1DShiftExpSumKernel</a></td></tr>
1009<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for shifting the logits values around the max value and exponentiating the result. <a href="classarm__compute_1_1_g_c_logits1_d_shift_exp_sum_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001010<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001011<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_normalization_layer.xhtml">GCNormalizationLayer</a></td></tr>
1012<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute a normalization layer. <a href="classarm__compute_1_1_g_c_normalization_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001013<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001014<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_normalization_layer_kernel.xhtml">GCNormalizationLayerKernel</a></td></tr>
1015<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the normalization layer kernel. <a href="classarm__compute_1_1_g_c_normalization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001016<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00001017<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_normalize_planar_y_u_v_layer.xhtml">GCNormalizePlanarYUVLayer</a></td></tr>
1018<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_g_c_normalize_planar_y_u_v_layer_kernel.xhtml">GCNormalizePlanarYUVLayerKernel</a>. <a href="classarm__compute_1_1_g_c_normalize_planar_y_u_v_layer.xhtml#details">More...</a><br /></td></tr>
1019<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1020<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_normalize_planar_y_u_v_layer_kernel.xhtml">GCNormalizePlanarYUVLayerKernel</a></td></tr>
1021<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the NormalizePlanarYUV layer kernel. <a href="classarm__compute_1_1_g_c_normalize_planar_y_u_v_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1022<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001023<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_pixel_wise_multiplication.xhtml">GCPixelWiseMultiplication</a></td></tr>
1024<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_g_c_pixel_wise_multiplication_kernel.xhtml">GCPixelWiseMultiplicationKernel</a>. <a href="classarm__compute_1_1_g_c_pixel_wise_multiplication.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001025<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001026<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_pixel_wise_multiplication_kernel.xhtml">GCPixelWiseMultiplicationKernel</a></td></tr>
1027<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the pixelwise multiplication kernel. <a href="classarm__compute_1_1_g_c_pixel_wise_multiplication_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001028<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001029<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_pooling_layer.xhtml">GCPoolingLayer</a></td></tr>
1030<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a pooling layer with the specified pooling operation. <a href="classarm__compute_1_1_g_c_pooling_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001031<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001032<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_pooling_layer_kernel.xhtml">GCPoolingLayerKernel</a></td></tr>
1033<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the pooling layer kernel. <a href="classarm__compute_1_1_g_c_pooling_layer_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001034<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001035<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_program.xhtml">GCProgram</a></td></tr>
1036<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_g_c_program.xhtml" title="GCProgram class. ">GCProgram</a> class. <a href="classarm__compute_1_1_g_c_program.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001037<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00001038<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_scale.xhtml">GCScale</a></td></tr>
1039<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_g_c_scale_kernel.xhtml">GCScaleKernel</a>. <a href="classarm__compute_1_1_g_c_scale.xhtml#details">More...</a><br /></td></tr>
1040<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1041<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_scale_kernel.xhtml">GCScaleKernel</a></td></tr>
1042<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the scale kernel. <a href="classarm__compute_1_1_g_c_scale_kernel.xhtml#details">More...</a><br /></td></tr>
1043<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001044<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_scheduler.xhtml">GCScheduler</a></td></tr>
1045<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides global access to a OpenGL ES context and command queue. <a href="classarm__compute_1_1_g_c_scheduler.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001046<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001047<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_softmax_layer.xhtml">GCSoftmaxLayer</a></td></tr>
1048<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute a SoftmaxLayer. <a href="classarm__compute_1_1_g_c_softmax_layer.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001049<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001050<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a></td></tr>
1051<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for OpenGL ES tensor. <a href="classarm__compute_1_1_g_c_tensor.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001052<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001053<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor_allocator.xhtml">GCTensorAllocator</a></td></tr>
1054<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of a GLES memory tensor allocator. <a href="classarm__compute_1_1_g_c_tensor_allocator.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001055<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001056<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor_shift.xhtml">GCTensorShift</a></td></tr>
1057<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute shift function for tensor. <a href="classarm__compute_1_1_g_c_tensor_shift.xhtml#details">More...</a><br /></td></tr>
1058<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1059<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor_shift_kernel.xhtml">GCTensorShiftKernel</a></td></tr>
1060<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to shift valid data on a tensor. <a href="classarm__compute_1_1_g_c_tensor_shift_kernel.xhtml#details">More...</a><br /></td></tr>
1061<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001062<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_transpose.xhtml">GCTranspose</a></td></tr>
1063<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to transpose a matrix on OpenGL ES. <a href="classarm__compute_1_1_g_c_transpose.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001064<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001065<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_transpose_kernel.xhtml">GCTransposeKernel</a></td></tr>
1066<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL ES kernel which transposes the elements of a matrix. <a href="classarm__compute_1_1_g_c_transpose_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001067<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00001068<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_weights_reshape_kernel.xhtml">GCWeightsReshapeKernel</a></td></tr>
1069<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001070<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_e_m_m_info.xhtml">GEMMInfo</a></td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001071<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">GEMM information class. <a href="classarm__compute_1_1_g_e_m_m_info.xhtml#details">More...</a><br /></td></tr>
1072<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1073<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_e_m_m_reshape_info.xhtml">GEMMReshapeInfo</a></td></tr>
1074<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">GEMM reshape information class. <a href="classarm__compute_1_1_g_e_m_m_reshape_info.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001075<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1076<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_h_o_g.xhtml">HOG</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001077<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CPU implementation of <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> data-object. <a href="classarm__compute_1_1_h_o_g.xhtml#details">More...</a><br /></td></tr>
1078<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1079<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml">HOGInfo</a></td></tr>
1080<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a>'s metadata. <a href="classarm__compute_1_1_h_o_g_info.xhtml#details">More...</a><br /></td></tr>
1081<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1082<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_access_window.xhtml">IAccessWindow</a></td></tr>
1083<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface describing methods to update access window and padding based on kernel parameters. <a href="classarm__compute_1_1_i_access_window.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001084<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1085<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_allocator.xhtml">IAllocator</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001086<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_allocator.xhtml" title="Default malloc allocator implementation. ">Allocator</a> interface. <a href="classarm__compute_1_1_i_allocator.xhtml#details">More...</a><br /></td></tr>
1087<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1088<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a></td></tr>
1089<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_array.xhtml" title="Basic implementation of the IArray interface which allocates a static number of T values...">Array</a> of type T. <a href="classarm__compute_1_1_i_array.xhtml#details">More...</a><br /></td></tr>
1090<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1091<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a></td></tr>
1092<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for OpenCL <a class="el" href="classarm__compute_1_1_array.xhtml" title="Basic implementation of the IArray interface which allocates a static number of T values...">Array</a>. <a href="classarm__compute_1_1_i_c_l_array.xhtml#details">More...</a><br /></td></tr>
1093<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1094<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_distribution1_d.xhtml">ICLDistribution1D</a></td></tr>
1095<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_i_c_l_distribution1_d.xhtml" title="ICLDistribution1D interface class. ">ICLDistribution1D</a> interface class. <a href="classarm__compute_1_1_i_c_l_distribution1_d.xhtml#details">More...</a><br /></td></tr>
1096<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1097<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_g_e_m_m_lowp_reduction_kernel.xhtml">ICLGEMMLowpReductionKernel</a></td></tr>
1098<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface for all OpenCL reduction kernels. <a href="classarm__compute_1_1_i_c_l_g_e_m_m_lowp_reduction_kernel.xhtml#details">More...</a><br /></td></tr>
1099<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1100<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_h_o_g.xhtml">ICLHOG</a></td></tr>
1101<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for OpenCL <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> data-object. <a href="classarm__compute_1_1_i_c_l_h_o_g.xhtml#details">More...</a><br /></td></tr>
1102<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1103<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml">ICLKernel</a></td></tr>
1104<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface for all the OpenCL kernels. <a href="classarm__compute_1_1_i_c_l_kernel.xhtml#details">More...</a><br /></td></tr>
1105<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1106<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_lut.xhtml">ICLLut</a></td></tr>
1107<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for OpenCL LUT. <a href="classarm__compute_1_1_i_c_l_lut.xhtml#details">More...</a><br /></td></tr>
1108<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1109<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_multi_h_o_g.xhtml">ICLMultiHOG</a></td></tr>
1110<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for storing multiple <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> data-objects. <a href="classarm__compute_1_1_i_c_l_multi_h_o_g.xhtml#details">More...</a><br /></td></tr>
1111<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1112<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_multi_image.xhtml">ICLMultiImage</a></td></tr>
1113<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for OpenCL multi-planar images. <a href="classarm__compute_1_1_i_c_l_multi_image.xhtml#details">More...</a><br /></td></tr>
1114<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1115<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_simple2_d_kernel.xhtml">ICLSimple2DKernel</a></td></tr>
1116<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for simple OpenCL kernels having 1 tensor input and 1 tensor output. <a href="classarm__compute_1_1_i_c_l_simple2_d_kernel.xhtml#details">More...</a><br /></td></tr>
1117<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1118<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_simple3_d_kernel.xhtml">ICLSimple3DKernel</a></td></tr>
1119<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for simple OpenCL kernels having 1 tensor input and 1 tensor output. <a href="classarm__compute_1_1_i_c_l_simple3_d_kernel.xhtml#details">More...</a><br /></td></tr>
1120<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1121<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_simple_function.xhtml">ICLSimpleFunction</a></td></tr>
1122<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic interface for functions which have a single OpenCL kernel. <a href="classarm__compute_1_1_i_c_l_simple_function.xhtml#details">More...</a><br /></td></tr>
1123<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1124<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_simple_kernel.xhtml">ICLSimpleKernel</a></td></tr>
1125<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for simple OpenCL kernels having 1 tensor input and 1 tensor output. <a href="classarm__compute_1_1_i_c_l_simple_kernel.xhtml#details">More...</a><br /></td></tr>
1126<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1127<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a></td></tr>
1128<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for OpenCL tensor. <a href="classarm__compute_1_1_i_c_l_tensor.xhtml#details">More...</a><br /></td></tr>
1129<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1130<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tuner.xhtml">ICLTuner</a></td></tr>
1131<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic interface for tuning the OpenCL kernels. <a href="classarm__compute_1_1_i_c_l_tuner.xhtml#details">More...</a><br /></td></tr>
1132<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1133<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_p_p_kernel.xhtml">ICPPKernel</a></td></tr>
1134<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface for all kernels implemented in C++. <a href="classarm__compute_1_1_i_c_p_p_kernel.xhtml#details">More...</a><br /></td></tr>
1135<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1136<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_p_p_simple_function.xhtml">ICPPSimpleFunction</a></td></tr>
1137<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic interface for functions which have a single CPP kernel. <a href="classarm__compute_1_1_i_c_p_p_simple_function.xhtml#details">More...</a><br /></td></tr>
1138<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1139<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_p_p_simple_kernel.xhtml">ICPPSimpleKernel</a></td></tr>
1140<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for simple NEON kernels having 1 tensor input and 1 tensor output. <a href="classarm__compute_1_1_i_c_p_p_simple_kernel.xhtml#details">More...</a><br /></td></tr>
1141<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1142<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_distribution.xhtml">IDistribution</a></td></tr>
1143<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for distribution objects. <a href="classarm__compute_1_1_i_distribution.xhtml#details">More...</a><br /></td></tr>
1144<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1145<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_distribution1_d.xhtml">IDistribution1D</a></td></tr>
1146<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">1D Distribution interface <a href="classarm__compute_1_1_i_distribution1_d.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001147<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1148<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_function.xhtml">IFunction</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001149<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for all functions. <a href="classarm__compute_1_1_i_function.xhtml#details">More...</a><br /></td></tr>
1150<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1151<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_kernel.xhtml">IGCKernel</a></td></tr>
1152<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface for all the GLES kernels. <a href="classarm__compute_1_1_i_g_c_kernel.xhtml#details">More...</a><br /></td></tr>
1153<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1154<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_simple2_d_kernel.xhtml">IGCSimple2DKernel</a></td></tr>
1155<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for simple OpenGL ES kernels having 1 tensor input and 1 tensor output. <a href="classarm__compute_1_1_i_g_c_simple2_d_kernel.xhtml#details">More...</a><br /></td></tr>
1156<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1157<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_simple3_d_kernel.xhtml">IGCSimple3DKernel</a></td></tr>
1158<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for simple GLES kernels having 1 tensor input and 1 tensor output. <a href="classarm__compute_1_1_i_g_c_simple3_d_kernel.xhtml#details">More...</a><br /></td></tr>
1159<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1160<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_simple_function.xhtml">IGCSimpleFunction</a></td></tr>
1161<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic interface for functions which have a single OpenGL ES kernel. <a href="classarm__compute_1_1_i_g_c_simple_function.xhtml#details">More...</a><br /></td></tr>
1162<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1163<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_simple_kernel.xhtml">IGCSimpleKernel</a></td></tr>
1164<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for simple OpenGL ES kernels having 1 tensor input and 1 tensor output. <a href="classarm__compute_1_1_i_g_c_simple_kernel.xhtml#details">More...</a><br /></td></tr>
1165<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1166<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a></td></tr>
1167<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for GLES Compute tensor. <a href="classarm__compute_1_1_i_g_c_tensor.xhtml#details">More...</a><br /></td></tr>
1168<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1169<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_h_o_g.xhtml">IHOG</a></td></tr>
1170<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> data-object. <a href="classarm__compute_1_1_i_h_o_g.xhtml#details">More...</a><br /></td></tr>
1171<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1172<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_kernel.xhtml">IKernel</a></td></tr>
1173<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common information for all the kernels. <a href="classarm__compute_1_1_i_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001174<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1175<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_lifetime_manager.xhtml">ILifetimeManager</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001176<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for managing the lifetime of objects. <a href="classarm__compute_1_1_i_lifetime_manager.xhtml#details">More...</a><br /></td></tr>
1177<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1178<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_lut.xhtml">ILut</a></td></tr>
1179<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lookup Table object interface. <a href="classarm__compute_1_1_i_lut.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001180<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1181<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_lut_allocator.xhtml">ILutAllocator</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001182<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic interface to allocate LUTs'. <a href="classarm__compute_1_1_i_lut_allocator.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001183<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1184<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_memory_group.xhtml">IMemoryGroup</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001185<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> group interface. <a href="classarm__compute_1_1_i_memory_group.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001186<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1187<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_memory_manager.xhtml">IMemoryManager</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001188<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> manager interface to handle allocations of backing memory. <a href="classarm__compute_1_1_i_memory_manager.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001189<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1190<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_memory_pool.xhtml">IMemoryPool</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001191<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> Pool Inteface. <a href="classarm__compute_1_1_i_memory_pool.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001192<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001193<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml">IMultiHOG</a></td></tr>
1194<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for storing multiple <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> data-objects. <a href="classarm__compute_1_1_i_multi_h_o_g.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001195<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001196<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_multi_image.xhtml">IMultiImage</a></td></tr>
1197<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for multi-planar images. <a href="classarm__compute_1_1_i_multi_image.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001198<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001199<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_n_e_g_e_m_m_lowp_reduction_kernel.xhtml">INEGEMMLowpReductionKernel</a></td></tr>
1200<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface for all NEON reduction kernels. <a href="classarm__compute_1_1_i_n_e_g_e_m_m_lowp_reduction_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001201<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001202<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_n_e_harris_score_kernel.xhtml">INEHarrisScoreKernel</a></td></tr>
1203<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface for all Harris Score kernels. <a href="classarm__compute_1_1_i_n_e_harris_score_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001204<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1205<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_n_e_simple_function.xhtml">INESimpleFunction</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001206<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic interface for functions which have a single NEON kernel. <a href="classarm__compute_1_1_i_n_e_simple_function.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001207<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001208<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_n_e_warp_kernel.xhtml">INEWarpKernel</a></td></tr>
1209<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface for warp affine and warp perspective. <a href="classarm__compute_1_1_i_n_e_warp_kernel.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001210<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001211<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_n_e_winograd_layer_batched_g_e_m_m_kernel.xhtml">INEWinogradLayerBatchedGEMMKernel</a></td></tr>
1212<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1213<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_n_e_winograd_layer_transform_input_kernel.xhtml">INEWinogradLayerTransformInputKernel</a></td></tr>
1214<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1215<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_n_e_winograd_layer_transform_output_kernel.xhtml">INEWinogradLayerTransformOutputKernel</a></td></tr>
1216<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1217<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_n_e_winograd_layer_transform_weights_kernel.xhtml">INEWinogradLayerTransformWeightsKernel</a></td></tr>
1218<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001219<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml">IOFormatInfo</a></td></tr>
1220<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">IO formatting information class. <a href="structarm__compute_1_1_i_o_format_info.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001221<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001222<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_pool_manager.xhtml">IPoolManager</a></td></tr>
1223<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> pool manager interface. <a href="classarm__compute_1_1_i_pool_manager.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001224<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001225<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_pyramid.xhtml">IPyramid</a></td></tr>
1226<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for pyramid data-object. <a href="classarm__compute_1_1_i_pyramid.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001227<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001228<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_scheduler.xhtml">IScheduler</a></td></tr>
1229<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_scheduler.xhtml" title="Configurable scheduler which supports multiple multithreading APIs and choosing between different sch...">Scheduler</a> interface to run kernels. <a href="classarm__compute_1_1_i_scheduler.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001230<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001231<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_simple_lifetime_manager.xhtml">ISimpleLifetimeManager</a></td></tr>
1232<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract class of the simple lifetime manager interface. <a href="classarm__compute_1_1_i_simple_lifetime_manager.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001233<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001234<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a></td></tr>
1235<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for NEON tensor. <a href="classarm__compute_1_1_i_tensor.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001236<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001237<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a></td></tr>
1238<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to allocate tensors. <a href="classarm__compute_1_1_i_tensor_allocator.xhtml#details">More...</a><br /></td></tr>
1239<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1240<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a></td></tr>
1241<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the tensor's metadata. <a href="classarm__compute_1_1_i_tensor_info.xhtml#details">More...</a><br /></td></tr>
1242<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1243<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_iterator.xhtml">Iterator</a></td></tr>
1244<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_iterator.xhtml" title="Iterator updated by execute_window_loop for each window element. ">Iterator</a> updated by <a class="el" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a> for each window element. <a href="classarm__compute_1_1_iterator.xhtml#details">More...</a><br /></td></tr>
1245<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1246<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_kernel.xhtml">Kernel</a></td></tr>
1247<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> class. <a href="classarm__compute_1_1_kernel.xhtml#details">More...</a><br /></td></tr>
1248<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1249<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a></td></tr>
1250<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="struct_keypoint.xhtml">Keypoint</a> type. <a href="structarm__compute_1_1_key_point.xhtml#details">More...</a><br /></td></tr>
1251<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1252<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_lut.xhtml">Lut</a></td></tr>
1253<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the LUT interface. <a href="classarm__compute_1_1_lut.xhtml#details">More...</a><br /></td></tr>
1254<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1255<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_lut_allocator.xhtml">LutAllocator</a></td></tr>
1256<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of a CPU memory LUT allocator. <a href="classarm__compute_1_1_lut_allocator.xhtml#details">More...</a><br /></td></tr>
1257<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1258<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_memory.xhtml">Memory</a></td></tr>
1259<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CPU implementation of memory object. <a href="classarm__compute_1_1_memory.xhtml#details">More...</a><br /></td></tr>
1260<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1261<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_memory_group_base.xhtml">MemoryGroupBase</a></td></tr>
1262<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> group. <a href="classarm__compute_1_1_memory_group_base.xhtml#details">More...</a><br /></td></tr>
1263<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1264<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_memory_manager_on_demand.xhtml">MemoryManagerOnDemand</a></td></tr>
1265<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">On-demand memory manager. <a href="classarm__compute_1_1_memory_manager_on_demand.xhtml#details">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001266<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1267<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_min_max_location_values.xhtml">MinMaxLocationValues</a></td></tr>
1268<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001269<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_multi_h_o_g.xhtml">MultiHOG</a></td></tr>
1270<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CPU implementation of multi <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> data-object. <a href="classarm__compute_1_1_multi_h_o_g.xhtml#details">More...</a><br /></td></tr>
1271<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1272<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_multi_image.xhtml">MultiImage</a></td></tr>
1273<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the multi-planar image interface. <a href="classarm__compute_1_1_multi_image.xhtml#details">More...</a><br /></td></tr>
1274<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1275<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_multi_image_info.xhtml">MultiImageInfo</a></td></tr>
1276<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the multi-planar image's metadata. <a href="classarm__compute_1_1_multi_image_info.xhtml#details">More...</a><br /></td></tr>
1277<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1278<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_absolute_difference.xhtml">NEAbsoluteDifference</a></td></tr>
1279<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_absolute_difference_kernel.xhtml">NEAbsoluteDifferenceKernel</a>. <a href="classarm__compute_1_1_n_e_absolute_difference.xhtml#details">More...</a><br /></td></tr>
1280<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1281<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_absolute_difference_kernel.xhtml">NEAbsoluteDifferenceKernel</a></td></tr>
1282<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the absolute difference kernel. <a href="classarm__compute_1_1_n_e_absolute_difference_kernel.xhtml#details">More...</a><br /></td></tr>
1283<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1284<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_accumulate.xhtml">NEAccumulate</a></td></tr>
1285<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_accumulate_kernel.xhtml">NEAccumulateKernel</a>. <a href="classarm__compute_1_1_n_e_accumulate.xhtml#details">More...</a><br /></td></tr>
1286<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1287<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_accumulate_kernel.xhtml">NEAccumulateKernel</a></td></tr>
1288<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the accumulate kernel. <a href="classarm__compute_1_1_n_e_accumulate_kernel.xhtml#details">More...</a><br /></td></tr>
1289<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1290<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_accumulate_squared.xhtml">NEAccumulateSquared</a></td></tr>
1291<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_accumulate_squared_kernel.xhtml">NEAccumulateSquaredKernel</a>. <a href="classarm__compute_1_1_n_e_accumulate_squared.xhtml#details">More...</a><br /></td></tr>
1292<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1293<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_accumulate_squared_kernel.xhtml">NEAccumulateSquaredKernel</a></td></tr>
1294<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the accumulate squared kernel. <a href="classarm__compute_1_1_n_e_accumulate_squared_kernel.xhtml#details">More...</a><br /></td></tr>
1295<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1296<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_accumulate_weighted.xhtml">NEAccumulateWeighted</a></td></tr>
1297<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_accumulate_weighted_kernel.xhtml">NEAccumulateWeightedKernel</a>. <a href="classarm__compute_1_1_n_e_accumulate_weighted.xhtml#details">More...</a><br /></td></tr>
1298<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1299<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_accumulate_weighted_kernel.xhtml">NEAccumulateWeightedKernel</a></td></tr>
1300<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the accumulate weighted kernel. <a href="classarm__compute_1_1_n_e_accumulate_weighted_kernel.xhtml#details">More...</a><br /></td></tr>
1301<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1302<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_activation_layer.xhtml">NEActivationLayer</a></td></tr>
1303<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_activation_layer_kernel.xhtml">NEActivationLayerKernel</a>. <a href="classarm__compute_1_1_n_e_activation_layer.xhtml#details">More...</a><br /></td></tr>
1304<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1305<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_activation_layer_kernel.xhtml">NEActivationLayerKernel</a></td></tr>
1306<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the activation layer kernel. <a href="classarm__compute_1_1_n_e_activation_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1307<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1308<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_arithmetic_addition.xhtml">NEArithmeticAddition</a></td></tr>
1309<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_arithmetic_addition_kernel.xhtml">NEArithmeticAdditionKernel</a>. <a href="classarm__compute_1_1_n_e_arithmetic_addition.xhtml#details">More...</a><br /></td></tr>
1310<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1311<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_arithmetic_addition_kernel.xhtml">NEArithmeticAdditionKernel</a></td></tr>
1312<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform addition between two tensors. <a href="classarm__compute_1_1_n_e_arithmetic_addition_kernel.xhtml#details">More...</a><br /></td></tr>
1313<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1314<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_arithmetic_subtraction.xhtml">NEArithmeticSubtraction</a></td></tr>
1315<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_arithmetic_subtraction_kernel.xhtml">NEArithmeticSubtractionKernel</a>. <a href="classarm__compute_1_1_n_e_arithmetic_subtraction.xhtml#details">More...</a><br /></td></tr>
1316<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1317<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_arithmetic_subtraction_kernel.xhtml">NEArithmeticSubtractionKernel</a></td></tr>
1318<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform subtraction between two tensors. <a href="classarm__compute_1_1_n_e_arithmetic_subtraction_kernel.xhtml#details">More...</a><br /></td></tr>
1319<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1320<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_batch_normalization_layer.xhtml">NEBatchNormalizationLayer</a></td></tr>
1321<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_normalization_layer_kernel.xhtml">NENormalizationLayerKernel</a> and simulate a batch normalization layer. <a href="classarm__compute_1_1_n_e_batch_normalization_layer.xhtml#details">More...</a><br /></td></tr>
1322<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1323<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_batch_normalization_layer_kernel.xhtml">NEBatchNormalizationLayerKernel</a></td></tr>
1324<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the batch normalization layer kernel. <a href="classarm__compute_1_1_n_e_batch_normalization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1325<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1326<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_bitwise_and.xhtml">NEBitwiseAnd</a></td></tr>
1327<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_bitwise_and_kernel.xhtml">NEBitwiseAndKernel</a>. <a href="classarm__compute_1_1_n_e_bitwise_and.xhtml#details">More...</a><br /></td></tr>
1328<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1329<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_bitwise_and_kernel.xhtml">NEBitwiseAndKernel</a></td></tr>
1330<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform bitwise AND between XY-planes of two tensors. <a href="classarm__compute_1_1_n_e_bitwise_and_kernel.xhtml#details">More...</a><br /></td></tr>
1331<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1332<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_bitwise_not.xhtml">NEBitwiseNot</a></td></tr>
1333<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_bitwise_not_kernel.xhtml">NEBitwiseNotKernel</a>. <a href="classarm__compute_1_1_n_e_bitwise_not.xhtml#details">More...</a><br /></td></tr>
1334<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1335<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_bitwise_not_kernel.xhtml">NEBitwiseNotKernel</a></td></tr>
1336<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform bitwise NOT operation. <a href="classarm__compute_1_1_n_e_bitwise_not_kernel.xhtml#details">More...</a><br /></td></tr>
1337<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1338<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_bitwise_or.xhtml">NEBitwiseOr</a></td></tr>
1339<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_bitwise_or_kernel.xhtml">NEBitwiseOrKernel</a>. <a href="classarm__compute_1_1_n_e_bitwise_or.xhtml#details">More...</a><br /></td></tr>
1340<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1341<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_bitwise_or_kernel.xhtml">NEBitwiseOrKernel</a></td></tr>
1342<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform bitwise inclusive OR between two tensors. <a href="classarm__compute_1_1_n_e_bitwise_or_kernel.xhtml#details">More...</a><br /></td></tr>
1343<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1344<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_bitwise_xor.xhtml">NEBitwiseXor</a></td></tr>
1345<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_bitwise_xor_kernel.xhtml">NEBitwiseXorKernel</a>. <a href="classarm__compute_1_1_n_e_bitwise_xor.xhtml#details">More...</a><br /></td></tr>
1346<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1347<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_bitwise_xor_kernel.xhtml">NEBitwiseXorKernel</a></td></tr>
1348<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform bitwise exclusive OR (XOR) between two tensors. <a href="classarm__compute_1_1_n_e_bitwise_xor_kernel.xhtml#details">More...</a><br /></td></tr>
1349<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1350<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_box3x3.xhtml">NEBox3x3</a></td></tr>
1351<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute box filter 3x3. <a href="classarm__compute_1_1_n_e_box3x3.xhtml#details">More...</a><br /></td></tr>
1352<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1353<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_box3x3_kernel.xhtml">NEBox3x3Kernel</a></td></tr>
1354<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a Box 3x3 filter. <a href="classarm__compute_1_1_n_e_box3x3_kernel.xhtml#details">More...</a><br /></td></tr>
1355<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1356<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_canny_edge.xhtml">NECannyEdge</a></td></tr>
1357<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute canny edge on NEON. <a href="classarm__compute_1_1_n_e_canny_edge.xhtml#details">More...</a><br /></td></tr>
1358<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1359<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_channel_combine.xhtml">NEChannelCombine</a></td></tr>
1360<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_channel_combine_kernel.xhtml">NEChannelCombineKernel</a> to perform channel combination. <a href="classarm__compute_1_1_n_e_channel_combine.xhtml#details">More...</a><br /></td></tr>
1361<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1362<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_channel_combine_kernel.xhtml">NEChannelCombineKernel</a></td></tr>
1363<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the channel combine kernel. <a href="classarm__compute_1_1_n_e_channel_combine_kernel.xhtml#details">More...</a><br /></td></tr>
1364<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1365<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_channel_extract.xhtml">NEChannelExtract</a></td></tr>
1366<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_channel_extract_kernel.xhtml">NEChannelExtractKernel</a> to perform channel extraction. <a href="classarm__compute_1_1_n_e_channel_extract.xhtml#details">More...</a><br /></td></tr>
1367<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1368<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_channel_extract_kernel.xhtml">NEChannelExtractKernel</a></td></tr>
1369<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the channel extract kernel. <a href="classarm__compute_1_1_n_e_channel_extract_kernel.xhtml#details">More...</a><br /></td></tr>
1370<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1371<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_col2_im.xhtml">NECol2Im</a></td></tr>
1372<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_col2_im.xhtml">NECol2Im</a>. <a href="classarm__compute_1_1_n_e_col2_im.xhtml#details">More...</a><br /></td></tr>
1373<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1374<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_col2_im_kernel.xhtml">NECol2ImKernel</a></td></tr>
1375<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform col2im reshaping. <a href="classarm__compute_1_1_n_e_col2_im_kernel.xhtml#details">More...</a><br /></td></tr>
1376<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1377<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_color_convert.xhtml">NEColorConvert</a></td></tr>
1378<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_color_convert_kernel.xhtml">NEColorConvertKernel</a> to perform color conversion. <a href="classarm__compute_1_1_n_e_color_convert.xhtml#details">More...</a><br /></td></tr>
1379<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1380<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_color_convert_kernel.xhtml">NEColorConvertKernel</a></td></tr>
1381<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the color convert kernel. <a href="classarm__compute_1_1_n_e_color_convert_kernel.xhtml#details">More...</a><br /></td></tr>
1382<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1383<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_convolution3x3.xhtml">NEConvolution3x3</a></td></tr>
1384<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute convolution of size 3x3. <a href="classarm__compute_1_1_n_e_convolution3x3.xhtml#details">More...</a><br /></td></tr>
1385<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1386<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a></td></tr>
1387<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run an arbitrary size convolution on a tensor. <a href="classarm__compute_1_1_n_e_convolution_kernel.xhtml#details">More...</a><br /></td></tr>
1388<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1389<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_convolution_layer.xhtml">NEConvolutionLayer</a></td></tr>
1390<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a convolution layer. <a href="classarm__compute_1_1_n_e_convolution_layer.xhtml#details">More...</a><br /></td></tr>
1391<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1392<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_convolution_layer_reshape_weights.xhtml">NEConvolutionLayerReshapeWeights</a></td></tr>
1393<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to reshape and perform 1xW transposition on the weights. <a href="classarm__compute_1_1_n_e_convolution_layer_reshape_weights.xhtml#details">More...</a><br /></td></tr>
1394<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1395<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_convolution_rectangle.xhtml">NEConvolutionRectangle</a></td></tr>
1396<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute non-square convolution. <a href="classarm__compute_1_1_n_e_convolution_rectangle.xhtml#details">More...</a><br /></td></tr>
1397<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1398<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_convolution_rectangle_kernel.xhtml">NEConvolutionRectangleKernel</a></td></tr>
1399<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> for the running convolution on a rectangle matrix. <a href="classarm__compute_1_1_n_e_convolution_rectangle_kernel.xhtml#details">More...</a><br /></td></tr>
1400<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1401<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_convolution_square.xhtml">NEConvolutionSquare</a></td></tr>
1402<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute convolution of size 5x5, 7x7, 9x9. <a href="classarm__compute_1_1_n_e_convolution_square.xhtml#details">More...</a><br /></td></tr>
1403<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1404<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_cumulative_distribution_kernel.xhtml">NECumulativeDistributionKernel</a></td></tr>
1405<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the cumulative distribution (cummulative summmation) calculation kernel. <a href="classarm__compute_1_1_n_e_cumulative_distribution_kernel.xhtml#details">More...</a><br /></td></tr>
1406<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1407<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_deconvolution_layer.xhtml">NEDeconvolutionLayer</a></td></tr>
1408<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to run the deconvolution layer. <a href="classarm__compute_1_1_n_e_deconvolution_layer.xhtml#details">More...</a><br /></td></tr>
1409<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001410<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depth_concatenate_layer.xhtml">NEDepthConcatenateLayer</a></td></tr>
1411<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute concatenate tensors along z axis. <a href="classarm__compute_1_1_n_e_depth_concatenate_layer.xhtml#details">More...</a><br /></td></tr>
1412<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1413<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depth_concatenate_layer_kernel.xhtml">NEDepthConcatenateLayerKernel</a></td></tr>
1414<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depth concatenate kernel. <a href="classarm__compute_1_1_n_e_depth_concatenate_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1415<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1416<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depth_convert_layer.xhtml">NEDepthConvertLayer</a></td></tr>
1417<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_depth_convert_layer_kernel.xhtml">NEDepthConvertLayerKernel</a>. <a href="classarm__compute_1_1_n_e_depth_convert_layer.xhtml#details">More...</a><br /></td></tr>
1418<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1419<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depth_convert_layer_kernel.xhtml">NEDepthConvertLayerKernel</a></td></tr>
1420<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Depth conversion kernel. <a href="classarm__compute_1_1_n_e_depth_convert_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1421<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1422<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depthwise_convolution_layer.xhtml">NEDepthwiseConvolutionLayer</a></td></tr>
1423<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute a generic depthwise convolution. <a href="classarm__compute_1_1_n_e_depthwise_convolution_layer.xhtml#details">More...</a><br /></td></tr>
1424<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1425<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depthwise_convolution_layer3x3.xhtml">NEDepthwiseConvolutionLayer3x3</a></td></tr>
1426<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute a depthwise convolution for kernel size 3x3xC. <a href="classarm__compute_1_1_n_e_depthwise_convolution_layer3x3.xhtml#details">More...</a><br /></td></tr>
1427<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1428<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depthwise_convolution_layer3x3_kernel.xhtml">NEDepthwiseConvolutionLayer3x3Kernel</a></td></tr>
1429<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run a 3x3 depthwise convolution on a tensor. <a href="classarm__compute_1_1_n_e_depthwise_convolution_layer3x3_kernel.xhtml#details">More...</a><br /></td></tr>
1430<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1431<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depthwise_im2_col_kernel.xhtml">NEDepthwiseIm2ColKernel</a></td></tr>
1432<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depthwise im2col reshape kernel. <a href="classarm__compute_1_1_n_e_depthwise_im2_col_kernel.xhtml#details">More...</a><br /></td></tr>
1433<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1434<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depthwise_separable_convolution_layer.xhtml">NEDepthwiseSeparableConvolutionLayer</a></td></tr>
1435<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute depthwise convolution. <a href="classarm__compute_1_1_n_e_depthwise_separable_convolution_layer.xhtml#details">More...</a><br /></td></tr>
1436<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1437<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depthwise_vector_to_tensor_kernel.xhtml">NEDepthwiseVectorToTensorKernel</a></td></tr>
1438<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depthwise vector to tensor kernel. <a href="classarm__compute_1_1_n_e_depthwise_vector_to_tensor_kernel.xhtml#details">More...</a><br /></td></tr>
1439<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1440<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_depthwise_weights_reshape_kernel.xhtml">NEDepthwiseWeightsReshapeKernel</a></td></tr>
1441<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the depthwise weights reshape kernel. <a href="classarm__compute_1_1_n_e_depthwise_weights_reshape_kernel.xhtml#details">More...</a><br /></td></tr>
1442<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1443<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_dequantization_layer.xhtml">NEDequantizationLayer</a></td></tr>
1444<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a dequantization layer. <a href="classarm__compute_1_1_n_e_dequantization_layer.xhtml#details">More...</a><br /></td></tr>
1445<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1446<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_dequantization_layer_kernel.xhtml">NEDequantizationLayerKernel</a></td></tr>
1447<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the dequantization layer kernel. <a href="classarm__compute_1_1_n_e_dequantization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1448<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1449<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_derivative.xhtml">NEDerivative</a></td></tr>
1450<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute first order derivative operator. <a href="classarm__compute_1_1_n_e_derivative.xhtml#details">More...</a><br /></td></tr>
1451<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1452<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_derivative_kernel.xhtml">NEDerivativeKernel</a></td></tr>
1453<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the derivative along the X/Y directions on a tensor. <a href="classarm__compute_1_1_n_e_derivative_kernel.xhtml#details">More...</a><br /></td></tr>
1454<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1455<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_dilate.xhtml">NEDilate</a></td></tr>
1456<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute dilate. <a href="classarm__compute_1_1_n_e_dilate.xhtml#details">More...</a><br /></td></tr>
1457<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1458<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_dilate_kernel.xhtml">NEDilateKernel</a></td></tr>
1459<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform boolean image dilatation. <a href="classarm__compute_1_1_n_e_dilate_kernel.xhtml#details">More...</a><br /></td></tr>
1460<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1461<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_direct_convolution_layer.xhtml">NEDirectConvolutionLayer</a></td></tr>
1462<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to run the direct convolution. <a href="classarm__compute_1_1_n_e_direct_convolution_layer.xhtml#details">More...</a><br /></td></tr>
1463<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001464<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_direct_convolution_layer_kernel.xhtml">NEDirectConvolutionLayerKernel</a></td></tr>
1465<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON interface for Direct Convolution Layer kernel. <a href="classarm__compute_1_1_n_e_direct_convolution_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1466<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00001467<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_direct_convolution_layer_output_stage_kernel.xhtml">NEDirectConvolutionLayerOutputStageKernel</a></td></tr>
1468<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to accumulate the biases, if provided, or downscale in case of quantized input. <a href="classarm__compute_1_1_n_e_direct_convolution_layer_output_stage_kernel.xhtml#details">More...</a><br /></td></tr>
1469<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001470<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_edge_non_max_suppression_kernel.xhtml">NEEdgeNonMaxSuppressionKernel</a></td></tr>
1471<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform Non-Maxima suppression for Canny Edge. <a href="classarm__compute_1_1_n_e_edge_non_max_suppression_kernel.xhtml#details">More...</a><br /></td></tr>
1472<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1473<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_edge_trace_kernel.xhtml">NEEdgeTraceKernel</a></td></tr>
1474<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform Edge tracing. <a href="classarm__compute_1_1_n_e_edge_trace_kernel.xhtml#details">More...</a><br /></td></tr>
1475<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1476<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_equalize_histogram.xhtml">NEEqualizeHistogram</a></td></tr>
1477<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute histogram equalization. <a href="classarm__compute_1_1_n_e_equalize_histogram.xhtml#details">More...</a><br /></td></tr>
1478<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1479<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_erode.xhtml">NEErode</a></td></tr>
1480<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute erode. <a href="classarm__compute_1_1_n_e_erode.xhtml#details">More...</a><br /></td></tr>
1481<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1482<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_erode_kernel.xhtml">NEErodeKernel</a></td></tr>
1483<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform boolean image erosion. <a href="classarm__compute_1_1_n_e_erode_kernel.xhtml#details">More...</a><br /></td></tr>
1484<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1485<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_fast_corners.xhtml">NEFastCorners</a></td></tr>
1486<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute fast corners. <a href="classarm__compute_1_1_n_e_fast_corners.xhtml#details">More...</a><br /></td></tr>
1487<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1488<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_fast_corners_kernel.xhtml">NEFastCornersKernel</a></td></tr>
1489<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform fast corners. <a href="classarm__compute_1_1_n_e_fast_corners_kernel.xhtml#details">More...</a><br /></td></tr>
1490<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1491<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_fill_array_kernel.xhtml">NEFillArrayKernel</a></td></tr>
1492<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This kernel adds all texels greater than or equal to the threshold value to the keypoint array. <a href="classarm__compute_1_1_n_e_fill_array_kernel.xhtml#details">More...</a><br /></td></tr>
1493<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1494<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_fill_border.xhtml">NEFillBorder</a></td></tr>
1495<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_fill_border_kernel.xhtml">NEFillBorderKernel</a>. <a href="classarm__compute_1_1_n_e_fill_border.xhtml#details">More...</a><br /></td></tr>
1496<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1497<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_fill_border_kernel.xhtml">NEFillBorderKernel</a></td></tr>
1498<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to fill borders. <a href="classarm__compute_1_1_n_e_fill_border_kernel.xhtml#details">More...</a><br /></td></tr>
1499<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1500<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_fill_inner_border_kernel.xhtml">NEFillInnerBorderKernel</a></td></tr>
1501<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to fill the interior borders. <a href="classarm__compute_1_1_n_e_fill_inner_border_kernel.xhtml#details">More...</a><br /></td></tr>
1502<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1503<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_flatten_layer.xhtml">NEFlattenLayer</a></td></tr>
1504<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute flatten. <a href="classarm__compute_1_1_n_e_flatten_layer.xhtml#details">More...</a><br /></td></tr>
1505<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1506<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_floor.xhtml">NEFloor</a></td></tr>
1507<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_floor_kernel.xhtml">NEFloorKernel</a>. <a href="classarm__compute_1_1_n_e_floor.xhtml#details">More...</a><br /></td></tr>
1508<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1509<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_floor_kernel.xhtml">NEFloorKernel</a></td></tr>
1510<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a floor operation. <a href="classarm__compute_1_1_n_e_floor_kernel.xhtml#details">More...</a><br /></td></tr>
1511<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1512<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_fully_connected_layer.xhtml">NEFullyConnectedLayer</a></td></tr>
1513<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute a Fully Connected layer on NEON. <a href="classarm__compute_1_1_n_e_fully_connected_layer.xhtml#details">More...</a><br /></td></tr>
1514<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1515<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_fully_connected_layer_reshape_weights.xhtml">NEFullyConnectedLayerReshapeWeights</a></td></tr>
1516<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to reshape the weights of Fully Connected layer with NEON. <a href="classarm__compute_1_1_n_e_fully_connected_layer_reshape_weights.xhtml#details">More...</a><br /></td></tr>
1517<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1518<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian3x3.xhtml">NEGaussian3x3</a></td></tr>
1519<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute gaussian filter 3x3. <a href="classarm__compute_1_1_n_e_gaussian3x3.xhtml#details">More...</a><br /></td></tr>
1520<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1521<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian3x3_kernel.xhtml">NEGaussian3x3Kernel</a></td></tr>
1522<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a Gaussian 3x3 filter. <a href="classarm__compute_1_1_n_e_gaussian3x3_kernel.xhtml#details">More...</a><br /></td></tr>
1523<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1524<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian5x5.xhtml">NEGaussian5x5</a></td></tr>
1525<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute gaussian filter 5x5. <a href="classarm__compute_1_1_n_e_gaussian5x5.xhtml#details">More...</a><br /></td></tr>
1526<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1527<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian5x5_hor_kernel.xhtml">NEGaussian5x5HorKernel</a></td></tr>
1528<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a Gaussian 5x5 filter (horizontal pass) <a href="classarm__compute_1_1_n_e_gaussian5x5_hor_kernel.xhtml#details">More...</a><br /></td></tr>
1529<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1530<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian5x5_vert_kernel.xhtml">NEGaussian5x5VertKernel</a></td></tr>
1531<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a Gaussian 5x5 filter (vertical pass) <a href="classarm__compute_1_1_n_e_gaussian5x5_vert_kernel.xhtml#details">More...</a><br /></td></tr>
1532<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1533<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian_pyramid.xhtml">NEGaussianPyramid</a></td></tr>
1534<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface for all Gaussian pyramid functions. <a href="classarm__compute_1_1_n_e_gaussian_pyramid.xhtml#details">More...</a><br /></td></tr>
1535<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1536<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian_pyramid_half.xhtml">NEGaussianPyramidHalf</a></td></tr>
1537<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute gaussian pyramid with HALF scale factor. <a href="classarm__compute_1_1_n_e_gaussian_pyramid_half.xhtml#details">More...</a><br /></td></tr>
1538<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1539<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian_pyramid_hor_kernel.xhtml">NEGaussianPyramidHorKernel</a></td></tr>
1540<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a GaussianPyramid (horizontal pass) <a href="classarm__compute_1_1_n_e_gaussian_pyramid_hor_kernel.xhtml#details">More...</a><br /></td></tr>
1541<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1542<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian_pyramid_orb.xhtml">NEGaussianPyramidOrb</a></td></tr>
1543<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute gaussian pyramid with ORB scale factor. <a href="classarm__compute_1_1_n_e_gaussian_pyramid_orb.xhtml#details">More...</a><br /></td></tr>
1544<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1545<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gaussian_pyramid_vert_kernel.xhtml">NEGaussianPyramidVertKernel</a></td></tr>
1546<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a GaussianPyramid (vertical pass) <a href="classarm__compute_1_1_n_e_gaussian_pyramid_vert_kernel.xhtml#details">More...</a><br /></td></tr>
1547<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1548<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m.xhtml">NEGEMM</a></td></tr>
1549<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute GEMM on NEON. <a href="classarm__compute_1_1_n_e_g_e_m_m.xhtml#details">More...</a><br /></td></tr>
1550<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1551<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_a_arch32_kernel.xhtml">NEGEMMAArch32Kernel</a></td></tr>
1552<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">AArch32/armv7a NEON kernel to multiply two input matrices "A" and "B". <a href="classarm__compute_1_1_n_e_g_e_m_m_a_arch32_kernel.xhtml#details">More...</a><br /></td></tr>
1553<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1554<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_a_arch64_kernel.xhtml">NEGEMMAArch64Kernel</a></td></tr>
1555<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">AArch64 NEON kernel to multiply two input matrices "A" and "B". <a href="classarm__compute_1_1_n_e_g_e_m_m_a_arch64_kernel.xhtml#details">More...</a><br /></td></tr>
1556<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001557<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_a_arch64_native_kernel.xhtml">NEGEMMAArch64NativeKernel</a></td></tr>
1558<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Native AArch64 NEON kernel to multiply two input matrices "A" and "B". <a href="classarm__compute_1_1_n_e_g_e_m_m_a_arch64_native_kernel.xhtml#details">More...</a><br /></td></tr>
1559<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001560<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_assembly_base_kernel.xhtml">NEGEMMAssemblyBaseKernel</a></td></tr>
1561<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for GEMM NEON kernels implemented in Assembly. <a href="classarm__compute_1_1_n_e_g_e_m_m_assembly_base_kernel.xhtml#details">More...</a><br /></td></tr>
1562<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001563<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_convolution_layer.xhtml">NEGEMMConvolutionLayer</a></td></tr>
1564<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a convolution layer. <a href="classarm__compute_1_1_n_e_g_e_m_m_convolution_layer.xhtml#details">More...</a><br /></td></tr>
1565<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001566<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_interleave4x4.xhtml">NEGEMMInterleave4x4</a></td></tr>
1567<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_interleave4x4_kernel.xhtml" title="NEON kernel to interleave the elements of a matrix. ">NEGEMMInterleave4x4Kernel</a>. <a href="classarm__compute_1_1_n_e_g_e_m_m_interleave4x4.xhtml#details">More...</a><br /></td></tr>
1568<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1569<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_interleave4x4_kernel.xhtml">NEGEMMInterleave4x4Kernel</a></td></tr>
1570<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to interleave the elements of a matrix. <a href="classarm__compute_1_1_n_e_g_e_m_m_interleave4x4_kernel.xhtml#details">More...</a><br /></td></tr>
1571<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1572<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_interleave_blocked_kernel.xhtml">NEGEMMInterleaveBlockedKernel</a></td></tr>
1573<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to interleave the elements of a matrix. <a href="classarm__compute_1_1_n_e_g_e_m_m_interleave_blocked_kernel.xhtml#details">More...</a><br /></td></tr>
1574<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1575<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_a_arch64_a53_kernel.xhtml">NEGEMMLowpAArch64A53Kernel</a></td></tr>
1576<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">AArch64 NEON kernel to multiply two input matrices "A" and "B". <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_a_arch64_a53_kernel.xhtml#details">More...</a><br /></td></tr>
1577<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1578<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_a_arch64_kernel.xhtml">NEGEMMLowpAArch64Kernel</a></td></tr>
1579<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">AArch64 NEON kernel to multiply two input matrices "A" and "B". <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_a_arch64_kernel.xhtml#details">More...</a><br /></td></tr>
1580<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1581<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_a_arch64_v8_p4_kernel.xhtml">NEGEMMLowpAArch64V8P4Kernel</a></td></tr>
1582<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">AArch64 NEON kernel to multiply two input matrices "A" and "B". <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_a_arch64_v8_p4_kernel.xhtml#details">More...</a><br /></td></tr>
1583<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1584<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_assembly_matrix_multiply_core.xhtml">NEGEMMLowpAssemblyMatrixMultiplyCore</a></td></tr>
1585<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute matrix multiply assembly kernels. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_assembly_matrix_multiply_core.xhtml#details">More...</a><br /></td></tr>
1586<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1587<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_a_reduction_kernel.xhtml">NEGEMMLowpMatrixAReductionKernel</a></td></tr>
1588<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel used to compute the row-vectors of sums of all the entries in each row of Matrix A. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_a_reduction_kernel.xhtml#details">More...</a><br /></td></tr>
1589<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1590<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_b_reduction_kernel.xhtml">NEGEMMLowpMatrixBReductionKernel</a></td></tr>
1591<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel used to compute the row-vectors of sums of all the entries in each column of Matrix B. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_b_reduction_kernel.xhtml#details">More...</a><br /></td></tr>
1592<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1593<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_multiply_core.xhtml">NEGEMMLowpMatrixMultiplyCore</a></td></tr>
1594<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute GEMMLowpMatrixMultiplyCore on NEON. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_multiply_core.xhtml#details">More...</a><br /></td></tr>
1595<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1596<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_multiply_kernel.xhtml">NEGEMMLowpMatrixMultiplyKernel</a></td></tr>
1597<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to multiply matrices. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
1598<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1599<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_offset_contribution_kernel.xhtml">NEGEMMLowpOffsetContributionKernel</a></td></tr>
1600<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel used to add the offset contribution after <a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_multiply_kernel.xhtml">NEGEMMLowpMatrixMultiplyKernel</a>. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_offset_contribution_kernel.xhtml#details">More...</a><br /></td></tr>
1601<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1602<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale.xhtml">NEGEMMLowpQuantizeDownInt32ToUint8Scale</a></td></tr>
1603<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale.xhtml" title="Basic function to execute NEGEMMLowpQuantizeDownInt32ToUint8Scale on NEON. ">NEGEMMLowpQuantizeDownInt32ToUint8Scale</a> on NEON. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale.xhtml#details">More...</a><br /></td></tr>
1604<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1605<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point.xhtml">NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint</a></td></tr>
1606<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point.xhtml" title="Basic function to execute NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint on NEON. ">NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint</a> on NEON. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point.xhtml#details">More...</a><br /></td></tr>
1607<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1608<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point_kernel.xhtml">NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel</a></td></tr>
1609<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel used to quantize down the int32 accumulator values of GEMMLowp to QASYMM8. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point_kernel.xhtml#details">More...</a><br /></td></tr>
1610<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1611<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_kernel.xhtml">NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel</a></td></tr>
1612<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel used to quantize down the int32 accumulator values of GEMMLowp to QASYMM8. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_kernel.xhtml#details">More...</a><br /></td></tr>
1613<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1614<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_matrix_accumulate_biases_kernel.xhtml">NEGEMMMatrixAccumulateBiasesKernel</a></td></tr>
1615<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to add a bias to each row of the input tensor. <a href="classarm__compute_1_1_n_e_g_e_m_m_matrix_accumulate_biases_kernel.xhtml#details">More...</a><br /></td></tr>
1616<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1617<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_matrix_addition_kernel.xhtml">NEGEMMMatrixAdditionKernel</a></td></tr>
1618<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform the in-place matrix addition between 2 matrices taking into account that the second matrix might be weighted by a scalar value beta: <a href="classarm__compute_1_1_n_e_g_e_m_m_matrix_addition_kernel.xhtml#details">More...</a><br /></td></tr>
1619<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1620<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_matrix_multiply_kernel.xhtml">NEGEMMMatrixMultiplyKernel</a></td></tr>
1621<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to multiply two input matrices "A" and "B". <a href="classarm__compute_1_1_n_e_g_e_m_m_matrix_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
1622<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1623<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_matrix_vector_multiply_kernel.xhtml">NEGEMMMatrixVectorMultiplyKernel</a></td></tr>
1624<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1625<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_transpose1x_w.xhtml">NEGEMMTranspose1xW</a></td></tr>
1626<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_transpose1x_w_kernel.xhtml" title="NEON kernel which transposes the elements of a matrix in chunks of 1xW, where W is equal to (16 / ele...">NEGEMMTranspose1xWKernel</a>. <a href="classarm__compute_1_1_n_e_g_e_m_m_transpose1x_w.xhtml#details">More...</a><br /></td></tr>
1627<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1628<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_transpose1x_w_kernel.xhtml">NEGEMMTranspose1xWKernel</a></td></tr>
1629<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel which transposes the elements of a matrix in chunks of 1xW, where W is equal to (16 / element size of the tensor) <a href="classarm__compute_1_1_n_e_g_e_m_m_transpose1x_w_kernel.xhtml#details">More...</a><br /></td></tr>
1630<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001631<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_g_e_m_v_a_arch64_kernel.xhtml">NEGEMVAArch64Kernel</a></td></tr>
1632<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">AArch64 NEON kernel to multiply an input vector "A" and a matrix "B". <a href="classarm__compute_1_1_n_e_g_e_m_v_a_arch64_kernel.xhtml#details">More...</a><br /></td></tr>
1633<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001634<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_gradient_kernel.xhtml">NEGradientKernel</a></td></tr>
1635<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes magnitude and quantised phase from inputs gradients. <a href="classarm__compute_1_1_n_e_gradient_kernel.xhtml#details">More...</a><br /></td></tr>
1636<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1637<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_harris_corners.xhtml">NEHarrisCorners</a></td></tr>
1638<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute harris corners detection. <a href="classarm__compute_1_1_n_e_harris_corners.xhtml#details">More...</a><br /></td></tr>
1639<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1640<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_harris_score_kernel.xhtml">NEHarrisScoreKernel</a></td></tr>
1641<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template NEON kernel to perform Harris Score. <a href="classarm__compute_1_1_n_e_harris_score_kernel.xhtml#details">More...</a><br /></td></tr>
1642<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1643<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_h_g_e_m_m_a_arch64_f_p16_kernel.xhtml">NEHGEMMAArch64FP16Kernel</a></td></tr>
1644<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">AArch64 NEON kernel to multiply two input matrices "A" and "B". <a href="classarm__compute_1_1_n_e_h_g_e_m_m_a_arch64_f_p16_kernel.xhtml#details">More...</a><br /></td></tr>
1645<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1646<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_histogram.xhtml">NEHistogram</a></td></tr>
1647<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_histogram_kernel.xhtml">NEHistogramKernel</a>. <a href="classarm__compute_1_1_n_e_histogram.xhtml#details">More...</a><br /></td></tr>
1648<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1649<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_histogram_kernel.xhtml">NEHistogramKernel</a></td></tr>
1650<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the histogram kernel. <a href="classarm__compute_1_1_n_e_histogram_kernel.xhtml#details">More...</a><br /></td></tr>
1651<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1652<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_h_o_g_block_normalization_kernel.xhtml">NEHOGBlockNormalizationKernel</a></td></tr>
1653<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> block normalization. <a href="classarm__compute_1_1_n_e_h_o_g_block_normalization_kernel.xhtml#details">More...</a><br /></td></tr>
1654<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1655<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_h_o_g_descriptor.xhtml">NEHOGDescriptor</a></td></tr>
1656<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to calculate <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> descriptor. <a href="classarm__compute_1_1_n_e_h_o_g_descriptor.xhtml#details">More...</a><br /></td></tr>
1657<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1658<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_h_o_g_detector.xhtml">NEHOGDetector</a></td></tr>
1659<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> detector based on linear SVM. <a href="classarm__compute_1_1_n_e_h_o_g_detector.xhtml#details">More...</a><br /></td></tr>
1660<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1661<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_h_o_g_detector_kernel.xhtml">NEHOGDetectorKernel</a></td></tr>
1662<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> detector kernel using linear SVM. <a href="classarm__compute_1_1_n_e_h_o_g_detector_kernel.xhtml#details">More...</a><br /></td></tr>
1663<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1664<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_h_o_g_gradient.xhtml">NEHOGGradient</a></td></tr>
1665<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to calculate the gradient for <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a>. <a href="classarm__compute_1_1_n_e_h_o_g_gradient.xhtml#details">More...</a><br /></td></tr>
1666<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1667<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_h_o_g_multi_detection.xhtml">NEHOGMultiDetection</a></td></tr>
1668<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to detect multiple objects (or the same object at different scales) on the same input image using <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a>. <a href="classarm__compute_1_1_n_e_h_o_g_multi_detection.xhtml#details">More...</a><br /></td></tr>
1669<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1670<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_h_o_g_orientation_binning_kernel.xhtml">NEHOGOrientationBinningKernel</a></td></tr>
1671<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> Orientation Binning. <a href="classarm__compute_1_1_n_e_h_o_g_orientation_binning_kernel.xhtml#details">More...</a><br /></td></tr>
1672<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1673<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_im2_col.xhtml">NEIm2Col</a></td></tr>
1674<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_im2_col_kernel.xhtml">NEIm2ColKernel</a>. <a href="classarm__compute_1_1_n_e_im2_col.xhtml#details">More...</a><br /></td></tr>
1675<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1676<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_im2_col_kernel.xhtml">NEIm2ColKernel</a></td></tr>
1677<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the im2col reshape kernel. <a href="classarm__compute_1_1_n_e_im2_col_kernel.xhtml#details">More...</a><br /></td></tr>
1678<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1679<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_integral_image.xhtml">NEIntegralImage</a></td></tr>
1680<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run a <a class="el" href="classarm__compute_1_1_n_e_integral_image_kernel.xhtml">NEIntegralImageKernel</a>. <a href="classarm__compute_1_1_n_e_integral_image.xhtml#details">More...</a><br /></td></tr>
1681<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1682<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_integral_image_kernel.xhtml">NEIntegralImageKernel</a></td></tr>
1683<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> to perform an image integral on an image. <a href="classarm__compute_1_1_n_e_integral_image_kernel.xhtml#details">More...</a><br /></td></tr>
1684<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1685<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_l2_normalize_layer.xhtml">NEL2NormalizeLayer</a></td></tr>
1686<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to perform a L2 normalization on a given axis. <a href="classarm__compute_1_1_n_e_l2_normalize_layer.xhtml#details">More...</a><br /></td></tr>
1687<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1688<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_l2_normalize_layer_kernel.xhtml">NEL2NormalizeLayerKernel</a></td></tr>
1689<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for performing a L2 normalize on a given axis given the square sum of it in this axis. <a href="classarm__compute_1_1_n_e_l2_normalize_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1690<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1691<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml">NELaplacianPyramid</a></td></tr>
1692<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute laplacian pyramid. <a href="classarm__compute_1_1_n_e_laplacian_pyramid.xhtml#details">More...</a><br /></td></tr>
1693<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1694<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_laplacian_reconstruct.xhtml">NELaplacianReconstruct</a></td></tr>
1695<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute laplacian reconstruction. <a href="classarm__compute_1_1_n_e_laplacian_reconstruct.xhtml#details">More...</a><br /></td></tr>
1696<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1697<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_n_e_l_k_internal_keypoint.xhtml">NELKInternalKeypoint</a></td></tr>
1698<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal keypoint class for Lucas-Kanade Optical Flow. <a href="structarm__compute_1_1_n_e_l_k_internal_keypoint.xhtml#details">More...</a><br /></td></tr>
1699<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1700<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_l_k_tracker_kernel.xhtml">NELKTrackerKernel</a></td></tr>
1701<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the Lucas-Kanade tracker kernel. <a href="classarm__compute_1_1_n_e_l_k_tracker_kernel.xhtml#details">More...</a><br /></td></tr>
1702<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1703<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_locally_connected_layer.xhtml">NELocallyConnectedLayer</a></td></tr>
1704<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute the locally connected layer. <a href="classarm__compute_1_1_n_e_locally_connected_layer.xhtml#details">More...</a><br /></td></tr>
1705<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1706<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_locally_connected_matrix_multiply_kernel.xhtml">NELocallyConnectedMatrixMultiplyKernel</a></td></tr>
1707<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to multiply each row of first tensor with low 2 dimensions of second tensor. <a href="classarm__compute_1_1_n_e_locally_connected_matrix_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
1708<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1709<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_logits1_d_max_kernel.xhtml">NELogits1DMaxKernel</a></td></tr>
1710<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the identifying the max value of 1D Logits. <a href="classarm__compute_1_1_n_e_logits1_d_max_kernel.xhtml#details">More...</a><br /></td></tr>
1711<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001712<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_logits1_d_softmax_kernel.xhtml">NELogits1DSoftmaxKernel</a></td></tr>
1713<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for softmax computation for QASYMM8 with pre-computed max. <a href="classarm__compute_1_1_n_e_logits1_d_softmax_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001714<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1715<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_magnitude.xhtml">NEMagnitude</a></td></tr>
1716<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_magnitude_phase_kernel.xhtml" title="Template interface for the kernel to compute magnitude and phase. ">NEMagnitudePhaseKernel</a>. <a href="classarm__compute_1_1_n_e_magnitude.xhtml#details">More...</a><br /></td></tr>
1717<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1718<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_magnitude_phase_kernel.xhtml">NEMagnitudePhaseKernel</a></td></tr>
1719<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template interface for the kernel to compute magnitude and phase. <a href="classarm__compute_1_1_n_e_magnitude_phase_kernel.xhtml#details">More...</a><br /></td></tr>
1720<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1721<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_mean_std_dev.xhtml">NEMeanStdDev</a></td></tr>
1722<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute mean and std deviation. <a href="classarm__compute_1_1_n_e_mean_std_dev.xhtml#details">More...</a><br /></td></tr>
1723<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1724<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_mean_std_dev_kernel.xhtml">NEMeanStdDevKernel</a></td></tr>
1725<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to calculate mean and standard deviation of input image pixels. <a href="classarm__compute_1_1_n_e_mean_std_dev_kernel.xhtml#details">More...</a><br /></td></tr>
1726<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1727<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_median3x3.xhtml">NEMedian3x3</a></td></tr>
1728<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute median filter. <a href="classarm__compute_1_1_n_e_median3x3.xhtml#details">More...</a><br /></td></tr>
1729<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1730<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_median3x3_kernel.xhtml">NEMedian3x3Kernel</a></td></tr>
1731<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> to perform a median filter on a tensor. <a href="classarm__compute_1_1_n_e_median3x3_kernel.xhtml#details">More...</a><br /></td></tr>
1732<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1733<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_min_max_kernel.xhtml">NEMinMaxKernel</a></td></tr>
1734<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform min max search on an image. <a href="classarm__compute_1_1_n_e_min_max_kernel.xhtml#details">More...</a><br /></td></tr>
1735<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1736<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_min_max_layer_kernel.xhtml">NEMinMaxLayerKernel</a></td></tr>
1737<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform min max search on a 3D tensor. <a href="classarm__compute_1_1_n_e_min_max_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1738<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1739<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_min_max_location.xhtml">NEMinMaxLocation</a></td></tr>
1740<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute min and max location. <a href="classarm__compute_1_1_n_e_min_max_location.xhtml#details">More...</a><br /></td></tr>
1741<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1742<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_min_max_location_kernel.xhtml">NEMinMaxLocationKernel</a></td></tr>
1743<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to find min max locations of an image. <a href="classarm__compute_1_1_n_e_min_max_location_kernel.xhtml#details">More...</a><br /></td></tr>
1744<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1745<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_non_linear_filter.xhtml">NENonLinearFilter</a></td></tr>
1746<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute non linear filter. <a href="classarm__compute_1_1_n_e_non_linear_filter.xhtml#details">More...</a><br /></td></tr>
1747<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1748<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_non_linear_filter_kernel.xhtml">NENonLinearFilterKernel</a></td></tr>
1749<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to apply a non-linear filter. <a href="classarm__compute_1_1_n_e_non_linear_filter_kernel.xhtml#details">More...</a><br /></td></tr>
1750<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1751<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_non_maxima_suppression3x3.xhtml">NENonMaximaSuppression3x3</a></td></tr>
1752<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute non-maxima suppression over a 3x3 window. <a href="classarm__compute_1_1_n_e_non_maxima_suppression3x3.xhtml#details">More...</a><br /></td></tr>
1753<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1754<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_non_maxima_suppression3x3_kernel.xhtml">NENonMaximaSuppression3x3Kernel</a></td></tr>
1755<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to perform Non-Maxima suppression over a 3x3 window using NEON. <a href="classarm__compute_1_1_n_e_non_maxima_suppression3x3_kernel.xhtml#details">More...</a><br /></td></tr>
1756<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1757<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_normalization_layer.xhtml">NENormalizationLayer</a></td></tr>
1758<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute a normalization layer. <a href="classarm__compute_1_1_n_e_normalization_layer.xhtml#details">More...</a><br /></td></tr>
1759<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1760<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_normalization_layer_kernel.xhtml">NENormalizationLayerKernel</a></td></tr>
1761<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the normalization layer kernel. <a href="classarm__compute_1_1_n_e_normalization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1762<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1763<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_optical_flow.xhtml">NEOpticalFlow</a></td></tr>
1764<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute optical flow. <a href="classarm__compute_1_1_n_e_optical_flow.xhtml#details">More...</a><br /></td></tr>
1765<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001766<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_permute.xhtml">NEPermute</a></td></tr>
1767<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_permute_kernel.xhtml">NEPermuteKernel</a>. <a href="classarm__compute_1_1_n_e_permute.xhtml#details">More...</a><br /></td></tr>
1768<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1769<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_permute_kernel.xhtml">NEPermuteKernel</a></td></tr>
1770<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform tensor permutation. <a href="classarm__compute_1_1_n_e_permute_kernel.xhtml#details">More...</a><br /></td></tr>
1771<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001772<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_phase.xhtml">NEPhase</a></td></tr>
1773<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_magnitude_phase_kernel.xhtml" title="Template interface for the kernel to compute magnitude and phase. ">NEMagnitudePhaseKernel</a>. <a href="classarm__compute_1_1_n_e_phase.xhtml#details">More...</a><br /></td></tr>
1774<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1775<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_pixel_wise_multiplication.xhtml">NEPixelWiseMultiplication</a></td></tr>
1776<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_pixel_wise_multiplication_kernel.xhtml">NEPixelWiseMultiplicationKernel</a>. <a href="classarm__compute_1_1_n_e_pixel_wise_multiplication.xhtml#details">More...</a><br /></td></tr>
1777<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1778<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_pixel_wise_multiplication_kernel.xhtml">NEPixelWiseMultiplicationKernel</a></td></tr>
1779<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform addition between two tensors. <a href="classarm__compute_1_1_n_e_pixel_wise_multiplication_kernel.xhtml#details">More...</a><br /></td></tr>
1780<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1781<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_pooling_layer.xhtml">NEPoolingLayer</a></td></tr>
1782<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a pooling layer with the specified pooling operation. <a href="classarm__compute_1_1_n_e_pooling_layer.xhtml#details">More...</a><br /></td></tr>
1783<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1784<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_pooling_layer_kernel.xhtml">NEPoolingLayerKernel</a></td></tr>
1785<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the pooling layer kernel. <a href="classarm__compute_1_1_n_e_pooling_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1786<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1787<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_quantization_layer.xhtml">NEQuantizationLayer</a></td></tr>
1788<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a quantization layer. <a href="classarm__compute_1_1_n_e_quantization_layer.xhtml#details">More...</a><br /></td></tr>
1789<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1790<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_quantization_layer_kernel.xhtml">NEQuantizationLayerKernel</a></td></tr>
1791<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the quantization layer kernel. <a href="classarm__compute_1_1_n_e_quantization_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1792<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1793<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_reduction_operation.xhtml">NEReductionOperation</a></td></tr>
1794<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a reduction operation. <a href="classarm__compute_1_1_n_e_reduction_operation.xhtml#details">More...</a><br /></td></tr>
1795<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1796<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_reduction_operation_kernel.xhtml">NEReductionOperationKernel</a></td></tr>
1797<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a reduction operation. <a href="classarm__compute_1_1_n_e_reduction_operation_kernel.xhtml#details">More...</a><br /></td></tr>
1798<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1799<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_remap.xhtml">NERemap</a></td></tr>
1800<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute remap. <a href="classarm__compute_1_1_n_e_remap.xhtml#details">More...</a><br /></td></tr>
1801<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1802<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_remap_kernel.xhtml">NERemapKernel</a></td></tr>
1803<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a remap on a tensor. <a href="classarm__compute_1_1_n_e_remap_kernel.xhtml#details">More...</a><br /></td></tr>
1804<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1805<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_reshape_layer.xhtml">NEReshapeLayer</a></td></tr>
1806<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_reshape_layer_kernel.xhtml">NEReshapeLayerKernel</a>. <a href="classarm__compute_1_1_n_e_reshape_layer.xhtml#details">More...</a><br /></td></tr>
1807<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1808<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_reshape_layer_kernel.xhtml">NEReshapeLayerKernel</a></td></tr>
1809<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform tensor reshaping. <a href="classarm__compute_1_1_n_e_reshape_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1810<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1811<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_r_o_i_pooling_layer.xhtml">NEROIPoolingLayer</a></td></tr>
1812<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_r_o_i_pooling_layer_kernel.xhtml">NEROIPoolingLayerKernel</a>. <a href="classarm__compute_1_1_n_e_r_o_i_pooling_layer.xhtml#details">More...</a><br /></td></tr>
1813<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1814<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_r_o_i_pooling_layer_kernel.xhtml">NEROIPoolingLayerKernel</a></td></tr>
1815<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the <a class="el" href="structarm__compute_1_1_r_o_i.xhtml" title="Region of interest. ">ROI</a> pooling layer kernel. <a href="classarm__compute_1_1_n_e_r_o_i_pooling_layer_kernel.xhtml#details">More...</a><br /></td></tr>
1816<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1817<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_scale.xhtml">NEScale</a></td></tr>
1818<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_scale_kernel.xhtml">NEScaleKernel</a>. <a href="classarm__compute_1_1_n_e_scale.xhtml#details">More...</a><br /></td></tr>
1819<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1820<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_scale_kernel.xhtml">NEScaleKernel</a></td></tr>
1821<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform scaling on a tensor. <a href="classarm__compute_1_1_n_e_scale_kernel.xhtml#details">More...</a><br /></td></tr>
1822<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1823<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_scharr3x3.xhtml">NEScharr3x3</a></td></tr>
1824<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute scharr 3x3 filter. <a href="classarm__compute_1_1_n_e_scharr3x3.xhtml#details">More...</a><br /></td></tr>
1825<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1826<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_scharr3x3_kernel.xhtml">NEScharr3x3Kernel</a></td></tr>
1827<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run a 3x3 Scharr filter on a tensor. <a href="classarm__compute_1_1_n_e_scharr3x3_kernel.xhtml#details">More...</a><br /></td></tr>
1828<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1829<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_separable_convolution_hor_kernel.xhtml">NESeparableConvolutionHorKernel</a></td></tr>
1830<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> for the Horizontal pass of a Separable Convolution. <a href="classarm__compute_1_1_n_e_separable_convolution_hor_kernel.xhtml#details">More...</a><br /></td></tr>
1831<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1832<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_separable_convolution_vert_kernel.xhtml">NESeparableConvolutionVertKernel</a></td></tr>
1833<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> for the Vertical pass of a Separable Convolution. <a href="classarm__compute_1_1_n_e_separable_convolution_vert_kernel.xhtml#details">More...</a><br /></td></tr>
1834<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1835<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_sobel3x3.xhtml">NESobel3x3</a></td></tr>
1836<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute sobel 3x3 filter. <a href="classarm__compute_1_1_n_e_sobel3x3.xhtml#details">More...</a><br /></td></tr>
1837<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1838<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_sobel3x3_kernel.xhtml">NESobel3x3Kernel</a></td></tr>
1839<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run a 3x3 Sobel X filter on a tensor. <a href="classarm__compute_1_1_n_e_sobel3x3_kernel.xhtml#details">More...</a><br /></td></tr>
1840<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1841<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_sobel5x5.xhtml">NESobel5x5</a></td></tr>
1842<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute sobel 5x5 filter. <a href="classarm__compute_1_1_n_e_sobel5x5.xhtml#details">More...</a><br /></td></tr>
1843<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1844<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_sobel5x5_hor_kernel.xhtml">NESobel5x5HorKernel</a></td></tr>
1845<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the horizontal pass of 5x5 Sobel filter on a tensor. <a href="classarm__compute_1_1_n_e_sobel5x5_hor_kernel.xhtml#details">More...</a><br /></td></tr>
1846<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1847<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_sobel5x5_vert_kernel.xhtml">NESobel5x5VertKernel</a></td></tr>
1848<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the vertical pass of 5x5 Sobel Y filter on a tensor. <a href="classarm__compute_1_1_n_e_sobel5x5_vert_kernel.xhtml#details">More...</a><br /></td></tr>
1849<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1850<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_sobel7x7.xhtml">NESobel7x7</a></td></tr>
1851<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute sobel 7x7 filter. <a href="classarm__compute_1_1_n_e_sobel7x7.xhtml#details">More...</a><br /></td></tr>
1852<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1853<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_sobel7x7_hor_kernel.xhtml">NESobel7x7HorKernel</a></td></tr>
1854<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the horizontal pass of 7x7 Sobel filter on a tensor. <a href="classarm__compute_1_1_n_e_sobel7x7_hor_kernel.xhtml#details">More...</a><br /></td></tr>
1855<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1856<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_sobel7x7_vert_kernel.xhtml">NESobel7x7VertKernel</a></td></tr>
1857<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to run the vertical pass of 7x7 Sobel Y filter on a tensor. <a href="classarm__compute_1_1_n_e_sobel7x7_vert_kernel.xhtml#details">More...</a><br /></td></tr>
1858<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1859<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_softmax_layer.xhtml">NESoftmaxLayer</a></td></tr>
1860<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to compute a SoftmaxLayer. <a href="classarm__compute_1_1_n_e_softmax_layer.xhtml#details">More...</a><br /></td></tr>
1861<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1862<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_table_lookup.xhtml">NETableLookup</a></td></tr>
1863<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_table_lookup_kernel.xhtml">NETableLookupKernel</a>. <a href="classarm__compute_1_1_n_e_table_lookup.xhtml#details">More...</a><br /></td></tr>
1864<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1865<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_table_lookup_kernel.xhtml">NETableLookupKernel</a></td></tr>
1866<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel to perform table lookup calculations. <a href="classarm__compute_1_1_n_e_table_lookup_kernel.xhtml#details">More...</a><br /></td></tr>
1867<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1868<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_threshold.xhtml">NEThreshold</a></td></tr>
1869<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_threshold_kernel.xhtml">NEThresholdKernel</a>. <a href="classarm__compute_1_1_n_e_threshold.xhtml#details">More...</a><br /></td></tr>
1870<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1871<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_threshold_kernel.xhtml">NEThresholdKernel</a></td></tr>
1872<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the thresholding kernel. <a href="classarm__compute_1_1_n_e_threshold_kernel.xhtml#details">More...</a><br /></td></tr>
1873<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1874<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_transpose.xhtml">NETranspose</a></td></tr>
1875<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to transpose a matrix on NEON. <a href="classarm__compute_1_1_n_e_transpose.xhtml#details">More...</a><br /></td></tr>
1876<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1877<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_transpose_kernel.xhtml">NETransposeKernel</a></td></tr>
1878<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel which transposes the elements of a matrix. <a href="classarm__compute_1_1_n_e_transpose_kernel.xhtml#details">More...</a><br /></td></tr>
1879<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1880<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_warp_affine.xhtml">NEWarpAffine</a></td></tr>
1881<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_warp_affine_kernel.xhtml">NEWarpAffineKernel</a>. <a href="classarm__compute_1_1_n_e_warp_affine.xhtml#details">More...</a><br /></td></tr>
1882<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1883<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_warp_affine_kernel.xhtml">NEWarpAffineKernel</a></td></tr>
1884<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template interface for the kernel to compute warp affine. <a href="classarm__compute_1_1_n_e_warp_affine_kernel.xhtml#details">More...</a><br /></td></tr>
1885<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1886<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_warp_perspective.xhtml">NEWarpPerspective</a></td></tr>
1887<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run <a class="el" href="classarm__compute_1_1_n_e_warp_perspective_kernel.xhtml">NEWarpPerspectiveKernel</a>. <a href="classarm__compute_1_1_n_e_warp_perspective.xhtml#details">More...</a><br /></td></tr>
1888<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1889<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_warp_perspective_kernel.xhtml">NEWarpPerspectiveKernel</a></td></tr>
1890<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template interface for the kernel to compute warp perspective. <a href="classarm__compute_1_1_n_e_warp_perspective_kernel.xhtml#details">More...</a><br /></td></tr>
1891<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1892<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_weights_reshape_kernel.xhtml">NEWeightsReshapeKernel</a></td></tr>
1893<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform reshaping on the weights used by convolution and locally connected layer. <a href="classarm__compute_1_1_n_e_weights_reshape_kernel.xhtml#details">More...</a><br /></td></tr>
1894<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1895<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_winograd_layer.xhtml">NEWinogradLayer</a></td></tr>
1896<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a convolution layer. <a href="classarm__compute_1_1_n_e_winograd_layer.xhtml#details">More...</a><br /></td></tr>
1897<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001898<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_winograd_layer_batched_g_e_m_m_kernel.xhtml">NEWinogradLayerBatchedGEMMKernel</a></td></tr>
1899<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1900<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_winograd_layer_transform_input_kernel.xhtml">NEWinogradLayerTransformInputKernel</a></td></tr>
1901<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1902<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_winograd_layer_transform_output_kernel.xhtml">NEWinogradLayerTransformOutputKernel</a></td></tr>
1903<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1904<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_n_e_winograd_layer_transform_weights_kernel.xhtml">NEWinogradLayerTransformWeightsKernel</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001905<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1906<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a></td></tr>
1907<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalization Layer Information class. <a href="classarm__compute_1_1_normalization_layer_info.xhtml#details">More...</a><br /></td></tr>
1908<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1909<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_offset_lifetime_manager.xhtml">OffsetLifetimeManager</a></td></tr>
1910<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concrete class that tracks the lifetime of registered tensors and calculates the systems memory requirements in terms of a single blob and a list of offsets. <a href="classarm__compute_1_1_offset_lifetime_manager.xhtml#details">More...</a><br /></td></tr>
1911<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1912<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_offset_memory_pool.xhtml">OffsetMemoryPool</a></td></tr>
1913<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Offset based memory pool. <a href="classarm__compute_1_1_offset_memory_pool.xhtml#details">More...</a><br /></td></tr>
1914<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1915<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_o_m_p_scheduler.xhtml">OMPScheduler</a></td></tr>
1916<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pool of threads to automatically split a kernel's execution among several threads. <a href="classarm__compute_1_1_o_m_p_scheduler.xhtml#details">More...</a><br /></td></tr>
1917<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1918<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a></td></tr>
1919<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Padding and stride information class. <a href="classarm__compute_1_1_pad_stride_info.xhtml#details">More...</a><br /></td></tr>
1920<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1921<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_pixel_value.xhtml">PixelValue</a></td></tr>
1922<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class describing the value of a pixel for any image format. <a href="classarm__compute_1_1_pixel_value.xhtml#details">More...</a><br /></td></tr>
1923<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1924<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a></td></tr>
1925<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pooling Layer Information class. <a href="classarm__compute_1_1_pooling_layer_info.xhtml#details">More...</a><br /></td></tr>
1926<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1927<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_pool_manager.xhtml">PoolManager</a></td></tr>
1928<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> pool manager. <a href="classarm__compute_1_1_pool_manager.xhtml#details">More...</a><br /></td></tr>
1929<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1930<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_program.xhtml">Program</a></td></tr>
1931<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_program.xhtml" title="Program class. ">Program</a> class. <a href="classarm__compute_1_1_program.xhtml#details">More...</a><br /></td></tr>
1932<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1933<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_pyramid.xhtml">Pyramid</a></td></tr>
1934<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the pyramid interface. <a href="classarm__compute_1_1_pyramid.xhtml#details">More...</a><br /></td></tr>
1935<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1936<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_pyramid_info.xhtml">PyramidInfo</a></td></tr>
1937<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a>'s metadata. <a href="classarm__compute_1_1_pyramid_info.xhtml#details">More...</a><br /></td></tr>
1938<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1939<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a></td></tr>
1940<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quantization settings (used for QASYMM8 data type) <a href="structarm__compute_1_1_quantization_info.xhtml#details">More...</a><br /></td></tr>
1941<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1942<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_rectangle.xhtml">Rectangle</a></td></tr>
1943<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structarm__compute_1_1_rectangle.xhtml" title="Rectangle type. ">Rectangle</a> type. <a href="structarm__compute_1_1_rectangle.xhtml#details">More...</a><br /></td></tr>
1944<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1945<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_r_o_i.xhtml">ROI</a></td></tr>
1946<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Region of interest. <a href="structarm__compute_1_1_r_o_i.xhtml#details">More...</a><br /></td></tr>
1947<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1948<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_r_o_i_pooling_layer_info.xhtml">ROIPoolingLayerInfo</a></td></tr>
1949<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structarm__compute_1_1_r_o_i.xhtml" title="Region of interest. ">ROI</a> Pooling Layer Information class. <a href="classarm__compute_1_1_r_o_i_pooling_layer_info.xhtml#details">More...</a><br /></td></tr>
1950<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1951<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_scheduler.xhtml">Scheduler</a></td></tr>
1952<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configurable scheduler which supports multiple multithreading APIs and choosing between different schedulers at runtime. <a href="classarm__compute_1_1_scheduler.xhtml#details">More...</a><br /></td></tr>
1953<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01001954<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_semaphore.xhtml">Semaphore</a></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001955<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Semamphore class. <a href="classarm__compute_1_1_semaphore.xhtml#details">More...</a><br /></td></tr>
1956<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1957<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_single_thread_scheduler.xhtml">SingleThreadScheduler</a></td></tr>
1958<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pool of threads to automatically split a kernel's execution among several threads. <a href="classarm__compute_1_1_single_thread_scheduler.xhtml#details">More...</a><br /></td></tr>
1959<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1960<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a></td></tr>
1961<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class for specifying the size of an image or rectangle. <a href="classarm__compute_1_1_size2_d.xhtml#details">More...</a><br /></td></tr>
1962<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1963<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_status.xhtml">Status</a></td></tr>
1964<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> class. <a href="classarm__compute_1_1_status.xhtml#details">More...</a><br /></td></tr>
1965<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1966<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a></td></tr>
1967<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to describe a number of elements in each dimension. <a href="classarm__compute_1_1_steps.xhtml#details">More...</a><br /></td></tr>
1968<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1969<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a></td></tr>
1970<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1_strides.xhtml" title="Strides of an item in bytes. ">Strides</a> of an item in bytes. <a href="classarm__compute_1_1_strides.xhtml#details">More...</a><br /></td></tr>
1971<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1972<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_sub_tensor.xhtml">SubTensor</a></td></tr>
1973<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the sub-tensor interface. <a href="classarm__compute_1_1_sub_tensor.xhtml#details">More...</a><br /></td></tr>
1974<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1975<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml">SubTensorInfo</a></td></tr>
1976<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the sub tensor's metadata. <a href="classarm__compute_1_1_sub_tensor_info.xhtml#details">More...</a><br /></td></tr>
1977<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1978<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_tensor.xhtml">Tensor</a></td></tr>
1979<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of the tensor interface. <a href="classarm__compute_1_1_tensor.xhtml#details">More...</a><br /></td></tr>
1980<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1981<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_tensor_allocator.xhtml">TensorAllocator</a></td></tr>
1982<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic implementation of a CPU memory tensor allocator. <a href="classarm__compute_1_1_tensor_allocator.xhtml#details">More...</a><br /></td></tr>
1983<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1984<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a></td></tr>
1985<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the tensor's metadata. <a href="classarm__compute_1_1_tensor_info.xhtml#details">More...</a><br /></td></tr>
1986<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1987<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a></td></tr>
1988<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shape of a tensor. <a href="classarm__compute_1_1_tensor_shape.xhtml#details">More...</a><br /></td></tr>
1989<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1990<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_thread_info.xhtml">ThreadInfo</a></td></tr>
1991<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1992<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a></td></tr>
1993<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1994<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_weights_info.xhtml">WeightsInfo</a></td></tr>
1995<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convolution Layer Weights Information class. <a href="classarm__compute_1_1_weights_info.xhtml#details">More...</a><br /></td></tr>
1996<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1997<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a></td></tr>
1998<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describe a multidimensional execution window. <a href="classarm__compute_1_1_window.xhtml#details">More...</a><br /></td></tr>
1999<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002000</table><table class="memberdecls">
2001<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
2002Typedefs</h2></td></tr>
2003<tr class="memitem:adb969f0e554bf563f2fa671399d59280"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adb969f0e554bf563f2fa671399d59280">ICLKeyPointArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> &gt;</td></tr>
2004<tr class="separator:adb969f0e554bf563f2fa671399d59280"><td class="memSeparator" colspan="2">&#160;</td></tr>
2005<tr class="memitem:adf4063963bf3a4b07a5d0cc840da9ee2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adf4063963bf3a4b07a5d0cc840da9ee2">ICLCoordinates2DArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; <a class="el" href="structarm__compute_1_1_coordinates2_d.xhtml">Coordinates2D</a> &gt;</td></tr>
2006<tr class="separator:adf4063963bf3a4b07a5d0cc840da9ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
2007<tr class="memitem:a4cc908807b0a45ccc6ce7ba340ae2259"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4cc908807b0a45ccc6ce7ba340ae2259">ICLDetectionWindowArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; <a class="el" href="structarm__compute_1_1_detection_window.xhtml">DetectionWindow</a> &gt;</td></tr>
2008<tr class="separator:a4cc908807b0a45ccc6ce7ba340ae2259"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002009<tr class="memitem:a64e11fcdd0f4a3f7d832495b7053fbe9"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a64e11fcdd0f4a3f7d832495b7053fbe9">ICLROIArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; <a class="el" href="structarm__compute_1_1_r_o_i.xhtml">ROI</a> &gt;</td></tr>
2010<tr class="separator:a64e11fcdd0f4a3f7d832495b7053fbe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002011<tr class="memitem:a68396eee600b3d23bf7f95a802e65dff"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a68396eee600b3d23bf7f95a802e65dff">ICLSize2DArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; <a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a> &gt;</td></tr>
2012<tr class="separator:a68396eee600b3d23bf7f95a802e65dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
2013<tr class="memitem:a72251c7a73b3c057ffca9f32ee3e19ea"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a72251c7a73b3c057ffca9f32ee3e19ea">ICLUInt8Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; cl_uchar &gt;</td></tr>
2014<tr class="separator:a72251c7a73b3c057ffca9f32ee3e19ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
2015<tr class="memitem:aed5c7222c31a34327f00de37d8c4f4fc"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aed5c7222c31a34327f00de37d8c4f4fc">ICLUInt16Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; cl_ushort &gt;</td></tr>
2016<tr class="separator:aed5c7222c31a34327f00de37d8c4f4fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
2017<tr class="memitem:a6b5f839e8d27c6351e8d58812dd46c97"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6b5f839e8d27c6351e8d58812dd46c97">ICLUInt32Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; cl_uint &gt;</td></tr>
2018<tr class="separator:a6b5f839e8d27c6351e8d58812dd46c97"><td class="memSeparator" colspan="2">&#160;</td></tr>
2019<tr class="memitem:a67328fa21e30aecd0c27d6d2e63a2b9c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a67328fa21e30aecd0c27d6d2e63a2b9c">ICLInt16Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; cl_short &gt;</td></tr>
2020<tr class="separator:a67328fa21e30aecd0c27d6d2e63a2b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2021<tr class="memitem:ab95380ecf1c0253f6c785c0f59194066"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab95380ecf1c0253f6c785c0f59194066">ICLInt32Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; cl_int &gt;</td></tr>
2022<tr class="separator:ab95380ecf1c0253f6c785c0f59194066"><td class="memSeparator" colspan="2">&#160;</td></tr>
2023<tr class="memitem:a631bac7c033a0d341c631870f9755217"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a631bac7c033a0d341c631870f9755217">ICLFloatArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; cl_float &gt;</td></tr>
2024<tr class="separator:a631bac7c033a0d341c631870f9755217"><td class="memSeparator" colspan="2">&#160;</td></tr>
2025<tr class="memitem:aa80145f30ddae0c2ccbcaa910e3e71dd"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa80145f30ddae0c2ccbcaa910e3e71dd">ICLImage</a> = <a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a></td></tr>
2026<tr class="separator:aa80145f30ddae0c2ccbcaa910e3e71dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
2027<tr class="memitem:a4751499f1c526c7285e7e946c2e84541"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4751499f1c526c7285e7e946c2e84541">CLConvolution3x3Kernel</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_kernel.xhtml">CLConvolutionKernel</a>&lt; 3 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002028<tr class="memdesc:a4751499f1c526c7285e7e946c2e84541"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a 3x3 convolution to a tensor. <a href="#a4751499f1c526c7285e7e946c2e84541">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002029<tr class="separator:a4751499f1c526c7285e7e946c2e84541"><td class="memSeparator" colspan="2">&#160;</td></tr>
2030<tr class="memitem:ac4cfbdf439d7bf5d420546298bd5ca0d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac4cfbdf439d7bf5d420546298bd5ca0d">CLConvolution5x5Kernel</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_kernel.xhtml">CLConvolutionKernel</a>&lt; 5 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002031<tr class="memdesc:ac4cfbdf439d7bf5d420546298bd5ca0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a 5x5 convolution to a tensor. <a href="#ac4cfbdf439d7bf5d420546298bd5ca0d">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002032<tr class="separator:ac4cfbdf439d7bf5d420546298bd5ca0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2033<tr class="memitem:a99a54c937a254c96cd1a29a96ffa7dcf"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a99a54c937a254c96cd1a29a96ffa7dcf">CLConvolution7x7Kernel</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_kernel.xhtml">CLConvolutionKernel</a>&lt; 7 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002034<tr class="memdesc:a99a54c937a254c96cd1a29a96ffa7dcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a 7x7 convolution to a tensor. <a href="#a99a54c937a254c96cd1a29a96ffa7dcf">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002035<tr class="separator:a99a54c937a254c96cd1a29a96ffa7dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
2036<tr class="memitem:a908439cd5cf8253865d5c70a413fd607"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a908439cd5cf8253865d5c70a413fd607">CLConvolution9x9Kernel</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_kernel.xhtml">CLConvolutionKernel</a>&lt; 9 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002037<tr class="memdesc:a908439cd5cf8253865d5c70a413fd607"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a 9x9 convolution to a tensor. <a href="#a908439cd5cf8253865d5c70a413fd607">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002038<tr class="separator:a908439cd5cf8253865d5c70a413fd607"><td class="memSeparator" colspan="2">&#160;</td></tr>
2039<tr class="memitem:ac72d613f7270604dbcad2553c278b16c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac72d613f7270604dbcad2553c278b16c">CLSeparableConvolution5x5HorKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_hor_kernel.xhtml">CLSeparableConvolutionHorKernel</a>&lt; 5 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002040<tr class="memdesc:ac72d613f7270604dbcad2553c278b16c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a horizontal pass of 5x5 convolution to a tensor. <a href="#ac72d613f7270604dbcad2553c278b16c">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002041<tr class="separator:ac72d613f7270604dbcad2553c278b16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2042<tr class="memitem:aab26624bf4b326f8145b2909a5042004"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aab26624bf4b326f8145b2909a5042004">CLSeparableConvolution7x7HorKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_hor_kernel.xhtml">CLSeparableConvolutionHorKernel</a>&lt; 7 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002043<tr class="memdesc:aab26624bf4b326f8145b2909a5042004"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a horizontal pass of 7x7 convolution to a tensor. <a href="#aab26624bf4b326f8145b2909a5042004">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002044<tr class="separator:aab26624bf4b326f8145b2909a5042004"><td class="memSeparator" colspan="2">&#160;</td></tr>
2045<tr class="memitem:a9f34ccad344bc43d25e8be2b828853aa"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9f34ccad344bc43d25e8be2b828853aa">CLSeparableConvolution9x9HorKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_hor_kernel.xhtml">CLSeparableConvolutionHorKernel</a>&lt; 9 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002046<tr class="memdesc:a9f34ccad344bc43d25e8be2b828853aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a horizontal pass of 9x9 convolution to a tensor. <a href="#a9f34ccad344bc43d25e8be2b828853aa">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002047<tr class="separator:a9f34ccad344bc43d25e8be2b828853aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
2048<tr class="memitem:ac7295b0d8d71be75033238ad7fbba38c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac7295b0d8d71be75033238ad7fbba38c">CLSeparableConvolution5x5VertKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_vert_kernel.xhtml">CLSeparableConvolutionVertKernel</a>&lt; 5 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002049<tr class="memdesc:ac7295b0d8d71be75033238ad7fbba38c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a vertical pass of 5x5 convolution to a tensor. <a href="#ac7295b0d8d71be75033238ad7fbba38c">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002050<tr class="separator:ac7295b0d8d71be75033238ad7fbba38c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2051<tr class="memitem:a0ffdf01e236016ce8d366a69875d1375"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0ffdf01e236016ce8d366a69875d1375">CLSeparableConvolution7x7VertKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_vert_kernel.xhtml">CLSeparableConvolutionVertKernel</a>&lt; 7 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002052<tr class="memdesc:a0ffdf01e236016ce8d366a69875d1375"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a vertical pass of 7x7 convolution to a tensor. <a href="#a0ffdf01e236016ce8d366a69875d1375">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002053<tr class="separator:a0ffdf01e236016ce8d366a69875d1375"><td class="memSeparator" colspan="2">&#160;</td></tr>
2054<tr class="memitem:a6d08e1e881bf611c1e1b9e2bb8810d19"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6d08e1e881bf611c1e1b9e2bb8810d19">CLSeparableConvolution9x9VertKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_vert_kernel.xhtml">CLSeparableConvolutionVertKernel</a>&lt; 9 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002055<tr class="memdesc:a6d08e1e881bf611c1e1b9e2bb8810d19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applies a vertical pass of 9x9 convolution to a tensor. <a href="#a6d08e1e881bf611c1e1b9e2bb8810d19">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002056<tr class="separator:a6d08e1e881bf611c1e1b9e2bb8810d19"><td class="memSeparator" colspan="2">&#160;</td></tr>
2057<tr class="memitem:a569a32a7a853d4708fd4f4840c88a157"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a569a32a7a853d4708fd4f4840c88a157">ICLLKInternalKeypointArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; <a class="el" href="structarm__compute_1_1_c_l_l_k_internal_keypoint.xhtml">CLLKInternalKeypoint</a> &gt;</td></tr>
2058<tr class="separator:a569a32a7a853d4708fd4f4840c88a157"><td class="memSeparator" colspan="2">&#160;</td></tr>
2059<tr class="memitem:a05d88c40a53babe38cb2cb5841c4a0ad"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a05d88c40a53babe38cb2cb5841c4a0ad">ICLCoefficientTableArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; <a class="el" href="structarm__compute_1_1_c_l_coefficient_table.xhtml">CLCoefficientTable</a> &gt;</td></tr>
2060<tr class="separator:a05d88c40a53babe38cb2cb5841c4a0ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
2061<tr class="memitem:a0339a19c93dde6754834a7d4ec7dab73"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0339a19c93dde6754834a7d4ec7dab73">ICLOldValArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; <a class="el" href="structarm__compute_1_1_c_l_old_value.xhtml">CLOldValue</a> &gt;</td></tr>
2062<tr class="separator:a0339a19c93dde6754834a7d4ec7dab73"><td class="memSeparator" colspan="2">&#160;</td></tr>
2063<tr class="memitem:ac20902ac1ef01783c8a8d71a9bdf1100"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> = <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a></td></tr>
2064<tr class="separator:ac20902ac1ef01783c8a8d71a9bdf1100"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002065<tr class="memitem:a4c3f681c30c9398c45bc3cd5dc4f038a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> = int8_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002066<tr class="memdesc:a4c3f681c30c9398c45bc3cd5dc4f038a"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar value <a href="#a4c3f681c30c9398c45bc3cd5dc4f038a">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002067<tr class="separator:a4c3f681c30c9398c45bc3cd5dc4f038a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2068<tr class="memitem:a1521eea74b97de8f2df9304e44179400"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> = int16_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002069<tr class="memdesc:a1521eea74b97de8f2df9304e44179400"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar value <a href="#a1521eea74b97de8f2df9304e44179400">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002070<tr class="separator:a1521eea74b97de8f2df9304e44179400"><td class="memSeparator" colspan="2">&#160;</td></tr>
2071<tr class="memitem:aa06c95f9976f3729316d689b4419089f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> = int32_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002072<tr class="memdesc:aa06c95f9976f3729316d689b4419089f"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit fixed point scalar value <a href="#aa06c95f9976f3729316d689b4419089f">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002073<tr class="separator:aa06c95f9976f3729316d689b4419089f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002074<tr class="memitem:adc3be0bc3741b081217b2609abcf0333"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adc3be0bc3741b081217b2609abcf0333">qint64_t</a> = int64_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002075<tr class="memdesc:adc3be0bc3741b081217b2609abcf0333"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit fixed point scalar value <a href="#adc3be0bc3741b081217b2609abcf0333">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002076<tr class="separator:adc3be0bc3741b081217b2609abcf0333"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002077<tr class="memitem:a39070701484fa98eaa18cfcdb6aeb175"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a39070701484fa98eaa18cfcdb6aeb175">IGCImage</a> = <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a></td></tr>
2078<tr class="separator:a39070701484fa98eaa18cfcdb6aeb175"><td class="memSeparator" colspan="2">&#160;</td></tr>
2079<tr class="memitem:a10f3af894ca8b0479a5e6bc296083314"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a10f3af894ca8b0479a5e6bc296083314">GCDirectConvolutionLayer1x1Kernel</a> = <a class="el" href="classarm__compute_1_1_g_c_direct_convolution_layer_kernel.xhtml">GCDirectConvolutionLayerKernel</a>&lt; 1 &gt;</td></tr>
2080<tr class="separator:a10f3af894ca8b0479a5e6bc296083314"><td class="memSeparator" colspan="2">&#160;</td></tr>
2081<tr class="memitem:a35ccf8834da8b67bfb9c61fbc5e5f1e6"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a35ccf8834da8b67bfb9c61fbc5e5f1e6">GCDirectConvolutionLayer3x3Kernel</a> = <a class="el" href="classarm__compute_1_1_g_c_direct_convolution_layer_kernel.xhtml">GCDirectConvolutionLayerKernel</a>&lt; 3 &gt;</td></tr>
2082<tr class="separator:a35ccf8834da8b67bfb9c61fbc5e5f1e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2083<tr class="memitem:a227e525a4d0a4da25040cfdf8a3cf06b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a227e525a4d0a4da25040cfdf8a3cf06b">GCDirectConvolutionLayer5x5Kernel</a> = <a class="el" href="classarm__compute_1_1_g_c_direct_convolution_layer_kernel.xhtml">GCDirectConvolutionLayerKernel</a>&lt; 5 &gt;</td></tr>
2084<tr class="separator:a227e525a4d0a4da25040cfdf8a3cf06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002085<tr class="memitem:ab56a557a5fdf97819f23c35c24f0b0d2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab56a557a5fdf97819f23c35c24f0b0d2">IKeyPointArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> &gt;</td></tr>
2086<tr class="separator:ab56a557a5fdf97819f23c35c24f0b0d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
2087<tr class="memitem:aac9efd49d3bbbd53779713e5fb37de62"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aac9efd49d3bbbd53779713e5fb37de62">ICoordinates2DArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; <a class="el" href="structarm__compute_1_1_coordinates2_d.xhtml">Coordinates2D</a> &gt;</td></tr>
2088<tr class="separator:aac9efd49d3bbbd53779713e5fb37de62"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002089<tr class="memitem:ae273be451a4d6de5fa255cb8fb09a64b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae273be451a4d6de5fa255cb8fb09a64b">IROIArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; <a class="el" href="structarm__compute_1_1_r_o_i.xhtml">ROI</a> &gt;</td></tr>
2090<tr class="separator:ae273be451a4d6de5fa255cb8fb09a64b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002091<tr class="memitem:a52b3b9de6092ae37321159c4c2f1bf40"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a52b3b9de6092ae37321159c4c2f1bf40">IDetectionWindowArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; <a class="el" href="structarm__compute_1_1_detection_window.xhtml">DetectionWindow</a> &gt;</td></tr>
2092<tr class="separator:a52b3b9de6092ae37321159c4c2f1bf40"><td class="memSeparator" colspan="2">&#160;</td></tr>
2093<tr class="memitem:a32e4b9083329486a06960006af89a84c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a32e4b9083329486a06960006af89a84c">ISize2DArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; <a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a> &gt;</td></tr>
2094<tr class="separator:a32e4b9083329486a06960006af89a84c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2095<tr class="memitem:a276401fd5651e75431d3e1cc90601caa"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a276401fd5651e75431d3e1cc90601caa">IUInt8Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; uint8_t &gt;</td></tr>
2096<tr class="separator:a276401fd5651e75431d3e1cc90601caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
2097<tr class="memitem:a1ffe8af91a934c926d102938db8d3ce1"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1ffe8af91a934c926d102938db8d3ce1">IUInt16Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; uint16_t &gt;</td></tr>
2098<tr class="separator:a1ffe8af91a934c926d102938db8d3ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
2099<tr class="memitem:ac9b2a6fa6e146437bfc8c0bee96e4760"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac9b2a6fa6e146437bfc8c0bee96e4760">IUInt32Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; uint32_t &gt;</td></tr>
2100<tr class="separator:ac9b2a6fa6e146437bfc8c0bee96e4760"><td class="memSeparator" colspan="2">&#160;</td></tr>
2101<tr class="memitem:a1dd5e04cea002eae658fa2a899848ad7"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1dd5e04cea002eae658fa2a899848ad7">IInt16Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; int16_t &gt;</td></tr>
2102<tr class="separator:a1dd5e04cea002eae658fa2a899848ad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
2103<tr class="memitem:a51fdf34dfc5c60b6f4f455f0a9cac457"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a51fdf34dfc5c60b6f4f455f0a9cac457">IInt32Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; int32_t &gt;</td></tr>
2104<tr class="separator:a51fdf34dfc5c60b6f4f455f0a9cac457"><td class="memSeparator" colspan="2">&#160;</td></tr>
2105<tr class="memitem:a8a82a1928159e86b0778c3c14e8842be"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8a82a1928159e86b0778c3c14e8842be">IFloatArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; float &gt;</td></tr>
2106<tr class="separator:a8a82a1928159e86b0778c3c14e8842be"><td class="memSeparator" colspan="2">&#160;</td></tr>
2107<tr class="memitem:a9f3ed96e009111cfbe53d3f77c712390"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9f3ed96e009111cfbe53d3f77c712390">INEKernel</a> = <a class="el" href="classarm__compute_1_1_i_c_p_p_kernel.xhtml">ICPPKernel</a></td></tr>
2108<tr class="separator:a9f3ed96e009111cfbe53d3f77c712390"><td class="memSeparator" colspan="2">&#160;</td></tr>
2109<tr class="memitem:a4aad0c49ce3d7cf4693830398f190250"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4aad0c49ce3d7cf4693830398f190250">INESimpleKernel</a> = <a class="el" href="classarm__compute_1_1_i_c_p_p_simple_kernel.xhtml">ICPPSimpleKernel</a></td></tr>
2110<tr class="separator:a4aad0c49ce3d7cf4693830398f190250"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002111<tr class="memitem:aff99c045b07329b332b1cb97a2dd1518"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aff99c045b07329b332b1cb97a2dd1518">NEAccumulateWeightedFP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_accumulate_weighted_kernel.xhtml">NEAccumulateWeightedKernel</a></td></tr>
2112<tr class="separator:aff99c045b07329b332b1cb97a2dd1518"><td class="memSeparator" colspan="2">&#160;</td></tr>
2113<tr class="memitem:a96f7f6f98dc47e0dc3b928bf87397ebf"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a96f7f6f98dc47e0dc3b928bf87397ebf">NEBox3x3FP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_box3x3_kernel.xhtml">NEBox3x3Kernel</a></td></tr>
2114<tr class="separator:a96f7f6f98dc47e0dc3b928bf87397ebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
2115<tr class="memitem:a593fd1da692f305db6ca306cb8e0158e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a593fd1da692f305db6ca306cb8e0158e">NEGradientFP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_gradient_kernel.xhtml">NEGradientKernel</a></td></tr>
2116<tr class="separator:a593fd1da692f305db6ca306cb8e0158e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002117<tr class="memitem:acf81639b3d33b5da654ef088e4d10520"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#acf81639b3d33b5da654ef088e4d10520">NEConvolution3x3Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a>&lt; 3 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002118<tr class="memdesc:acf81639b3d33b5da654ef088e4d10520"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 3x3 convolution to a tensor. <a href="#acf81639b3d33b5da654ef088e4d10520">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002119<tr class="separator:acf81639b3d33b5da654ef088e4d10520"><td class="memSeparator" colspan="2">&#160;</td></tr>
2120<tr class="memitem:a21898b2d2e31ab9af8933c66ff82c8c6"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a21898b2d2e31ab9af8933c66ff82c8c6">NEConvolution5x5Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a>&lt; 5 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002121<tr class="memdesc:a21898b2d2e31ab9af8933c66ff82c8c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 5x5 convolution to a tensor. <a href="#a21898b2d2e31ab9af8933c66ff82c8c6">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002122<tr class="separator:a21898b2d2e31ab9af8933c66ff82c8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2123<tr class="memitem:ae46cbbe03d31c6c8e7eba7b58999842d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae46cbbe03d31c6c8e7eba7b58999842d">NEConvolution7x7Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a>&lt; 7 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002124<tr class="memdesc:ae46cbbe03d31c6c8e7eba7b58999842d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 7x7 convolution to a tensor. <a href="#ae46cbbe03d31c6c8e7eba7b58999842d">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002125<tr class="separator:ae46cbbe03d31c6c8e7eba7b58999842d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2126<tr class="memitem:a1025306f820a9e76df7e5891caacff7b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1025306f820a9e76df7e5891caacff7b">NEConvolution9x9Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a>&lt; 9 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002127<tr class="memdesc:a1025306f820a9e76df7e5891caacff7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 9x9 convolution to a tensor. <a href="#a1025306f820a9e76df7e5891caacff7b">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002128<tr class="separator:a1025306f820a9e76df7e5891caacff7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2129<tr class="memitem:ac78a7593874c21cff86478c1ba6df27b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac78a7593874c21cff86478c1ba6df27b">NESeparableConvolution5x5HorKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_hor_kernel.xhtml">NESeparableConvolutionHorKernel</a>&lt; 5 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002130<tr class="memdesc:ac78a7593874c21cff86478c1ba6df27b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 5x1 horizontal convolution to a tensor. <a href="#ac78a7593874c21cff86478c1ba6df27b">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002131<tr class="separator:ac78a7593874c21cff86478c1ba6df27b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2132<tr class="memitem:aca4adbcd292c26b0e392c59875c1e926"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aca4adbcd292c26b0e392c59875c1e926">NESeparableConvolution7x7HorKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_hor_kernel.xhtml">NESeparableConvolutionHorKernel</a>&lt; 7 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002133<tr class="memdesc:aca4adbcd292c26b0e392c59875c1e926"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 7x1 horizontal convolution to a tensor. <a href="#aca4adbcd292c26b0e392c59875c1e926">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002134<tr class="separator:aca4adbcd292c26b0e392c59875c1e926"><td class="memSeparator" colspan="2">&#160;</td></tr>
2135<tr class="memitem:a4ba5f6b7cd6b70b75e42149f3bc08f38"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4ba5f6b7cd6b70b75e42149f3bc08f38">NESeparableConvolution9x9HorKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_hor_kernel.xhtml">NESeparableConvolutionHorKernel</a>&lt; 9 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002136<tr class="memdesc:a4ba5f6b7cd6b70b75e42149f3bc08f38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 9x1 horizontal convolution to a tensor. <a href="#a4ba5f6b7cd6b70b75e42149f3bc08f38">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002137<tr class="separator:a4ba5f6b7cd6b70b75e42149f3bc08f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
2138<tr class="memitem:ae4152320657df499674ed64b16c28a7b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae4152320657df499674ed64b16c28a7b">NESeparableConvolution5x5VertKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_vert_kernel.xhtml">NESeparableConvolutionVertKernel</a>&lt; 5 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002139<tr class="memdesc:ae4152320657df499674ed64b16c28a7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 1x5 vertical convolution to a tensor. <a href="#ae4152320657df499674ed64b16c28a7b">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002140<tr class="separator:ae4152320657df499674ed64b16c28a7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2141<tr class="memitem:a0f952bd0821b506e18514a3f4dbc6c39"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0f952bd0821b506e18514a3f4dbc6c39">NESeparableConvolution7x7VertKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_vert_kernel.xhtml">NESeparableConvolutionVertKernel</a>&lt; 7 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002142<tr class="memdesc:a0f952bd0821b506e18514a3f4dbc6c39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 1x7 vertical convolution to a tensor. <a href="#a0f952bd0821b506e18514a3f4dbc6c39">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002143<tr class="separator:a0f952bd0821b506e18514a3f4dbc6c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
2144<tr class="memitem:a6310d21f215fface41df4cde725a62b9"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6310d21f215fface41df4cde725a62b9">NESeparableConvolution9x9VertKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_vert_kernel.xhtml">NESeparableConvolutionVertKernel</a>&lt; 9 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002145<tr class="memdesc:a6310d21f215fface41df4cde725a62b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the kernel which applied a 1x9 vertical convolution to a tensor. <a href="#a6310d21f215fface41df4cde725a62b9">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002146<tr class="separator:a6310d21f215fface41df4cde725a62b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002147<tr class="memitem:a0b6679b5d5c7f7dc527258181b04cf35"><td class="memTemplParams" colspan="2">template&lt;int32_t block_size&gt; </td></tr>
2148<tr class="memitem:a0b6679b5d5c7f7dc527258181b04cf35"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0b6679b5d5c7f7dc527258181b04cf35">NEHarrisScoreFP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_harris_score_kernel.xhtml">NEHarrisScoreKernel</a>&lt; block_size &gt;</td></tr>
2149<tr class="separator:a0b6679b5d5c7f7dc527258181b04cf35"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002150<tr class="memitem:a19699533eb1b662e46a10715f6086487"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a19699533eb1b662e46a10715f6086487">INELKInternalKeypointArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt; <a class="el" href="structarm__compute_1_1_n_e_l_k_internal_keypoint.xhtml">NELKInternalKeypoint</a> &gt;</td></tr>
2151<tr class="separator:a19699533eb1b662e46a10715f6086487"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002152<tr class="memitem:a0d4d47f41fae07bb3efb2d723b9965c3"><td class="memTemplParams" colspan="2">template&lt;MagnitudeType mag_type, PhaseType phase_type&gt; </td></tr>
2153<tr class="memitem:a0d4d47f41fae07bb3efb2d723b9965c3"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0d4d47f41fae07bb3efb2d723b9965c3">NEMagnitudePhaseFP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_magnitude_phase_kernel.xhtml">NEMagnitudePhaseKernel</a>&lt; mag_type, phase_type &gt;</td></tr>
2154<tr class="separator:a0d4d47f41fae07bb3efb2d723b9965c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
2155<tr class="memitem:a38cad49e6beaef76bc1ec5064c9e9dba"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a38cad49e6beaef76bc1ec5064c9e9dba">NENonMaximaSuppression3x3FP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_non_maxima_suppression3x3_kernel.xhtml">NENonMaximaSuppression3x3Kernel</a></td></tr>
2156<tr class="separator:a38cad49e6beaef76bc1ec5064c9e9dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
2157<tr class="memitem:a70ecc99f2f6b646579b58463dc026671"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a70ecc99f2f6b646579b58463dc026671">qasymm8x8_t</a> = uint8x8_t</td></tr>
2158<tr class="memdesc:a70ecc99f2f6b646579b58463dc026671"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit quantized asymmetric vector with 8 elements <a href="#a70ecc99f2f6b646579b58463dc026671">More...</a><br /></td></tr>
2159<tr class="separator:a70ecc99f2f6b646579b58463dc026671"><td class="memSeparator" colspan="2">&#160;</td></tr>
2160<tr class="memitem:a805d740633d70a5f0b019d72c517e67d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a805d740633d70a5f0b019d72c517e67d">qasymm8x8x2_t</a> = uint8x8x2_t</td></tr>
2161<tr class="memdesc:a805d740633d70a5f0b019d72c517e67d"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit quantized asymmetric vector with 16 elements <a href="#a805d740633d70a5f0b019d72c517e67d">More...</a><br /></td></tr>
2162<tr class="separator:a805d740633d70a5f0b019d72c517e67d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2163<tr class="memitem:a0c6e16826765130b480af53eda3635be"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0c6e16826765130b480af53eda3635be">qasymm8x8x3_t</a> = uint8x8x3_t</td></tr>
2164<tr class="memdesc:a0c6e16826765130b480af53eda3635be"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit quantized asymmetric vector with 24 elements <a href="#a0c6e16826765130b480af53eda3635be">More...</a><br /></td></tr>
2165<tr class="separator:a0c6e16826765130b480af53eda3635be"><td class="memSeparator" colspan="2">&#160;</td></tr>
2166<tr class="memitem:a41d3460ff424e2e21c629b3f27386a8b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a41d3460ff424e2e21c629b3f27386a8b">qasymm8x8x4_t</a> = uint8x8x4_t</td></tr>
2167<tr class="memdesc:a41d3460ff424e2e21c629b3f27386a8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit quantized asymmetric vector with 32 elements <a href="#a41d3460ff424e2e21c629b3f27386a8b">More...</a><br /></td></tr>
2168<tr class="separator:a41d3460ff424e2e21c629b3f27386a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2169<tr class="memitem:ac7e1832b8c58f07a98fc8d390b16ac27"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac7e1832b8c58f07a98fc8d390b16ac27">qasymm8x16_t</a> = uint8x16_t</td></tr>
2170<tr class="memdesc:ac7e1832b8c58f07a98fc8d390b16ac27"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit quantized asymmetric vector with 16 elements <a href="#ac7e1832b8c58f07a98fc8d390b16ac27">More...</a><br /></td></tr>
2171<tr class="separator:ac7e1832b8c58f07a98fc8d390b16ac27"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002172<tr class="memitem:a16a1bee14f1db073f75caa76dacf5078"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> = int8x8_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002173<tr class="memdesc:a16a1bee14f1db073f75caa76dacf5078"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector with 8 elements <a href="#a16a1bee14f1db073f75caa76dacf5078">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002174<tr class="separator:a16a1bee14f1db073f75caa76dacf5078"><td class="memSeparator" colspan="2">&#160;</td></tr>
2175<tr class="memitem:ace2375b626995858a398e1ffb3108f14"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ace2375b626995858a398e1ffb3108f14">qint8x8x2_t</a> = int8x8x2_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002176<tr class="memdesc:ace2375b626995858a398e1ffb3108f14"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector with 16 elements <a href="#ace2375b626995858a398e1ffb3108f14">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002177<tr class="separator:ace2375b626995858a398e1ffb3108f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
2178<tr class="memitem:a252c74fae9a9238ef7c23d306e670706"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a252c74fae9a9238ef7c23d306e670706">qint8x8x3_t</a> = int8x8x3_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002179<tr class="memdesc:a252c74fae9a9238ef7c23d306e670706"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector with 24 elements <a href="#a252c74fae9a9238ef7c23d306e670706">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002180<tr class="separator:a252c74fae9a9238ef7c23d306e670706"><td class="memSeparator" colspan="2">&#160;</td></tr>
2181<tr class="memitem:a01ae65c0a0736d4293e657a66bde1538"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a01ae65c0a0736d4293e657a66bde1538">qint8x8x4_t</a> = int8x8x4_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002182<tr class="memdesc:a01ae65c0a0736d4293e657a66bde1538"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector with 32 elements <a href="#a01ae65c0a0736d4293e657a66bde1538">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002183<tr class="separator:a01ae65c0a0736d4293e657a66bde1538"><td class="memSeparator" colspan="2">&#160;</td></tr>
2184<tr class="memitem:a5b99ed49abd6b7bf13dafdd17bcef855"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> = int8x16_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002185<tr class="memdesc:a5b99ed49abd6b7bf13dafdd17bcef855"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector with 16 elements <a href="#a5b99ed49abd6b7bf13dafdd17bcef855">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002186<tr class="separator:a5b99ed49abd6b7bf13dafdd17bcef855"><td class="memSeparator" colspan="2">&#160;</td></tr>
2187<tr class="memitem:a09108711e0c18d4e9811ea4597d573b1"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a09108711e0c18d4e9811ea4597d573b1">qint8x16x2_t</a> = int8x16x2_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002188<tr class="memdesc:a09108711e0c18d4e9811ea4597d573b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector with 32 elements <a href="#a09108711e0c18d4e9811ea4597d573b1">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002189<tr class="separator:a09108711e0c18d4e9811ea4597d573b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
2190<tr class="memitem:a7e175277ee7de6a5aeb5cd8916dbb346"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7e175277ee7de6a5aeb5cd8916dbb346">qint8x16x3_t</a> = int8x16x3_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002191<tr class="memdesc:a7e175277ee7de6a5aeb5cd8916dbb346"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector with 48 elements <a href="#a7e175277ee7de6a5aeb5cd8916dbb346">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002192<tr class="separator:a7e175277ee7de6a5aeb5cd8916dbb346"><td class="memSeparator" colspan="2">&#160;</td></tr>
2193<tr class="memitem:a3c4b33603ffff71e9f02c4be1a2f14d5"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3c4b33603ffff71e9f02c4be1a2f14d5">qint8x16x4_t</a> = int8x16x4_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002194<tr class="memdesc:a3c4b33603ffff71e9f02c4be1a2f14d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector with 64 elements <a href="#a3c4b33603ffff71e9f02c4be1a2f14d5">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002195<tr class="separator:a3c4b33603ffff71e9f02c4be1a2f14d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
2196<tr class="memitem:a82c56f0856f56d430393e6a00baee983"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> = int16x4_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002197<tr class="memdesc:a82c56f0856f56d430393e6a00baee983"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector with 4 elements <a href="#a82c56f0856f56d430393e6a00baee983">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002198<tr class="separator:a82c56f0856f56d430393e6a00baee983"><td class="memSeparator" colspan="2">&#160;</td></tr>
2199<tr class="memitem:a8d57e0f4f122442011213667168ef538"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8d57e0f4f122442011213667168ef538">qint16x4x2_t</a> = int16x4x2_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002200<tr class="memdesc:a8d57e0f4f122442011213667168ef538"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector with 8 elements <a href="#a8d57e0f4f122442011213667168ef538">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002201<tr class="separator:a8d57e0f4f122442011213667168ef538"><td class="memSeparator" colspan="2">&#160;</td></tr>
2202<tr class="memitem:a63f034ee885f20111e7f5d44e48e6d93"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a63f034ee885f20111e7f5d44e48e6d93">qint16x4x3_t</a> = int16x4x3_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002203<tr class="memdesc:a63f034ee885f20111e7f5d44e48e6d93"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector with 12 elements <a href="#a63f034ee885f20111e7f5d44e48e6d93">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002204<tr class="separator:a63f034ee885f20111e7f5d44e48e6d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
2205<tr class="memitem:a8525b18a2f34c3497bbfbd0e7c3a7875"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8525b18a2f34c3497bbfbd0e7c3a7875">qint16x4x4_t</a> = int16x4x4_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002206<tr class="memdesc:a8525b18a2f34c3497bbfbd0e7c3a7875"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector with 16 elements <a href="#a8525b18a2f34c3497bbfbd0e7c3a7875">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002207<tr class="separator:a8525b18a2f34c3497bbfbd0e7c3a7875"><td class="memSeparator" colspan="2">&#160;</td></tr>
2208<tr class="memitem:a4e15143176bfacdde8b06f4bb0b67427"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> = int16x8_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002209<tr class="memdesc:a4e15143176bfacdde8b06f4bb0b67427"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector with 8 elements <a href="#a4e15143176bfacdde8b06f4bb0b67427">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002210<tr class="separator:a4e15143176bfacdde8b06f4bb0b67427"><td class="memSeparator" colspan="2">&#160;</td></tr>
2211<tr class="memitem:a3c4099e91913f28017e1f57b8e5cbf9f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3c4099e91913f28017e1f57b8e5cbf9f">qint16x8x2_t</a> = int16x8x2_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002212<tr class="memdesc:a3c4099e91913f28017e1f57b8e5cbf9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector with 16 elements <a href="#a3c4099e91913f28017e1f57b8e5cbf9f">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002213<tr class="separator:a3c4099e91913f28017e1f57b8e5cbf9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2214<tr class="memitem:a65e109cf43ade8a2a3c57a1120b90b05"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a65e109cf43ade8a2a3c57a1120b90b05">qint16x8x3_t</a> = int16x8x3_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002215<tr class="memdesc:a65e109cf43ade8a2a3c57a1120b90b05"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector with 24 elements <a href="#a65e109cf43ade8a2a3c57a1120b90b05">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002216<tr class="separator:a65e109cf43ade8a2a3c57a1120b90b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
2217<tr class="memitem:a6bc1e8d62f1055278d8f05454faa422f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6bc1e8d62f1055278d8f05454faa422f">qint16x8x4_t</a> = int16x8x4_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002218<tr class="memdesc:a6bc1e8d62f1055278d8f05454faa422f"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector with 32 elements <a href="#a6bc1e8d62f1055278d8f05454faa422f">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002219<tr class="separator:a6bc1e8d62f1055278d8f05454faa422f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002220<tr class="memitem:addcffa8e8086154c0449c23e6b0dff83"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#addcffa8e8086154c0449c23e6b0dff83">qint32x2_t</a> = int32x2_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002221<tr class="memdesc:addcffa8e8086154c0449c23e6b0dff83"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit fixed point vector with 2 elements <a href="#addcffa8e8086154c0449c23e6b0dff83">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002222<tr class="separator:addcffa8e8086154c0449c23e6b0dff83"><td class="memSeparator" colspan="2">&#160;</td></tr>
2223<tr class="memitem:abd854c117af4dbd12633db2fbc01dd49"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> = int32x4_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002224<tr class="memdesc:abd854c117af4dbd12633db2fbc01dd49"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit fixed point vector with 4 elements <a href="#abd854c117af4dbd12633db2fbc01dd49">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002225<tr class="separator:abd854c117af4dbd12633db2fbc01dd49"><td class="memSeparator" colspan="2">&#160;</td></tr>
2226<tr class="memitem:a6ed7f8448a2a08a531e8202334e4dcdd"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6ed7f8448a2a08a531e8202334e4dcdd">qint32x4x2_t</a> = int32x4x2_t</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002227<tr class="memdesc:a6ed7f8448a2a08a531e8202334e4dcdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit fixed point vector with 8 elements <a href="#a6ed7f8448a2a08a531e8202334e4dcdd">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002228<tr class="separator:a6ed7f8448a2a08a531e8202334e4dcdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002229<tr class="memitem:ab8938bcb3ec0f5f8d93285eb3a28b701"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab8938bcb3ec0f5f8d93285eb3a28b701">qasymm8_t</a> = uint8_t</td></tr>
2230<tr class="memdesc:ab8938bcb3ec0f5f8d93285eb3a28b701"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit quantized asymmetric scalar value <a href="#ab8938bcb3ec0f5f8d93285eb3a28b701">More...</a><br /></td></tr>
2231<tr class="separator:ab8938bcb3ec0f5f8d93285eb3a28b701"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002232<tr class="memitem:a73e2825fd61d349c5ca2f5313e3c8ea1"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> = half_float::half</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002233<tr class="memdesc:a73e2825fd61d349c5ca2f5313e3c8ea1"><td class="mdescLeft">&#160;</td><td class="mdescRight">16-bit floating point type <a href="#a73e2825fd61d349c5ca2f5313e3c8ea1">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002234<tr class="separator:a73e2825fd61d349c5ca2f5313e3c8ea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002235<tr class="memitem:a33e65be485104e2e9e69fca551d6f492"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a33e65be485104e2e9e69fca551d6f492">PermutationVector</a> = <a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a></td></tr>
2236<tr class="memdesc:a33e65be485104e2e9e69fca551d6f492"><td class="mdescLeft">&#160;</td><td class="mdescRight">Permutation vector. <a href="#a33e65be485104e2e9e69fca551d6f492">More...</a><br /></td></tr>
2237<tr class="separator:a33e65be485104e2e9e69fca551d6f492"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002238<tr class="memitem:a4467b302fc9ec312c40580336ab783da"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4467b302fc9ec312c40580336ab783da">PaddingSize</a> = <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a></td></tr>
2239<tr class="separator:a4467b302fc9ec312c40580336ab783da"><td class="memSeparator" colspan="2">&#160;</td></tr>
2240<tr class="memitem:a2ab89a5d0959531aac270879cdd3ed78"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2ab89a5d0959531aac270879cdd3ed78">InternalKeypoint</a> = std::tuple&lt; float, float, float &gt;</td></tr>
2241<tr class="separator:a2ab89a5d0959531aac270879cdd3ed78"><td class="memSeparator" colspan="2">&#160;</td></tr>
2242<tr class="memitem:a8856eca9a83e16bb0cb5880e9c6c9fe7"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8856eca9a83e16bb0cb5880e9c6c9fe7">KeyPointArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> &gt;</td></tr>
2243<tr class="separator:a8856eca9a83e16bb0cb5880e9c6c9fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
2244<tr class="memitem:a327abccf7b43aa32d6a24319b986f3ab"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a327abccf7b43aa32d6a24319b986f3ab">Coordinates2DArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; <a class="el" href="structarm__compute_1_1_coordinates2_d.xhtml">Coordinates2D</a> &gt;</td></tr>
2245<tr class="separator:a327abccf7b43aa32d6a24319b986f3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
2246<tr class="memitem:a5fe01ab895629edd84a511b56657d79e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5fe01ab895629edd84a511b56657d79e">DetectionWindowArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; <a class="el" href="structarm__compute_1_1_detection_window.xhtml">DetectionWindow</a> &gt;</td></tr>
2247<tr class="separator:a5fe01ab895629edd84a511b56657d79e"><td class="memSeparator" colspan="2">&#160;</td></tr>
2248<tr class="memitem:abd445adaaca7913c9344c90dc8c76358"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abd445adaaca7913c9344c90dc8c76358">Size2DArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; <a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a> &gt;</td></tr>
2249<tr class="separator:abd445adaaca7913c9344c90dc8c76358"><td class="memSeparator" colspan="2">&#160;</td></tr>
2250<tr class="memitem:a9dbb5e00a3f397691eb782f03f65375c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9dbb5e00a3f397691eb782f03f65375c">UInt8Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; uint8_t &gt;</td></tr>
2251<tr class="separator:a9dbb5e00a3f397691eb782f03f65375c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2252<tr class="memitem:ab91cb2269b2e58ed2cb6bd2ca831d434"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab91cb2269b2e58ed2cb6bd2ca831d434">UInt16Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; uint16_t &gt;</td></tr>
2253<tr class="separator:ab91cb2269b2e58ed2cb6bd2ca831d434"><td class="memSeparator" colspan="2">&#160;</td></tr>
2254<tr class="memitem:acd6eb2619ccd5eee4963de3195785359"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#acd6eb2619ccd5eee4963de3195785359">UInt32Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; uint32_t &gt;</td></tr>
2255<tr class="separator:acd6eb2619ccd5eee4963de3195785359"><td class="memSeparator" colspan="2">&#160;</td></tr>
2256<tr class="memitem:a69c19b38cbee8fa6680513f6ff76bbb3"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a69c19b38cbee8fa6680513f6ff76bbb3">Int16Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; int16_t &gt;</td></tr>
2257<tr class="separator:a69c19b38cbee8fa6680513f6ff76bbb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
2258<tr class="memitem:a6af9862834629c287a81b16837b51e44"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6af9862834629c287a81b16837b51e44">Int32Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; int32_t &gt;</td></tr>
2259<tr class="separator:a6af9862834629c287a81b16837b51e44"><td class="memSeparator" colspan="2">&#160;</td></tr>
2260<tr class="memitem:a6e06029aa1b68c0cdeb80656cc9353fe"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6e06029aa1b68c0cdeb80656cc9353fe">FloatArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; float &gt;</td></tr>
2261<tr class="separator:a6e06029aa1b68c0cdeb80656cc9353fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
2262<tr class="memitem:a55e1c5ed17b7ee3762198a38eb50650a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a55e1c5ed17b7ee3762198a38eb50650a">CLKeyPointArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> &gt;</td></tr>
2263<tr class="separator:a55e1c5ed17b7ee3762198a38eb50650a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2264<tr class="memitem:a0fd5f0310a26faad00b905bac3792726"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0fd5f0310a26faad00b905bac3792726">CLCoordinates2DArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; <a class="el" href="structarm__compute_1_1_coordinates2_d.xhtml">Coordinates2D</a> &gt;</td></tr>
2265<tr class="separator:a0fd5f0310a26faad00b905bac3792726"><td class="memSeparator" colspan="2">&#160;</td></tr>
2266<tr class="memitem:ab8d2c7efb7643ce8f9e5446dbe1da0b4"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab8d2c7efb7643ce8f9e5446dbe1da0b4">CLDetectionWindowArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; <a class="el" href="structarm__compute_1_1_detection_window.xhtml">DetectionWindow</a> &gt;</td></tr>
2267<tr class="separator:ab8d2c7efb7643ce8f9e5446dbe1da0b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002268<tr class="memitem:a7d756aef16b9c22456bb7aca8fbb4f4c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7d756aef16b9c22456bb7aca8fbb4f4c">CLROIArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; <a class="el" href="structarm__compute_1_1_r_o_i.xhtml">ROI</a> &gt;</td></tr>
2269<tr class="separator:a7d756aef16b9c22456bb7aca8fbb4f4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002270<tr class="memitem:a3f9ab729931f4e4fa36ff1683186d988"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3f9ab729931f4e4fa36ff1683186d988">CLSize2DArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; <a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a> &gt;</td></tr>
2271<tr class="separator:a3f9ab729931f4e4fa36ff1683186d988"><td class="memSeparator" colspan="2">&#160;</td></tr>
2272<tr class="memitem:aa031694bb03711e09e25546ad2b643cc"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa031694bb03711e09e25546ad2b643cc">CLUInt8Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; cl_uchar &gt;</td></tr>
2273<tr class="separator:aa031694bb03711e09e25546ad2b643cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
2274<tr class="memitem:a7b4c4a79c73a3f85ba89aff03fddefa7"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7b4c4a79c73a3f85ba89aff03fddefa7">CLUInt16Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; cl_ushort &gt;</td></tr>
2275<tr class="separator:a7b4c4a79c73a3f85ba89aff03fddefa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
2276<tr class="memitem:a1d7d89b7e990055dc95ed37dfb24da48"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1d7d89b7e990055dc95ed37dfb24da48">CLUInt32Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; cl_uint &gt;</td></tr>
2277<tr class="separator:a1d7d89b7e990055dc95ed37dfb24da48"><td class="memSeparator" colspan="2">&#160;</td></tr>
2278<tr class="memitem:a5fb8cb339705102066c915d18f0701ac"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5fb8cb339705102066c915d18f0701ac">CLInt16Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; cl_short &gt;</td></tr>
2279<tr class="separator:a5fb8cb339705102066c915d18f0701ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
2280<tr class="memitem:a8a401a071524761c661a75969c951cf5"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8a401a071524761c661a75969c951cf5">CLInt32Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; cl_int &gt;</td></tr>
2281<tr class="separator:a8a401a071524761c661a75969c951cf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
2282<tr class="memitem:a193a4859b365f3ef4e0d73a1e6b12c85"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a193a4859b365f3ef4e0d73a1e6b12c85">CLFloatArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; cl_float &gt;</td></tr>
2283<tr class="separator:a193a4859b365f3ef4e0d73a1e6b12c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002284<tr class="memitem:ac87d48489667d7ff7fc4cc7d0d12c52e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac87d48489667d7ff7fc4cc7d0d12c52e">CLMemoryGroup</a> = <a class="el" href="classarm__compute_1_1_memory_group_base.xhtml">MemoryGroupBase</a>&lt; <a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> &gt;</td></tr>
2285<tr class="separator:ac87d48489667d7ff7fc4cc7d0d12c52e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002286<tr class="memitem:aae712f442eae2d56d17529ca6cb9cb77"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aae712f442eae2d56d17529ca6cb9cb77">CLImage</a> = <a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a></td></tr>
2287<tr class="separator:aae712f442eae2d56d17529ca6cb9cb77"><td class="memSeparator" colspan="2">&#160;</td></tr>
2288<tr class="memitem:a843447b81f09d837e90d44e6e6bd236d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a843447b81f09d837e90d44e6e6bd236d">CLConvolution5x5</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_square.xhtml">CLConvolutionSquare</a>&lt; 5 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002289<tr class="memdesc:a843447b81f09d837e90d44e6e6bd236d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run 5x5 convolution. <a href="#a843447b81f09d837e90d44e6e6bd236d">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002290<tr class="separator:a843447b81f09d837e90d44e6e6bd236d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2291<tr class="memitem:a1992a8362b7074e709394a5219d16e62"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1992a8362b7074e709394a5219d16e62">CLConvolution7x7</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_square.xhtml">CLConvolutionSquare</a>&lt; 7 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002292<tr class="memdesc:a1992a8362b7074e709394a5219d16e62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run 7x7 convolution. <a href="#a1992a8362b7074e709394a5219d16e62">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002293<tr class="separator:a1992a8362b7074e709394a5219d16e62"><td class="memSeparator" colspan="2">&#160;</td></tr>
2294<tr class="memitem:a587dee5d7f05d5e9c3b8704ae8927101"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a587dee5d7f05d5e9c3b8704ae8927101">CLConvolution9x9</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_square.xhtml">CLConvolutionSquare</a>&lt; 9 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002295<tr class="memdesc:a587dee5d7f05d5e9c3b8704ae8927101"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run 9x9 convolution. <a href="#a587dee5d7f05d5e9c3b8704ae8927101">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002296<tr class="separator:a587dee5d7f05d5e9c3b8704ae8927101"><td class="memSeparator" colspan="2">&#160;</td></tr>
2297<tr class="memitem:af87af588094f04e537df98eaf0426cb6"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af87af588094f04e537df98eaf0426cb6">ICLTensor</a> = <a class="el" href="namespacearm__compute.xhtml#aa80145f30ddae0c2ccbcaa910e3e71dd">ICLImage</a></td></tr>
2298<tr class="separator:af87af588094f04e537df98eaf0426cb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2299<tr class="memitem:a70997613219641045213b0c12948fb74"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a70997613219641045213b0c12948fb74">CLLKInternalKeypointArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; <a class="el" href="structarm__compute_1_1_c_l_l_k_internal_keypoint.xhtml">CLLKInternalKeypoint</a> &gt;</td></tr>
2300<tr class="separator:a70997613219641045213b0c12948fb74"><td class="memSeparator" colspan="2">&#160;</td></tr>
2301<tr class="memitem:afcef84cf3b7d147b2b6ab0bd884afc16"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afcef84cf3b7d147b2b6ab0bd884afc16">CLCoefficientTableArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; <a class="el" href="structarm__compute_1_1_c_l_coefficient_table.xhtml">CLCoefficientTable</a> &gt;</td></tr>
2302<tr class="separator:afcef84cf3b7d147b2b6ab0bd884afc16"><td class="memSeparator" colspan="2">&#160;</td></tr>
2303<tr class="memitem:a4ec6965f606c588137f7a48d84c1d6f0"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4ec6965f606c588137f7a48d84c1d6f0">CLOldValueArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt; <a class="el" href="structarm__compute_1_1_c_l_old_value.xhtml">CLOldValue</a> &gt;</td></tr>
2304<tr class="separator:a4ec6965f606c588137f7a48d84c1d6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002305<tr class="memitem:a0b1d72d612fb6f33393ea6cd6cbcf523"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0b1d72d612fb6f33393ea6cd6cbcf523">GCImage</a> = <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a></td></tr>
2306<tr class="separator:a0b1d72d612fb6f33393ea6cd6cbcf523"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002307<tr class="memitem:a0e7a03e2e133cb1fbb12517a3f646a09"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0e7a03e2e133cb1fbb12517a3f646a09">MemoryGroup</a> = <a class="el" href="classarm__compute_1_1_memory_group_base.xhtml">MemoryGroupBase</a>&lt; <a class="el" href="classarm__compute_1_1_tensor.xhtml">Tensor</a> &gt;</td></tr>
2308<tr class="separator:a0e7a03e2e133cb1fbb12517a3f646a09"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +01002309<tr class="memitem:adbc7771d367ba8f51da1450d3602e5c0"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adbc7771d367ba8f51da1450d3602e5c0">NEConvolution5x5</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_square.xhtml">NEConvolutionSquare</a>&lt; 5 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002310<tr class="memdesc:adbc7771d367ba8f51da1450d3602e5c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run 5x5 convolution. <a href="#adbc7771d367ba8f51da1450d3602e5c0">More...</a><br /></td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +01002311<tr class="separator:adbc7771d367ba8f51da1450d3602e5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2312<tr class="memitem:aeb2682fbeb2766df26b4be1971c9757d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aeb2682fbeb2766df26b4be1971c9757d">NEConvolution7x7</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_square.xhtml">NEConvolutionSquare</a>&lt; 7 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002313<tr class="memdesc:aeb2682fbeb2766df26b4be1971c9757d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run 7x7 convolution. <a href="#aeb2682fbeb2766df26b4be1971c9757d">More...</a><br /></td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +01002314<tr class="separator:aeb2682fbeb2766df26b4be1971c9757d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2315<tr class="memitem:ae5a088552f26a1afafd0cbf821d256fb"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae5a088552f26a1afafd0cbf821d256fb">NEConvolution9x9</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_square.xhtml">NEConvolutionSquare</a>&lt; 9 &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002316<tr class="memdesc:ae5a088552f26a1afafd0cbf821d256fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to run 9x9 convolution. <a href="#ae5a088552f26a1afafd0cbf821d256fb">More...</a><br /></td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +01002317<tr class="separator:ae5a088552f26a1afafd0cbf821d256fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002318<tr class="memitem:a681c120e2188371794ec3a59768c64ab"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a681c120e2188371794ec3a59768c64ab">LKInternalKeypointArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt; <a class="el" href="structarm__compute_1_1_n_e_l_k_internal_keypoint.xhtml">NELKInternalKeypoint</a> &gt;</td></tr>
2319<tr class="separator:a681c120e2188371794ec3a59768c64ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002320<tr class="memitem:a0604c803e41880a4a16408efc4e6a69b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0604c803e41880a4a16408efc4e6a69b">NEScheduler</a> = <a class="el" href="classarm__compute_1_1_scheduler.xhtml">Scheduler</a></td></tr>
2321<tr class="separator:a0604c803e41880a4a16408efc4e6a69b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002322<tr class="memitem:a7fb6a368d181ef193475f725c713430a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7fb6a368d181ef193475f725c713430a">Image</a> = <a class="el" href="classarm__compute_1_1_tensor.xhtml">Tensor</a></td></tr>
2323<tr class="separator:a7fb6a368d181ef193475f725c713430a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002324<tr class="memitem:a762c7da7319adcc433b3ac7a67e18ed5"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a762c7da7319adcc433b3ac7a67e18ed5">MemoryMappings</a> = std::map&lt; void **, size_t &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002325<tr class="memdesc:a762c7da7319adcc433b3ac7a67e18ed5"><td class="mdescLeft">&#160;</td><td class="mdescRight">A map of (handle, index/offset), where handle is the memory handle of the object to provide the memory for and index/offset is the buffer/offset from the pool that should be used. <a href="#a762c7da7319adcc433b3ac7a67e18ed5">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002326<tr class="separator:a762c7da7319adcc433b3ac7a67e18ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
2327<tr class="memitem:ad2398d0f2ce77c10bbebf1f85317dde5"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad2398d0f2ce77c10bbebf1f85317dde5">GroupMappings</a> = std::map&lt; size_t, <a class="el" href="namespacearm__compute.xhtml#a762c7da7319adcc433b3ac7a67e18ed5">MemoryMappings</a> &gt;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002328<tr class="memdesc:ad2398d0f2ce77c10bbebf1f85317dde5"><td class="mdescLeft">&#160;</td><td class="mdescRight">A map of the groups and memory mappings. <a href="#ad2398d0f2ce77c10bbebf1f85317dde5">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002329<tr class="separator:ad2398d0f2ce77c10bbebf1f85317dde5"><td class="memSeparator" colspan="2">&#160;</td></tr>
2330<tr class="memitem:acded863dbfdd730829d4188d67eefcf0"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#acded863dbfdd730829d4188d67eefcf0">Mutex</a> = std::mutex</td></tr>
2331<tr class="separator:acded863dbfdd730829d4188d67eefcf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002332</table><table class="memberdecls">
2333<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
2334Enumerations</h2></td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002335<tr class="memitem:a735ac6c2a02e320969625308810444f3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> { <br />
Anthony Barbierdbdab852017-06-23 15:42:00 +01002336&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a57a3b40730a5af7ea3e13eb4bba56d82">GPU_ARCH_MASK</a> = 0xF00,
2337<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">MIDGARD</a> = 0x100,
2338<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e">BIFROST</a> = 0x200,
2339<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">T600</a> = 0x110,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002340<br />
Anthony Barbierdbdab852017-06-23 15:42:00 +01002341&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd">T700</a> = 0x120,
2342<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">T800</a> = 0x130,
2343<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298">G70</a> = 0x210
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002344<br />
2345 }<tr class="memdesc:a735ac6c2a02e320969625308810444f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available GPU Targets. <a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">More...</a><br /></td></tr>
2346</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002347<tr class="separator:a735ac6c2a02e320969625308810444f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002348<tr class="memitem:a3a440b3893fa10608d4428958be1c52e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52e">CLVersion</a> { <br />
Kaizen8938bd32017-09-28 14:38:23 +01002349&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea06e5b2cbe2f75bb5eec32613499cf22a">CL10</a>,
2350<a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea80e95ed62d0c47e4d8c0696d467d4db3">CL11</a>,
2351<a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ead7beedb1bf6bfae8111da26424266675">CL12</a>,
2352<a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52eaba90edbc644c32afa8a7e36e87735aab">CL20</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002353<br />
Kaizen8938bd32017-09-28 14:38:23 +01002354&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002355<br />
Kaizen8938bd32017-09-28 14:38:23 +01002356 }</td></tr>
2357<tr class="separator:a3a440b3893fa10608d4428958be1c52e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002358<tr class="memitem:a5bc939238e1f14a4c39aaee8186a853d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853d">CPUTarget</a> { <br />
Kaizen8938bd32017-09-28 14:38:23 +01002359&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da7bb4605304408687bbcfe83a1c85c5d2">ARCH_MASK</a> = 0x0F00,
2360<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da189a7dee91b2b03205881c665cfc9ac5">CPU_MODEL</a> = 0x00FF,
2361<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dac945a6a364e6bb4138f727c809f1ba22">INTRINSICS</a> = 0x0100,
2362<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da45a830a4c6240ac27c392266589a630c">ARMV7</a> = 0x0200,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002363<br />
Kaizen8938bd32017-09-28 14:38:23 +01002364&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dae756f50f85aff43114661560586b0cdd">ARMV8</a> = 0x0300,
2365<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da3d16766c34a116d6c2a9c5bc116f8f3d">ARMV8_2</a> = 0x0400,
2366<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da2e661c06783635c6781ed83ba9091a0e">A7x</a> = 0x0070,
2367<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da58cf3eba9701a090bfa99b54df20eced">A5x</a> = 0x0050,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002368<br />
Kaizen8938bd32017-09-28 14:38:23 +01002369&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da40679521b5da0954b705341a2859f782">DOT</a> = 0x1000,
2370<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853daecf3e2493afebcfefb0b9b86bd50ef0d">A53</a> = (ARMV8 | A7x | 0x3),
2371<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da83a0ae9a921c5de44da55ab444611649">A55</a> = (ARMV8_2 | A5x | 0x5),
2372<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da8a2396eb11e41f727e6cdaa783d7d893">A55_DOT</a> = (A55 | DOT),
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002373<br />
Kaizen8938bd32017-09-28 14:38:23 +01002374&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da05f60b9c3ca8212c8ebeb166d58bc937">A72</a> = (ARMV8 | A7x | 0x2),
2375<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853daaf79f683ceaea4650b20e898d6c4c373">A73</a> = (ARMV8 | A7x | 0x3),
2376<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dadb48626fe69fc2fa2191287510a76831">A75</a> = (ARMV8_2 | A7x | 0x5),
2377<a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da3ccaa97eef88d0725900d73d2c54aa15">A75_DOT</a> = (A75 | DOT)
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002378<br />
2379 }<tr class="memdesc:a5bc939238e1f14a4c39aaee8186a853d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available CPU Targets. <a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853d">More...</a><br /></td></tr>
2380</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002381<tr class="separator:a5bc939238e1f14a4c39aaee8186a853d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002382<tr class="memitem:a59e56af19e754a6aa26a612ebf91d05f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05f">ErrorCode</a> { <a class="el" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05fae0aa021e21dddbd6d8cecec71e9cf564">OK</a>,
2383<a class="el" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05fa62be47fdd89da032cf78dfce82239579">RUNTIME_ERROR</a>
Kaizenbf8b01d2017-10-12 14:26:51 +01002384 }</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002385<tr class="separator:a59e56af19e754a6aa26a612ebf91d05f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2386<tr class="memitem:add6426cbf2e057a195846d4ba09a50be"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a> { <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea5631ad8e27788edfca7e13535d862c06">TO_ZERO</a>,
2387<a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95">TO_NEAREST_UP</a>,
2388<a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea02ff1fff1812f84c89547fcd6c176150">TO_NEAREST_EVEN</a>
2389 }<tr class="memdesc:add6426cbf2e057a195846d4ba09a50be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rounding method. <a href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">More...</a><br /></td></tr>
2390</td></tr>
2391<tr class="separator:add6426cbf2e057a195846d4ba09a50be"><td class="memSeparator" colspan="2">&#160;</td></tr>
2392<tr class="memitem:ab4e88c89b3b7ea1735996cc4def22d58"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> { <br />
Anthony Barbier871448e2017-03-24 14:54:29 +00002393&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>,
2394<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>,
2395<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>,
2396<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002397<br />
Anthony Barbier871448e2017-03-24 14:54:29 +00002398&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>,
2399<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>,
2400<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>,
2401<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002402<br />
Anthony Barbier871448e2017-03-24 14:54:29 +00002403&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>,
2404<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>,
2405<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>,
2406<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002407<br />
Anthony Barbier871448e2017-03-24 14:54:29 +00002408&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>,
2409<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>,
2410<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>,
2411<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002412<br />
Anthony Barbier871448e2017-03-24 14:54:29 +00002413&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002414<br />
2415 }<tr class="memdesc:ab4e88c89b3b7ea1735996cc4def22d58"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="struct_image.xhtml" title="Structure to hold Image information. ">Image</a> colour formats. <a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">More...</a><br /></td></tr>
2416</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002417<tr class="separator:ab4e88c89b3b7ea1735996cc4def22d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002418<tr class="memitem:ad8ed01ff3ff33333d8e19db4d2818bb6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> { <br />
Anthony Barbier871448e2017-03-24 14:54:29 +00002419&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>,
2420<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a6669348b484e3008dca2bfa8e85e40b5">U8</a>,
2421<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">S8</a>,
Anthony Barbierdbdab852017-06-23 15:42:00 +01002422<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002423<br />
2424&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">QASYMM8</a>,
2425<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>,
Anthony Barbierdbdab852017-06-23 15:42:00 +01002426<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a6e0b0886efb94aec797f6b830329b72c">S16</a>,
2427<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002428<br />
2429&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>,
2430<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aa1e28eee0339658d39a8b4d325b56e9c">S32</a>,
Kaizen8938bd32017-09-28 14:38:23 +01002431<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf">QS32</a>,
Anthony Barbier871448e2017-03-24 14:54:29 +00002432<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">U64</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002433<br />
2434&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">S64</a>,
2435<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a56d8353718e6fdc78b8d69078a2cdb94">F16</a>,
Kaizen8938bd32017-09-28 14:38:23 +01002436<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>,
Anthony Barbierdbdab852017-06-23 15:42:00 +01002437<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">F64</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002438<br />
2439&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">SIZET</a>
2440<br />
2441 }<tr class="memdesc:ad8ed01ff3ff33333d8e19db4d2818bb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available data types. <a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">More...</a><br /></td></tr>
2442</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002443<tr class="separator:ad8ed01ff3ff33333d8e19db4d2818bb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002444<tr class="memitem:a16a59381d4d74d17d86d69eb4d286d7b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7b">SamplingPolicy</a> { <a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7bac397289ee45877be0cd49811fe245b4e">CENTER</a>,
2445<a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7ba747385047b85ae751f83adb36435a3c1">TOP_LEFT</a>
2446 }<tr class="memdesc:a16a59381d4d74d17d86d69eb4d286d7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available Sampling Policies. <a href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7b">More...</a><br /></td></tr>
2447</td></tr>
2448<tr class="separator:a16a59381d4d74d17d86d69eb4d286d7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002449<tr class="memitem:ad1d5cce2d9e9a5d61c243e5c989112e0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> { <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">NCHW</a>,
2450<a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">NHWC</a>
2451 }<tr class="memdesc:ad1d5cce2d9e9a5d61c243e5c989112e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported tensor data layouts. <a href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">More...</a><br /></td></tr>
2452</td></tr>
2453<tr class="separator:ad1d5cce2d9e9a5d61c243e5c989112e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002454<tr class="memitem:a15a05537a472ee742404821851529327"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> { <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">UNDEFINED</a>,
2455<a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">CONSTANT</a>,
2456<a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">REPLICATE</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002457 }<tr class="memdesc:a15a05537a472ee742404821851529327"><td class="mdescLeft">&#160;</td><td class="mdescRight">Methods available to handle borders. <a href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">More...</a><br /></td></tr>
2458</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002459<tr class="separator:a15a05537a472ee742404821851529327"><td class="memSeparator" colspan="2">&#160;</td></tr>
2460<tr class="memitem:a82b8ac759c804bc1fb4e2d21e178fb6f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> { <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0">WRAP</a>,
2461<a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86">SATURATE</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002462 }<tr class="memdesc:a82b8ac759c804bc1fb4e2d21e178fb6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Policy to handle overflow. <a href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">More...</a><br /></td></tr>
2463</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002464<tr class="separator:a82b8ac759c804bc1fb4e2d21e178fb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2465<tr class="memitem:a966a9c417ce5e94dca08d9b5e745c0c9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> { <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2">NEAREST_NEIGHBOR</a>,
2466<a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">BILINEAR</a>,
2467<a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">AREA</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002468 }<tr class="memdesc:a966a9c417ce5e94dca08d9b5e745c0c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolation method. <a href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">More...</a><br /></td></tr>
2469</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002470<tr class="separator:a966a9c417ce5e94dca08d9b5e745c0c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
2471<tr class="memitem:a2d8a00f1d80a53ce8f75fa929c873202"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202">BilinearInterpolation</a> { <a class="el" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202a856d68c521c4c85363f54d95a33b7532">BILINEAR_OLD_NEW</a>,
2472<a class="el" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202a731cb35d2d520920db9ab20dfc5edc64">BILINEAR_SCHARR</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002473 }<tr class="memdesc:a2d8a00f1d80a53ce8f75fa929c873202"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bilinear Interpolation method used by LKTracker. <a href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202">More...</a><br /></td></tr>
2474</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002475<tr class="separator:a2d8a00f1d80a53ce8f75fa929c873202"><td class="memSeparator" colspan="2">&#160;</td></tr>
2476<tr class="memitem:a3e6b23e675649b83240691abbc42a649"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649">ThresholdType</a> { <a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a98ad0e8750ae10ad556ed7a62affb452">BINARY</a>,
2477<a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a01036ddcc971d02f6c32c3da31a119f2">RANGE</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002478 }<tr class="memdesc:a3e6b23e675649b83240691abbc42a649"><td class="mdescLeft">&#160;</td><td class="mdescRight">Threshold mode. <a href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649">More...</a><br /></td></tr>
2479</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002480<tr class="separator:a3e6b23e675649b83240691abbc42a649"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002481<tr class="memitem:a08c1503414e23f5dd10ff83492685453"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453">Termination</a> { <a class="el" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a5a2e12b6baf7ad91a2ce32f19c36bd1b">TERM_CRITERIA_EPSILON</a>,
2482<a class="el" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a43f2a8b688fb96e5ad8ba08308bbcdfd">TERM_CRITERIA_ITERATIONS</a>,
2483<a class="el" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a788740b1ba2d6463dae318a332513b29">TERM_CRITERIA_BOTH</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002484 }<tr class="memdesc:a08c1503414e23f5dd10ff83492685453"><td class="mdescLeft">&#160;</td><td class="mdescRight">Termination criteria. <a href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453">More...</a><br /></td></tr>
2485</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002486<tr class="separator:a08c1503414e23f5dd10ff83492685453"><td class="memSeparator" colspan="2">&#160;</td></tr>
2487<tr class="memitem:a7b3ec6413f000b02fdb4e39a951d9f8a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8a">MagnitudeType</a> { <a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aac2f1be73bf576190d1f42bdaf5162ae8">L1NORM</a>,
2488<a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aad927ac799e8b24f80fc80d89b2eb7131">L2NORM</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002489 }<tr class="memdesc:a7b3ec6413f000b02fdb4e39a951d9f8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Magnitude calculation type. <a href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8a">More...</a><br /></td></tr>
2490</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002491<tr class="separator:a7b3ec6413f000b02fdb4e39a951d9f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2492<tr class="memitem:af00a42ecad444bbda75cde1b64bd7e72"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72">PhaseType</a> { <a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72a6898b46a1cde8a1572e2722c44c5ab07">SIGNED</a>,
2493<a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72aaf36b47f395cd01f48b8fc1013665054">UNSIGNED</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002494 }<tr class="memdesc:af00a42ecad444bbda75cde1b64bd7e72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Phase calculation type. <a href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72">More...</a><br /></td></tr>
2495</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002496<tr class="separator:af00a42ecad444bbda75cde1b64bd7e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002497<tr class="memitem:a1ce9b523fd4f3b5bbcadcd796183455a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> { <br />
Anthony Barbier871448e2017-03-24 14:54:29 +00002498&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>,
2499<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9c5959e6f08f10d0edbadf5be1f33c53">C0</a>,
2500<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa1a2ddc2db4693cfd16d534cde5572cc1">C1</a>,
2501<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aaf1a543f5a2c5d49bc5dde298fcf716e4">C2</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002502<br />
Anthony Barbier871448e2017-03-24 14:54:29 +00002503&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa3abe124ecc82bf2c2e22e6058f38c50c">C3</a>,
2504<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6">R</a>,
2505<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf">G</a>,
2506<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002507<br />
Anthony Barbier871448e2017-03-24 14:54:29 +00002508&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>,
2509<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">Y</a>,
2510<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>,
2511<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002512<br />
2513 }<tr class="memdesc:a1ce9b523fd4f3b5bbcadcd796183455a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available channels. <a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">More...</a><br /></td></tr>
2514</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002515<tr class="separator:a1ce9b523fd4f3b5bbcadcd796183455a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2516<tr class="memitem:afdda916edc7502967bbec17ea3c06c02"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a> { <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02ae657cce1913c857166b0475f18668ef5">BOX</a>,
2517<a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a04dd53a8e6c2306e9bbf944c1d6047f2">CROSS</a>,
2518<a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a290d4b81f4e2b47d86fd1b0170e9aab7">DISK</a>,
2519<a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb">OTHER</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002520 }<tr class="memdesc:afdda916edc7502967bbec17ea3c06c02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available matrix patterns. <a href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">More...</a><br /></td></tr>
2521</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002522<tr class="separator:afdda916edc7502967bbec17ea3c06c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
2523<tr class="memitem:adf2ced65e536375a1c96425d9fced858"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> : unsigned { <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a8ab0c3a037e882577dec378985477074">MEDIAN</a> = 0,
2524<a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653">MIN</a> = 1,
2525<a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">MAX</a> = 2
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002526 }<tr class="memdesc:adf2ced65e536375a1c96425d9fced858"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available non linear functions. <a href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">More...</a><br /></td></tr>
2527</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002528<tr class="separator:adf2ced65e536375a1c96425d9fced858"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002529<tr class="memitem:a5827eb9cb394e74af87f74bd354fb45b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45b">ReductionOperation</a> { <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45ba2ce6e134b828b72fad160fa17c8d1b64">SUM_SQUARE</a>,
2530<a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45ba6970bdc2201030b9c03fbdcf3973858a">SUM</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002531 }<tr class="memdesc:a5827eb9cb394e74af87f74bd354fb45b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available reduction operations. <a href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45b">More...</a><br /></td></tr>
2532</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002533<tr class="separator:a5827eb9cb394e74af87f74bd354fb45b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002534<tr class="memitem:ad4bb8dabdbf8ad75e34220cc666b59ca"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a> { <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caaca2475ab7883ebb9f125241141896190">IN_MAP_1D</a>,
2535<a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e">IN_MAP_2D</a>,
Anthony Barbier871448e2017-03-24 14:54:29 +00002536<a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5">CROSS_MAP</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002537 }<tr class="memdesc:ad4bb8dabdbf8ad75e34220cc666b59ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">The normalization type used for the normalization layer. <a href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">More...</a><br /></td></tr>
2538</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002539<tr class="separator:ad4bb8dabdbf8ad75e34220cc666b59ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002540<tr class="memitem:a673665b4587a2956fcbad5f0e9ba89d3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3">HOGNormType</a> { <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a80485e54c7a3c93a0f74637c6b918ce5">L2_NORM</a> = 1,
2541<a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3ac9e68c0594494ec85805b225a7acb9c2">L2HYS_NORM</a> = 2,
2542<a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a68616ae21712c00705b962f4eff06eaa">L1_NORM</a> = 3
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002543 }<tr class="memdesc:a673665b4587a2956fcbad5f0e9ba89d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalization type for Histogram of Oriented Gradients (HOG) <a href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3">More...</a><br /></td></tr>
2544</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002545<tr class="separator:a673665b4587a2956fcbad5f0e9ba89d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
2546<tr class="memitem:a1fece1bd804e64f39f602d1c3969849a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849a">DimensionRoundingType</a> { <a class="el" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa56c1e354d36beb85b0d881c5b2e24cbe">FLOOR</a>,
2547<a class="el" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa5bdce8e6d9dc3efbbd31e90a8a181dff">CEIL</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002548 }<tr class="memdesc:a1fece1bd804e64f39f602d1c3969849a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dimension rounding type when down-scaling on CNNs. <a href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849a">More...</a><br /></td></tr>
2549</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002550<tr class="separator:a1fece1bd804e64f39f602d1c3969849a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2551<tr class="memitem:a9172da722f0a434e5cc07c0a3c115d93"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a> { <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93a26a4b44a837bf97b972628509912b4a5">MAX</a>,
Kaizen8938bd32017-09-28 14:38:23 +01002552<a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a">AVG</a>,
2553<a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93a7e6aa2d53f6ee2b1a34b017fa403cb76">L2</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002554 }<tr class="memdesc:a9172da722f0a434e5cc07c0a3c115d93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available pooling types. <a href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">More...</a><br /></td></tr>
2555</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002556<tr class="separator:a9172da722f0a434e5cc07c0a3c115d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002557<tr class="memitem:a683661ae75dcb7aef16b9c9bde31517d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517d">ConvolutionMethod</a> { <a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da5174aac3927faa9ee34befb7fc87a9e3">GEMM</a>,
2558<a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da4c5d06b02c97731aaa976179c62dcf76">DIRECT</a>,
2559<a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da9d024a5762b3a992dec7eb3c49d17ae8">WINOGRAD</a>
2560 }<tr class="memdesc:a683661ae75dcb7aef16b9c9bde31517d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available ConvolutionMethod. <a href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517d">More...</a><br /></td></tr>
2561</td></tr>
2562<tr class="separator:a683661ae75dcb7aef16b9c9bde31517d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002563<tr class="memitem:af0a4d6be70322c742c12da1edccbb74d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af0a4d6be70322c742c12da1edccbb74d">MappingType</a> { <a class="el" href="namespacearm__compute.xhtml#af0a4d6be70322c742c12da1edccbb74daac354f9e7a5097598cdd933b42fd190e">BLOBS</a>,
2564<a class="el" href="namespacearm__compute.xhtml#af0a4d6be70322c742c12da1edccbb74da465202c26fd7181c6bc9a80648499073">OFFSETS</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002565 }<tr class="memdesc:af0a4d6be70322c742c12da1edccbb74d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapping type. <a href="namespacearm__compute.xhtml#af0a4d6be70322c742c12da1edccbb74d">More...</a><br /></td></tr>
2566</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002567<tr class="separator:af0a4d6be70322c742c12da1edccbb74d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002568<tr class="memitem:afa20b6a7f4383003babd690f026f22dc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a> { <br />
Kaizenbf8b01d2017-10-12 14:26:51 +01002569&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca9eeb52badb613229884838847294b90d">ADD</a>,
2570<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca241dd841abade20fcb27b8a9f494e1eb">SUB</a>,
2571<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca2cdf52a55876063ec93b7d18bc741f6c">MUL</a>,
2572<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7">EXP</a>,
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002573<br />
Kaizenbf8b01d2017-10-12 14:26:51 +01002574&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3">LOG</a>,
Anthony Barbierdbdab852017-06-23 15:42:00 +01002575<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b">INV_SQRT</a>,
2576<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1">RECIPROCAL</a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002577<br />
2578 }<tr class="memdesc:afa20b6a7f4383003babd690f026f22dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fixed point operation. <a href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">More...</a><br /></td></tr>
2579</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002580<tr class="separator:afa20b6a7f4383003babd690f026f22dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002581<tr class="memitem:ae46abc5ecac309cbece5c06cb80daaf7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7">GradientDimension</a> { <a class="el" href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7a5515a637eda61b978e97adaa5d7629cc">GRAD_XY</a>
2582 }<tr class="memdesc:ae46abc5ecac309cbece5c06cb80daaf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gradient dimension type. <a href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7">More...</a><br /></td></tr>
2583</td></tr>
2584<tr class="separator:ae46abc5ecac309cbece5c06cb80daaf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002585</table><table class="memberdecls">
2586<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
2587Functions</h2></td></tr>
2588<tr class="memitem:ab04905b0c6c0e4091160561eae870101"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab04905b0c6c0e4091160561eae870101">get_cl_type_from_data_type</a> (const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;dt)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002589<tr class="memdesc:ab04905b0c6c0e4091160561eae870101"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates a tensor data type to the appropriate OpenCL type. <a href="#ab04905b0c6c0e4091160561eae870101">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002590<tr class="separator:ab04905b0c6c0e4091160561eae870101"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002591<tr class="memitem:ae5f4dd9f672832f7dce02fc14487f544"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae5f4dd9f672832f7dce02fc14487f544">get_data_size_from_data_type</a> (const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;dt)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002592<tr class="memdesc:ae5f4dd9f672832f7dce02fc14487f544"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of a data type in number of bits. <a href="#ae5f4dd9f672832f7dce02fc14487f544">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002593<tr class="separator:ae5f4dd9f672832f7dce02fc14487f544"><td class="memSeparator" colspan="2">&#160;</td></tr>
2594<tr class="memitem:afc95473636a442507fda7ad48f3414c0"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afc95473636a442507fda7ad48f3414c0">get_underlying_cl_type_from_data_type</a> (const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;dt)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002595<tr class="memdesc:afc95473636a442507fda7ad48f3414c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates fixed point tensor data type to the underlying OpenCL type. <a href="#afc95473636a442507fda7ad48f3414c0">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002596<tr class="separator:afc95473636a442507fda7ad48f3414c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002597<tr class="memitem:afab814721e78cbfc34e7e7fe2874fa56"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afab814721e78cbfc34e7e7fe2874fa56">string_from_target</a> (<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> target)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002598<tr class="memdesc:afab814721e78cbfc34e7e7fe2874fa56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates a given gpu device target to string. <a href="#afab814721e78cbfc34e7e7fe2874fa56">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002599<tr class="separator:afab814721e78cbfc34e7e7fe2874fa56"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00002600<tr class="memitem:a35fb9d1dde1b976f4b7d361aabcc7c0d"><td class="memTemplParams" colspan="2">template&lt;typename Kernel , typename... T&gt; </td></tr>
2601<tr class="memitem:a35fb9d1dde1b976f4b7d361aabcc7c0d"><td class="memTemplItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classarm__compute_1_1_kernel.xhtml">Kernel</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a35fb9d1dde1b976f4b7d361aabcc7c0d">create_configure_kernel</a> (T &amp;&amp;...args)</td></tr>
2602<tr class="memdesc:a35fb9d1dde1b976f4b7d361aabcc7c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to create and return a unique_ptr pointed to a CL kernel object It also calls the kernel's configuration. <a href="#a35fb9d1dde1b976f4b7d361aabcc7c0d">More...</a><br /></td></tr>
2603<tr class="separator:a35fb9d1dde1b976f4b7d361aabcc7c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2604<tr class="memitem:abc72c95941485d8a068fa38372308574"><td class="memTemplParams" colspan="2">template&lt;typename Kernel &gt; </td></tr>
2605<tr class="memitem:abc72c95941485d8a068fa38372308574"><td class="memTemplItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classarm__compute_1_1_kernel.xhtml">Kernel</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abc72c95941485d8a068fa38372308574">create_kernel</a> ()</td></tr>
2606<tr class="memdesc:abc72c95941485d8a068fa38372308574"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to create and return a unique_ptr pointed to a CL kernel object. <a href="#abc72c95941485d8a068fa38372308574">More...</a><br /></td></tr>
2607<tr class="separator:abc72c95941485d8a068fa38372308574"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002608<tr class="memitem:a9d0143bdde8255313aae6ac020dd629c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9d0143bdde8255313aae6ac020dd629c">get_target_from_device</a> (cl::Device &amp;device)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002609<tr class="memdesc:a9d0143bdde8255313aae6ac020dd629c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to get the GPU target from CL device. <a href="#a9d0143bdde8255313aae6ac020dd629c">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002610<tr class="separator:a9d0143bdde8255313aae6ac020dd629c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2611<tr class="memitem:a4a351d5c39dec88af98a671da1c43fd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4a351d5c39dec88af98a671da1c43fd6">get_arch_from_target</a> (<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> target)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002612<tr class="memdesc:a4a351d5c39dec88af98a671da1c43fd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to get the GPU arch. <a href="#a4a351d5c39dec88af98a671da1c43fd6">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002613<tr class="separator:a4a351d5c39dec88af98a671da1c43fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002614<tr class="memitem:a54c9b94a266f8065b64f001c47815b68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52e">CLVersion</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a54c9b94a266f8065b64f001c47815b68">get_cl_version</a> (const cl::Device &amp;device)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002615<tr class="memdesc:a54c9b94a266f8065b64f001c47815b68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to get the highest OpenCL version supported. <a href="#a54c9b94a266f8065b64f001c47815b68">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002616<tr class="separator:a54c9b94a266f8065b64f001c47815b68"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002617<tr class="memitem:a7f65c0c2b3ad21f427f6bb25f411e0ce"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7f65c0c2b3ad21f427f6bb25f411e0ce">fp16_support</a> (const cl::Device &amp;device)</td></tr>
2618<tr class="memdesc:a7f65c0c2b3ad21f427f6bb25f411e0ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to check whether the cl_khr_fp16 extension is supported. <a href="#a7f65c0c2b3ad21f427f6bb25f411e0ce">More...</a><br /></td></tr>
2619<tr class="separator:a7f65c0c2b3ad21f427f6bb25f411e0ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002620<tr class="memitem:aa2499c7ccf5b1636360a9ac6cc52a67b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa2499c7ccf5b1636360a9ac6cc52a67b">non_uniform_workgroup_support</a> (const cl::Device &amp;device)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002621<tr class="memdesc:aa2499c7ccf5b1636360a9ac6cc52a67b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to check whether the arm_non_uniform_work_group_size extension is supported. <a href="#aa2499c7ccf5b1636360a9ac6cc52a67b">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002622<tr class="separator:aa2499c7ccf5b1636360a9ac6cc52a67b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2623<tr class="memitem:a0f68015f649819f1102aa73d7b88b29e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0f68015f649819f1102aa73d7b88b29e">enqueue</a> (cl::CommandQueue &amp;queue, <a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml">ICLKernel</a> &amp;kernel, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;window, const cl::NDRange &amp;lws_hint=<a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#aebe2d25607545d31f2b1ace6d60a81da">CLKernelLibrary::get</a>().default_ndrange())</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002624<tr class="memdesc:a0f68015f649819f1102aa73d7b88b29e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the kernel to the command queue with the given window. <a href="#a0f68015f649819f1102aa73d7b88b29e">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002625<tr class="separator:a0f68015f649819f1102aa73d7b88b29e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +01002626<tr class="memitem:aa4f4d7a58287017588fc338965873f14"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa4f4d7a58287017588fc338965873f14">opencl_is_available</a> ()</td></tr>
2627<tr class="separator:aa4f4d7a58287017588fc338965873f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002628<tr class="memitem:a096590f2456b9e9bcb8db98175720b60"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2629<tr class="memitem:a096590f2456b9e9bcb8db98175720b60"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a096590f2456b9e9bcb8db98175720b60">operator==</a> (const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;lhs, const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;rhs)</td></tr>
2630<tr class="separator:a096590f2456b9e9bcb8db98175720b60"><td class="memSeparator" colspan="2">&#160;</td></tr>
2631<tr class="memitem:a4e3ff85e1f6c648dfbe264f54c147451"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2632<tr class="memitem:a4e3ff85e1f6c648dfbe264f54c147451"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4e3ff85e1f6c648dfbe264f54c147451">operator!=</a> (const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;lhs, const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;rhs)</td></tr>
2633<tr class="separator:a4e3ff85e1f6c648dfbe264f54c147451"><td class="memSeparator" colspan="2">&#160;</td></tr>
2634<tr class="memitem:a2edb6ec8bea5c26d7d802d21caf64d02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2edb6ec8bea5c26d7d802d21caf64d02">create_error_va_list</a> (<a class="el" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05f">ErrorCode</a> error_code, const char *function, const char *file, const int line, const char *msg, va_list args)</td></tr>
2635<tr class="memdesc:a2edb6ec8bea5c26d7d802d21caf64d02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an error containing the error message from variable argument list. <a href="#a2edb6ec8bea5c26d7d802d21caf64d02">More...</a><br /></td></tr>
2636<tr class="separator:a2edb6ec8bea5c26d7d802d21caf64d02"><td class="memSeparator" colspan="2">&#160;</td></tr>
2637<tr class="memitem:a3eee3c80d78ee4574a5eed0af5af919d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3eee3c80d78ee4574a5eed0af5af919d">create_error</a> (<a class="el" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05f">ErrorCode</a> error_code, const char *function, const char *file, const int line, const char *msg,...)</td></tr>
2638<tr class="memdesc:a3eee3c80d78ee4574a5eed0af5af919d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an error containing the error message. <a href="#a3eee3c80d78ee4574a5eed0af5af919d">More...</a><br /></td></tr>
2639<tr class="separator:a3eee3c80d78ee4574a5eed0af5af919d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002640<tr class="memitem:a568b0fbfa3d903099d9c9f7b6acf188d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a568b0fbfa3d903099d9c9f7b6acf188d">error</a> (const char *function, const char *file, const int line, const char *msg,...)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002641<tr class="memdesc:a568b0fbfa3d903099d9c9f7b6acf188d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print an error message then throw an std::runtime_error. <a href="#a568b0fbfa3d903099d9c9f7b6acf188d">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002642<tr class="separator:a568b0fbfa3d903099d9c9f7b6acf188d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002643<tr class="memitem:a203882febb616f5468d1b63b60ffb331"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a203882febb616f5468d1b63b60ffb331">sqshl_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, int shift)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002644<tr class="memdesc:a203882febb616f5468d1b63b60ffb331"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar saturating shift left <a href="#a203882febb616f5468d1b63b60ffb331">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002645<tr class="separator:a203882febb616f5468d1b63b60ffb331"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002646<tr class="memitem:a3e4f9ff20167e78399975ec02c009c95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3e4f9ff20167e78399975ec02c009c95">sshr_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, int shift)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002647<tr class="memdesc:a3e4f9ff20167e78399975ec02c009c95"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar shift right <a href="#a3e4f9ff20167e78399975ec02c009c95">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002648<tr class="separator:a3e4f9ff20167e78399975ec02c009c95"><td class="memSeparator" colspan="2">&#160;</td></tr>
2649<tr class="memitem:a1dfcf4fd912cbd9853c0f7ddfcf3a163"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1dfcf4fd912cbd9853c0f7ddfcf3a163">sshr_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, int shift)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002650<tr class="memdesc:a1dfcf4fd912cbd9853c0f7ddfcf3a163"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar shift right <a href="#a1dfcf4fd912cbd9853c0f7ddfcf3a163">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002651<tr class="separator:a1dfcf4fd912cbd9853c0f7ddfcf3a163"><td class="memSeparator" colspan="2">&#160;</td></tr>
2652<tr class="memitem:a383b9d12f86c35ceed6dd5922439aa4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a383b9d12f86c35ceed6dd5922439aa4c">sqshl_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, int shift)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002653<tr class="memdesc:a383b9d12f86c35ceed6dd5922439aa4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar saturating shift left <a href="#a383b9d12f86c35ceed6dd5922439aa4c">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002654<tr class="separator:a383b9d12f86c35ceed6dd5922439aa4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002655<tr class="memitem:a43315c66c4d00207f70143233b189085"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a43315c66c4d00207f70143233b189085">sabs_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002656<tr class="memdesc:a43315c66c4d00207f70143233b189085"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar absolute value <a href="#a43315c66c4d00207f70143233b189085">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002657<tr class="separator:a43315c66c4d00207f70143233b189085"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002658<tr class="memitem:a5d49ea329c81268d6e12031f6f13f1eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5d49ea329c81268d6e12031f6f13f1eb">sabs_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002659<tr class="memdesc:a5d49ea329c81268d6e12031f6f13f1eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar absolute value <a href="#a5d49ea329c81268d6e12031f6f13f1eb">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002660<tr class="separator:a5d49ea329c81268d6e12031f6f13f1eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002661<tr class="memitem:aa8cee074ec68e2ae7830a9472efd8429"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa8cee074ec68e2ae7830a9472efd8429">sadd_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002662<tr class="memdesc:aa8cee074ec68e2ae7830a9472efd8429"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar add <a href="#aa8cee074ec68e2ae7830a9472efd8429">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002663<tr class="separator:aa8cee074ec68e2ae7830a9472efd8429"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002664<tr class="memitem:ab30659aa2125bd5857547d424e601e34"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab30659aa2125bd5857547d424e601e34">sadd_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002665<tr class="memdesc:ab30659aa2125bd5857547d424e601e34"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar add <a href="#ab30659aa2125bd5857547d424e601e34">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002666<tr class="separator:ab30659aa2125bd5857547d424e601e34"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002667<tr class="memitem:a532d90e007d0cb6f3d43107229c40c32"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002668<tr class="memdesc:a532d90e007d0cb6f3d43107229c40c32"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar saturating add <a href="#a532d90e007d0cb6f3d43107229c40c32">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002669<tr class="separator:a532d90e007d0cb6f3d43107229c40c32"><td class="memSeparator" colspan="2">&#160;</td></tr>
2670<tr class="memitem:a45669fcc0f31fce521179510e85dcb62"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">sqadd_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002671<tr class="memdesc:a45669fcc0f31fce521179510e85dcb62"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar saturating add <a href="#a45669fcc0f31fce521179510e85dcb62">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002672<tr class="separator:a45669fcc0f31fce521179510e85dcb62"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002673<tr class="memitem:af1a4a8b0eeee4d2d1c14774e2417f3de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af1a4a8b0eeee4d2d1c14774e2417f3de">sqadd_qs32</a> (<a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> a, <a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002674<tr class="memdesc:af1a4a8b0eeee4d2d1c14774e2417f3de"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit fixed point scalar saturating add <a href="#af1a4a8b0eeee4d2d1c14774e2417f3de">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002675<tr class="separator:af1a4a8b0eeee4d2d1c14774e2417f3de"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002676<tr class="memitem:ab97841950d268532e51f28a208ddafd4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab97841950d268532e51f28a208ddafd4">ssub_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002677<tr class="memdesc:ab97841950d268532e51f28a208ddafd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar subtraction <a href="#ab97841950d268532e51f28a208ddafd4">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002678<tr class="separator:ab97841950d268532e51f28a208ddafd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002679<tr class="memitem:a70476eda2d46c943d572362fe2fc9d14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a70476eda2d46c943d572362fe2fc9d14">ssub_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002680<tr class="memdesc:a70476eda2d46c943d572362fe2fc9d14"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar subtraction <a href="#a70476eda2d46c943d572362fe2fc9d14">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002681<tr class="separator:a70476eda2d46c943d572362fe2fc9d14"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002682<tr class="memitem:ae74bbb6e25cc1b774428722b2faad00c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae74bbb6e25cc1b774428722b2faad00c">sqsub_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002683<tr class="memdesc:ae74bbb6e25cc1b774428722b2faad00c"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar saturating subtraction <a href="#ae74bbb6e25cc1b774428722b2faad00c">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002684<tr class="separator:ae74bbb6e25cc1b774428722b2faad00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002685<tr class="memitem:a217e5c603560d6f73971983c6d1572a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a217e5c603560d6f73971983c6d1572a1">sqsub_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002686<tr class="memdesc:a217e5c603560d6f73971983c6d1572a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar saturating subtraction <a href="#a217e5c603560d6f73971983c6d1572a1">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002687<tr class="separator:a217e5c603560d6f73971983c6d1572a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002688<tr class="memitem:aec48f137adc904d648dd7eba0d828fab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aec48f137adc904d648dd7eba0d828fab">smul_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002689<tr class="memdesc:aec48f137adc904d648dd7eba0d828fab"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar multiply <a href="#aec48f137adc904d648dd7eba0d828fab">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002690<tr class="separator:aec48f137adc904d648dd7eba0d828fab"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002691<tr class="memitem:a7e6eff2c8b93f18002c06059b7e5b79a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7e6eff2c8b93f18002c06059b7e5b79a">smul_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002692<tr class="memdesc:a7e6eff2c8b93f18002c06059b7e5b79a"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar multiply <a href="#a7e6eff2c8b93f18002c06059b7e5b79a">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002693<tr class="separator:a7e6eff2c8b93f18002c06059b7e5b79a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002694<tr class="memitem:af0b73b0c4980a551d7cd4edec43ffd92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002695<tr class="memdesc:af0b73b0c4980a551d7cd4edec43ffd92"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar saturating multiply <a href="#af0b73b0c4980a551d7cd4edec43ffd92">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002696<tr class="separator:af0b73b0c4980a551d7cd4edec43ffd92"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002697<tr class="memitem:a55c8a365b4242664f8c0f19e91bcee92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002698<tr class="memdesc:a55c8a365b4242664f8c0f19e91bcee92"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar saturating multiply <a href="#a55c8a365b4242664f8c0f19e91bcee92">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002699<tr class="separator:a55c8a365b4242664f8c0f19e91bcee92"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002700<tr class="memitem:a0721e062e6d7a90f07fd08aeda5e7eda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0721e062e6d7a90f07fd08aeda5e7eda">sqmull_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002701<tr class="memdesc:a0721e062e6d7a90f07fd08aeda5e7eda"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar multiply long <a href="#a0721e062e6d7a90f07fd08aeda5e7eda">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002702<tr class="separator:a0721e062e6d7a90f07fd08aeda5e7eda"><td class="memSeparator" colspan="2">&#160;</td></tr>
2703<tr class="memitem:a7f9fcf8e60c300e602327f8ff67800cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7f9fcf8e60c300e602327f8ff67800cb">sqmull_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002704<tr class="memdesc:a7f9fcf8e60c300e602327f8ff67800cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar multiply long <a href="#a7f9fcf8e60c300e602327f8ff67800cb">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002705<tr class="separator:a7f9fcf8e60c300e602327f8ff67800cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002706<tr class="memitem:ab768d7001612a149c0bf695b773d659b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab768d7001612a149c0bf695b773d659b">sinvsqrt_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002707<tr class="memdesc:ab768d7001612a149c0bf695b773d659b"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar inverse square root <a href="#ab768d7001612a149c0bf695b773d659b">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002708<tr class="separator:ab768d7001612a149c0bf695b773d659b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002709<tr class="memitem:a162390097e05ddc016310bad881c461c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a162390097e05ddc016310bad881c461c">sinvsqrt_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002710<tr class="memdesc:a162390097e05ddc016310bad881c461c"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar inverse square root <a href="#a162390097e05ddc016310bad881c461c">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002711<tr class="separator:a162390097e05ddc016310bad881c461c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002712<tr class="memitem:ae39636f0e83dd3b854b89181a230216f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae39636f0e83dd3b854b89181a230216f">sdiv_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002713<tr class="memdesc:ae39636f0e83dd3b854b89181a230216f"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar division <a href="#ae39636f0e83dd3b854b89181a230216f">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002714<tr class="separator:ae39636f0e83dd3b854b89181a230216f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002715<tr class="memitem:a62b21ae2dd27770147d5b7c265fa534c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a62b21ae2dd27770147d5b7c265fa534c">sdiv_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002716<tr class="memdesc:a62b21ae2dd27770147d5b7c265fa534c"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar division <a href="#a62b21ae2dd27770147d5b7c265fa534c">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002717<tr class="separator:a62b21ae2dd27770147d5b7c265fa534c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2718<tr class="memitem:a20724c7cb556b1ff4fd9d01c7020d762"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a20724c7cb556b1ff4fd9d01c7020d762">sqexp_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002719<tr class="memdesc:a20724c7cb556b1ff4fd9d01c7020d762"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar exponential <a href="#a20724c7cb556b1ff4fd9d01c7020d762">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002720<tr class="separator:a20724c7cb556b1ff4fd9d01c7020d762"><td class="memSeparator" colspan="2">&#160;</td></tr>
2721<tr class="memitem:aba5b39758733711eaf3015d17839feb5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aba5b39758733711eaf3015d17839feb5">sqexp_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002722<tr class="memdesc:aba5b39758733711eaf3015d17839feb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar exponential <a href="#aba5b39758733711eaf3015d17839feb5">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002723<tr class="separator:aba5b39758733711eaf3015d17839feb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
2724<tr class="memitem:acc38b787d0451ec4a3e632ed919ac298"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#acc38b787d0451ec4a3e632ed919ac298">sexp_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002725<tr class="memdesc:acc38b787d0451ec4a3e632ed919ac298"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar exponential <a href="#acc38b787d0451ec4a3e632ed919ac298">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002726<tr class="separator:acc38b787d0451ec4a3e632ed919ac298"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002727<tr class="memitem:a596a7e3c63f80e67ea7cb713e8fc9992"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a596a7e3c63f80e67ea7cb713e8fc9992">slog_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002728<tr class="memdesc:a596a7e3c63f80e67ea7cb713e8fc9992"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar logarithm <a href="#a596a7e3c63f80e67ea7cb713e8fc9992">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002729<tr class="separator:a596a7e3c63f80e67ea7cb713e8fc9992"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002730<tr class="memitem:ad45601a3c0f1d9f6210041651f4e2f4b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad45601a3c0f1d9f6210041651f4e2f4b">slog_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002731<tr class="memdesc:ad45601a3c0f1d9f6210041651f4e2f4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point scalar logarithm <a href="#ad45601a3c0f1d9f6210041651f4e2f4b">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002732<tr class="separator:ad45601a3c0f1d9f6210041651f4e2f4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002733<tr class="memitem:a62232512d049619479b670c58a607924"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a62232512d049619479b670c58a607924">scvt_f32_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002734<tr class="memdesc:a62232512d049619479b670c58a607924"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert an 8 bit fixed point to float. <a href="#a62232512d049619479b670c58a607924">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002735<tr class="separator:a62232512d049619479b670c58a607924"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002736<tr class="memitem:a4f425447c1efb8d2b48cb50b110f4739"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4f425447c1efb8d2b48cb50b110f4739">sqcvt_qs8_f32</a> (float a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002737<tr class="memdesc:a4f425447c1efb8d2b48cb50b110f4739"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a float to 8 bit fixed point. <a href="#a4f425447c1efb8d2b48cb50b110f4739">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002738<tr class="separator:a4f425447c1efb8d2b48cb50b110f4739"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002739<tr class="memitem:a55e8e161b9a16d750a6cff3fba6cd480"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a55e8e161b9a16d750a6cff3fba6cd480">scvt_f32_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002740<tr class="memdesc:a55e8e161b9a16d750a6cff3fba6cd480"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a 16 bit fixed point to float. <a href="#a55e8e161b9a16d750a6cff3fba6cd480">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002741<tr class="separator:a55e8e161b9a16d750a6cff3fba6cd480"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002742<tr class="memitem:a790df824287a4f498e648dbbb481906b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a790df824287a4f498e648dbbb481906b">sqcvt_qs16_f32</a> (float a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002743<tr class="memdesc:a790df824287a4f498e648dbbb481906b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a float to 16 bit fixed point. <a href="#a790df824287a4f498e648dbbb481906b">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002744<tr class="separator:a790df824287a4f498e648dbbb481906b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002745<tr class="memitem:ad555b251940cba2ca1c6eb168f0bbea4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad555b251940cba2ca1c6eb168f0bbea4">sqmovn_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002746<tr class="memdesc:ad555b251940cba2ca1c6eb168f0bbea4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar saturating move and narrow. <a href="#ad555b251940cba2ca1c6eb168f0bbea4">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002747<tr class="separator:ad555b251940cba2ca1c6eb168f0bbea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002748<tr class="memitem:a4a4859f4f212d3824e70a36aed901b5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4a4859f4f212d3824e70a36aed901b5b">sqmovn_qs32</a> (<a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002749<tr class="memdesc:a4a4859f4f212d3824e70a36aed901b5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar saturating move and narrow. <a href="#a4a4859f4f212d3824e70a36aed901b5b">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002750<tr class="separator:a4a4859f4f212d3824e70a36aed901b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002751<tr class="memitem:ab36bc98bdbf6c4d7bee0cb099513c806"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab36bc98bdbf6c4d7bee0cb099513c806">enqueue</a> (<a class="el" href="classarm__compute_1_1_i_g_c_kernel.xhtml">IGCKernel</a> &amp;kernel, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;window, const <a class="el" href="classarm__compute_1_1gles_1_1_n_d_range.xhtml">gles::NDRange</a> &amp;lws=<a class="el" href="classarm__compute_1_1gles_1_1_n_d_range.xhtml">gles::NDRange</a>(1U, 1U, 1U))</td></tr>
2752<tr class="memdesc:ab36bc98bdbf6c4d7bee0cb099513c806"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the kernel to the command queue with the given window. <a href="#ab36bc98bdbf6c4d7bee0cb099513c806">More...</a><br /></td></tr>
2753<tr class="separator:ab36bc98bdbf6c4d7bee0cb099513c806"><td class="memSeparator" colspan="2">&#160;</td></tr>
2754<tr class="memitem:a19c7b9bc5f36935ba40314907ffe54ce"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a19c7b9bc5f36935ba40314907ffe54ce">opengles31_is_available</a> ()</td></tr>
2755<tr class="memdesc:a19c7b9bc5f36935ba40314907ffe54ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the OpenGL ES 3.1 API is available at runtime. <a href="#a19c7b9bc5f36935ba40314907ffe54ce">More...</a><br /></td></tr>
2756<tr class="separator:a19c7b9bc5f36935ba40314907ffe54ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002757<tr class="memitem:adfe7525e3cd542da6c043a98f93a8d3c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002758<tr class="memitem:adfe7525e3cd542da6c043a98f93a8d3c"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt; <a class="el" href="structarm__compute_1_1enable__bitwise__ops.xhtml">enable_bitwise_ops</a>&lt; T &gt;::<a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, T &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adfe7525e3cd542da6c043a98f93a8d3c">operator&amp;</a> (T lhs, T rhs)</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002759<tr class="separator:adfe7525e3cd542da6c043a98f93a8d3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002760<tr class="memitem:ad656a27ce8a507e31096ca45683ba9a5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2761<tr class="memitem:ad656a27ce8a507e31096ca45683ba9a5"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad656a27ce8a507e31096ca45683ba9a5">delta_bilinear_c1</a> (const T *pixel_ptr, size_t stride, float dx, float dy)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002762<tr class="memdesc:ad656a27ce8a507e31096ca45683ba9a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes bilinear interpolation using the pointer to the top-left pixel and the pixel's distance between the real coordinates and the smallest following integer coordinates. <a href="#ad656a27ce8a507e31096ca45683ba9a5">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002763<tr class="separator:ad656a27ce8a507e31096ca45683ba9a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002764<tr class="memitem:ad5fa8bacf824e9538014bfb0dcdaab52"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2765<tr class="memitem:ad5fa8bacf824e9538014bfb0dcdaab52"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad5fa8bacf824e9538014bfb0dcdaab52">delta_linear_c1_y</a> (const T *pixel_ptr, size_t stride, float dy)</td></tr>
2766<tr class="memdesc:ad5fa8bacf824e9538014bfb0dcdaab52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes linear interpolation using the pointer to the top pixel and the pixel's distance between the real coordinates and the smallest following integer coordinates. <a href="#ad5fa8bacf824e9538014bfb0dcdaab52">More...</a><br /></td></tr>
2767<tr class="separator:ad5fa8bacf824e9538014bfb0dcdaab52"><td class="memSeparator" colspan="2">&#160;</td></tr>
2768<tr class="memitem:a6174495b626531de015ae2b810859287"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2769<tr class="memitem:a6174495b626531de015ae2b810859287"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6174495b626531de015ae2b810859287">delta_linear_c1_x</a> (const T *pixel_ptr, float dx)</td></tr>
2770<tr class="memdesc:a6174495b626531de015ae2b810859287"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes linear interpolation using the pointer to the left pixel and the pixel's distance between the real coordinates and the smallest following integer coordinates. <a href="#a6174495b626531de015ae2b810859287">More...</a><br /></td></tr>
2771<tr class="separator:a6174495b626531de015ae2b810859287"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002772<tr class="memitem:a1c8d639ec2b3086a9506e72605a32333"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2773<tr class="memitem:a1c8d639ec2b3086a9506e72605a32333"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1c8d639ec2b3086a9506e72605a32333">pixel_bilinear_c1</a> (const T *first_pixel_ptr, size_t stride, float x, float y)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002774<tr class="memdesc:a1c8d639ec2b3086a9506e72605a32333"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the pixel at (x,y) using bilinear interpolation. <a href="#a1c8d639ec2b3086a9506e72605a32333">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002775<tr class="separator:a1c8d639ec2b3086a9506e72605a32333"><td class="memSeparator" colspan="2">&#160;</td></tr>
2776<tr class="memitem:afa55519774605e5b840fb031fdd7b196"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2777<tr class="memitem:afa55519774605e5b840fb031fdd7b196"><td class="memTemplItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afa55519774605e5b840fb031fdd7b196">pixel_bilinear_c1_clamp</a> (const T *first_pixel_ptr, size_t stride, size_t width, size_t height, float x, float y)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002778<tr class="memdesc:afa55519774605e5b840fb031fdd7b196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the pixel at (x,y) using bilinear interpolation by clamping when out of borders. <a href="#afa55519774605e5b840fb031fdd7b196">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002779<tr class="separator:afa55519774605e5b840fb031fdd7b196"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002780<tr class="memitem:ab7b3af731907e85fcaf72555c446176b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab7b3af731907e85fcaf72555c446176b">pixel_area_c1u8_clamp</a> (const uint8_t *first_pixel_ptr, size_t stride, size_t width, size_t height, float wr, float hr, int x, int y)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002781<tr class="memdesc:ab7b3af731907e85fcaf72555c446176b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the pixel at (x,y) using area interpolation by clamping when out of borders. <a href="#ab7b3af731907e85fcaf72555c446176b">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002782<tr class="separator:ab7b3af731907e85fcaf72555c446176b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002783<tr class="memitem:a6c0dcc38187027dcb89cd9724bc5a823"><td class="memTemplParams" colspan="2">template&lt;typename L , typename... Ts&gt; </td></tr>
2784<tr class="memitem:a6c0dcc38187027dcb89cd9724bc5a823"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a> (const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002785<tr class="memdesc:a6c0dcc38187027dcb89cd9724bc5a823"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_functino for each element. <a href="#a6c0dcc38187027dcb89cd9724bc5a823">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002786<tr class="separator:a6c0dcc38187027dcb89cd9724bc5a823"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002787<tr class="memitem:ac2a92cae51d2734a65676052adb33c22"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2788<tr class="memitem:ac2a92cae51d2734a65676052adb33c22"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac2a92cae51d2734a65676052adb33c22">update_window_and_padding</a> (<a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win, Ts &amp;&amp;...patterns)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002789<tr class="memdesc:ac2a92cae51d2734a65676052adb33c22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update window and padding size for each of the access patterns. <a href="#ac2a92cae51d2734a65676052adb33c22">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002790<tr class="separator:ac2a92cae51d2734a65676052adb33c22"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00002791<tr class="memitem:a1c28e5916fd54b778da115bfe646f588"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1c28e5916fd54b778da115bfe646f588">calculate_max_window</a> (const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;valid_region, const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;steps=<a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>(), bool skip_border=false, <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> border_size=<a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>())</td></tr>
2792<tr class="memdesc:a1c28e5916fd54b778da115bfe646f588"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the maximum window for a given tensor shape and border setting. <a href="#a1c28e5916fd54b778da115bfe646f588">More...</a><br /></td></tr>
2793<tr class="separator:a1c28e5916fd54b778da115bfe646f588"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002794<tr class="memitem:aa2117aef4381edbdf81e17ec088df7f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa2117aef4381edbdf81e17ec088df7f1">calculate_max_window</a> (const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;steps=<a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>(), bool skip_border=false, <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> border_size=<a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>())</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002795<tr class="memdesc:aa2117aef4381edbdf81e17ec088df7f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the maximum window for a given tensor shape and border setting. <a href="#aa2117aef4381edbdf81e17ec088df7f1">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002796<tr class="separator:aa2117aef4381edbdf81e17ec088df7f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00002797<tr class="memitem:a252e257c58bfccbb272c0a5bf81d42cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a252e257c58bfccbb272c0a5bf81d42cb">calculate_max_window_horizontal</a> (const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;valid_region, const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;steps=<a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>(), bool skip_border=false, <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> border_size=<a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>())</td></tr>
2798<tr class="memdesc:a252e257c58bfccbb272c0a5bf81d42cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the maximum window used by a horizontal kernel for a given tensor shape and border setting. <a href="#a252e257c58bfccbb272c0a5bf81d42cb">More...</a><br /></td></tr>
2799<tr class="separator:a252e257c58bfccbb272c0a5bf81d42cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002800<tr class="memitem:a47456b4d520aee1cba80bf6e20f6685a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a47456b4d520aee1cba80bf6e20f6685a">calculate_max_window_horizontal</a> (const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;steps=<a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>(), bool skip_border=false, <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> border_size=<a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>())</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002801<tr class="memdesc:a47456b4d520aee1cba80bf6e20f6685a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the maximum window used by a horizontal kernel for a given tensor shape and border setting. <a href="#a47456b4d520aee1cba80bf6e20f6685a">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002802<tr class="separator:a47456b4d520aee1cba80bf6e20f6685a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00002803<tr class="memitem:a2bbb5d1cdb27c0e8c517cb7c544226c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2bbb5d1cdb27c0e8c517cb7c544226c6">calculate_max_enlarged_window</a> (const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;valid_region, const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;steps=<a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>(), <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> border_size=<a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>())</td></tr>
2804<tr class="memdesc:a2bbb5d1cdb27c0e8c517cb7c544226c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the maximum window for a given tensor shape and border setting. <a href="#a2bbb5d1cdb27c0e8c517cb7c544226c6">More...</a><br /></td></tr>
2805<tr class="separator:a2bbb5d1cdb27c0e8c517cb7c544226c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002806<tr class="memitem:afcdda83b6a85d5798f08d92c0e235e2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afcdda83b6a85d5798f08d92c0e235e2e">calculate_max_enlarged_window</a> (const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;steps=<a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>(), <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> border_size=<a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>())</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002807<tr class="memdesc:afcdda83b6a85d5798f08d92c0e235e2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the maximum window for a given tensor shape and border setting. <a href="#afcdda83b6a85d5798f08d92c0e235e2e">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002808<tr class="separator:afcdda83b6a85d5798f08d92c0e235e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00002809<tr class="memitem:a133621090cfb0f151340c6e04bd7bcc8"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2810<tr class="memitem:a133621090cfb0f151340c6e04bd7bcc8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a133621090cfb0f151340c6e04bd7bcc8">intersect_valid_regions</a> (const Ts &amp;...regions)</td></tr>
2811<tr class="memdesc:a133621090cfb0f151340c6e04bd7bcc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Intersect multiple valid regions. <a href="#a133621090cfb0f151340c6e04bd7bcc8">More...</a><br /></td></tr>
2812<tr class="separator:a133621090cfb0f151340c6e04bd7bcc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002813<tr class="memitem:a35178800b82e07a49da5a81cdeda9a0c"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
2814<tr class="memitem:a35178800b82e07a49da5a81cdeda9a0c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a35178800b82e07a49da5a81cdeda9a0c">compute_strides</a> (const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, T stride_x, Ts &amp;&amp;...fixed_strides)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002815<tr class="memdesc:a35178800b82e07a49da5a81cdeda9a0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a strides object based on the provided strides and the tensor dimensions. <a href="#a35178800b82e07a49da5a81cdeda9a0c">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002816<tr class="separator:a35178800b82e07a49da5a81cdeda9a0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2817<tr class="memitem:a8c35748731709927597cb5a2c227e682"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2818<tr class="memitem:a8c35748731709927597cb5a2c227e682"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8c35748731709927597cb5a2c227e682">compute_strides</a> (const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002819<tr class="memdesc:a8c35748731709927597cb5a2c227e682"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a strides object based on the tensor dimensions. <a href="#a8c35748731709927597cb5a2c227e682">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002820<tr class="separator:a8c35748731709927597cb5a2c227e682"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002821<tr class="memitem:a21c3e11887f3acf9284ca763372c7da0"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2822<tr class="memitem:a21c3e11887f3acf9284ca763372c7da0"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a21c3e11887f3acf9284ca763372c7da0">permute</a> (<a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;dimensions, const <a class="el" href="namespacearm__compute.xhtml#a33e65be485104e2e9e69fca551d6f492">PermutationVector</a> &amp;perm)</td></tr>
2823<tr class="memdesc:a21c3e11887f3acf9284ca763372c7da0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Permutes given <a class="el" href="classarm__compute_1_1_dimensions.xhtml" title="Dimensions with dimensionality. ">Dimensions</a> according to a permutation vector. <a href="#a21c3e11887f3acf9284ca763372c7da0">More...</a><br /></td></tr>
2824<tr class="separator:a21c3e11887f3acf9284ca763372c7da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002825<tr class="memitem:a5045aaec85553032a782c44ab8d26341"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5045aaec85553032a782c44ab8d26341">permute</a> (<a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, const <a class="el" href="namespacearm__compute.xhtml#a33e65be485104e2e9e69fca551d6f492">PermutationVector</a> &amp;perm)</td></tr>
2826<tr class="memdesc:a5045aaec85553032a782c44ab8d26341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Permutes given <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml" title="Shape of a tensor. ">TensorShape</a> according to a permutation vector. <a href="#a5045aaec85553032a782c44ab8d26341">More...</a><br /></td></tr>
2827<tr class="separator:a5045aaec85553032a782c44ab8d26341"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002828<tr class="memitem:a9a20062caae09fce4a567be558f9d702"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9a20062caae09fce4a567be558f9d702">auto_init_if_empty</a> (<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, int num_channels, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> data_type, int fixed_point_position, <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> quantization_info=<a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a>())</td></tr>
2829<tr class="separator:a9a20062caae09fce4a567be558f9d702"><td class="memSeparator" colspan="2">&#160;</td></tr>
2830<tr class="memitem:a5844c8e025388ddd8c3afc5c3f7a3256"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5844c8e025388ddd8c3afc5c3f7a3256">auto_init_if_empty</a> (<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info_sink, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info_source)</td></tr>
2831<tr class="memdesc:a5844c8e025388ddd8c3afc5c3f7a3256"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto initialize the tensor info using another tensor info. <a href="#a5844c8e025388ddd8c3afc5c3f7a3256">More...</a><br /></td></tr>
2832<tr class="separator:a5844c8e025388ddd8c3afc5c3f7a3256"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002833<tr class="memitem:a9d1a839c51134b2ae171a2264c541b6f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9d1a839c51134b2ae171a2264c541b6f">set_shape_if_empty</a> (<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape)</td></tr>
2834<tr class="separator:a9d1a839c51134b2ae171a2264c541b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2835<tr class="memitem:a8076ba239b6681067b6cfea7f773a39f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8076ba239b6681067b6cfea7f773a39f">set_format_if_unknown</a> (<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
2836<tr class="separator:a8076ba239b6681067b6cfea7f773a39f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2837<tr class="memitem:ad19446be52c2c162fa678b9ae236f445"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad19446be52c2c162fa678b9ae236f445">set_data_type_if_unknown</a> (<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> data_type)</td></tr>
2838<tr class="separator:ad19446be52c2c162fa678b9ae236f445"><td class="memSeparator" colspan="2">&#160;</td></tr>
2839<tr class="memitem:a0894ed18ca6f55d6053882676cc2c95c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0894ed18ca6f55d6053882676cc2c95c">set_fixed_point_position_if_zero</a> (<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, int fixed_point_position)</td></tr>
2840<tr class="separator:a0894ed18ca6f55d6053882676cc2c95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002841<tr class="memitem:a75509469ec2689ec143f4a37bbcb4437"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a75509469ec2689ec143f4a37bbcb4437">set_quantization_info_if_empty</a> (<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;info, <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> quantization_info)</td></tr>
2842<tr class="separator:a75509469ec2689ec143f4a37bbcb4437"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002843<tr class="memitem:ae3c6412e9c2b3b6c75a577f700e9b228"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae3c6412e9c2b3b6c75a577f700e9b228">calculate_valid_region_scale</a> (const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;src_info, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;dst_shape, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy, <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> border_size, bool border_undefined)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002844<tr class="memdesc:ae3c6412e9c2b3b6c75a577f700e9b228"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to calculate the Valid Region for Scale. <a href="#ae3c6412e9c2b3b6c75a577f700e9b228">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002845<tr class="separator:ae3c6412e9c2b3b6c75a577f700e9b228"><td class="memSeparator" colspan="2">&#160;</td></tr>
2846<tr class="memitem:ad34f2150f1c9f8a3ecb7298162124e5d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad34f2150f1c9f8a3ecb7298162124e5d">index2coords</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, int index)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002847<tr class="memdesc:ad34f2150f1c9f8a3ecb7298162124e5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear index into n-dimensional coordinates. <a href="#ad34f2150f1c9f8a3ecb7298162124e5d">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002848<tr class="separator:ad34f2150f1c9f8a3ecb7298162124e5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2849<tr class="memitem:ad95e1c14c3007ca18950bf8f4c5a5c93"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad95e1c14c3007ca18950bf8f4c5a5c93">coords2index</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;coord)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002850<tr class="memdesc:ad95e1c14c3007ca18950bf8f4c5a5c93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert n-dimensional coordinates into a linear index. <a href="#ad95e1c14c3007ca18950bf8f4c5a5c93">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002851<tr class="separator:ad95e1c14c3007ca18950bf8f4c5a5c93"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002852<tr class="memitem:a41c1523098580451b378f76b8c37a0f0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a41c1523098580451b378f76b8c37a0f0">adjust_down</a> (int required, int available, int step)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002853<tr class="memdesc:a41c1523098580451b378f76b8c37a0f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrease <code>required</code> in steps of <code>step</code> until it's less than <code>available</code>. <a href="#a41c1523098580451b378f76b8c37a0f0">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002854<tr class="separator:a41c1523098580451b378f76b8c37a0f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2855<tr class="memitem:ab16fcfbfc3ee6dbc0c112f0bc9b3d9c2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab16fcfbfc3ee6dbc0c112f0bc9b3d9c2">adjust_up</a> (int required, int available, int step)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002856<tr class="memdesc:ab16fcfbfc3ee6dbc0c112f0bc9b3d9c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increase <code>required</code> in steps of <code>step</code> until it's greater than <code>available</code>. <a href="#ab16fcfbfc3ee6dbc0c112f0bc9b3d9c2">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002857<tr class="separator:ab16fcfbfc3ee6dbc0c112f0bc9b3d9c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002858<tr class="memitem:a5e28a3911204ac952601f512c82b48f1"><td class="memItemLeft" align="right" valign="top">int32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5e28a3911204ac952601f512c82b48f1">rounding_divide_by_pow2</a> (int32x4_t x, int exponent)</td></tr>
2859<tr class="memdesc:a5e28a3911204ac952601f512c82b48f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Round to the nearest division by a power-of-two using exponent. <a href="#a5e28a3911204ac952601f512c82b48f1">More...</a><br /></td></tr>
2860<tr class="separator:a5e28a3911204ac952601f512c82b48f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
2861<tr class="memitem:aba8de9eaa10a7cb45c5aa603585d0e4c"><td class="memItemLeft" align="right" valign="top">uint8x16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aba8de9eaa10a7cb45c5aa603585d0e4c">vmlaq_qasymm8</a> (<a class="el" href="namespacearm__compute.xhtml#ac7e1832b8c58f07a98fc8d390b16ac27">qasymm8x16_t</a> vd, float32x4_t vs, float32x4_t vo)</td></tr>
2862<tr class="memdesc:aba8de9eaa10a7cb45c5aa603585d0e4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a multiply-accumulate on all 16 components of a QASYMM8 vector. <a href="#aba8de9eaa10a7cb45c5aa603585d0e4c">More...</a><br /></td></tr>
2863<tr class="separator:aba8de9eaa10a7cb45c5aa603585d0e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00002864<tr class="memitem:a695a8105065167f7e4596d31f23a3573"><td class="memTemplParams" colspan="2">template&lt;bool is_bounded_relu&gt; </td></tr>
2865<tr class="memitem:a695a8105065167f7e4596d31f23a3573"><td class="memTemplItemLeft" align="right" valign="top">uint8x16_t&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a695a8105065167f7e4596d31f23a3573">finalize_quantization</a> (int32x4x4_t &amp;in_s32, int result_fixedpoint_multiplier, int32_t result_shift, int32x4_t result_offset_after_shift_s32, uint8x16_t min_u8, uint8x16_t max_u8)</td></tr>
2866<tr class="memdesc:a695a8105065167f7e4596d31f23a3573"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs final quantization step on 16 elements. <a href="#a695a8105065167f7e4596d31f23a3573">More...</a><br /></td></tr>
2867<tr class="separator:a695a8105065167f7e4596d31f23a3573"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002868<tr class="memitem:a93cc303c8ae098d264f07d37890412de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a93cc303c8ae098d264f07d37890412de">colorconvert_rgb_to_rgbx</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2869<tr class="separator:a93cc303c8ae098d264f07d37890412de"><td class="memSeparator" colspan="2">&#160;</td></tr>
2870<tr class="memitem:acf7451c0d0f8a4b1cfbb60d7531a43aa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#acf7451c0d0f8a4b1cfbb60d7531a43aa">colorconvert_rgbx_to_rgb</a> (const void *input, void *output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2871<tr class="separator:acf7451c0d0f8a4b1cfbb60d7531a43aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
2872<tr class="memitem:a3c22c0d3494660b72b4fc04fec76f92d"><td class="memTemplParams" colspan="2">template&lt;bool yuyv, bool alpha&gt; </td></tr>
2873<tr class="memitem:a3c22c0d3494660b72b4fc04fec76f92d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3c22c0d3494660b72b4fc04fec76f92d">colorconvert_yuyv_to_rgb</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2874<tr class="separator:a3c22c0d3494660b72b4fc04fec76f92d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2875<tr class="memitem:ae6a44e412bccc0705a720708b0692218"><td class="memTemplParams" colspan="2">template&lt;bool uv, bool alpha&gt; </td></tr>
2876<tr class="memitem:ae6a44e412bccc0705a720708b0692218"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae6a44e412bccc0705a720708b0692218">colorconvert_nv12_to_rgb</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2877<tr class="separator:ae6a44e412bccc0705a720708b0692218"><td class="memSeparator" colspan="2">&#160;</td></tr>
2878<tr class="memitem:a6e42fac1baa264b033ac430b63ebd145"><td class="memTemplParams" colspan="2">template&lt;bool alpha&gt; </td></tr>
2879<tr class="memitem:a6e42fac1baa264b033ac430b63ebd145"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6e42fac1baa264b033ac430b63ebd145">colorconvert_iyuv_to_rgb</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2880<tr class="separator:a6e42fac1baa264b033ac430b63ebd145"><td class="memSeparator" colspan="2">&#160;</td></tr>
2881<tr class="memitem:a8ee13904a3f5ba84b28cb53d956021d7"><td class="memTemplParams" colspan="2">template&lt;bool yuyv&gt; </td></tr>
2882<tr class="memitem:a8ee13904a3f5ba84b28cb53d956021d7"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8ee13904a3f5ba84b28cb53d956021d7">colorconvert_yuyv_to_nv12</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2883<tr class="separator:a8ee13904a3f5ba84b28cb53d956021d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
2884<tr class="memitem:af2be1325decaa34a8a1199af177148c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af2be1325decaa34a8a1199af177148c6">colorconvert_iyuv_to_nv12</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2885<tr class="separator:af2be1325decaa34a8a1199af177148c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2886<tr class="memitem:a199d36780fbb4a70168f290480673650"><td class="memTemplParams" colspan="2">template&lt;bool uv&gt; </td></tr>
2887<tr class="memitem:a199d36780fbb4a70168f290480673650"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a199d36780fbb4a70168f290480673650">colorconvert_nv12_to_iyuv</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2888<tr class="separator:a199d36780fbb4a70168f290480673650"><td class="memSeparator" colspan="2">&#160;</td></tr>
2889<tr class="memitem:ae43e8f0463c0289169025c3041688d36"><td class="memTemplParams" colspan="2">template&lt;bool yuyv&gt; </td></tr>
2890<tr class="memitem:ae43e8f0463c0289169025c3041688d36"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae43e8f0463c0289169025c3041688d36">colorconvert_yuyv_to_iyuv</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2891<tr class="separator:ae43e8f0463c0289169025c3041688d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
2892<tr class="memitem:a587a54c85dcc72838b8f4b5575ebafe4"><td class="memTemplParams" colspan="2">template&lt;bool uv&gt; </td></tr>
2893<tr class="memitem:a587a54c85dcc72838b8f4b5575ebafe4"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a587a54c85dcc72838b8f4b5575ebafe4">colorconvert_nv12_to_yuv4</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2894<tr class="separator:a587a54c85dcc72838b8f4b5575ebafe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
2895<tr class="memitem:a08e9d88293a5cef787bb324c2dc0a6bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a08e9d88293a5cef787bb324c2dc0a6bf">colorconvert_iyuv_to_yuv4</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2896<tr class="separator:a08e9d88293a5cef787bb324c2dc0a6bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
2897<tr class="memitem:a14fd899b732509e245976b9967b8931d"><td class="memTemplParams" colspan="2">template&lt;bool alpha&gt; </td></tr>
2898<tr class="memitem:a14fd899b732509e245976b9967b8931d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a14fd899b732509e245976b9967b8931d">colorconvert_rgb_to_nv12</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2899<tr class="separator:a14fd899b732509e245976b9967b8931d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2900<tr class="memitem:a49b7a8e217ba7aad821fdeaab86bad53"><td class="memTemplParams" colspan="2">template&lt;bool alpha&gt; </td></tr>
2901<tr class="memitem:a49b7a8e217ba7aad821fdeaab86bad53"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a49b7a8e217ba7aad821fdeaab86bad53">colorconvert_rgb_to_iyuv</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2902<tr class="separator:a49b7a8e217ba7aad821fdeaab86bad53"><td class="memSeparator" colspan="2">&#160;</td></tr>
2903<tr class="memitem:ad304c0b0a72ed3f65c24fa69ab3cd53e"><td class="memTemplParams" colspan="2">template&lt;bool alpha&gt; </td></tr>
2904<tr class="memitem:ad304c0b0a72ed3f65c24fa69ab3cd53e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad304c0b0a72ed3f65c24fa69ab3cd53e">colorconvert_rgb_to_yuv4</a> (const void *__restrict input, void *__restrict output, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
2905<tr class="separator:ad304c0b0a72ed3f65c24fa69ab3cd53e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002906<tr class="memitem:a85ff7d135f7aa13359bd575139ba14dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a85ff7d135f7aa13359bd575139ba14dd">vget_low_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002907<tr class="memdesc:a85ff7d135f7aa13359bd575139ba14dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the lower half of a 16 elements vector. <a href="#a85ff7d135f7aa13359bd575139ba14dd">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002908<tr class="separator:a85ff7d135f7aa13359bd575139ba14dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002909<tr class="memitem:ae895c5b470fcf069afd626bb36c63e3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002910<tr class="memdesc:ae895c5b470fcf069afd626bb36c63e3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the lower half of a 16 elements vector. <a href="#ae895c5b470fcf069afd626bb36c63e3d">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002911<tr class="separator:ae895c5b470fcf069afd626bb36c63e3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002912<tr class="memitem:ab93c92d0f3228809b6a4bfaa24eb4924"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab93c92d0f3228809b6a4bfaa24eb4924">vget_high_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002913<tr class="memdesc:ab93c92d0f3228809b6a4bfaa24eb4924"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the higher half of a 16 elements vector. <a href="#ab93c92d0f3228809b6a4bfaa24eb4924">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002914<tr class="separator:ab93c92d0f3228809b6a4bfaa24eb4924"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002915<tr class="memitem:ac2edef8bf07bce91b37aa02b952b8ed6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002916<tr class="memdesc:ac2edef8bf07bce91b37aa02b952b8ed6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the higher half of a 16 elements vector. <a href="#ac2edef8bf07bce91b37aa02b952b8ed6">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002917<tr class="separator:ac2edef8bf07bce91b37aa02b952b8ed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002918<tr class="memitem:a77ef79482edac98140bbdfaeffb78b8f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a77ef79482edac98140bbdfaeffb78b8f">vld1_qs8</a> (const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *addr)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002919<tr class="memdesc:a77ef79482edac98140bbdfaeffb78b8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a single 8 bit fixed point vector from memory (8 elements) <a href="#a77ef79482edac98140bbdfaeffb78b8f">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002920<tr class="separator:a77ef79482edac98140bbdfaeffb78b8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002921<tr class="memitem:a1470ca9d692f773f33ddbd9b3a37f1f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1470ca9d692f773f33ddbd9b3a37f1f9">vld1_qs16</a> (const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *addr)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002922<tr class="memdesc:a1470ca9d692f773f33ddbd9b3a37f1f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a single 16 bit fixed point vector from memory (4 elements) <a href="#a1470ca9d692f773f33ddbd9b3a37f1f9">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002923<tr class="separator:a1470ca9d692f773f33ddbd9b3a37f1f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002924<tr class="memitem:aba22755f7d41ffc62e23e5594751ecaa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aba22755f7d41ffc62e23e5594751ecaa">vld1q_qs8</a> (const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *addr)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002925<tr class="memdesc:aba22755f7d41ffc62e23e5594751ecaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a single 8 bit fixed point vector from memory (16 elements) <a href="#aba22755f7d41ffc62e23e5594751ecaa">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002926<tr class="separator:aba22755f7d41ffc62e23e5594751ecaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002927<tr class="memitem:aaa2cfaf59eb25ffb975bea87844e23c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aaa2cfaf59eb25ffb975bea87844e23c6">vld1q_qs16</a> (const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *addr)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002928<tr class="memdesc:aaa2cfaf59eb25ffb975bea87844e23c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a single 16 bit fixed point vector from memory (8 elements) <a href="#aaa2cfaf59eb25ffb975bea87844e23c6">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002929<tr class="separator:aaa2cfaf59eb25ffb975bea87844e23c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2930<tr class="memitem:ada853a8e19c80626633d95392d2b4a8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ada853a8e19c80626633d95392d2b4a8b">vld1_dup_qs8</a> (const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *addr)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002931<tr class="memdesc:ada853a8e19c80626633d95392d2b4a8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load all lanes of 8 bit fixed point vector with same value from memory (8 elements) <a href="#ada853a8e19c80626633d95392d2b4a8b">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002932<tr class="separator:ada853a8e19c80626633d95392d2b4a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002933<tr class="memitem:a4cd20897bfcf3b38125c1b1cd3642d2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4cd20897bfcf3b38125c1b1cd3642d2f">vld1_dup_qs16</a> (const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *addr)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002934<tr class="memdesc:a4cd20897bfcf3b38125c1b1cd3642d2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load all lanes of 16 bit fixed point vector with same value from memory (4 elements) <a href="#a4cd20897bfcf3b38125c1b1cd3642d2f">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002935<tr class="separator:a4cd20897bfcf3b38125c1b1cd3642d2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002936<tr class="memitem:ad988b528a38525b8ceca56ed8d09c801"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad988b528a38525b8ceca56ed8d09c801">vld1q_dup_qs8</a> (const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *addr)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002937<tr class="memdesc:ad988b528a38525b8ceca56ed8d09c801"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load all lanes of 8 bit fixed point vector with same value from memory (16 elements) <a href="#ad988b528a38525b8ceca56ed8d09c801">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002938<tr class="separator:ad988b528a38525b8ceca56ed8d09c801"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002939<tr class="memitem:aa3b4b5dc205a2edb9dd2f08b0dbbf3e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa3b4b5dc205a2edb9dd2f08b0dbbf3e7">vld1q_dup_qs16</a> (const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *addr)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002940<tr class="memdesc:aa3b4b5dc205a2edb9dd2f08b0dbbf3e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load all lanes of 16 bit fixed point vector with same value from memory (8 elements) <a href="#aa3b4b5dc205a2edb9dd2f08b0dbbf3e7">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002941<tr class="separator:aa3b4b5dc205a2edb9dd2f08b0dbbf3e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
2942<tr class="memitem:a8bab58697ee7d7df117384a05d4e2f92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a3c4099e91913f28017e1f57b8e5cbf9f">qint16x8x2_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8bab58697ee7d7df117384a05d4e2f92">vld2q_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *addr)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002943<tr class="memdesc:a8bab58697ee7d7df117384a05d4e2f92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load two 16 bit fixed point vectors from memory (8x2 elements) <a href="#a8bab58697ee7d7df117384a05d4e2f92">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002944<tr class="separator:a8bab58697ee7d7df117384a05d4e2f92"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002945<tr class="memitem:a509f3f9d910651d71d9f7dc3b5b3b92a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a509f3f9d910651d71d9f7dc3b5b3b92a">vst1_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *addr, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002946<tr class="memdesc:a509f3f9d910651d71d9f7dc3b5b3b92a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a single 8 bit fixed point vector to memory (8 elements) <a href="#a509f3f9d910651d71d9f7dc3b5b3b92a">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002947<tr class="separator:a509f3f9d910651d71d9f7dc3b5b3b92a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002948<tr class="memitem:a1d54a1ef0078902b2334d2fddba74ca6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1d54a1ef0078902b2334d2fddba74ca6">vst1_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *addr, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002949<tr class="memdesc:a1d54a1ef0078902b2334d2fddba74ca6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a single 16 bit fixed point vector to memory (4 elements) <a href="#a1d54a1ef0078902b2334d2fddba74ca6">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002950<tr class="separator:a1d54a1ef0078902b2334d2fddba74ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002951<tr class="memitem:acf4cb0bc89b25c5fac96935d040207f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#acf4cb0bc89b25c5fac96935d040207f6">vst1q_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *addr, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002952<tr class="memdesc:acf4cb0bc89b25c5fac96935d040207f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a single 8 bit fixed point vector to memory (16 elements) <a href="#acf4cb0bc89b25c5fac96935d040207f6">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002953<tr class="separator:acf4cb0bc89b25c5fac96935d040207f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002954<tr class="memitem:a8bb5f297efd64b941f5022ea3cd7ee9a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8bb5f297efd64b941f5022ea3cd7ee9a">vst1q_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *addr, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002955<tr class="memdesc:a8bb5f297efd64b941f5022ea3cd7ee9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a single 16 bit fixed point vector to memory (8 elements) <a href="#a8bb5f297efd64b941f5022ea3cd7ee9a">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002956<tr class="separator:a8bb5f297efd64b941f5022ea3cd7ee9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002957<tr class="memitem:a22c6d123d670e84d939d5b887976328d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a22c6d123d670e84d939d5b887976328d">vst2q_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *addr, <a class="el" href="namespacearm__compute.xhtml#a3c4099e91913f28017e1f57b8e5cbf9f">qint16x8x2_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002958<tr class="memdesc:a22c6d123d670e84d939d5b887976328d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store two 16 bit fixed point vector to memory (8x2 elements) <a href="#a22c6d123d670e84d939d5b887976328d">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002959<tr class="separator:a22c6d123d670e84d939d5b887976328d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002960<tr class="memitem:a92c2d0b9a8eeb3ab04a39a25fef2b6c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a92c2d0b9a8eeb3ab04a39a25fef2b6c3">vqmovn_q16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002961<tr class="memdesc:a92c2d0b9a8eeb3ab04a39a25fef2b6c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating narrow (8 elements) <a href="#a92c2d0b9a8eeb3ab04a39a25fef2b6c3">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002962<tr class="separator:a92c2d0b9a8eeb3ab04a39a25fef2b6c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002963<tr class="memitem:a12e7578c32321d2362114563881153ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a12e7578c32321d2362114563881153ee">vqmovn_q32</a> (<a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002964<tr class="memdesc:a12e7578c32321d2362114563881153ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit fixed point vector saturating narrow (4 elements) <a href="#a12e7578c32321d2362114563881153ee">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002965<tr class="separator:a12e7578c32321d2362114563881153ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002966<tr class="memitem:a1a226812e3cfdf3494adbdd92d4a1cb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1a226812e3cfdf3494adbdd92d4a1cb3">vdup_n_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002967<tr class="memdesc:a1a226812e3cfdf3494adbdd92d4a1cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector duplicate (8 elements) <a href="#a1a226812e3cfdf3494adbdd92d4a1cb3">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002968<tr class="separator:a1a226812e3cfdf3494adbdd92d4a1cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002969<tr class="memitem:a1f6c3965dec29d8ac84ff84a164e9d8e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1f6c3965dec29d8ac84ff84a164e9d8e">vdup_n_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002970<tr class="memdesc:a1f6c3965dec29d8ac84ff84a164e9d8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector duplicate (4 elements) <a href="#a1f6c3965dec29d8ac84ff84a164e9d8e">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002971<tr class="separator:a1f6c3965dec29d8ac84ff84a164e9d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002972<tr class="memitem:adbd4df93ed00fcda54f91e669ea2be04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adbd4df93ed00fcda54f91e669ea2be04">vdupq_n_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002973<tr class="memdesc:adbd4df93ed00fcda54f91e669ea2be04"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector duplicate (16 elements) <a href="#adbd4df93ed00fcda54f91e669ea2be04">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002974<tr class="separator:adbd4df93ed00fcda54f91e669ea2be04"><td class="memSeparator" colspan="2">&#160;</td></tr>
2975<tr class="memitem:ab20e66231de6c259952534de39214784"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab20e66231de6c259952534de39214784">vdupq_n_qs8_f32</a> (float a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002976<tr class="memdesc:ab20e66231de6c259952534de39214784"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a float and convert it to 8 bit fixed point vector (16 elements) <a href="#ab20e66231de6c259952534de39214784">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002977<tr class="separator:ab20e66231de6c259952534de39214784"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002978<tr class="memitem:a2b3337b650277502ad64d8ba55f9b8b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2b3337b650277502ad64d8ba55f9b8b2">vdupq_n_qs16_f32</a> (float a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002979<tr class="memdesc:a2b3337b650277502ad64d8ba55f9b8b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a float and convert it to 16 bit fixed point vector (8 elements) <a href="#a2b3337b650277502ad64d8ba55f9b8b2">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002980<tr class="separator:a2b3337b650277502ad64d8ba55f9b8b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002981<tr class="memitem:a740436aed8843612da747f40ff926875"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a740436aed8843612da747f40ff926875">vdupq_n_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002982<tr class="memdesc:a740436aed8843612da747f40ff926875"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector duplicate (8 elements) <a href="#a740436aed8843612da747f40ff926875">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002983<tr class="separator:a740436aed8843612da747f40ff926875"><td class="memSeparator" colspan="2">&#160;</td></tr>
2984<tr class="memitem:ab62f4e080614df358423180767cffefd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab62f4e080614df358423180767cffefd">vabs_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002985<tr class="memdesc:ab62f4e080614df358423180767cffefd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute value of 8 bit fixed point vector (8 elements) <a href="#ab62f4e080614df358423180767cffefd">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002986<tr class="separator:ab62f4e080614df358423180767cffefd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002987<tr class="memitem:a5344249fe56e2a6cf0b7336c069cb846"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5344249fe56e2a6cf0b7336c069cb846">vabs_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002988<tr class="memdesc:a5344249fe56e2a6cf0b7336c069cb846"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute value of 16 bit fixed point vector (4 elements) <a href="#a5344249fe56e2a6cf0b7336c069cb846">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002989<tr class="separator:a5344249fe56e2a6cf0b7336c069cb846"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002990<tr class="memitem:a3e4c45da2bef323158955d7c3b9d148d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3e4c45da2bef323158955d7c3b9d148d">vabsq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002991<tr class="memdesc:a3e4c45da2bef323158955d7c3b9d148d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute value of 8 bit fixed point vector (16 elements) <a href="#a3e4c45da2bef323158955d7c3b9d148d">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002992<tr class="separator:a3e4c45da2bef323158955d7c3b9d148d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002993<tr class="memitem:a15cf61eaeb7d9b008f262936f6f4cca8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a15cf61eaeb7d9b008f262936f6f4cca8">vabsq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002994<tr class="memdesc:a15cf61eaeb7d9b008f262936f6f4cca8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute value of 16 bit fixed point vector (8 elements) <a href="#a15cf61eaeb7d9b008f262936f6f4cca8">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002995<tr class="separator:a15cf61eaeb7d9b008f262936f6f4cca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002996<tr class="memitem:a4b2c9440d5fa4909ae909869877f39e3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4b2c9440d5fa4909ae909869877f39e3">vqabs_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002997<tr class="memdesc:a4b2c9440d5fa4909ae909869877f39e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saturating absolute value of 8 bit fixed point vector (8 elements) <a href="#a4b2c9440d5fa4909ae909869877f39e3">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002998<tr class="separator:a4b2c9440d5fa4909ae909869877f39e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01002999<tr class="memitem:a7c97511a35de87be34f48b4ab4b3c222"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7c97511a35de87be34f48b4ab4b3c222">vqabs_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003000<tr class="memdesc:a7c97511a35de87be34f48b4ab4b3c222"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saturating absolute value of 16 bit fixed point vector (4 elements) <a href="#a7c97511a35de87be34f48b4ab4b3c222">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003001<tr class="separator:a7c97511a35de87be34f48b4ab4b3c222"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003002<tr class="memitem:ac8095edd652a1f3a76bf9d0f4251827a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac8095edd652a1f3a76bf9d0f4251827a">vqabsq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003003<tr class="memdesc:ac8095edd652a1f3a76bf9d0f4251827a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saturating absolute value of 8 bit fixed point vector (16 elements) <a href="#ac8095edd652a1f3a76bf9d0f4251827a">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003004<tr class="separator:ac8095edd652a1f3a76bf9d0f4251827a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003005<tr class="memitem:aa001ed913705cf378d947052435917aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa001ed913705cf378d947052435917aa">vqabsq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003006<tr class="memdesc:aa001ed913705cf378d947052435917aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saturating absolute value of 16 bit fixed point vector (8 elements) <a href="#aa001ed913705cf378d947052435917aa">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003007<tr class="separator:aa001ed913705cf378d947052435917aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003008<tr class="memitem:a3e913e95e286244f24f9a381909c8b26"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3e913e95e286244f24f9a381909c8b26">vmax_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003009<tr class="memdesc:a3e913e95e286244f24f9a381909c8b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector max (8 elements) <a href="#a3e913e95e286244f24f9a381909c8b26">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003010<tr class="separator:a3e913e95e286244f24f9a381909c8b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003011<tr class="memitem:a5db8c0cf0dba918904733f0c9a8bedc8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5db8c0cf0dba918904733f0c9a8bedc8">vmax_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003012<tr class="memdesc:a5db8c0cf0dba918904733f0c9a8bedc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector max (4 elements) <a href="#a5db8c0cf0dba918904733f0c9a8bedc8">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003013<tr class="separator:a5db8c0cf0dba918904733f0c9a8bedc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003014<tr class="memitem:a1627f818fb2ca90f7c3880f959030556"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1627f818fb2ca90f7c3880f959030556">vmaxq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003015<tr class="memdesc:a1627f818fb2ca90f7c3880f959030556"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector max (16 elements) <a href="#a1627f818fb2ca90f7c3880f959030556">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003016<tr class="separator:a1627f818fb2ca90f7c3880f959030556"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003017<tr class="memitem:a952d1f0a7f47167985554aed39b737ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a952d1f0a7f47167985554aed39b737ac">vmaxq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003018<tr class="memdesc:a952d1f0a7f47167985554aed39b737ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector max (8 elements) <a href="#a952d1f0a7f47167985554aed39b737ac">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003019<tr class="separator:a952d1f0a7f47167985554aed39b737ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003020<tr class="memitem:a1ecd37cd4eb461a98ca7c429e51802d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1ecd37cd4eb461a98ca7c429e51802d2">vpmax_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003021<tr class="memdesc:a1ecd37cd4eb461a98ca7c429e51802d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector pairwise max (8 elements) <a href="#a1ecd37cd4eb461a98ca7c429e51802d2">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003022<tr class="separator:a1ecd37cd4eb461a98ca7c429e51802d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003023<tr class="memitem:a8ee6fe28466be3c48a70debe663b08d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8ee6fe28466be3c48a70debe663b08d4">vpmax_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003024<tr class="memdesc:a8ee6fe28466be3c48a70debe663b08d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector pairwise max (4 elements) <a href="#a8ee6fe28466be3c48a70debe663b08d4">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003025<tr class="separator:a8ee6fe28466be3c48a70debe663b08d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003026<tr class="memitem:abed4a7c95569e1fa72d0f8bfe5a50c84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abed4a7c95569e1fa72d0f8bfe5a50c84">vmin_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003027<tr class="memdesc:abed4a7c95569e1fa72d0f8bfe5a50c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector min (8 elements) <a href="#abed4a7c95569e1fa72d0f8bfe5a50c84">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003028<tr class="separator:abed4a7c95569e1fa72d0f8bfe5a50c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003029<tr class="memitem:ac0eb95618787b12b93aeb2f3f101dad2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac0eb95618787b12b93aeb2f3f101dad2">vmin_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003030<tr class="memdesc:ac0eb95618787b12b93aeb2f3f101dad2"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector min (4 elements) <a href="#ac0eb95618787b12b93aeb2f3f101dad2">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003031<tr class="separator:ac0eb95618787b12b93aeb2f3f101dad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003032<tr class="memitem:a3b393341c8500b469780137b3548f70b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3b393341c8500b469780137b3548f70b">vminq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003033<tr class="memdesc:a3b393341c8500b469780137b3548f70b"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector min (16 elements) <a href="#a3b393341c8500b469780137b3548f70b">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003034<tr class="separator:a3b393341c8500b469780137b3548f70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003035<tr class="memitem:a9724e1c56a877ce483c84420297dd638"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9724e1c56a877ce483c84420297dd638">vminq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003036<tr class="memdesc:a9724e1c56a877ce483c84420297dd638"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector min (8 elements) <a href="#a9724e1c56a877ce483c84420297dd638">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003037<tr class="separator:a9724e1c56a877ce483c84420297dd638"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003038<tr class="memitem:ad3f599d91685017d37e87d36170a5342"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad3f599d91685017d37e87d36170a5342">vpmin_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003039<tr class="memdesc:ad3f599d91685017d37e87d36170a5342"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector pairwise min (8 elements) <a href="#ad3f599d91685017d37e87d36170a5342">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003040<tr class="separator:ad3f599d91685017d37e87d36170a5342"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003041<tr class="memitem:a9d9d1279b08f3e79fd0cf019b79138f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9d9d1279b08f3e79fd0cf019b79138f9">vpmin_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003042<tr class="memdesc:a9d9d1279b08f3e79fd0cf019b79138f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector pairwise min (4 elements) <a href="#a9d9d1279b08f3e79fd0cf019b79138f9">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003043<tr class="separator:a9d9d1279b08f3e79fd0cf019b79138f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003044<tr class="memitem:ad91fc981c1b7b04a1975de3aefc6a4f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad91fc981c1b7b04a1975de3aefc6a4f7">vadd_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003045<tr class="memdesc:ad91fc981c1b7b04a1975de3aefc6a4f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector add (8 elements) <a href="#ad91fc981c1b7b04a1975de3aefc6a4f7">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003046<tr class="separator:ad91fc981c1b7b04a1975de3aefc6a4f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003047<tr class="memitem:ac28c9ffea6f2c962ec87f69d377faaeb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac28c9ffea6f2c962ec87f69d377faaeb">vadd_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003048<tr class="memdesc:ac28c9ffea6f2c962ec87f69d377faaeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector add (4 elements) <a href="#ac28c9ffea6f2c962ec87f69d377faaeb">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003049<tr class="separator:ac28c9ffea6f2c962ec87f69d377faaeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003050<tr class="memitem:a30eeb53208a2f67d4b0cf73a81b09467"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a30eeb53208a2f67d4b0cf73a81b09467">vaddq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003051<tr class="memdesc:a30eeb53208a2f67d4b0cf73a81b09467"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector add (16 elements) <a href="#a30eeb53208a2f67d4b0cf73a81b09467">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003052<tr class="separator:a30eeb53208a2f67d4b0cf73a81b09467"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003053<tr class="memitem:a2a84234e327a554d7ce7f97f269b6efc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2a84234e327a554d7ce7f97f269b6efc">vaddq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003054<tr class="memdesc:a2a84234e327a554d7ce7f97f269b6efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector add (8 elements) <a href="#a2a84234e327a554d7ce7f97f269b6efc">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003055<tr class="separator:a2a84234e327a554d7ce7f97f269b6efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003056<tr class="memitem:a8a14fe5fc71105c9bfebb28a58f06a52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8a14fe5fc71105c9bfebb28a58f06a52">vqadd_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003057<tr class="memdesc:a8a14fe5fc71105c9bfebb28a58f06a52"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating add (8 elements) <a href="#a8a14fe5fc71105c9bfebb28a58f06a52">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003058<tr class="separator:a8a14fe5fc71105c9bfebb28a58f06a52"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003059<tr class="memitem:ad80ab0f6b783c10e0488cb84a8812e8f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad80ab0f6b783c10e0488cb84a8812e8f">vqadd_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003060<tr class="memdesc:ad80ab0f6b783c10e0488cb84a8812e8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating add (4 elements) <a href="#ad80ab0f6b783c10e0488cb84a8812e8f">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003061<tr class="separator:ad80ab0f6b783c10e0488cb84a8812e8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003062<tr class="memitem:a9765c5ee2d3cc9e3ca983fd2f47ba916"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9765c5ee2d3cc9e3ca983fd2f47ba916">vqaddq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003063<tr class="memdesc:a9765c5ee2d3cc9e3ca983fd2f47ba916"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating add (16 elements) <a href="#a9765c5ee2d3cc9e3ca983fd2f47ba916">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003064<tr class="separator:a9765c5ee2d3cc9e3ca983fd2f47ba916"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003065<tr class="memitem:a9d88750b393cdfe6f5685107bb1d98f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9d88750b393cdfe6f5685107bb1d98f7">vqaddq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003066<tr class="memdesc:a9d88750b393cdfe6f5685107bb1d98f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating add (8 elements) <a href="#a9d88750b393cdfe6f5685107bb1d98f7">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003067<tr class="separator:a9d88750b393cdfe6f5685107bb1d98f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
3068<tr class="memitem:ac73b89ba44bae1df9a8998ad2a99996e"><td class="memItemLeft" align="right" valign="top">int16x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac73b89ba44bae1df9a8998ad2a99996e">vpaddl_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003069<tr class="memdesc:ac73b89ba44bae1df9a8998ad2a99996e"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating pairwise add (8 elements) <a href="#ac73b89ba44bae1df9a8998ad2a99996e">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003070<tr class="separator:ac73b89ba44bae1df9a8998ad2a99996e"><td class="memSeparator" colspan="2">&#160;</td></tr>
3071<tr class="memitem:a90c8ce2712bdb44fd58e3fa8b78bf6fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a90c8ce2712bdb44fd58e3fa8b78bf6fb">vsub_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003072<tr class="memdesc:a90c8ce2712bdb44fd58e3fa8b78bf6fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector subtraction (8 elements) <a href="#a90c8ce2712bdb44fd58e3fa8b78bf6fb">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003073<tr class="separator:a90c8ce2712bdb44fd58e3fa8b78bf6fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003074<tr class="memitem:a420a19dca7258dbae20af6d92dc62926"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a420a19dca7258dbae20af6d92dc62926">vsub_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003075<tr class="memdesc:a420a19dca7258dbae20af6d92dc62926"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector subtraction (4 elements) <a href="#a420a19dca7258dbae20af6d92dc62926">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003076<tr class="separator:a420a19dca7258dbae20af6d92dc62926"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003077<tr class="memitem:a1adda6690cbca8a996255e311e4762d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1adda6690cbca8a996255e311e4762d4">vsubq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003078<tr class="memdesc:a1adda6690cbca8a996255e311e4762d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector subtraction (16 elements) <a href="#a1adda6690cbca8a996255e311e4762d4">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003079<tr class="separator:a1adda6690cbca8a996255e311e4762d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003080<tr class="memitem:a43569be4a403f390486148701b424e8a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a43569be4a403f390486148701b424e8a">vsubq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003081<tr class="memdesc:a43569be4a403f390486148701b424e8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector subtraction (8 elements) <a href="#a43569be4a403f390486148701b424e8a">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003082<tr class="separator:a43569be4a403f390486148701b424e8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003083<tr class="memitem:a5b1437029acce06690a938e09f5a762a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5b1437029acce06690a938e09f5a762a">vqsub_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003084<tr class="memdesc:a5b1437029acce06690a938e09f5a762a"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating subtraction (8 elements) <a href="#a5b1437029acce06690a938e09f5a762a">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003085<tr class="separator:a5b1437029acce06690a938e09f5a762a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003086<tr class="memitem:a73a131b9775ce771a1a25607a83b0ca9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a73a131b9775ce771a1a25607a83b0ca9">vqsub_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003087<tr class="memdesc:a73a131b9775ce771a1a25607a83b0ca9"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating subtraction (4 elements) <a href="#a73a131b9775ce771a1a25607a83b0ca9">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003088<tr class="separator:a73a131b9775ce771a1a25607a83b0ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003089<tr class="memitem:ab2a6ce3d8239e49c81af1ebc617680b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab2a6ce3d8239e49c81af1ebc617680b4">vqsubq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003090<tr class="memdesc:ab2a6ce3d8239e49c81af1ebc617680b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating subtraction (16 elements) <a href="#ab2a6ce3d8239e49c81af1ebc617680b4">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003091<tr class="separator:ab2a6ce3d8239e49c81af1ebc617680b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003092<tr class="memitem:a9edb31327a1e06c730d5a09b14dcfeb9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9edb31327a1e06c730d5a09b14dcfeb9">vqsubq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003093<tr class="memdesc:a9edb31327a1e06c730d5a09b14dcfeb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating subtraction (8 elements) <a href="#a9edb31327a1e06c730d5a09b14dcfeb9">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003094<tr class="separator:a9edb31327a1e06c730d5a09b14dcfeb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003095<tr class="memitem:afccf1305c480f2338af8925bba6b54cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003096<tr class="memdesc:afccf1305c480f2338af8925bba6b54cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector multiply (8 elements) <a href="#afccf1305c480f2338af8925bba6b54cd">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003097<tr class="separator:afccf1305c480f2338af8925bba6b54cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003098<tr class="memitem:ac1b67e3283a1cae4d57b7f64137f5f5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003099<tr class="memdesc:ac1b67e3283a1cae4d57b7f64137f5f5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector multiply (4 elements) <a href="#ac1b67e3283a1cae4d57b7f64137f5f5c">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003100<tr class="separator:ac1b67e3283a1cae4d57b7f64137f5f5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003101<tr class="memitem:a031b17d4102856aa4d6bf7ebf83bf0ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003102<tr class="memdesc:a031b17d4102856aa4d6bf7ebf83bf0ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector multiply (16 elements) <a href="#a031b17d4102856aa4d6bf7ebf83bf0ab">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003103<tr class="separator:a031b17d4102856aa4d6bf7ebf83bf0ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003104<tr class="memitem:a74ea79cda0ff6a819b2e5176fe0fc622"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003105<tr class="memdesc:a74ea79cda0ff6a819b2e5176fe0fc622"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector multiply (8 elements) <a href="#a74ea79cda0ff6a819b2e5176fe0fc622">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003106<tr class="separator:a74ea79cda0ff6a819b2e5176fe0fc622"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003107<tr class="memitem:a746205173d1a1f3955fa0c26b5be3b10"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003108<tr class="memdesc:a746205173d1a1f3955fa0c26b5be3b10"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating multiply (8 elements) <a href="#a746205173d1a1f3955fa0c26b5be3b10">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003109<tr class="separator:a746205173d1a1f3955fa0c26b5be3b10"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003110<tr class="memitem:aec34399f16d824f79571abe464556466"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003111<tr class="memdesc:aec34399f16d824f79571abe464556466"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating multiply (4 elements) <a href="#aec34399f16d824f79571abe464556466">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003112<tr class="separator:aec34399f16d824f79571abe464556466"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003113<tr class="memitem:a081c0605c83155125ad95a144a1d6071"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003114<tr class="memdesc:a081c0605c83155125ad95a144a1d6071"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating multiply (16 elements) <a href="#a081c0605c83155125ad95a144a1d6071">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003115<tr class="separator:a081c0605c83155125ad95a144a1d6071"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003116<tr class="memitem:a982d792d366430a954d96e8575d3c313"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003117<tr class="memdesc:a982d792d366430a954d96e8575d3c313"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating multiply (8 elements) <a href="#a982d792d366430a954d96e8575d3c313">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003118<tr class="separator:a982d792d366430a954d96e8575d3c313"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003119<tr class="memitem:a3e959a9add1078033f3a27725323df13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3e959a9add1078033f3a27725323df13">vmull_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003120<tr class="memdesc:a3e959a9add1078033f3a27725323df13"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector long multiply (8 elements) <a href="#a3e959a9add1078033f3a27725323df13">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003121<tr class="separator:a3e959a9add1078033f3a27725323df13"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003122<tr class="memitem:afce8b13d7a800aa8ac24733160130cfc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afce8b13d7a800aa8ac24733160130cfc">vmull_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003123<tr class="memdesc:afce8b13d7a800aa8ac24733160130cfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector long multiply (4 elements) <a href="#afce8b13d7a800aa8ac24733160130cfc">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003124<tr class="separator:afce8b13d7a800aa8ac24733160130cfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003125<tr class="memitem:a26fd8532b87adbcf27214504c38918e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a26fd8532b87adbcf27214504c38918e4">vmla_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003126<tr class="memdesc:a26fd8532b87adbcf27214504c38918e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector multiply-accumulate (8 elements). <a href="#a26fd8532b87adbcf27214504c38918e4">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003127<tr class="separator:a26fd8532b87adbcf27214504c38918e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003128<tr class="memitem:a274a6a8a684dd31dbd2a1ebef37b38db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a274a6a8a684dd31dbd2a1ebef37b38db">vmla_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003129<tr class="memdesc:a274a6a8a684dd31dbd2a1ebef37b38db"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector multiply-accumulate (4 elements). <a href="#a274a6a8a684dd31dbd2a1ebef37b38db">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003130<tr class="separator:a274a6a8a684dd31dbd2a1ebef37b38db"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003131<tr class="memitem:aca905840b37a91fff71e163aa619904c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aca905840b37a91fff71e163aa619904c">vmlaq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003132<tr class="memdesc:aca905840b37a91fff71e163aa619904c"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector multiply-accumulate (16 elements). <a href="#aca905840b37a91fff71e163aa619904c">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003133<tr class="separator:aca905840b37a91fff71e163aa619904c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003134<tr class="memitem:afac88503bedaf0d617729062991518d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afac88503bedaf0d617729062991518d7">vmlaq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003135<tr class="memdesc:afac88503bedaf0d617729062991518d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector multiply-accumulate (16 elements). <a href="#afac88503bedaf0d617729062991518d7">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003136<tr class="separator:afac88503bedaf0d617729062991518d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003137<tr class="memitem:ac6cb55578e8ff1f3c20aa50f2e728679"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac6cb55578e8ff1f3c20aa50f2e728679">vqmla_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003138<tr class="memdesc:ac6cb55578e8ff1f3c20aa50f2e728679"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating multiply-accumulate (8 elements). <a href="#ac6cb55578e8ff1f3c20aa50f2e728679">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003139<tr class="separator:ac6cb55578e8ff1f3c20aa50f2e728679"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003140<tr class="memitem:aa761736badde8e65c51952cc613be3b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa761736badde8e65c51952cc613be3b9">vqmla_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003141<tr class="memdesc:aa761736badde8e65c51952cc613be3b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating multiply-accumulate (4 elements). <a href="#aa761736badde8e65c51952cc613be3b9">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003142<tr class="separator:aa761736badde8e65c51952cc613be3b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003143<tr class="memitem:a037ac8df4a7e30a455a97218b88b67ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a037ac8df4a7e30a455a97218b88b67ad">vqmlaq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003144<tr class="memdesc:a037ac8df4a7e30a455a97218b88b67ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating multiply-accumulate (16 elements). <a href="#a037ac8df4a7e30a455a97218b88b67ad">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003145<tr class="separator:a037ac8df4a7e30a455a97218b88b67ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003146<tr class="memitem:aed829745c42ecd74cfff15bc92936ba5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aed829745c42ecd74cfff15bc92936ba5">vqmlaq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003147<tr class="memdesc:aed829745c42ecd74cfff15bc92936ba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating multiply-accumulate (8 elements). <a href="#aed829745c42ecd74cfff15bc92936ba5">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003148<tr class="separator:aed829745c42ecd74cfff15bc92936ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003149<tr class="memitem:a13873b51e98dcb41229ccf911e671693"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a13873b51e98dcb41229ccf911e671693">vmlal_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003150<tr class="memdesc:a13873b51e98dcb41229ccf911e671693"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector multiply-accumulate long (8 elements). <a href="#a13873b51e98dcb41229ccf911e671693">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003151<tr class="separator:a13873b51e98dcb41229ccf911e671693"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003152<tr class="memitem:ae236b9df08e568bb4b1dcc89896cff7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae236b9df08e568bb4b1dcc89896cff7e">vmlal_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003153<tr class="memdesc:ae236b9df08e568bb4b1dcc89896cff7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector multiply-accumulate long (4 elements). <a href="#ae236b9df08e568bb4b1dcc89896cff7e">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003154<tr class="separator:ae236b9df08e568bb4b1dcc89896cff7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003155<tr class="memitem:aedfa26202753ca9db96ae3bcb51b14b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aedfa26202753ca9db96ae3bcb51b14b0">vqmlal_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003156<tr class="memdesc:aedfa26202753ca9db96ae3bcb51b14b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point vector saturating multiply-accumulate long (8 elements). <a href="#aedfa26202753ca9db96ae3bcb51b14b0">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003157<tr class="separator:aedfa26202753ca9db96ae3bcb51b14b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003158<tr class="memitem:a71633dedee7ccca61420733d9fd24fae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a71633dedee7ccca61420733d9fd24fae">vqmlal_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> c, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003159<tr class="memdesc:a71633dedee7ccca61420733d9fd24fae"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit fixed point vector saturating multiply-accumulate long (4 elements). <a href="#a71633dedee7ccca61420733d9fd24fae">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003160<tr class="separator:a71633dedee7ccca61420733d9fd24fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
3161<tr class="memitem:a371a36182341de1fa885d16e8780302f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a371a36182341de1fa885d16e8780302f">vqcvt_qs8_f32</a> (const float32x4x2_t a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003162<tr class="memdesc:a371a36182341de1fa885d16e8780302f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a float vector with 4x2 elements to 8 bit fixed point vector with 8 elements. <a href="#a371a36182341de1fa885d16e8780302f">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003163<tr class="separator:a371a36182341de1fa885d16e8780302f"><td class="memSeparator" colspan="2">&#160;</td></tr>
3164<tr class="memitem:afbaee7c07c41b0138ee0f3aefecc6160"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afbaee7c07c41b0138ee0f3aefecc6160">vqcvt_qs16_f32</a> (const float32x4_t a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003165<tr class="memdesc:afbaee7c07c41b0138ee0f3aefecc6160"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a float vector with 4 elements to 16 bit fixed point vector with 4 elements. <a href="#afbaee7c07c41b0138ee0f3aefecc6160">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003166<tr class="separator:afbaee7c07c41b0138ee0f3aefecc6160"><td class="memSeparator" colspan="2">&#160;</td></tr>
3167<tr class="memitem:ad7eb7d308bb87e94eb693bc13eda5adc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad7eb7d308bb87e94eb693bc13eda5adc">vqcvtq_qs8_f32</a> (const float32x4x4_t &amp;a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003168<tr class="memdesc:ad7eb7d308bb87e94eb693bc13eda5adc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a float vector with 4x4 elements to 8 bit fixed point vector with 16 elements. <a href="#ad7eb7d308bb87e94eb693bc13eda5adc">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003169<tr class="separator:ad7eb7d308bb87e94eb693bc13eda5adc"><td class="memSeparator" colspan="2">&#160;</td></tr>
3170<tr class="memitem:afe99b690ec0046061f66f699fa055b47"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afe99b690ec0046061f66f699fa055b47">vqcvtq_qs16_f32</a> (const float32x4x2_t &amp;a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003171<tr class="memdesc:afe99b690ec0046061f66f699fa055b47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a float vector with 4x2 elements to 16 bit fixed point vector with 8 elements. <a href="#afe99b690ec0046061f66f699fa055b47">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003172<tr class="separator:afe99b690ec0046061f66f699fa055b47"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003173<tr class="memitem:a14a78befffd5c48b43554fdc28d654ff"><td class="memItemLeft" align="right" valign="top">float32x4x2_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a14a78befffd5c48b43554fdc28d654ff">vcvt_f32_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003174<tr class="memdesc:a14a78befffd5c48b43554fdc28d654ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a 8 bit fixed point vector with 8 elements to a float vector with 4x2 elements. <a href="#a14a78befffd5c48b43554fdc28d654ff">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003175<tr class="separator:a14a78befffd5c48b43554fdc28d654ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003176<tr class="memitem:a771203a3bf0d0df11dbf90f492525656"><td class="memItemLeft" align="right" valign="top">float32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a771203a3bf0d0df11dbf90f492525656">vcvt_f32_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003177<tr class="memdesc:a771203a3bf0d0df11dbf90f492525656"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a 16 bit fixed point vector with 4 elements to a float vector with 4 elements. <a href="#a771203a3bf0d0df11dbf90f492525656">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003178<tr class="separator:a771203a3bf0d0df11dbf90f492525656"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003179<tr class="memitem:a19e68f6a298ae587a491df52d6859350"><td class="memItemLeft" align="right" valign="top">float32x4x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a19e68f6a298ae587a491df52d6859350">vcvtq_qs8_f32</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003180<tr class="memdesc:a19e68f6a298ae587a491df52d6859350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a 8 bit fixed point vector with 16 elements to a float vector with 4x4 elements. <a href="#a19e68f6a298ae587a491df52d6859350">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003181<tr class="separator:a19e68f6a298ae587a491df52d6859350"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003182<tr class="memitem:a943abeff66faa34d1c2aeeab4ebfabdf"><td class="memItemLeft" align="right" valign="top">float32x4x2_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a943abeff66faa34d1c2aeeab4ebfabdf">vcvtq_qs16_f32</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003183<tr class="memdesc:a943abeff66faa34d1c2aeeab4ebfabdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a 16 bit fixed point vector with 8 elements to a float vector with 4x2 elements. <a href="#a943abeff66faa34d1c2aeeab4ebfabdf">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003184<tr class="separator:a943abeff66faa34d1c2aeeab4ebfabdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003185<tr class="memitem:aa24b270b0193ad8983dfecd6105c4936"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa24b270b0193ad8983dfecd6105c4936">vrecip_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003186<tr class="memdesc:aa24b270b0193ad8983dfecd6105c4936"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. <a href="#aa24b270b0193ad8983dfecd6105c4936">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003187<tr class="separator:aa24b270b0193ad8983dfecd6105c4936"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003188<tr class="memitem:a8e14017f1276f4a4e14078d93ed692bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8e14017f1276f4a4e14078d93ed692bd">vrecip_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003189<tr class="memdesc:a8e14017f1276f4a4e14078d93ed692bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. <a href="#a8e14017f1276f4a4e14078d93ed692bd">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003190<tr class="separator:a8e14017f1276f4a4e14078d93ed692bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003191<tr class="memitem:abbeb1dc4834fb4e97cf94d702d0e0f91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abbeb1dc4834fb4e97cf94d702d0e0f91">vrecipq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003192<tr class="memdesc:abbeb1dc4834fb4e97cf94d702d0e0f91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. <a href="#abbeb1dc4834fb4e97cf94d702d0e0f91">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003193<tr class="separator:abbeb1dc4834fb4e97cf94d702d0e0f91"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003194<tr class="memitem:aea1b943c0452ea124c9f8ac0d1315bed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aea1b943c0452ea124c9f8ac0d1315bed">vrecipq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003195<tr class="memdesc:aea1b943c0452ea124c9f8ac0d1315bed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. <a href="#aea1b943c0452ea124c9f8ac0d1315bed">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003196<tr class="separator:aea1b943c0452ea124c9f8ac0d1315bed"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003197<tr class="memitem:aeab4c6963804a85c9ea6c319f4e95a0b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aeab4c6963804a85c9ea6c319f4e95a0b">vdiv_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int8x8_t b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003198<tr class="memdesc:aeab4c6963804a85c9ea6c319f4e95a0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division fixed point 8bit (8 elements) <a href="#aeab4c6963804a85c9ea6c319f4e95a0b">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003199<tr class="separator:aeab4c6963804a85c9ea6c319f4e95a0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003200<tr class="memitem:aa65479f6532283c215e398735d0b3c22"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa65479f6532283c215e398735d0b3c22">vdiv_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003201<tr class="memdesc:aa65479f6532283c215e398735d0b3c22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division fixed point 16 bit (4 elements) <a href="#aa65479f6532283c215e398735d0b3c22">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003202<tr class="separator:aa65479f6532283c215e398735d0b3c22"><td class="memSeparator" colspan="2">&#160;</td></tr>
3203<tr class="memitem:ae589b6f4ada9d9cb81f70897d7991cd1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae589b6f4ada9d9cb81f70897d7991cd1">vdivq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003204<tr class="memdesc:ae589b6f4ada9d9cb81f70897d7991cd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division fixed point 8bit (16 elements) <a href="#ae589b6f4ada9d9cb81f70897d7991cd1">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003205<tr class="separator:ae589b6f4ada9d9cb81f70897d7991cd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
3206<tr class="memitem:a2c21a21a9004609887c0a6f5304faa2a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2c21a21a9004609887c0a6f5304faa2a">vdivq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003207<tr class="memdesc:a2c21a21a9004609887c0a6f5304faa2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division fixed point 16 bit (8 elements) <a href="#a2c21a21a9004609887c0a6f5304faa2a">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003208<tr class="separator:a2c21a21a9004609887c0a6f5304faa2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003209<tr class="memitem:a91b74be928419cd95068ccc9c6f1cd83"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
3210<tr class="memitem:a91b74be928419cd95068ccc9c6f1cd83"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a91b74be928419cd95068ccc9c6f1cd83">vtaylor_poly_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003211<tr class="memdesc:a91b74be928419cd95068ccc9c6f1cd83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a 4th degree polynomial approximation. <a href="#a91b74be928419cd95068ccc9c6f1cd83">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003212<tr class="separator:a91b74be928419cd95068ccc9c6f1cd83"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003213<tr class="memitem:ab6470f57e0d7659ea7823f13bb89724f"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
3214<tr class="memitem:ab6470f57e0d7659ea7823f13bb89724f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab6470f57e0d7659ea7823f13bb89724f">vtaylor_poly_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003215<tr class="memdesc:ab6470f57e0d7659ea7823f13bb89724f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a 4th degree polynomial approximation. <a href="#ab6470f57e0d7659ea7823f13bb89724f">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003216<tr class="separator:ab6470f57e0d7659ea7823f13bb89724f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003217<tr class="memitem:a9b9a80aab8862e344ef91591a0e6e199"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
3218<tr class="memitem:a9b9a80aab8862e344ef91591a0e6e199"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9b9a80aab8862e344ef91591a0e6e199">vtaylor_polyq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003219<tr class="memdesc:a9b9a80aab8862e344ef91591a0e6e199"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a 4th degree polynomial approximation. <a href="#a9b9a80aab8862e344ef91591a0e6e199">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003220<tr class="separator:a9b9a80aab8862e344ef91591a0e6e199"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003221<tr class="memitem:ac26478d3b59cae5c3efa4bf3819002fa"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
3222<tr class="memitem:ac26478d3b59cae5c3efa4bf3819002fa"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac26478d3b59cae5c3efa4bf3819002fa">vtaylor_polyq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003223<tr class="memdesc:ac26478d3b59cae5c3efa4bf3819002fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a 4th degree polynomial approximation. <a href="#ac26478d3b59cae5c3efa4bf3819002fa">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003224<tr class="separator:ac26478d3b59cae5c3efa4bf3819002fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003225<tr class="memitem:a635b41196d74b1f2c4d9ee9298444796"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a635b41196d74b1f2c4d9ee9298444796">vqexp_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003226<tr class="memdesc:a635b41196d74b1f2c4d9ee9298444796"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating exponential fixed point 8bit (8 elements) <a href="#a635b41196d74b1f2c4d9ee9298444796">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003227<tr class="separator:a635b41196d74b1f2c4d9ee9298444796"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003228<tr class="memitem:aa3c9489e850081532442f4da59515852"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa3c9489e850081532442f4da59515852">vqexp_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003229<tr class="memdesc:aa3c9489e850081532442f4da59515852"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating exponential fixed point 16 bit (4 elements) <a href="#aa3c9489e850081532442f4da59515852">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003230<tr class="separator:aa3c9489e850081532442f4da59515852"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003231<tr class="memitem:ae6cf1822b8fbad305677650a2b751247"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae6cf1822b8fbad305677650a2b751247">vqexpq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003232<tr class="memdesc:ae6cf1822b8fbad305677650a2b751247"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating exponential fixed point 8bit (16 elements) <a href="#ae6cf1822b8fbad305677650a2b751247">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003233<tr class="separator:ae6cf1822b8fbad305677650a2b751247"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003234<tr class="memitem:a5b5e085002cf5a69fb80e6991d0a4556"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5b5e085002cf5a69fb80e6991d0a4556">vqexpq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003235<tr class="memdesc:a5b5e085002cf5a69fb80e6991d0a4556"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating exponential fixed point 16 bit (8 elements) <a href="#a5b5e085002cf5a69fb80e6991d0a4556">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003236<tr class="separator:a5b5e085002cf5a69fb80e6991d0a4556"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003237<tr class="memitem:a475d617b2ee92ec39588e6d6e488471a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a475d617b2ee92ec39588e6d6e488471a">vlog_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003238<tr class="memdesc:a475d617b2ee92ec39588e6d6e488471a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate logarithm fixed point 8 bit (8 elements) <a href="#a475d617b2ee92ec39588e6d6e488471a">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003239<tr class="separator:a475d617b2ee92ec39588e6d6e488471a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003240<tr class="memitem:ad9e26d94cb0b929e30b88400cd5c60d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad9e26d94cb0b929e30b88400cd5c60d2">vlog_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003241<tr class="memdesc:ad9e26d94cb0b929e30b88400cd5c60d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate logarithm fixed point 16 bit (4 elements) <a href="#ad9e26d94cb0b929e30b88400cd5c60d2">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003242<tr class="separator:ad9e26d94cb0b929e30b88400cd5c60d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003243<tr class="memitem:a340b9cd5ad88f1a821498c6fad80e82c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a340b9cd5ad88f1a821498c6fad80e82c">vlogq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003244<tr class="memdesc:a340b9cd5ad88f1a821498c6fad80e82c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate logarithm fixed point 16bit (16 elements) <a href="#a340b9cd5ad88f1a821498c6fad80e82c">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003245<tr class="separator:a340b9cd5ad88f1a821498c6fad80e82c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003246<tr class="memitem:a756ac701185cfc4924443db164fd65ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a756ac701185cfc4924443db164fd65ae">vlogq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003247<tr class="memdesc:a756ac701185cfc4924443db164fd65ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate logarithm fixed point 16 bit (8 elements) <a href="#a756ac701185cfc4924443db164fd65ae">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003248<tr class="separator:a756ac701185cfc4924443db164fd65ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003249<tr class="memitem:ab7fbbbe8d980de582a73b5546b303b1f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab7fbbbe8d980de582a73b5546b303b1f">vinvsqrt_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003250<tr class="memdesc:ab7fbbbe8d980de582a73b5546b303b1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate inverse square root for fixed point 8bit using Newton-Raphosn method (8 elements) <a href="#ab7fbbbe8d980de582a73b5546b303b1f">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003251<tr class="separator:ab7fbbbe8d980de582a73b5546b303b1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003252<tr class="memitem:aed1eb26d2b6435ae9dba79558611b415"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aed1eb26d2b6435ae9dba79558611b415">vinvsqrt_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003253<tr class="memdesc:aed1eb26d2b6435ae9dba79558611b415"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate inverse square root for fixed point 16 bit using Newton-Raphosn method (4 elements) <a href="#aed1eb26d2b6435ae9dba79558611b415">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003254<tr class="separator:aed1eb26d2b6435ae9dba79558611b415"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003255<tr class="memitem:a5ddc3dc4b4ee6847fd96c6a8599e20e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5ddc3dc4b4ee6847fd96c6a8599e20e4">vqinvsqrt_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003256<tr class="memdesc:a5ddc3dc4b4ee6847fd96c6a8599e20e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating inverse square root for fixed point 8bit using Newton-Raphosn method (8 elements) <a href="#a5ddc3dc4b4ee6847fd96c6a8599e20e4">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003257<tr class="separator:a5ddc3dc4b4ee6847fd96c6a8599e20e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003258<tr class="memitem:a23041b440c544f24afd9b1e79a6d77df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a23041b440c544f24afd9b1e79a6d77df">vqinvsqrt_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003259<tr class="memdesc:a23041b440c544f24afd9b1e79a6d77df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating inverse square root for fixed point 16 bit using Newton-Raphosn method (4 elements) <a href="#a23041b440c544f24afd9b1e79a6d77df">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003260<tr class="separator:a23041b440c544f24afd9b1e79a6d77df"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003261<tr class="memitem:a4be9120d5c04e6aab0831095acd24534"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4be9120d5c04e6aab0831095acd24534">vinvsqrtq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003262<tr class="memdesc:a4be9120d5c04e6aab0831095acd24534"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate inverse square root for fixed point 8bit using Newton-Raphosn method (16 elements) <a href="#a4be9120d5c04e6aab0831095acd24534">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003263<tr class="separator:a4be9120d5c04e6aab0831095acd24534"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003264<tr class="memitem:a7ddffc87df07ac9782f4e498865c66d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7ddffc87df07ac9782f4e498865c66d4">vinvsqrtq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003265<tr class="memdesc:a7ddffc87df07ac9782f4e498865c66d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate inverse square root for fixed point 8bit using Newton-Raphosn method (8 elements) <a href="#a7ddffc87df07ac9782f4e498865c66d4">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003266<tr class="separator:a7ddffc87df07ac9782f4e498865c66d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003267<tr class="memitem:ad5d5110467053814882fb616c6cb855b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad5d5110467053814882fb616c6cb855b">vqinvsqrtq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003268<tr class="memdesc:ad5d5110467053814882fb616c6cb855b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating inverse square root for fixed point 8bit using Newton-Raphosn method (16 elements) <a href="#ad5d5110467053814882fb616c6cb855b">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003269<tr class="separator:ad5d5110467053814882fb616c6cb855b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003270<tr class="memitem:a74613d11a6b769ddcdd28d80fb8d74a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a74613d11a6b769ddcdd28d80fb8d74a8">vqinvsqrtq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003271<tr class="memdesc:a74613d11a6b769ddcdd28d80fb8d74a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating inverse square root for fixed point 16 bit using Newton-Raphosn method (8 elements) <a href="#a74613d11a6b769ddcdd28d80fb8d74a8">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003272<tr class="separator:a74613d11a6b769ddcdd28d80fb8d74a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
3273<tr class="memitem:a2b97d40b6d61e8453d755711fed30a38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2b97d40b6d61e8453d755711fed30a38">vqtanh_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003274<tr class="memdesc:a2b97d40b6d61e8453d755711fed30a38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate hyperbolic tangent for fixed point 8bit (8 elements) <a href="#a2b97d40b6d61e8453d755711fed30a38">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003275<tr class="separator:a2b97d40b6d61e8453d755711fed30a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
3276<tr class="memitem:a81b5a6029b604d0a1daf4d4ac63a56c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a81b5a6029b604d0a1daf4d4ac63a56c8">vqtanh_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003277<tr class="memdesc:a81b5a6029b604d0a1daf4d4ac63a56c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate hyperbolic tangent for fixed point 16 bit (4 elements) <a href="#a81b5a6029b604d0a1daf4d4ac63a56c8">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003278<tr class="separator:a81b5a6029b604d0a1daf4d4ac63a56c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
3279<tr class="memitem:a81ea8bde4e35ce63e8e10708bae0caea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a81ea8bde4e35ce63e8e10708bae0caea">vqtanhq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003280<tr class="memdesc:a81ea8bde4e35ce63e8e10708bae0caea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate hyperbolic tangent for fixed point 8bit (16 elements) <a href="#a81ea8bde4e35ce63e8e10708bae0caea">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003281<tr class="separator:a81ea8bde4e35ce63e8e10708bae0caea"><td class="memSeparator" colspan="2">&#160;</td></tr>
3282<tr class="memitem:ab9f9b779eb9bb6ecb730548a1e87da65"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab9f9b779eb9bb6ecb730548a1e87da65">vqtanhq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003283<tr class="memdesc:ab9f9b779eb9bb6ecb730548a1e87da65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate hyperbolic tangent for fixed point 16bit (8 elements) <a href="#ab9f9b779eb9bb6ecb730548a1e87da65">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003284<tr class="separator:ab9f9b779eb9bb6ecb730548a1e87da65"><td class="memSeparator" colspan="2">&#160;</td></tr>
3285<tr class="memitem:aa0061a2146587eea4a393ff14232d8fe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa0061a2146587eea4a393ff14232d8fe">vqpowq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003286<tr class="memdesc:aa0061a2146587eea4a393ff14232d8fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating n power for fixed point 8bit (16 elements). <a href="#aa0061a2146587eea4a393ff14232d8fe">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003287<tr class="separator:aa0061a2146587eea4a393ff14232d8fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
3288<tr class="memitem:ad705110ee89e7d32c319671b9b92e0ba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad705110ee89e7d32c319671b9b92e0ba">vqpowq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> b, int fixed_point_position)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003289<tr class="memdesc:ad705110ee89e7d32c319671b9b92e0ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating n power for fixed point 16bit (8 elements). <a href="#ad705110ee89e7d32c319671b9b92e0ba">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003290<tr class="separator:ad705110ee89e7d32c319671b9b92e0ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
3291<tr class="memitem:a4e6c2516e84e006167b046690d9a0c84"><td class="memItemLeft" align="right" valign="top">float32x4x2_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4e6c2516e84e006167b046690d9a0c84">vmax2q_f32</a> (float32x4x2_t a, float32x4x2_t b)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003292<tr class="memdesc:a4e6c2516e84e006167b046690d9a0c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute lane-by-lane maximum between elements of a float vector with 4x2 elements. <a href="#a4e6c2516e84e006167b046690d9a0c84">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003293<tr class="separator:a4e6c2516e84e006167b046690d9a0c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
3294<tr class="memitem:a1c9f2b26b64fd697fa1b22450521876d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a3c4099e91913f28017e1f57b8e5cbf9f">qint16x8x2_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1c9f2b26b64fd697fa1b22450521876d">vld2q_qs16</a> (const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *addr)</td></tr>
3295<tr class="separator:a1c9f2b26b64fd697fa1b22450521876d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003296<tr class="memitem:aa9a56a13e02fa346fcbe59257b2cef74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa9a56a13e02fa346fcbe59257b2cef74">vqmovn_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a)</td></tr>
3297<tr class="separator:aa9a56a13e02fa346fcbe59257b2cef74"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003298<tr class="memitem:acd99794ca54cbddbb4bda5d78d0caea7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#acd99794ca54cbddbb4bda5d78d0caea7">vqmovn_qs32</a> (<a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> a)</td></tr>
3299<tr class="separator:acd99794ca54cbddbb4bda5d78d0caea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003300<tr class="memitem:aed2fc8d1b9642b7625379a930ef4914a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aed2fc8d1b9642b7625379a930ef4914a">vdupq_n_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> a)</td></tr>
3301<tr class="separator:aed2fc8d1b9642b7625379a930ef4914a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003302<tr class="memitem:ada6db431017d7911b0647cfb7a8711de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ada6db431017d7911b0647cfb7a8711de">vdupq_n_qs32</a> (<a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> a)</td></tr>
3303<tr class="separator:ada6db431017d7911b0647cfb7a8711de"><td class="memSeparator" colspan="2">&#160;</td></tr>
3304<tr class="memitem:af4ce9287cfb7aef16f79a3152c3f3bbd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#addcffa8e8086154c0449c23e6b0dff83">qint32x2_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af4ce9287cfb7aef16f79a3152c3f3bbd">vqadd_qs32</a> (<a class="el" href="namespacearm__compute.xhtml#addcffa8e8086154c0449c23e6b0dff83">qint32x2_t</a> a, <a class="el" href="namespacearm__compute.xhtml#addcffa8e8086154c0449c23e6b0dff83">qint32x2_t</a> b)</td></tr>
3305<tr class="separator:af4ce9287cfb7aef16f79a3152c3f3bbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
3306<tr class="memitem:a4158859b4b6af057b01b2c2d745d66b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4158859b4b6af057b01b2c2d745d66b2">vqaddq_qs32</a> (<a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> a, <a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> b)</td></tr>
3307<tr class="separator:a4158859b4b6af057b01b2c2d745d66b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
3308<tr class="memitem:abc68ac054570316bfd48d4c4c84c3b0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abc68ac054570316bfd48d4c4c84c3b0e">vqcvt_qs8_f32</a> (const float32x4x2_t &amp;a, int fixed_point_position)</td></tr>
3309<tr class="separator:abc68ac054570316bfd48d4c4c84c3b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003310<tr class="memitem:ac18aedae4207e681f6f833281d2395a0"><td class="memItemLeft" align="right" valign="top">float32x4x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac18aedae4207e681f6f833281d2395a0">vcvtq_f32_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
3311<tr class="separator:ac18aedae4207e681f6f833281d2395a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003312<tr class="memitem:a81653ad507d968c3f760564c7949a86e"><td class="memItemLeft" align="right" valign="top">float32x4x2_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a81653ad507d968c3f760564c7949a86e">vcvtq_f32_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
3313<tr class="separator:a81653ad507d968c3f760564c7949a86e"><td class="memSeparator" colspan="2">&#160;</td></tr>
3314<tr class="memitem:a3e6537037711264ed5e8f33c8564c325"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3e6537037711264ed5e8f33c8564c325">vqrecip_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
3315<tr class="separator:a3e6537037711264ed5e8f33c8564c325"><td class="memSeparator" colspan="2">&#160;</td></tr>
3316<tr class="memitem:ada5b8019889d6b38b3cb64ccdd3731ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ada5b8019889d6b38b3cb64ccdd3731ca">vqrecip_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
3317<tr class="separator:ada5b8019889d6b38b3cb64ccdd3731ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003318<tr class="memitem:a3dd4382391c752128ab7b3a6dd68314b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3dd4382391c752128ab7b3a6dd68314b">vqrecipq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
3319<tr class="separator:a3dd4382391c752128ab7b3a6dd68314b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003320<tr class="memitem:a6a368d809128ff6bce989cda02c536d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6a368d809128ff6bce989cda02c536d8">vqrecipq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
3321<tr class="separator:a6a368d809128ff6bce989cda02c536d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
3322<tr class="memitem:a3de0bc67f9a2ef3bcfe922e50c3b5ec9"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
3323<tr class="memitem:a3de0bc67f9a2ef3bcfe922e50c3b5ec9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3de0bc67f9a2ef3bcfe922e50c3b5ec9">vqtaylor_poly_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
3324<tr class="separator:a3de0bc67f9a2ef3bcfe922e50c3b5ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
3325<tr class="memitem:af39bcc812b6e450e92622e0f30b37d92"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
3326<tr class="memitem:af39bcc812b6e450e92622e0f30b37d92"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af39bcc812b6e450e92622e0f30b37d92">vqtaylor_poly_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> a, int fixed_point_position)</td></tr>
3327<tr class="separator:af39bcc812b6e450e92622e0f30b37d92"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003328<tr class="memitem:aa754195778af2be8fd3c48192eb1e5b6"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
3329<tr class="memitem:aa754195778af2be8fd3c48192eb1e5b6"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa754195778af2be8fd3c48192eb1e5b6">vqtaylor_polyq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
3330<tr class="separator:aa754195778af2be8fd3c48192eb1e5b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003331<tr class="memitem:a080bc54b67bc7930ab173117baf1cd07"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
3332<tr class="memitem:a080bc54b67bc7930ab173117baf1cd07"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a080bc54b67bc7930ab173117baf1cd07">vqtaylor_polyq_qs16</a> (<a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> a, int fixed_point_position)</td></tr>
3333<tr class="separator:a080bc54b67bc7930ab173117baf1cd07"><td class="memSeparator" colspan="2">&#160;</td></tr>
3334<tr class="memitem:adb7ad6f2d80bafc0a8fb0c920909b9fb"><td class="memItemLeft" align="right" valign="top">float32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adb7ad6f2d80bafc0a8fb0c920909b9fb">vfloorq_f32</a> (float32x4_t val)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003335<tr class="memdesc:adb7ad6f2d80bafc0a8fb0c920909b9fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate floor of a vector. <a href="#adb7ad6f2d80bafc0a8fb0c920909b9fb">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003336<tr class="separator:adb7ad6f2d80bafc0a8fb0c920909b9fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
3337<tr class="memitem:a902d274ff1dbe2052b0f2364a98d2b41"><td class="memItemLeft" align="right" valign="top">float32x2_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a902d274ff1dbe2052b0f2364a98d2b41">vinvsqrt_f32</a> (float32x2_t x)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003338<tr class="memdesc:a902d274ff1dbe2052b0f2364a98d2b41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate inverse square root. <a href="#a902d274ff1dbe2052b0f2364a98d2b41">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003339<tr class="separator:a902d274ff1dbe2052b0f2364a98d2b41"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003340<tr class="memitem:a2e27db6b9692c4c2013653e276af654d"><td class="memItemLeft" align="right" valign="top">float32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2e27db6b9692c4c2013653e276af654d">vinvsqrtq_f32</a> (float32x4_t x)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003341<tr class="memdesc:a2e27db6b9692c4c2013653e276af654d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate inverse square root. <a href="#a2e27db6b9692c4c2013653e276af654d">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003342<tr class="separator:a2e27db6b9692c4c2013653e276af654d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003343<tr class="memitem:a7bb067c606cdc07805181688b9bee569"><td class="memItemLeft" align="right" valign="top">float32x2_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7bb067c606cdc07805181688b9bee569">vinv_f32</a> (float32x2_t x)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003344<tr class="memdesc:a7bb067c606cdc07805181688b9bee569"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate reciprocal. <a href="#a7bb067c606cdc07805181688b9bee569">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003345<tr class="separator:a7bb067c606cdc07805181688b9bee569"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003346<tr class="memitem:ac8f459d5899b79c00fb4042a5b3470fb"><td class="memItemLeft" align="right" valign="top">float32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac8f459d5899b79c00fb4042a5b3470fb">vinvq_f32</a> (float32x4_t x)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003347<tr class="memdesc:ac8f459d5899b79c00fb4042a5b3470fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate reciprocal. <a href="#ac8f459d5899b79c00fb4042a5b3470fb">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003348<tr class="separator:ac8f459d5899b79c00fb4042a5b3470fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
3349<tr class="memitem:a4fa76a98dce5ed1b655ff840f2ce6e57"><td class="memItemLeft" align="right" valign="top">float32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4fa76a98dce5ed1b655ff840f2ce6e57">vtaylor_polyq_f32</a> (float32x4_t x, const std::array&lt; float32x4_t, 8 &gt; &amp;coeffs)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003350<tr class="memdesc:a4fa76a98dce5ed1b655ff840f2ce6e57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a 7th degree polynomial approximation using Estrin's method. <a href="#a4fa76a98dce5ed1b655ff840f2ce6e57">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003351<tr class="separator:a4fa76a98dce5ed1b655ff840f2ce6e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
3352<tr class="memitem:ade3ef16de304661943c900ac9a47d28f"><td class="memItemLeft" align="right" valign="top">float32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ade3ef16de304661943c900ac9a47d28f">vexpq_f32</a> (float32x4_t x)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003353<tr class="memdesc:ade3ef16de304661943c900ac9a47d28f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate exponential. <a href="#ade3ef16de304661943c900ac9a47d28f">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003354<tr class="separator:ade3ef16de304661943c900ac9a47d28f"><td class="memSeparator" colspan="2">&#160;</td></tr>
3355<tr class="memitem:a37a3e03a22ad160a2e9e5c133607e020"><td class="memItemLeft" align="right" valign="top">float32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a37a3e03a22ad160a2e9e5c133607e020">vlogq_f32</a> (float32x4_t x)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003356<tr class="memdesc:a37a3e03a22ad160a2e9e5c133607e020"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate logarithm. <a href="#a37a3e03a22ad160a2e9e5c133607e020">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003357<tr class="separator:a37a3e03a22ad160a2e9e5c133607e020"><td class="memSeparator" colspan="2">&#160;</td></tr>
3358<tr class="memitem:a7845701adefdb1adafc98ca3c4918c2e"><td class="memItemLeft" align="right" valign="top">float32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7845701adefdb1adafc98ca3c4918c2e">vtanhq_f32</a> (float32x4_t val)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003359<tr class="memdesc:a7845701adefdb1adafc98ca3c4918c2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate hyperbolic tangent. <a href="#a7845701adefdb1adafc98ca3c4918c2e">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003360<tr class="separator:a7845701adefdb1adafc98ca3c4918c2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
3361<tr class="memitem:a45c3c1474c3e3ec31ec13efaf6acd261"><td class="memItemLeft" align="right" valign="top">float32x4_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a45c3c1474c3e3ec31ec13efaf6acd261">vpowq_f32</a> (float32x4_t val, float32x4_t n)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003362<tr class="memdesc:a45c3c1474c3e3ec31ec13efaf6acd261"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate n power of a number. <a href="#a45c3c1474c3e3ec31ec13efaf6acd261">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003363<tr class="separator:a45c3c1474c3e3ec31ec13efaf6acd261"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003364<tr class="memitem:af58ed9dce099d48202110cd40e793dca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#ab8938bcb3ec0f5f8d93285eb3a28b701">qasymm8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af58ed9dce099d48202110cd40e793dca">sqcvt_qasymm8_f32</a> (float <a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, float scale, int <a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a> rounding_policy=<a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95">RoundingPolicy::TO_NEAREST_UP</a>)</td></tr>
3365<tr class="separator:af58ed9dce099d48202110cd40e793dca"><td class="memSeparator" colspan="2">&#160;</td></tr>
3366<tr class="memitem:a69d3ceb714f7600f60cb2b3d4f3d86b1"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a69d3ceb714f7600f60cb2b3d4f3d86b1">scvt_f32_qasymm8</a> (<a class="el" href="namespacearm__compute.xhtml#ab8938bcb3ec0f5f8d93285eb3a28b701">qasymm8_t</a> <a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, float scale, int <a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>)</td></tr>
3367<tr class="separator:a69d3ceb714f7600f60cb2b3d4f3d86b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
3368<tr class="memitem:a6452ac376d4adb94d93a93d678bb6757"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6452ac376d4adb94d93a93d678bb6757">round</a> (float x, <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a> rounding_policy)</td></tr>
3369<tr class="memdesc:a6452ac376d4adb94d93a93d678bb6757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a rounded value of x. <a href="#a6452ac376d4adb94d93a93d678bb6757">More...</a><br /></td></tr>
3370<tr class="separator:a6452ac376d4adb94d93a93d678bb6757"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003371<tr class="memitem:a12705a88669cb9fb90451ebe0db53c41"><td class="memTemplParams" colspan="2">template&lt;typename S , typename T &gt; </td></tr>
3372<tr class="memitem:a12705a88669cb9fb90451ebe0db53c41"><td class="memTemplItemLeft" align="right" valign="top">constexpr auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a12705a88669cb9fb90451ebe0db53c41">DIV_CEIL</a> (S val, T m) -&gt; decltype((val+m-1)/m)</td></tr>
3373<tr class="memdesc:a12705a88669cb9fb90451ebe0db53c41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the rounded up quotient of val / m. <a href="#a12705a88669cb9fb90451ebe0db53c41">More...</a><br /></td></tr>
3374<tr class="separator:a12705a88669cb9fb90451ebe0db53c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003375<tr class="memitem:adf0c6059174045f80af46a0f1fb57bc6"><td class="memTemplParams" colspan="2">template&lt;typename S , typename T &gt; </td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003376<tr class="memitem:adf0c6059174045f80af46a0f1fb57bc6"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adf0c6059174045f80af46a0f1fb57bc6">ceil_to_multiple</a> (S <a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, T divisor) -&gt; decltype(((<a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>+divisor-1)/divisor)*divisor)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003377<tr class="memdesc:adf0c6059174045f80af46a0f1fb57bc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the smallest number larger or equal to value that is a multiple of divisor. <a href="#adf0c6059174045f80af46a0f1fb57bc6">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003378<tr class="separator:adf0c6059174045f80af46a0f1fb57bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
3379<tr class="memitem:a6959e681668a37a9242d2aae4e8b4375"><td class="memTemplParams" colspan="2">template&lt;typename S , typename T &gt; </td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003380<tr class="memitem:a6959e681668a37a9242d2aae4e8b4375"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6959e681668a37a9242d2aae4e8b4375">floor_to_multiple</a> (S <a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, T divisor) -&gt; decltype((<a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>/divisor)*divisor)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003381<tr class="memdesc:a6959e681668a37a9242d2aae4e8b4375"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the largest number smaller or equal to value that is a multiple of divisor. <a href="#a6959e681668a37a9242d2aae4e8b4375">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003382<tr class="separator:a6959e681668a37a9242d2aae4e8b4375"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003383<tr class="memitem:a64c17a5a42d2499a1626222ff9753b4d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a64c17a5a42d2499a1626222ff9753b4d">build_information</a> ()</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003384<tr class="memdesc:a64c17a5a42d2499a1626222ff9753b4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <a class="el" href="namespacearm__compute.xhtml" title="This file contains all available output stages for GEMMLowp on OpenCL. ">arm_compute</a> library build information. <a href="#a64c17a5a42d2499a1626222ff9753b4d">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003385<tr class="separator:a64c17a5a42d2499a1626222ff9753b4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
3386<tr class="memitem:aefa4a4d3136d77b85cccfce344f9f37f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aefa4a4d3136d77b85cccfce344f9f37f">read_file</a> (const std::string &amp;filename, bool binary)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003387<tr class="memdesc:aefa4a4d3136d77b85cccfce344f9f37f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load an entire file in memory. <a href="#aefa4a4d3136d77b85cccfce344f9f37f">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003388<tr class="separator:aefa4a4d3136d77b85cccfce344f9f37f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003389<tr class="memitem:abb7e0f23a4f2e63f39433f158dad47ab"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abb7e0f23a4f2e63f39433f158dad47ab">data_size_from_type</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> data_type)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003390<tr class="memdesc:abb7e0f23a4f2e63f39433f158dad47ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size in bytes of the data type. <a href="#abb7e0f23a4f2e63f39433f158dad47ab">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003391<tr class="separator:abb7e0f23a4f2e63f39433f158dad47ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
3392<tr class="memitem:a4823543d67a2520c98669e2a5608ef6a"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4823543d67a2520c98669e2a5608ef6a">pixel_size_from_format</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003393<tr class="memdesc:a4823543d67a2520c98669e2a5608ef6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size in bytes of the pixel format. <a href="#a4823543d67a2520c98669e2a5608ef6a">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003394<tr class="separator:a4823543d67a2520c98669e2a5608ef6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
3395<tr class="memitem:a34b06c0cd94808a77b697e79880b84b0"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a34b06c0cd94808a77b697e79880b84b0">element_size_from_data_type</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003396<tr class="memdesc:a34b06c0cd94808a77b697e79880b84b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size in bytes of the data type. <a href="#a34b06c0cd94808a77b697e79880b84b0">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003397<tr class="separator:a34b06c0cd94808a77b697e79880b84b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
3398<tr class="memitem:a59846ef5ca75cd81cdb7e8a1ce08f9db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a59846ef5ca75cd81cdb7e8a1ce08f9db">data_type_from_format</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003399<tr class="memdesc:a59846ef5ca75cd81cdb7e8a1ce08f9db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the data type used by a given single-planar pixel format. <a href="#a59846ef5ca75cd81cdb7e8a1ce08f9db">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003400<tr class="separator:a59846ef5ca75cd81cdb7e8a1ce08f9db"><td class="memSeparator" colspan="2">&#160;</td></tr>
3401<tr class="memitem:a4f6fe18760340bcec02d095b7099e923"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4f6fe18760340bcec02d095b7099e923">plane_idx_from_channel</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> channel)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003402<tr class="memdesc:a4f6fe18760340bcec02d095b7099e923"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the plane index of a given channel given an input format. <a href="#a4f6fe18760340bcec02d095b7099e923">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003403<tr class="separator:a4f6fe18760340bcec02d095b7099e923"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003404<tr class="memitem:afab149f8d8b0f6405303ee8056fa77d3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afab149f8d8b0f6405303ee8056fa77d3">channel_idx_from_format</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> channel)</td></tr>
3405<tr class="memdesc:afab149f8d8b0f6405303ee8056fa77d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the channel index of a given channel given an input format. <a href="#afab149f8d8b0f6405303ee8056fa77d3">More...</a><br /></td></tr>
3406<tr class="separator:afab149f8d8b0f6405303ee8056fa77d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003407<tr class="memitem:a2a71659def659c8b1c164023a99a25a9"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2a71659def659c8b1c164023a99a25a9">num_planes_from_format</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003408<tr class="memdesc:a2a71659def659c8b1c164023a99a25a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of planes for a given format. <a href="#a2a71659def659c8b1c164023a99a25a9">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003409<tr class="separator:a2a71659def659c8b1c164023a99a25a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
3410<tr class="memitem:ab14153fb809c18823af3c9c8bc4286cb"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab14153fb809c18823af3c9c8bc4286cb">num_channels_from_format</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003411<tr class="memdesc:ab14153fb809c18823af3c9c8bc4286cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of channels for a given single-planar pixel format. <a href="#ab14153fb809c18823af3c9c8bc4286cb">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003412<tr class="separator:ab14153fb809c18823af3c9c8bc4286cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003413<tr class="memitem:a5e4254e9c71fffafb79b99d972df8f81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5e4254e9c71fffafb79b99d972df8f81">get_promoted_data_type</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt)</td></tr>
3414<tr class="memdesc:a5e4254e9c71fffafb79b99d972df8f81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the promoted data type of a given data type. <a href="#a5e4254e9c71fffafb79b99d972df8f81">More...</a><br /></td></tr>
3415<tr class="separator:a5e4254e9c71fffafb79b99d972df8f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003416<tr class="memitem:aa2f22cc01532e0236e438324310fdb94"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa2f22cc01532e0236e438324310fdb94">has_format_horizontal_subsampling</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
3417<tr class="memdesc:aa2f22cc01532e0236e438324310fdb94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the given format has horizontal subsampling. <a href="#aa2f22cc01532e0236e438324310fdb94">More...</a><br /></td></tr>
3418<tr class="separator:aa2f22cc01532e0236e438324310fdb94"><td class="memSeparator" colspan="2">&#160;</td></tr>
3419<tr class="memitem:a95358b677c5c17f5cc1e369e4a27e2c2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a95358b677c5c17f5cc1e369e4a27e2c2">has_format_vertical_subsampling</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
3420<tr class="memdesc:a95358b677c5c17f5cc1e369e4a27e2c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the given format has vertical subsampling. <a href="#a95358b677c5c17f5cc1e369e4a27e2c2">More...</a><br /></td></tr>
3421<tr class="separator:a95358b677c5c17f5cc1e369e4a27e2c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003422<tr class="memitem:a18ec57dffc5c26864be77318111dfb2a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a18ec57dffc5c26864be77318111dfb2a">separate_matrix</a> (const int16_t *conv, int16_t *conv_col, int16_t *conv_row, uint8_t <a class="el" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003423<tr class="memdesc:a18ec57dffc5c26864be77318111dfb2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Separate a 2D convolution into two 1D convolutions. <a href="#a18ec57dffc5c26864be77318111dfb2a">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003424<tr class="separator:a18ec57dffc5c26864be77318111dfb2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
3425<tr class="memitem:a0101a40c4a6acc2af3b55afa7632f16a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0101a40c4a6acc2af3b55afa7632f16a">calculate_matrix_scale</a> (const int16_t *matrix, unsigned int matrix_size)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003426<tr class="memdesc:a0101a40c4a6acc2af3b55afa7632f16a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the scale of the given square matrix. <a href="#a0101a40c4a6acc2af3b55afa7632f16a">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003427<tr class="separator:a0101a40c4a6acc2af3b55afa7632f16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01003428<tr class="memitem:a075313545533c34978309ed57d18333f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
3429<tr class="memitem:a075313545533c34978309ed57d18333f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a075313545533c34978309ed57d18333f">calculate_depth_concatenate_shape</a> (const std::vector&lt; T * &gt; &amp;inputs_vector)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003430<tr class="memdesc:a075313545533c34978309ed57d18333f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the output shapes of the depth concatenate function. <a href="#a075313545533c34978309ed57d18333f">More...</a><br /></td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01003431<tr class="separator:a075313545533c34978309ed57d18333f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003432<tr class="memitem:add7f7487c235331a6518dd16ad1e3b38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#add7f7487c235331a6518dd16ad1e3b38">adjust_odd_shape</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
3433<tr class="memdesc:add7f7487c235331a6518dd16ad1e3b38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adjust tensor shape size if width or height are odd for a given multi-planar format. <a href="#add7f7487c235331a6518dd16ad1e3b38">More...</a><br /></td></tr>
3434<tr class="separator:add7f7487c235331a6518dd16ad1e3b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
3435<tr class="memitem:a9d714e1b7d9d7818309138b7d830ebcb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9d714e1b7d9d7818309138b7d830ebcb">calculate_subsampled_shape</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> channel=<a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">Channel::UNKNOWN</a>)</td></tr>
3436<tr class="memdesc:a9d714e1b7d9d7818309138b7d830ebcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate subsampled shape for a given format and channel. <a href="#a9d714e1b7d9d7818309138b7d830ebcb">More...</a><br /></td></tr>
3437<tr class="separator:a9d714e1b7d9d7818309138b7d830ebcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003438<tr class="memitem:a01adc12d8e07c06cdb0f03c56a455bf3"><td class="memItemLeft" align="right" valign="top">std::pair&lt; <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a01adc12d8e07c06cdb0f03c56a455bf3">data_type_for_convolution</a> (const int16_t *conv_col, const int16_t *conv_row, size_t <a class="el" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003439<tr class="memdesc:a01adc12d8e07c06cdb0f03c56a455bf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate accurary required by the horizontal and vertical convolution computations. <a href="#a01adc12d8e07c06cdb0f03c56a455bf3">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003440<tr class="separator:a01adc12d8e07c06cdb0f03c56a455bf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003441<tr class="memitem:a3992df9e8723140a53e49dc194d89ef5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3992df9e8723140a53e49dc194d89ef5">data_type_for_convolution_matrix</a> (const int16_t *conv, size_t <a class="el" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003442<tr class="memdesc:a3992df9e8723140a53e49dc194d89ef5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the accuracy required by the squared convolution calculation. <a href="#a3992df9e8723140a53e49dc194d89ef5">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003443<tr class="separator:a3992df9e8723140a53e49dc194d89ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003444<tr class="memitem:afa7962c747457714d0944af80cb07058"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afa7962c747457714d0944af80cb07058">calculate_same_pad</a> (<a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> input_shape, <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> weights_shape, <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> conv_info)</td></tr>
3445<tr class="memdesc:afa7962c747457714d0944af80cb07058"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate padding requirements in case of SAME padding. <a href="#afa7962c747457714d0944af80cb07058">More...</a><br /></td></tr>
3446<tr class="separator:afa7962c747457714d0944af80cb07058"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003447<tr class="memitem:a7d57332eb91a8735f173556b3caf6236"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7d57332eb91a8735f173556b3caf6236">deconvolution_output_shape</a> (const std::pair&lt; unsigned int, unsigned int &gt; &amp;out_dims, <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> input, <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> weights)</td></tr>
3448<tr class="memdesc:a7d57332eb91a8735f173556b3caf6236"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns expected shape for the deconvolution output tensor. <a href="#a7d57332eb91a8735f173556b3caf6236">More...</a><br /></td></tr>
3449<tr class="separator:a7d57332eb91a8735f173556b3caf6236"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00003450<tr class="memitem:a5c7b26988083a67a91cd3e7962f38521"><td class="memItemLeft" align="right" valign="top">const std::pair&lt; unsigned int, unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5c7b26988083a67a91cd3e7962f38521">deconvolution_output_dimensions</a> (unsigned int in_width, unsigned int in_height, unsigned int kernel_width, unsigned int kernel_height, unsigned int padx, unsigned int pady, unsigned int inner_border_right, unsigned int inner_border_top, unsigned int stride_x, unsigned int stride_y)</td></tr>
3451<tr class="memdesc:a5c7b26988083a67a91cd3e7962f38521"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns expected width and height of the deconvolution's output tensor. <a href="#a5c7b26988083a67a91cd3e7962f38521">More...</a><br /></td></tr>
3452<tr class="separator:a5c7b26988083a67a91cd3e7962f38521"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003453<tr class="memitem:a3d3d8bf7b86db4d7d4ebfe5b332f41b3"><td class="memItemLeft" align="right" valign="top">const std::pair&lt; unsigned int, unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3d3d8bf7b86db4d7d4ebfe5b332f41b3">scaled_dimensions</a> (unsigned int width, unsigned int height, unsigned int kernel_width, unsigned int kernel_height, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &amp;pad_stride_info)</td></tr>
3454<tr class="memdesc:a3d3d8bf7b86db4d7d4ebfe5b332f41b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns expected width and height of output scaled tensor depending on dimensions rounding mode. <a href="#a3d3d8bf7b86db4d7d4ebfe5b332f41b3">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003455<tr class="separator:a3d3d8bf7b86db4d7d4ebfe5b332f41b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003456<tr class="memitem:a9c92c867fc64454545668d87b20979eb"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9c92c867fc64454545668d87b20979eb">string_from_format</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003457<tr class="memdesc:a9c92c867fc64454545668d87b20979eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a tensor format into a string. <a href="#a9c92c867fc64454545668d87b20979eb">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003458<tr class="separator:a9c92c867fc64454545668d87b20979eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
3459<tr class="memitem:a106c203dd6af234d38452ea0ee7b2ddc"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a106c203dd6af234d38452ea0ee7b2ddc">string_from_channel</a> (<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> channel)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003460<tr class="memdesc:a106c203dd6af234d38452ea0ee7b2ddc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a channel identity into a string. <a href="#a106c203dd6af234d38452ea0ee7b2ddc">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003461<tr class="separator:a106c203dd6af234d38452ea0ee7b2ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
3462<tr class="memitem:aefa1d9648995e5eccc693c690e27aa88"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">string_from_data_type</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003463<tr class="memdesc:aefa1d9648995e5eccc693c690e27aa88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a data type identity into a string. <a href="#aefa1d9648995e5eccc693c690e27aa88">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003464<tr class="separator:aefa1d9648995e5eccc693c690e27aa88"><td class="memSeparator" colspan="2">&#160;</td></tr>
3465<tr class="memitem:a018795ab2489d17309e158ff5c060ab1"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a018795ab2489d17309e158ff5c060ab1">string_from_matrix_pattern</a> (<a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a> pattern)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003466<tr class="memdesc:a018795ab2489d17309e158ff5c060ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a matrix pattern into a string. <a href="#a018795ab2489d17309e158ff5c060ab1">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003467<tr class="separator:a018795ab2489d17309e158ff5c060ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
3468<tr class="memitem:ac955c978e18cc9bf6daea31f13076fba"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac955c978e18cc9bf6daea31f13076fba">string_from_activation_func</a> (<a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9ea">ActivationLayerInfo::ActivationFunction</a> act)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003469<tr class="memdesc:ac955c978e18cc9bf6daea31f13076fba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates a given activation function to a string. <a href="#ac955c978e18cc9bf6daea31f13076fba">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003470<tr class="separator:ac955c978e18cc9bf6daea31f13076fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
3471<tr class="memitem:a14831547f57ecf5f0deef888ad41ad30"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a14831547f57ecf5f0deef888ad41ad30">string_from_non_linear_filter_function</a> (<a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> function)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003472<tr class="memdesc:a14831547f57ecf5f0deef888ad41ad30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates a given non linear function to a string. <a href="#a14831547f57ecf5f0deef888ad41ad30">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003473<tr class="separator:a14831547f57ecf5f0deef888ad41ad30"><td class="memSeparator" colspan="2">&#160;</td></tr>
3474<tr class="memitem:ade34f5e72f050fd3665f3294dfb15850"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ade34f5e72f050fd3665f3294dfb15850">string_from_interpolation_policy</a> (<a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> policy)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003475<tr class="memdesc:ade34f5e72f050fd3665f3294dfb15850"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates a given interpolation policy to a string. <a href="#ade34f5e72f050fd3665f3294dfb15850">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003476<tr class="separator:ade34f5e72f050fd3665f3294dfb15850"><td class="memSeparator" colspan="2">&#160;</td></tr>
3477<tr class="memitem:abd15add5c6c7de5c8205ce236875aadd"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abd15add5c6c7de5c8205ce236875aadd">string_from_border_mode</a> (<a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003478<tr class="memdesc:abd15add5c6c7de5c8205ce236875aadd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates a given border mode policy to a string. <a href="#abd15add5c6c7de5c8205ce236875aadd">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003479<tr class="separator:abd15add5c6c7de5c8205ce236875aadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003480<tr class="memitem:afb5698af5404d5d11e3516c87b6e7041"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afb5698af5404d5d11e3516c87b6e7041">string_from_norm_type</a> (<a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a> type)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003481<tr class="memdesc:afb5698af5404d5d11e3516c87b6e7041"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates a given normalization type to a string. <a href="#afb5698af5404d5d11e3516c87b6e7041">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003482<tr class="separator:afb5698af5404d5d11e3516c87b6e7041"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003483<tr class="memitem:a84a03e85d2c40bf54ec8cdd5e3715c58"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a84a03e85d2c40bf54ec8cdd5e3715c58">string_from_pooling_type</a> (<a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a> type)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003484<tr class="memdesc:a84a03e85d2c40bf54ec8cdd5e3715c58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translates a given pooling type to a string. <a href="#a84a03e85d2c40bf54ec8cdd5e3715c58">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003485<tr class="separator:a84a03e85d2c40bf54ec8cdd5e3715c58"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003486<tr class="memitem:a532fb45c0261724a4c2e755cfd3a44e6"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a532fb45c0261724a4c2e755cfd3a44e6">lower_string</a> (const std::string &amp;val)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003487<tr class="memdesc:a532fb45c0261724a4c2e755cfd3a44e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower a given string. <a href="#a532fb45c0261724a4c2e755cfd3a44e6">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003488<tr class="separator:a532fb45c0261724a4c2e755cfd3a44e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003489<tr class="memitem:af5982a092e9eb743fce2d6392bdd8897"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af5982a092e9eb743fce2d6392bdd8897">is_data_type_float</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003490<tr class="memdesc:af5982a092e9eb743fce2d6392bdd8897"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a given data type is of floating point type. <a href="#af5982a092e9eb743fce2d6392bdd8897">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003491<tr class="separator:af5982a092e9eb743fce2d6392bdd8897"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003492<tr class="memitem:a0bee325b210f81bb89fe1f9e15badf9c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0bee325b210f81bb89fe1f9e15badf9c">is_data_type_quantized</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt)</td></tr>
3493<tr class="memdesc:a0bee325b210f81bb89fe1f9e15badf9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a given data type is of quantized type. <a href="#a0bee325b210f81bb89fe1f9e15badf9c">More...</a><br /></td></tr>
3494<tr class="separator:a0bee325b210f81bb89fe1f9e15badf9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003495<tr class="memitem:ab6bb62694ae8369d18a9c9687040975e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab6bb62694ae8369d18a9c9687040975e">is_data_type_fixed_point</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003496<tr class="memdesc:ab6bb62694ae8369d18a9c9687040975e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a given data type is of fixed point type. <a href="#ab6bb62694ae8369d18a9c9687040975e">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003497<tr class="separator:ab6bb62694ae8369d18a9c9687040975e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003498<tr class="memitem:a14f46283f316e7f0fad301d5c1507e9f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a14f46283f316e7f0fad301d5c1507e9f">is_data_type_quantized_asymmetric</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt)</td></tr>
3499<tr class="memdesc:a14f46283f316e7f0fad301d5c1507e9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a given data type is of asymmetric quantized type. <a href="#a14f46283f316e7f0fad301d5c1507e9f">More...</a><br /></td></tr>
3500<tr class="separator:a14f46283f316e7f0fad301d5c1507e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003501<tr class="memitem:a9cd394c15b73f79ca1d98f5328064be2"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9cd394c15b73f79ca1d98f5328064be2">float_to_string_with_full_precision</a> (float val)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003502<tr class="memdesc:a9cd394c15b73f79ca1d98f5328064be2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a string with the float in full precision. <a href="#a9cd394c15b73f79ca1d98f5328064be2">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003503<tr class="separator:a9cd394c15b73f79ca1d98f5328064be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +01003504<tr class="memitem:aa3a28b8acd21301990e06377c64e1276"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
3505<tr class="memitem:aa3a28b8acd21301990e06377c64e1276"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa3a28b8acd21301990e06377c64e1276">print_consecutive_elements_impl</a> (std::ostream &amp;s, const T *ptr, unsigned int n, int stream_width=0, const std::string &amp;element_delim=&quot; &quot;)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003506<tr class="memdesc:aa3a28b8acd21301990e06377c64e1276"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print consecutive elements to an output stream. <a href="#aa3a28b8acd21301990e06377c64e1276">More...</a><br /></td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +01003507<tr class="separator:aa3a28b8acd21301990e06377c64e1276"><td class="memSeparator" colspan="2">&#160;</td></tr>
3508<tr class="memitem:aaecee617b967dd96f27d2f36732fb68e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
3509<tr class="memitem:aaecee617b967dd96f27d2f36732fb68e"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aaecee617b967dd96f27d2f36732fb68e">max_consecutive_elements_display_width_impl</a> (std::ostream &amp;s, const T *ptr, unsigned int n)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003510<tr class="memdesc:aaecee617b967dd96f27d2f36732fb68e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identify the maximum width of n consecutive elements. <a href="#aaecee617b967dd96f27d2f36732fb68e">More...</a><br /></td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +01003511<tr class="separator:aaecee617b967dd96f27d2f36732fb68e"><td class="memSeparator" colspan="2">&#160;</td></tr>
3512<tr class="memitem:a51a0d2ae440bc8cab3fbbe84bfea8b1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a51a0d2ae440bc8cab3fbbe84bfea8b1d">print_consecutive_elements</a> (std::ostream &amp;s, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt, const uint8_t *ptr, unsigned int n, int stream_width, const std::string &amp;element_delim=&quot; &quot;)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003513<tr class="memdesc:a51a0d2ae440bc8cab3fbbe84bfea8b1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print consecutive elements to an output stream. <a href="#a51a0d2ae440bc8cab3fbbe84bfea8b1d">More...</a><br /></td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +01003514<tr class="separator:a51a0d2ae440bc8cab3fbbe84bfea8b1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
3515<tr class="memitem:ac3f2de3a35ff8d9a47b5b793637784e7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ac3f2de3a35ff8d9a47b5b793637784e7">max_consecutive_elements_display_width</a> (std::ostream &amp;s, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt, const uint8_t *ptr, unsigned int n)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003516<tr class="memdesc:ac3f2de3a35ff8d9a47b5b793637784e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identify the maximum width of n consecutive elements. <a href="#ac3f2de3a35ff8d9a47b5b793637784e7">More...</a><br /></td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +01003517<tr class="separator:ac3f2de3a35ff8d9a47b5b793637784e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003518<tr class="memitem:af4587cd36ddbf2e4dde217d1a1007940"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3519<tr class="memitem:af4587cd36ddbf2e4dde217d1a1007940"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">error_on_nullptr</a> (const char *function, const char *file, const int line, Ts &amp;&amp;...pointers)</td></tr>
3520<tr class="memdesc:af4587cd36ddbf2e4dde217d1a1007940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an error if one of the pointers is a nullptr. <a href="#af4587cd36ddbf2e4dde217d1a1007940">More...</a><br /></td></tr>
3521<tr class="separator:af4587cd36ddbf2e4dde217d1a1007940"><td class="memSeparator" colspan="2">&#160;</td></tr>
3522<tr class="memitem:a75738bb24f735248ab9584cd24544234"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a75738bb24f735248ab9584cd24544234">error_on_mismatching_windows</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;full, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win)</td></tr>
3523<tr class="memdesc:a75738bb24f735248ab9584cd24544234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed window is invalid. <a href="#a75738bb24f735248ab9584cd24544234">More...</a><br /></td></tr>
3524<tr class="separator:a75738bb24f735248ab9584cd24544234"><td class="memSeparator" colspan="2">&#160;</td></tr>
3525<tr class="memitem:aceb8dd0f6a4e2539b39b5a69a1c345b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aceb8dd0f6a4e2539b39b5a69a1c345b4">error_on_invalid_subwindow</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;full, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;sub)</td></tr>
3526<tr class="memdesc:aceb8dd0f6a4e2539b39b5a69a1c345b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed subwindow is invalid. <a href="#aceb8dd0f6a4e2539b39b5a69a1c345b4">More...</a><br /></td></tr>
3527<tr class="separator:aceb8dd0f6a4e2539b39b5a69a1c345b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
3528<tr class="memitem:a220627e9e23de1058191022aea58e1cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a220627e9e23de1058191022aea58e1cf">error_on_window_not_collapsable_at_dimension</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;full, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;window, const int dim)</td></tr>
3529<tr class="memdesc:a220627e9e23de1058191022aea58e1cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the window can't be collapsed at the given dimension. <a href="#a220627e9e23de1058191022aea58e1cf">More...</a><br /></td></tr>
3530<tr class="separator:a220627e9e23de1058191022aea58e1cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
3531<tr class="memitem:a454f8112fcca60b99883f19ff43daf9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a454f8112fcca60b99883f19ff43daf9f">error_on_coordinates_dimensions_gte</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;pos, unsigned int max_dim)</td></tr>
3532<tr class="memdesc:a454f8112fcca60b99883f19ff43daf9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed coordinates have too many dimensions. <a href="#a454f8112fcca60b99883f19ff43daf9f">More...</a><br /></td></tr>
3533<tr class="separator:a454f8112fcca60b99883f19ff43daf9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
3534<tr class="memitem:a1b1ebe735a15f66be7ebe8dccdbcee15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1b1ebe735a15f66be7ebe8dccdbcee15">error_on_window_dimensions_gte</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;win, unsigned int max_dim)</td></tr>
3535<tr class="memdesc:a1b1ebe735a15f66be7ebe8dccdbcee15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed window has too many dimensions. <a href="#a1b1ebe735a15f66be7ebe8dccdbcee15">More...</a><br /></td></tr>
3536<tr class="separator:a1b1ebe735a15f66be7ebe8dccdbcee15"><td class="memSeparator" colspan="2">&#160;</td></tr>
3537<tr class="memitem:ab3f385292b90327061e1276f3e3445c7"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
3538<tr class="memitem:ab3f385292b90327061e1276f3e3445c7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab3f385292b90327061e1276f3e3445c7">error_on_mismatching_dimensions</a> (const char *function, const char *file, int line, const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;dim1, const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;dim2, Ts &amp;&amp;...dims)</td></tr>
3539<tr class="memdesc:ab3f385292b90327061e1276f3e3445c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed dimension objects differ. <a href="#ab3f385292b90327061e1276f3e3445c7">More...</a><br /></td></tr>
3540<tr class="separator:ab3f385292b90327061e1276f3e3445c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003541<tr class="memitem:a5bee409f8a6904df028626835b3a19be"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3542<tr class="memitem:a5bee409f8a6904df028626835b3a19be"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5bee409f8a6904df028626835b3a19be">error_on_tensors_not_even</a> (const char *function, const char *file, int line, const <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> &amp;format, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor1, Ts...tensors)</td></tr>
3543<tr class="memdesc:a5bee409f8a6904df028626835b3a19be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed tensor objects are not even. <a href="#a5bee409f8a6904df028626835b3a19be">More...</a><br /></td></tr>
3544<tr class="separator:a5bee409f8a6904df028626835b3a19be"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003545<tr class="memitem:aea117e0cebca5f4642ed3f269217a09e"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3546<tr class="memitem:aea117e0cebca5f4642ed3f269217a09e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aea117e0cebca5f4642ed3f269217a09e">error_on_mismatching_shapes</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_1, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_2, Ts...tensor_infos)</td></tr>
3547<tr class="memdesc:aea117e0cebca5f4642ed3f269217a09e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed two tensor infos have different shapes from the given dimension. <a href="#aea117e0cebca5f4642ed3f269217a09e">More...</a><br /></td></tr>
3548<tr class="separator:aea117e0cebca5f4642ed3f269217a09e"><td class="memSeparator" colspan="2">&#160;</td></tr>
3549<tr class="memitem:a41328dd4b943d34c1cc61410571fd6fa"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3550<tr class="memitem:a41328dd4b943d34c1cc61410571fd6fa"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a41328dd4b943d34c1cc61410571fd6fa">error_on_mismatching_shapes</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_1, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_2, Ts...tensors)</td></tr>
3551<tr class="memdesc:a41328dd4b943d34c1cc61410571fd6fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed two tensors have different shapes from the given dimension. <a href="#a41328dd4b943d34c1cc61410571fd6fa">More...</a><br /></td></tr>
3552<tr class="separator:a41328dd4b943d34c1cc61410571fd6fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
3553<tr class="memitem:aac6150cce1c9c666600e4b320a0066e9"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3554<tr class="memitem:aac6150cce1c9c666600e4b320a0066e9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aac6150cce1c9c666600e4b320a0066e9">error_on_mismatching_shapes</a> (const char *function, const char *file, const int line, unsigned int upper_dim, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_1, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_2, Ts...tensor_infos)</td></tr>
3555<tr class="memdesc:aac6150cce1c9c666600e4b320a0066e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed two tensors have different shapes from the given dimension. <a href="#aac6150cce1c9c666600e4b320a0066e9">More...</a><br /></td></tr>
3556<tr class="separator:aac6150cce1c9c666600e4b320a0066e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
3557<tr class="memitem:afa04b5bdea84e0effab066e3b1324ec5"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3558<tr class="memitem:afa04b5bdea84e0effab066e3b1324ec5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#afa04b5bdea84e0effab066e3b1324ec5">error_on_mismatching_shapes</a> (const char *function, const char *file, const int line, unsigned int upper_dim, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_1, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_2, Ts...tensors)</td></tr>
3559<tr class="memdesc:afa04b5bdea84e0effab066e3b1324ec5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed two tensors have different shapes from the given dimension. <a href="#afa04b5bdea84e0effab066e3b1324ec5">More...</a><br /></td></tr>
3560<tr class="separator:afa04b5bdea84e0effab066e3b1324ec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
3561<tr class="memitem:a00672eb7b5db5f6396b39b241eaf12f7"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3562<tr class="memitem:a00672eb7b5db5f6396b39b241eaf12f7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a00672eb7b5db5f6396b39b241eaf12f7">error_on_mismatching_data_types</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info, Ts...tensor_infos)</td></tr>
3563<tr class="memdesc:a00672eb7b5db5f6396b39b241eaf12f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed two tensor infos have different data types. <a href="#a00672eb7b5db5f6396b39b241eaf12f7">More...</a><br /></td></tr>
3564<tr class="separator:a00672eb7b5db5f6396b39b241eaf12f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
3565<tr class="memitem:a709c2aef39aa212b840c6395fc20ce17"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3566<tr class="memitem:a709c2aef39aa212b840c6395fc20ce17"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a709c2aef39aa212b840c6395fc20ce17">error_on_mismatching_data_types</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor, Ts...tensors)</td></tr>
3567<tr class="memdesc:a709c2aef39aa212b840c6395fc20ce17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed two tensors have different data types. <a href="#a709c2aef39aa212b840c6395fc20ce17">More...</a><br /></td></tr>
3568<tr class="separator:a709c2aef39aa212b840c6395fc20ce17"><td class="memSeparator" colspan="2">&#160;</td></tr>
3569<tr class="memitem:aafd4504246cc7e82e108204cb9636a90"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3570<tr class="memitem:aafd4504246cc7e82e108204cb9636a90"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aafd4504246cc7e82e108204cb9636a90">error_on_mismatching_fixed_point</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_1, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_2, Ts...tensor_infos)</td></tr>
3571<tr class="memdesc:aafd4504246cc7e82e108204cb9636a90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed tensor infos have different fixed point data types or different fixed point positions. <a href="#aafd4504246cc7e82e108204cb9636a90">More...</a><br /></td></tr>
3572<tr class="separator:aafd4504246cc7e82e108204cb9636a90"><td class="memSeparator" colspan="2">&#160;</td></tr>
3573<tr class="memitem:a8ecebd0b1ad2f0c593f7b093a1e43448"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3574<tr class="memitem:a8ecebd0b1ad2f0c593f7b093a1e43448"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8ecebd0b1ad2f0c593f7b093a1e43448">error_on_mismatching_fixed_point</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_1, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_2, Ts...tensors)</td></tr>
3575<tr class="memdesc:a8ecebd0b1ad2f0c593f7b093a1e43448"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed tensor have different fixed point data types or different fixed point positions. <a href="#a8ecebd0b1ad2f0c593f7b093a1e43448">More...</a><br /></td></tr>
3576<tr class="separator:a8ecebd0b1ad2f0c593f7b093a1e43448"><td class="memSeparator" colspan="2">&#160;</td></tr>
3577<tr class="memitem:af4c3199d58278db542e1cdfb72a41901"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3578<tr class="memitem:af4c3199d58278db542e1cdfb72a41901"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af4c3199d58278db542e1cdfb72a41901">error_on_mismatching_quantization_info</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_1, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_2, Ts...tensor_infos)</td></tr>
3579<tr class="memdesc:af4c3199d58278db542e1cdfb72a41901"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed tensor infos have different asymmetric quantized data types or different quantization info. <a href="#af4c3199d58278db542e1cdfb72a41901">More...</a><br /></td></tr>
3580<tr class="separator:af4c3199d58278db542e1cdfb72a41901"><td class="memSeparator" colspan="2">&#160;</td></tr>
3581<tr class="memitem:a5be375b525bba68610a75da0a043df3a"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3582<tr class="memitem:a5be375b525bba68610a75da0a043df3a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5be375b525bba68610a75da0a043df3a">error_on_mismatching_quantization_info</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_1, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_2, Ts...tensors)</td></tr>
3583<tr class="memdesc:a5be375b525bba68610a75da0a043df3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the passed tensor have different asymmetric quantized data types or different quantization info. <a href="#a5be375b525bba68610a75da0a043df3a">More...</a><br /></td></tr>
3584<tr class="separator:a5be375b525bba68610a75da0a043df3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003585<tr class="memitem:a0b360558b516e256f0af005a164c674e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename F , typename... Fs&gt; </td></tr>
3586<tr class="memitem:a0b360558b516e256f0af005a164c674e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0b360558b516e256f0af005a164c674e">error_on_format_not_in</a> (const char *function, const char *file, const int line, const T *object, F &amp;&amp;format, Fs &amp;&amp;...formats)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003587<tr class="memdesc:a0b360558b516e256f0af005a164c674e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the format of the passed tensor/multi-image does not match any of the formats provided. <a href="#a0b360558b516e256f0af005a164c674e">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003588<tr class="separator:a0b360558b516e256f0af005a164c674e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003589<tr class="memitem:a774ec1fdc7bd1e7973c866d13734bc21"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
3590<tr class="memitem:a774ec1fdc7bd1e7973c866d13734bc21"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a774ec1fdc7bd1e7973c866d13734bc21">error_on_data_type_not_in</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info, T &amp;&amp;dt, Ts &amp;&amp;...dts)</td></tr>
3591<tr class="memdesc:a774ec1fdc7bd1e7973c866d13734bc21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the data type of the passed tensor info does not match any of the data types provided. <a href="#a774ec1fdc7bd1e7973c866d13734bc21">More...</a><br /></td></tr>
3592<tr class="separator:a774ec1fdc7bd1e7973c866d13734bc21"><td class="memSeparator" colspan="2">&#160;</td></tr>
3593<tr class="memitem:a4ae0ca8176fce8caa48601dc8324ca97"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
3594<tr class="memitem:a4ae0ca8176fce8caa48601dc8324ca97"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4ae0ca8176fce8caa48601dc8324ca97">error_on_data_type_not_in</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor, T &amp;&amp;dt, Ts &amp;&amp;...dts)</td></tr>
3595<tr class="memdesc:a4ae0ca8176fce8caa48601dc8324ca97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the data type of the passed tensor does not match any of the data types provided. <a href="#a4ae0ca8176fce8caa48601dc8324ca97">More...</a><br /></td></tr>
3596<tr class="separator:a4ae0ca8176fce8caa48601dc8324ca97"><td class="memSeparator" colspan="2">&#160;</td></tr>
3597<tr class="memitem:a499a45039b9bba66384504843d5823d4"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
3598<tr class="memitem:a499a45039b9bba66384504843d5823d4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a499a45039b9bba66384504843d5823d4">error_on_data_type_channel_not_in</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info, size_t num_channels, T &amp;&amp;dt, Ts &amp;&amp;...dts)</td></tr>
3599<tr class="memdesc:a499a45039b9bba66384504843d5823d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the data type or the number of channels of the passed tensor info does not match any of the data types and number of channels provided. <a href="#a499a45039b9bba66384504843d5823d4">More...</a><br /></td></tr>
3600<tr class="separator:a499a45039b9bba66384504843d5823d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
3601<tr class="memitem:ad3137e73dbd78133d25751abd84540d8"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
3602<tr class="memitem:ad3137e73dbd78133d25751abd84540d8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad3137e73dbd78133d25751abd84540d8">error_on_data_type_channel_not_in</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor, size_t num_channels, T &amp;&amp;dt, Ts &amp;&amp;...dts)</td></tr>
3603<tr class="memdesc:ad3137e73dbd78133d25751abd84540d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the data type or the number of channels of the passed tensor does not match any of the data types and number of channels provided. <a href="#ad3137e73dbd78133d25751abd84540d8">More...</a><br /></td></tr>
3604<tr class="separator:ad3137e73dbd78133d25751abd84540d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
3605<tr class="memitem:a9f37a1ead28d12ce216e27209dae2a81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9f37a1ead28d12ce216e27209dae2a81">error_on_tensor_not_2d</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor)</td></tr>
3606<tr class="memdesc:a9f37a1ead28d12ce216e27209dae2a81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the tensor is not 2D. <a href="#a9f37a1ead28d12ce216e27209dae2a81">More...</a><br /></td></tr>
3607<tr class="separator:a9f37a1ead28d12ce216e27209dae2a81"><td class="memSeparator" colspan="2">&#160;</td></tr>
3608<tr class="memitem:ae7fcde610527b8fa3d9acdf398187962"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
3609<tr class="memitem:ae7fcde610527b8fa3d9acdf398187962"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae7fcde610527b8fa3d9acdf398187962">error_on_channel_not_in</a> (const char *function, const char *file, const int line, T cn, T &amp;&amp;channel, Ts &amp;&amp;...channels)</td></tr>
3610<tr class="memdesc:ae7fcde610527b8fa3d9acdf398187962"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the channel is not in channels. <a href="#ae7fcde610527b8fa3d9acdf398187962">More...</a><br /></td></tr>
3611<tr class="separator:ae7fcde610527b8fa3d9acdf398187962"><td class="memSeparator" colspan="2">&#160;</td></tr>
3612<tr class="memitem:aa2af31a4685af1fb5ecef784c5e96da0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa2af31a4685af1fb5ecef784c5e96da0">error_on_channel_not_in_known_format</a> (const char *function, const char *file, const int line, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> fmt, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> cn)</td></tr>
3613<tr class="memdesc:aa2af31a4685af1fb5ecef784c5e96da0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the channel is not in format. <a href="#aa2af31a4685af1fb5ecef784c5e96da0">More...</a><br /></td></tr>
3614<tr class="separator:aa2af31a4685af1fb5ecef784c5e96da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
3615<tr class="memitem:adf16abfe081654f8bb2b9a4fee09100e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adf16abfe081654f8bb2b9a4fee09100e">error_on_invalid_multi_hog</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml">IMultiHOG</a> *multi_hog)</td></tr>
3616<tr class="memdesc:adf16abfe081654f8bb2b9a4fee09100e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the <a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml">IMultiHOG</a> container is invalid. <a href="#adf16abfe081654f8bb2b9a4fee09100e">More...</a><br /></td></tr>
3617<tr class="separator:adf16abfe081654f8bb2b9a4fee09100e"><td class="memSeparator" colspan="2">&#160;</td></tr>
3618<tr class="memitem:a33278ff3c7798e50c453599576f58bd8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a33278ff3c7798e50c453599576f58bd8">error_on_unconfigured_kernel</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_kernel.xhtml">IKernel</a> *kernel)</td></tr>
3619<tr class="memdesc:a33278ff3c7798e50c453599576f58bd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the kernel is not configured. <a href="#a33278ff3c7798e50c453599576f58bd8">More...</a><br /></td></tr>
3620<tr class="separator:a33278ff3c7798e50c453599576f58bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
3621<tr class="memitem:a7fdf77ab857ef3a644eef09389cc808d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7fdf77ab857ef3a644eef09389cc808d">error_on_invalid_subtensor</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;parent_shape, const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;coords, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape)</td></tr>
3622<tr class="memdesc:a7fdf77ab857ef3a644eef09389cc808d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if if the coordinates and shape of the subtensor are within the parent tensor. <a href="#a7fdf77ab857ef3a644eef09389cc808d">More...</a><br /></td></tr>
3623<tr class="separator:a7fdf77ab857ef3a644eef09389cc808d"><td class="memSeparator" colspan="2">&#160;</td></tr>
3624<tr class="memitem:a74dd77930a4d0ccf755c1cc648601c63"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a74dd77930a4d0ccf755c1cc648601c63">error_on_invalid_subtensor_valid_region</a> (const char *function, const char *file, const int line, const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;parent_valid_region, const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;valid_region)</td></tr>
3625<tr class="memdesc:a74dd77930a4d0ccf755c1cc648601c63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the valid region of a subtensor is not inside the valid region of the parent tensor. <a href="#a74dd77930a4d0ccf755c1cc648601c63">More...</a><br /></td></tr>
3626<tr class="separator:a74dd77930a4d0ccf755c1cc648601c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
3627<tr class="memitem:a82c748dc3464dfc48133fbf8f84d7240"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3628<tr class="memitem:a82c748dc3464dfc48133fbf8f84d7240"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a82c748dc3464dfc48133fbf8f84d7240">error_on_mismatching_fixed_point_position</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_1, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info_2, Ts...tensor_infos)</td></tr>
3629<tr class="memdesc:a82c748dc3464dfc48133fbf8f84d7240"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the input fixed-point positions are different. <a href="#a82c748dc3464dfc48133fbf8f84d7240">More...</a><br /></td></tr>
3630<tr class="separator:a82c748dc3464dfc48133fbf8f84d7240"><td class="memSeparator" colspan="2">&#160;</td></tr>
3631<tr class="memitem:adec7d6b27c9cacab7940ce67eaab4bf6"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
3632<tr class="memitem:adec7d6b27c9cacab7940ce67eaab4bf6"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adec7d6b27c9cacab7940ce67eaab4bf6">error_on_mismatching_fixed_point_position</a> (const char *function, const char *file, const int line, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_1, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_2, Ts...tensors)</td></tr>
3633<tr class="memdesc:adec7d6b27c9cacab7940ce67eaab4bf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the input fixed-point positions are different. <a href="#adec7d6b27c9cacab7940ce67eaab4bf6">More...</a><br /></td></tr>
3634<tr class="separator:adec7d6b27c9cacab7940ce67eaab4bf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
3635<tr class="memitem:a902b2c73a1317fd91a167e9d4d3f211b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a902b2c73a1317fd91a167e9d4d3f211b">error_on_value_not_representable_in_fixed_point</a> (const char *function, const char *file, int line, float <a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *tensor_info)</td></tr>
3636<tr class="memdesc:a902b2c73a1317fd91a167e9d4d3f211b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error if the fixed-point value is not representable in the specified Q format. <a href="#a902b2c73a1317fd91a167e9d4d3f211b">More...</a><br /></td></tr>
3637<tr class="separator:a902b2c73a1317fd91a167e9d4d3f211b"><td class="memSeparator" colspan="2">&#160;</td></tr>
3638<tr class="memitem:ad865b21069f578ddb1c65cb32f3fcaa0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad865b21069f578ddb1c65cb32f3fcaa0">error_on_value_not_representable_in_fixed_point</a> (const char *function, const char *file, int line, float <a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor)</td></tr>
3639<tr class="memdesc:ad865b21069f578ddb1c65cb32f3fcaa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an error an error if the fixed-point value is not representable in the specified Q format. <a href="#ad865b21069f578ddb1c65cb32f3fcaa0">More...</a><br /></td></tr>
3640<tr class="separator:ad865b21069f578ddb1c65cb32f3fcaa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003641<tr class="memitem:aa5191117dc677a74552769b87131b1b6"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa5191117dc677a74552769b87131b1b6">string_from_scheduler_type</a> (<a class="el" href="classarm__compute_1_1_scheduler.xhtml#a1d1cfd8ffb84e947f82999c682b666a7">Scheduler::Type</a> t)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003642<tr class="memdesc:aa5191117dc677a74552769b87131b1b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a <a class="el" href="classarm__compute_1_1_scheduler.xhtml#a1d1cfd8ffb84e947f82999c682b666a7">Scheduler::Type</a> into a string. <a href="#aa5191117dc677a74552769b87131b1b6">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003643<tr class="separator:aa5191117dc677a74552769b87131b1b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003644<tr class="memitem:a1379e5f8a8b4640d7a52d901f0539ccd"><td class="memItemLeft" align="right" valign="top">inline::std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1379e5f8a8b4640d7a52d901f0539ccd">operator&gt;&gt;</a> (::std::istream &amp;is, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> &amp;mode)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003645<tr class="memdesc:a1379e5f8a8b4640d7a52d901f0539ccd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted input of the BorderMode type. <a href="#a1379e5f8a8b4640d7a52d901f0539ccd">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003646<tr class="separator:a1379e5f8a8b4640d7a52d901f0539ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003647<tr class="memitem:a18d43401e8f84ed020429b41ec4e99f5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
3648<tr class="memitem:a18d43401e8f84ed020429b41ec4e99f5"><td class="memTemplItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a18d43401e8f84ed020429b41ec4e99f5">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;dimensions)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003649<tr class="memdesc:a18d43401e8f84ed020429b41ec4e99f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="classarm__compute_1_1_dimensions.xhtml" title="Dimensions with dimensionality. ">Dimensions</a> type. <a href="#a18d43401e8f84ed020429b41ec4e99f5">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003650<tr class="separator:a18d43401e8f84ed020429b41ec4e99f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003651<tr class="memitem:ae8c2a3451bcf739a75aa7438e7a78d45"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae8c2a3451bcf739a75aa7438e7a78d45">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> &amp;function)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003652<tr class="memdesc:ae8c2a3451bcf739a75aa7438e7a78d45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the NonLinearFilterFunction type. <a href="#ae8c2a3451bcf739a75aa7438e7a78d45">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003653<tr class="separator:ae8c2a3451bcf739a75aa7438e7a78d45"><td class="memSeparator" colspan="2">&#160;</td></tr>
3654<tr class="memitem:aabe16be22edb41656e66ed9eae3b69e6"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aabe16be22edb41656e66ed9eae3b69e6">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> &amp;function)</td></tr>
3655<tr class="separator:aabe16be22edb41656e66ed9eae3b69e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
3656<tr class="memitem:acec416ec5af175a7aad47a518fefb770"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#acec416ec5af175a7aad47a518fefb770">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a> &amp;pattern)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003657<tr class="memdesc:acec416ec5af175a7aad47a518fefb770"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the MatrixPattern type. <a href="#acec416ec5af175a7aad47a518fefb770">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003658<tr class="separator:acec416ec5af175a7aad47a518fefb770"><td class="memSeparator" colspan="2">&#160;</td></tr>
3659<tr class="memitem:a27f0ebddef1b83e0ac31c7a7a23a8d36"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a27f0ebddef1b83e0ac31c7a7a23a8d36">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a> &amp;pattern)</td></tr>
3660<tr class="separator:a27f0ebddef1b83e0ac31c7a7a23a8d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003661<tr class="memitem:a295edc9f8caf95838db2c5e251153514"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a295edc9f8caf95838db2c5e251153514">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a> &amp;rounding_policy)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003662<tr class="memdesc:a295edc9f8caf95838db2c5e251153514"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the RoundingPolicy type. <a href="#a295edc9f8caf95838db2c5e251153514">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003663<tr class="separator:a295edc9f8caf95838db2c5e251153514"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003664<tr class="memitem:a5972c7131d378f567af9c2961f088a0b"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5972c7131d378f567af9c2961f088a0b">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="classarm__compute_1_1_weights_info.xhtml">WeightsInfo</a> &amp;weights_info)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003665<tr class="memdesc:a5972c7131d378f567af9c2961f088a0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="classarm__compute_1_1_weights_info.xhtml" title="Convolution Layer Weights Information class. ">WeightsInfo</a> type. <a href="#a5972c7131d378f567af9c2961f088a0b">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003666<tr class="separator:a5972c7131d378f567af9c2961f088a0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
3667<tr class="memitem:a352b805b77fde4f32f44af271580677b"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a352b805b77fde4f32f44af271580677b">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="classarm__compute_1_1_r_o_i_pooling_layer_info.xhtml">ROIPoolingLayerInfo</a> &amp;pool_info)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003668<tr class="memdesc:a352b805b77fde4f32f44af271580677b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the ROIPoolingInfo type. <a href="#a352b805b77fde4f32f44af271580677b">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003669<tr class="separator:a352b805b77fde4f32f44af271580677b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003670<tr class="memitem:a32a5556a927543fe57c0d7b82c20e9b4"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a32a5556a927543fe57c0d7b82c20e9b4">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> &amp;quantization_info)</td></tr>
3671<tr class="memdesc:a32a5556a927543fe57c0d7b82c20e9b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="structarm__compute_1_1_quantization_info.xhtml" title="Quantization settings (used for QASYMM8 data type) ">QuantizationInfo</a> type. <a href="#a32a5556a927543fe57c0d7b82c20e9b4">More...</a><br /></td></tr>
3672<tr class="separator:a32a5556a927543fe57c0d7b82c20e9b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
3673<tr class="memitem:ad9fd48b3c01116b217a684aaeaf8b24f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad9fd48b3c01116b217a684aaeaf8b24f">to_string</a> (const <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> &amp;quantization_info)</td></tr>
3674<tr class="separator:ad9fd48b3c01116b217a684aaeaf8b24f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01003675<tr class="memitem:a2abb76fe917828983d666628badab08d"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2abb76fe917828983d666628badab08d">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a> &amp;op)</td></tr>
3676<tr class="separator:a2abb76fe917828983d666628badab08d"><td class="memSeparator" colspan="2">&#160;</td></tr>
3677<tr class="memitem:a3d4684c886b4d13ce004cd6d7fcea9b1"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3d4684c886b4d13ce004cd6d7fcea9b1">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a> &amp;op)</td></tr>
3678<tr class="separator:a3d4684c886b4d13ce004cd6d7fcea9b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003679<tr class="memitem:a9d79efe2673aeb3f9a9160b6a78de50c"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9d79efe2673aeb3f9a9160b6a78de50c">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9ea">ActivationLayerInfo::ActivationFunction</a> &amp;act_function)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003680<tr class="memdesc:a9d79efe2673aeb3f9a9160b6a78de50c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the activation function type. <a href="#a9d79efe2673aeb3f9a9160b6a78de50c">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003681<tr class="separator:a9d79efe2673aeb3f9a9160b6a78de50c"><td class="memSeparator" colspan="2">&#160;</td></tr>
3682<tr class="memitem:a72626d2cca3922127c41526e37e9e623"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a72626d2cca3922127c41526e37e9e623">to_string</a> (const <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml">arm_compute::ActivationLayerInfo</a> &amp;info)</td></tr>
3683<tr class="separator:a72626d2cca3922127c41526e37e9e623"><td class="memSeparator" colspan="2">&#160;</td></tr>
3684<tr class="memitem:a8a18c453150ab547c1add44b3ed3bc56"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8a18c453150ab547c1add44b3ed3bc56">to_string</a> (const <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9ea">arm_compute::ActivationLayerInfo::ActivationFunction</a> &amp;function)</td></tr>
3685<tr class="separator:a8a18c453150ab547c1add44b3ed3bc56"><td class="memSeparator" colspan="2">&#160;</td></tr>
3686<tr class="memitem:a2ab7370aab6e5698990c50c8871fa6fb"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2ab7370aab6e5698990c50c8871fa6fb">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a> &amp;norm_type)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003687<tr class="memdesc:a2ab7370aab6e5698990c50c8871fa6fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the NormType type. <a href="#a2ab7370aab6e5698990c50c8871fa6fb">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003688<tr class="separator:a2ab7370aab6e5698990c50c8871fa6fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
3689<tr class="memitem:a45dd771bdecbafb975fd267c2ae320a7"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a45dd771bdecbafb975fd267c2ae320a7">to_string</a> (const <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">arm_compute::NormalizationLayerInfo</a> &amp;info)</td></tr>
3690<tr class="separator:a45dd771bdecbafb975fd267c2ae320a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01003691<tr class="memitem:a6e422c610c91f611590173cd595c94c5"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6e422c610c91f611590173cd595c94c5">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a> &amp;info)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003692<tr class="memdesc:a6e422c610c91f611590173cd595c94c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a>. <a href="#a6e422c610c91f611590173cd595c94c5">More...</a><br /></td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01003693<tr class="separator:a6e422c610c91f611590173cd595c94c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003694<tr class="memitem:a336cf1e870f467e44c184587a13feeec"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a336cf1e870f467e44c184587a13feeec">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a> &amp;pool_type)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003695<tr class="memdesc:a336cf1e870f467e44c184587a13feeec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the PoolingType type. <a href="#a336cf1e870f467e44c184587a13feeec">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003696<tr class="separator:a336cf1e870f467e44c184587a13feeec"><td class="memSeparator" colspan="2">&#160;</td></tr>
3697<tr class="memitem:ae72a61a2ca5c962ab1d37065e5598060"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae72a61a2ca5c962ab1d37065e5598060">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a> &amp;info)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003698<tr class="memdesc:ae72a61a2ca5c962ab1d37065e5598060"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a>. <a href="#ae72a61a2ca5c962ab1d37065e5598060">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003699<tr class="separator:ae72a61a2ca5c962ab1d37065e5598060"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003700<tr class="memitem:a25dac68b6321b9e53027e79222a0eb7f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a25dac68b6321b9e53027e79222a0eb7f">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a> &amp;rounding_policy)</td></tr>
3701<tr class="separator:a25dac68b6321b9e53027e79222a0eb7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003702<tr class="memitem:a685af15532d70b8682bcc52f06f034f9"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a685af15532d70b8682bcc52f06f034f9">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;data_type)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003703<tr class="memdesc:a685af15532d70b8682bcc52f06f034f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the DataType type. <a href="#a685af15532d70b8682bcc52f06f034f9">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003704<tr class="separator:a685af15532d70b8682bcc52f06f034f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003705<tr class="memitem:a96b47511b549b48d2ead05b5c757ccc9"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a96b47511b549b48d2ead05b5c757ccc9">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">arm_compute::DataType</a> &amp;data_type)</td></tr>
3706<tr class="separator:a96b47511b549b48d2ead05b5c757ccc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003707<tr class="memitem:a3b22e54b0ac0204c3b89aebcd695fa03"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3b22e54b0ac0204c3b89aebcd695fa03">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> &amp;format)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003708<tr class="memdesc:a3b22e54b0ac0204c3b89aebcd695fa03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the Format type. <a href="#a3b22e54b0ac0204c3b89aebcd695fa03">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003709<tr class="separator:a3b22e54b0ac0204c3b89aebcd695fa03"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003710<tr class="memitem:ab0e6381843dc9901bb59285ec846dc5d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab0e6381843dc9901bb59285ec846dc5d">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> &amp;format)</td></tr>
3711<tr class="separator:ab0e6381843dc9901bb59285ec846dc5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003712<tr class="memitem:aa66be15c012986ebd4c1934b97e08a36"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa66be15c012986ebd4c1934b97e08a36">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> &amp;channel)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003713<tr class="memdesc:aa66be15c012986ebd4c1934b97e08a36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the Channel type. <a href="#aa66be15c012986ebd4c1934b97e08a36">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003714<tr class="separator:aa66be15c012986ebd4c1934b97e08a36"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003715<tr class="memitem:a813e71cd70c2bbcbf0743fa83a3608b9"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a813e71cd70c2bbcbf0743fa83a3608b9">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> &amp;channel)</td></tr>
3716<tr class="separator:a813e71cd70c2bbcbf0743fa83a3608b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003717<tr class="memitem:a7929032d41d5f23cd1778a70508d0219"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7929032d41d5f23cd1778a70508d0219">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> &amp;mode)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003718<tr class="memdesc:a7929032d41d5f23cd1778a70508d0219"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the BorderMode type. <a href="#a7929032d41d5f23cd1778a70508d0219">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003719<tr class="separator:a7929032d41d5f23cd1778a70508d0219"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003720<tr class="memitem:af32c4c5cdd0efde09774eb803bc8a0bd"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af32c4c5cdd0efde09774eb803bc8a0bd">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> &amp;border)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003721<tr class="memdesc:af32c4c5cdd0efde09774eb803bc8a0bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="structarm__compute_1_1_border_size.xhtml" title="Container for 2D border size. ">BorderSize</a> type. <a href="#af32c4c5cdd0efde09774eb803bc8a0bd">More...</a><br /></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003722<tr class="separator:af32c4c5cdd0efde09774eb803bc8a0bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003723<tr class="memitem:a509047aefc691398f1bb60b1f967a98b"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a509047aefc691398f1bb60b1f967a98b">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> &amp;policy)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003724<tr class="memdesc:a509047aefc691398f1bb60b1f967a98b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the InterpolationPolicy type. <a href="#a509047aefc691398f1bb60b1f967a98b">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003725<tr class="separator:a509047aefc691398f1bb60b1f967a98b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003726<tr class="memitem:aab8eb6dc1ba89bb8a69f1c3845988a2b"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aab8eb6dc1ba89bb8a69f1c3845988a2b">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7b">SamplingPolicy</a> &amp;policy)</td></tr>
3727<tr class="memdesc:aab8eb6dc1ba89bb8a69f1c3845988a2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the SamplingPolicy type. <a href="#aab8eb6dc1ba89bb8a69f1c3845988a2b">More...</a><br /></td></tr>
3728<tr class="separator:aab8eb6dc1ba89bb8a69f1c3845988a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
3729<tr class="memitem:a48fd5e28bdb4975c141841f0b96f8707"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a48fd5e28bdb4975c141841f0b96f8707">to_string</a> (const <a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a> &amp;info)</td></tr>
3730<tr class="memdesc:a48fd5e28bdb4975c141841f0b96f8707"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="classarm__compute_1_1_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">TensorInfo</a> type. <a href="#a48fd5e28bdb4975c141841f0b96f8707">More...</a><br /></td></tr>
3731<tr class="separator:a48fd5e28bdb4975c141841f0b96f8707"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003732<tr class="memitem:aa32488ee1dd78e0464ed23e8cc2b6e49"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
3733<tr class="memitem:aa32488ee1dd78e0464ed23e8cc2b6e49"><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aa32488ee1dd78e0464ed23e8cc2b6e49">to_string</a> (const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;dimensions)</td></tr>
3734<tr class="separator:aa32488ee1dd78e0464ed23e8cc2b6e49"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01003735<tr class="memitem:a1c4486f45128be7156e38e6dea345a16"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1c4486f45128be7156e38e6dea345a16">to_string</a> (const <a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a> &amp;stride)</td></tr>
3736<tr class="separator:a1c4486f45128be7156e38e6dea345a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003737<tr class="memitem:a9d9b56d1b106b79fc5c5411372222d0f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9d9b56d1b106b79fc5c5411372222d0f">to_string</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003738<tr class="memdesc:a9d9b56d1b106b79fc5c5411372222d0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml" title="Shape of a tensor. ">TensorShape</a> type. <a href="#a9d9b56d1b106b79fc5c5411372222d0f">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003739<tr class="separator:a9d9b56d1b106b79fc5c5411372222d0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01003740<tr class="memitem:a805a74997e303d29108845956a674387"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a805a74997e303d29108845956a674387">to_string</a> (const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;coord)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003741<tr class="memdesc:a805a74997e303d29108845956a674387"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="classarm__compute_1_1_coordinates.xhtml" title="Coordinates of an item. ">Coordinates</a> type. <a href="#a805a74997e303d29108845956a674387">More...</a><br /></td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01003742<tr class="separator:a805a74997e303d29108845956a674387"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003743<tr class="memitem:a17881750c427aedd95deba46a4366ace"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a17881750c427aedd95deba46a4366ace">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="structarm__compute_1_1_rectangle.xhtml">Rectangle</a> &amp;rect)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003744<tr class="memdesc:a17881750c427aedd95deba46a4366ace"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="structarm__compute_1_1_rectangle.xhtml" title="Rectangle type. ">Rectangle</a> type. <a href="#a17881750c427aedd95deba46a4366ace">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003745<tr class="separator:a17881750c427aedd95deba46a4366ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
3746<tr class="memitem:a8af36ae3a3613112c3a95e57f606359a"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8af36ae3a3613112c3a95e57f606359a">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &amp;pad_stride_info)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003747<tr class="memdesc:a8af36ae3a3613112c3a95e57f606359a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the PadStridInfo type. <a href="#a8af36ae3a3613112c3a95e57f606359a">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003748<tr class="separator:a8af36ae3a3613112c3a95e57f606359a"><td class="memSeparator" colspan="2">&#160;</td></tr>
3749<tr class="memitem:a2c0e6c1c4cf10da25e7a7362ba151ba2"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2c0e6c1c4cf10da25e7a7362ba151ba2">to_string</a> (const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &amp;pad_stride_info)</td></tr>
3750<tr class="separator:a2c0e6c1c4cf10da25e7a7362ba151ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
3751<tr class="memitem:a0604106dd269acd58152a81ba87cc265"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0604106dd269acd58152a81ba87cc265">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> &amp;mode)</td></tr>
3752<tr class="separator:a0604106dd269acd58152a81ba87cc265"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01003753<tr class="memitem:a5c9cde9144eaeceaf086377b9bc5a5be"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5c9cde9144eaeceaf086377b9bc5a5be">to_string</a> (const <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> &amp;border)</td></tr>
3754<tr class="separator:a5c9cde9144eaeceaf086377b9bc5a5be"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003755<tr class="memitem:a94bd78942b683c05cba85048537d3ee7"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a94bd78942b683c05cba85048537d3ee7">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> &amp;policy)</td></tr>
3756<tr class="separator:a94bd78942b683c05cba85048537d3ee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003757<tr class="memitem:a5b8e815072ae54278cb1c91e254be4d3"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5b8e815072ae54278cb1c91e254be4d3">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7b">SamplingPolicy</a> &amp;policy)</td></tr>
3758<tr class="separator:a5b8e815072ae54278cb1c91e254be4d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003759<tr class="memitem:a4287c6842a60e5f6bf309e55f8813527"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4287c6842a60e5f6bf309e55f8813527">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> &amp;policy)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003760<tr class="memdesc:a4287c6842a60e5f6bf309e55f8813527"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the ConversionPolicy type. <a href="#a4287c6842a60e5f6bf309e55f8813527">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003761<tr class="separator:a4287c6842a60e5f6bf309e55f8813527"><td class="memSeparator" colspan="2">&#160;</td></tr>
3762<tr class="memitem:adcc7e107e7dbd2ffac02189089c33e4f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#adcc7e107e7dbd2ffac02189089c33e4f">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> &amp;policy)</td></tr>
3763<tr class="separator:adcc7e107e7dbd2ffac02189089c33e4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
3764<tr class="memitem:a292505a0ec686541cfe0dcfd1d651ec5"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a292505a0ec686541cfe0dcfd1d651ec5">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45b">ReductionOperation</a> &amp;op)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003765<tr class="memdesc:a292505a0ec686541cfe0dcfd1d651ec5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the Reduction Operations. <a href="#a292505a0ec686541cfe0dcfd1d651ec5">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003766<tr class="separator:a292505a0ec686541cfe0dcfd1d651ec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
3767<tr class="memitem:aae534105c7ea67999ccbb34a0ed567cd"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aae534105c7ea67999ccbb34a0ed567cd">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45b">ReductionOperation</a> &amp;op)</td></tr>
3768<tr class="separator:aae534105c7ea67999ccbb34a0ed567cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
3769<tr class="memitem:ad8b676c38d9b8d9d9bde7caec5720bd9"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad8b676c38d9b8d9d9bde7caec5720bd9">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a> &amp;type)</td></tr>
3770<tr class="separator:ad8b676c38d9b8d9d9bde7caec5720bd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
3771<tr class="memitem:a2872d19dd10dc3117813d291c08e0383"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2872d19dd10dc3117813d291c08e0383">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a> &amp;type)</td></tr>
3772<tr class="separator:a2872d19dd10dc3117813d291c08e0383"><td class="memSeparator" colspan="2">&#160;</td></tr>
3773<tr class="memitem:acef515348c5f7f73c89aa4b8a47a02bc"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#acef515348c5f7f73c89aa4b8a47a02bc">to_string</a> (const <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a> &amp;info)</td></tr>
3774<tr class="separator:acef515348c5f7f73c89aa4b8a47a02bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
3775<tr class="memitem:a9a2e48a508dc85b7280f955876bb4462"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9a2e48a508dc85b7280f955876bb4462">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> &amp;point)</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003776<tr class="memdesc:a9a2e48a508dc85b7280f955876bb4462"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="structarm__compute_1_1_key_point.xhtml" title="Keypoint type. ">KeyPoint</a> type. <a href="#a9a2e48a508dc85b7280f955876bb4462">More...</a><br /></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +01003777<tr class="separator:a9a2e48a508dc85b7280f955876bb4462"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003778<tr class="memitem:abe52a76af2aa88876d54ce8a5969e509"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abe52a76af2aa88876d54ce8a5969e509">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72">PhaseType</a> &amp;phase_type)</td></tr>
3779<tr class="memdesc:abe52a76af2aa88876d54ce8a5969e509"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the PhaseType type. <a href="#abe52a76af2aa88876d54ce8a5969e509">More...</a><br /></td></tr>
3780<tr class="separator:abe52a76af2aa88876d54ce8a5969e509"><td class="memSeparator" colspan="2">&#160;</td></tr>
3781<tr class="memitem:ae4ead564f3c96ea5f1ec7fe035b941f3"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae4ead564f3c96ea5f1ec7fe035b941f3">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72">arm_compute::PhaseType</a> &amp;type)</td></tr>
3782<tr class="separator:ae4ead564f3c96ea5f1ec7fe035b941f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
3783<tr class="memitem:a530d86eec3dbd22cab6336ffdceb0d37"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a530d86eec3dbd22cab6336ffdceb0d37">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8a">MagnitudeType</a> &amp;magnitude_type)</td></tr>
3784<tr class="memdesc:a530d86eec3dbd22cab6336ffdceb0d37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the MagnitudeType type. <a href="#a530d86eec3dbd22cab6336ffdceb0d37">More...</a><br /></td></tr>
3785<tr class="separator:a530d86eec3dbd22cab6336ffdceb0d37"><td class="memSeparator" colspan="2">&#160;</td></tr>
3786<tr class="memitem:a42e6f8761f01b5846f56c3b8025c8c0a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a42e6f8761f01b5846f56c3b8025c8c0a">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8a">arm_compute::MagnitudeType</a> &amp;type)</td></tr>
3787<tr class="separator:a42e6f8761f01b5846f56c3b8025c8c0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
3788<tr class="memitem:af3985189d478b45014e7dead9d002e2a"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af3985189d478b45014e7dead9d002e2a">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7">GradientDimension</a> &amp;dim)</td></tr>
3789<tr class="memdesc:af3985189d478b45014e7dead9d002e2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the GradientDimension type. <a href="#af3985189d478b45014e7dead9d002e2a">More...</a><br /></td></tr>
3790<tr class="separator:af3985189d478b45014e7dead9d002e2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
3791<tr class="memitem:ab75d8ff29ba9b398d5740b3efd156e71"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab75d8ff29ba9b398d5740b3efd156e71">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7">arm_compute::GradientDimension</a> &amp;type)</td></tr>
3792<tr class="separator:ab75d8ff29ba9b398d5740b3efd156e71"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00003793<tr class="memitem:a5e7a61df2b926347b42ecadf8bcc8969"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5e7a61df2b926347b42ecadf8bcc8969">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3">HOGNormType</a> &amp;norm_type)</td></tr>
3794<tr class="memdesc:a5e7a61df2b926347b42ecadf8bcc8969"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the HOGNormType type. <a href="#a5e7a61df2b926347b42ecadf8bcc8969">More...</a><br /></td></tr>
3795<tr class="separator:a5e7a61df2b926347b42ecadf8bcc8969"><td class="memSeparator" colspan="2">&#160;</td></tr>
3796<tr class="memitem:a950ba288e8136db4bf52f7c51dea20eb"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a950ba288e8136db4bf52f7c51dea20eb">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3">HOGNormType</a> &amp;type)</td></tr>
3797<tr class="separator:a950ba288e8136db4bf52f7c51dea20eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
3798<tr class="memitem:ab91d110e020f6ed987e05e82df3e350b"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab91d110e020f6ed987e05e82df3e350b">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a> &amp;<a class="el" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>)</td></tr>
3799<tr class="memdesc:ab91d110e020f6ed987e05e82df3e350b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="classarm__compute_1_1_size2_d.xhtml" title="Class for specifying the size of an image or rectangle. ">Size2D</a> type. <a href="#ab91d110e020f6ed987e05e82df3e350b">More...</a><br /></td></tr>
3800<tr class="separator:ab91d110e020f6ed987e05e82df3e350b"><td class="memSeparator" colspan="2">&#160;</td></tr>
3801<tr class="memitem:aee88a2c259879eb9dc18cb5965e87c29"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aee88a2c259879eb9dc18cb5965e87c29">to_string</a> (const <a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a> &amp;type)</td></tr>
3802<tr class="separator:aee88a2c259879eb9dc18cb5965e87c29"><td class="memSeparator" colspan="2">&#160;</td></tr>
3803<tr class="memitem:a4228b490e13b79a60737929d9d9e5957"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a4228b490e13b79a60737929d9d9e5957">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml">HOGInfo</a> &amp;hog_info)</td></tr>
3804<tr class="memdesc:a4228b490e13b79a60737929d9d9e5957"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="classarm__compute_1_1_size2_d.xhtml" title="Class for specifying the size of an image or rectangle. ">Size2D</a> type. <a href="#a4228b490e13b79a60737929d9d9e5957">More...</a><br /></td></tr>
3805<tr class="separator:a4228b490e13b79a60737929d9d9e5957"><td class="memSeparator" colspan="2">&#160;</td></tr>
3806<tr class="memitem:a3cf43a216912b361eaffc3c71452a31e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3cf43a216912b361eaffc3c71452a31e">to_string</a> (const <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml">HOGInfo</a> &amp;type)</td></tr>
3807<tr class="memdesc:a3cf43a216912b361eaffc3c71452a31e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted output of the <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml" title="Store the HOG&#39;s metadata. ">HOGInfo</a> type. <a href="#a3cf43a216912b361eaffc3c71452a31e">More...</a><br /></td></tr>
3808<tr class="separator:a3cf43a216912b361eaffc3c71452a31e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003809<tr class="memitem:abd35c1c3fb716078b1f4a25981defac4"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#abd35c1c3fb716078b1f4a25981defac4">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517d">ConvolutionMethod</a> &amp;conv_method)</td></tr>
3810<tr class="separator:abd35c1c3fb716078b1f4a25981defac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
3811<tr class="memitem:a853d44a32a328fb4455f6200a11c4785"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a853d44a32a328fb4455f6200a11c4785">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517d">ConvolutionMethod</a> &amp;conv_method)</td></tr>
3812<tr class="separator:a853d44a32a328fb4455f6200a11c4785"><td class="memSeparator" colspan="2">&#160;</td></tr>
3813<tr class="memitem:a1f4d95d65a62a085e929ab0a1a77add2"><td class="memItemLeft" align="right" valign="top">inline::std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1f4d95d65a62a085e929ab0a1a77add2">operator&lt;&lt;</a> (::std::ostream &amp;os, const <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> &amp;gpu_target)</td></tr>
3814<tr class="separator:a1f4d95d65a62a085e929ab0a1a77add2"><td class="memSeparator" colspan="2">&#160;</td></tr>
3815<tr class="memitem:aee29ccfc095313663fc954f581ddf40a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aee29ccfc095313663fc954f581ddf40a">to_string</a> (const <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> &amp;gpu_target)</td></tr>
3816<tr class="separator:aee29ccfc095313663fc954f581ddf40a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003817</table><table class="memberdecls">
3818<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
3819Variables</h2></td></tr>
3820<tr class="memitem:a769d636d7a3c7c84579a5f477a18bc9d"><td class="memItemLeft" align="right" valign="top">constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a769d636d7a3c7c84579a5f477a18bc9d">MAX_DIMS</a> = 6</td></tr>
3821<tr class="separator:a769d636d7a3c7c84579a5f477a18bc9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
3822<tr class="memitem:a869945609357fa552d94eb16f7aad4e9"><td class="memItemLeft" align="right" valign="top">const std::array&lt; float32x4_t, 8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a869945609357fa552d94eb16f7aad4e9">exp_tab</a></td></tr>
3823<tr class="separator:a869945609357fa552d94eb16f7aad4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
3824<tr class="memitem:a48fb9cf404e8f7043235bf14105c9793"><td class="memItemLeft" align="right" valign="top">const std::array&lt; float32x4_t, 8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a48fb9cf404e8f7043235bf14105c9793">log_tab</a></td></tr>
3825<tr class="separator:a48fb9cf404e8f7043235bf14105c9793"><td class="memSeparator" colspan="2">&#160;</td></tr>
3826<tr class="memitem:a3fed059965fe44cbe7ed4091d6b63acf"><td class="memItemLeft" align="right" valign="top">constexpr uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a3fed059965fe44cbe7ed4091d6b63acf">CONSTANT_BORDER_VALUE</a> = 199</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003827<tr class="memdesc:a3fed059965fe44cbe7ed4091d6b63acf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant value of the border pixels when using <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92" title="Pixels outside the image are assumed to have a constant value. ">BorderMode::CONSTANT</a>. <a href="#a3fed059965fe44cbe7ed4091d6b63acf">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00003828<tr class="separator:a3fed059965fe44cbe7ed4091d6b63acf"><td class="memSeparator" colspan="2">&#160;</td></tr>
3829<tr class="memitem:af9876aedd664cac0ddeacddb40cb71cd"><td class="memItemLeft" align="right" valign="top">constexpr float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af9876aedd664cac0ddeacddb40cb71cd">SCALE_PYRAMID_HALF</a> = 0.5f</td></tr>
3830<tr class="separator:af9876aedd664cac0ddeacddb40cb71cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
3831<tr class="memitem:a2ebcd5423d5fba468e7debd2e1aabe91"><td class="memItemLeft" align="right" valign="top">constexpr float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a2ebcd5423d5fba468e7debd2e1aabe91">SCALE_PYRAMID_ORB</a> = 8.408964152537146130583778358414e-01</td></tr>
3832<tr class="separator:a2ebcd5423d5fba468e7debd2e1aabe91"><td class="memSeparator" colspan="2">&#160;</td></tr>
3833</table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003834<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
3835<div class="textblock"><p>This file contains all available output stages for GEMMLowp on OpenCL. </p>
3836<p>This file contains all available output stages for GEMMLowp on NEON.</p>
3837<p>In gemmlowp, the "output stage" is the process that takes a final int32 accumulator value (the output of <a class="el" href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_multiply_core.xhtml">CLGEMMLowpMatrixMultiplyCore</a>), and processes it to obtain the final ASYMM8 value.</p>
3838<p>More information about the GEMMLowp output stage can be found at <a href="https://github.com/google/gemmlowp/blob/master/doc/output.md">https://github.com/google/gemmlowp/blob/master/doc/output.md</a></p>
3839<p>In gemmlowp, the "output stage" is the process that takes a final int32 accumulator value (the output of <a class="el" href="classarm__compute_1_1_n_e_g_e_m_m_lowp_matrix_multiply_core.xhtml">NEGEMMLowpMatrixMultiplyCore</a>), and processes it to obtain the final ASYMM8 value.</p>
3840<p>More information about the GEMMLowp output stage can be found at <a href="https://github.com/google/gemmlowp/blob/master/doc/output.md">https://github.com/google/gemmlowp/blob/master/doc/output.md</a> </p>
3841</div><h2 class="groupheader">Typedef Documentation</h2>
Anthony Barbier871448e2017-03-24 14:54:29 +00003842<a class="anchor" id="afcef84cf3b7d147b2b6ab0bd884afc16"></a>
3843<div class="memitem">
3844<div class="memproto">
3845 <table class="memname">
3846 <tr>
3847 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#afcef84cf3b7d147b2b6ab0bd884afc16">CLCoefficientTableArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;<a class="el" href="structarm__compute_1_1_c_l_coefficient_table.xhtml">CLCoefficientTable</a>&gt;</td>
3848 </tr>
3849 </table>
3850</div><div class="memdoc">
3851
Kaizen8938bd32017-09-28 14:38:23 +01003852<p>Definition at line <a class="el" href="_c_l_optical_flow_8h_source.xhtml#l00047">47</a> of file <a class="el" href="_c_l_optical_flow_8h_source.xhtml">CLOpticalFlow.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00003853
3854</div>
3855</div>
3856<a class="anchor" id="a4751499f1c526c7285e7e946c2e84541"></a>
3857<div class="memitem">
3858<div class="memproto">
3859 <table class="memname">
3860 <tr>
3861 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4751499f1c526c7285e7e946c2e84541">CLConvolution3x3Kernel</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_kernel.xhtml">CLConvolutionKernel</a>&lt;3&gt;</td>
3862 </tr>
3863 </table>
3864</div><div class="memdoc">
3865
3866<p>Interface for the kernel which applies a 3x3 convolution to a tensor. </p>
3867
3868<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00070">70</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
3869
3870</div>
3871</div>
3872<a class="anchor" id="a843447b81f09d837e90d44e6e6bd236d"></a>
3873<div class="memitem">
3874<div class="memproto">
3875 <table class="memname">
3876 <tr>
3877 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a843447b81f09d837e90d44e6e6bd236d">CLConvolution5x5</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_square.xhtml">CLConvolutionSquare</a>&lt;5&gt;</td>
3878 </tr>
3879 </table>
3880</div><div class="memdoc">
3881
3882<p>Basic function to run 5x5 convolution. </p>
3883
Kaizen8938bd32017-09-28 14:38:23 +01003884<p>Definition at line <a class="el" href="_c_l_convolution_8h_source.xhtml#l00102">102</a> of file <a class="el" href="_c_l_convolution_8h_source.xhtml">CLConvolution.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00003885
3886</div>
3887</div>
3888<a class="anchor" id="ac4cfbdf439d7bf5d420546298bd5ca0d"></a>
3889<div class="memitem">
3890<div class="memproto">
3891 <table class="memname">
3892 <tr>
3893 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ac4cfbdf439d7bf5d420546298bd5ca0d">CLConvolution5x5Kernel</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_kernel.xhtml">CLConvolutionKernel</a>&lt;5&gt;</td>
3894 </tr>
3895 </table>
3896</div><div class="memdoc">
3897
3898<p>Interface for the kernel which applies a 5x5 convolution to a tensor. </p>
3899
3900<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00072">72</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
3901
3902</div>
3903</div>
3904<a class="anchor" id="a1992a8362b7074e709394a5219d16e62"></a>
3905<div class="memitem">
3906<div class="memproto">
3907 <table class="memname">
3908 <tr>
3909 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a1992a8362b7074e709394a5219d16e62">CLConvolution7x7</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_square.xhtml">CLConvolutionSquare</a>&lt;7&gt;</td>
3910 </tr>
3911 </table>
3912</div><div class="memdoc">
3913
3914<p>Basic function to run 7x7 convolution. </p>
3915
Kaizen8938bd32017-09-28 14:38:23 +01003916<p>Definition at line <a class="el" href="_c_l_convolution_8h_source.xhtml#l00104">104</a> of file <a class="el" href="_c_l_convolution_8h_source.xhtml">CLConvolution.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00003917
3918</div>
3919</div>
3920<a class="anchor" id="a99a54c937a254c96cd1a29a96ffa7dcf"></a>
3921<div class="memitem">
3922<div class="memproto">
3923 <table class="memname">
3924 <tr>
3925 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a99a54c937a254c96cd1a29a96ffa7dcf">CLConvolution7x7Kernel</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_kernel.xhtml">CLConvolutionKernel</a>&lt;7&gt;</td>
3926 </tr>
3927 </table>
3928</div><div class="memdoc">
3929
3930<p>Interface for the kernel which applies a 7x7 convolution to a tensor. </p>
3931
3932<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00074">74</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
3933
3934</div>
3935</div>
3936<a class="anchor" id="a587dee5d7f05d5e9c3b8704ae8927101"></a>
3937<div class="memitem">
3938<div class="memproto">
3939 <table class="memname">
3940 <tr>
3941 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a587dee5d7f05d5e9c3b8704ae8927101">CLConvolution9x9</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_square.xhtml">CLConvolutionSquare</a>&lt;9&gt;</td>
3942 </tr>
3943 </table>
3944</div><div class="memdoc">
3945
3946<p>Basic function to run 9x9 convolution. </p>
3947
Kaizen8938bd32017-09-28 14:38:23 +01003948<p>Definition at line <a class="el" href="_c_l_convolution_8h_source.xhtml#l00106">106</a> of file <a class="el" href="_c_l_convolution_8h_source.xhtml">CLConvolution.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00003949
3950</div>
3951</div>
3952<a class="anchor" id="a908439cd5cf8253865d5c70a413fd607"></a>
3953<div class="memitem">
3954<div class="memproto">
3955 <table class="memname">
3956 <tr>
3957 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a908439cd5cf8253865d5c70a413fd607">CLConvolution9x9Kernel</a> = <a class="el" href="classarm__compute_1_1_c_l_convolution_kernel.xhtml">CLConvolutionKernel</a>&lt;9&gt;</td>
3958 </tr>
3959 </table>
3960</div><div class="memdoc">
3961
3962<p>Interface for the kernel which applies a 9x9 convolution to a tensor. </p>
3963
3964<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00076">76</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
3965
3966</div>
3967</div>
3968<a class="anchor" id="a0fd5f0310a26faad00b905bac3792726"></a>
3969<div class="memitem">
3970<div class="memproto">
3971 <table class="memname">
3972 <tr>
3973 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a0fd5f0310a26faad00b905bac3792726">CLCoordinates2DArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;<a class="el" href="structarm__compute_1_1_coordinates2_d.xhtml">Coordinates2D</a>&gt;</td>
3974 </tr>
3975 </table>
3976</div><div class="memdoc">
3977
Kaizen8938bd32017-09-28 14:38:23 +01003978<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00105">105</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00003979
3980</div>
3981</div>
3982<a class="anchor" id="ab8d2c7efb7643ce8f9e5446dbe1da0b4"></a>
3983<div class="memitem">
3984<div class="memproto">
3985 <table class="memname">
3986 <tr>
3987 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ab8d2c7efb7643ce8f9e5446dbe1da0b4">CLDetectionWindowArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;<a class="el" href="structarm__compute_1_1_detection_window.xhtml">DetectionWindow</a>&gt;</td>
3988 </tr>
3989 </table>
3990</div><div class="memdoc">
3991
Kaizen8938bd32017-09-28 14:38:23 +01003992<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00106">106</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00003993
3994</div>
3995</div>
3996<a class="anchor" id="a193a4859b365f3ef4e0d73a1e6b12c85"></a>
3997<div class="memitem">
3998<div class="memproto">
3999 <table class="memname">
4000 <tr>
4001 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a193a4859b365f3ef4e0d73a1e6b12c85">CLFloatArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;cl_float&gt;</td>
4002 </tr>
4003 </table>
4004</div><div class="memdoc">
4005
Kaizen8938bd32017-09-28 14:38:23 +01004006<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00114">114</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004007
4008</div>
4009</div>
4010<a class="anchor" id="aae712f442eae2d56d17529ca6cb9cb77"></a>
4011<div class="memitem">
4012<div class="memproto">
4013 <table class="memname">
4014 <tr>
4015 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aae712f442eae2d56d17529ca6cb9cb77">CLImage</a> = <a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a></td>
4016 </tr>
4017 </table>
4018</div><div class="memdoc">
4019
4020<p>Definition at line <a class="el" href="_c_l_tensor_8h_source.xhtml#l00079">79</a> of file <a class="el" href="_c_l_tensor_8h_source.xhtml">CLTensor.h</a>.</p>
4021
4022</div>
4023</div>
4024<a class="anchor" id="a5fb8cb339705102066c915d18f0701ac"></a>
4025<div class="memitem">
4026<div class="memproto">
4027 <table class="memname">
4028 <tr>
4029 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a5fb8cb339705102066c915d18f0701ac">CLInt16Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;cl_short&gt;</td>
4030 </tr>
4031 </table>
4032</div><div class="memdoc">
4033
Kaizen8938bd32017-09-28 14:38:23 +01004034<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00112">112</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004035
4036</div>
4037</div>
4038<a class="anchor" id="a8a401a071524761c661a75969c951cf5"></a>
4039<div class="memitem">
4040<div class="memproto">
4041 <table class="memname">
4042 <tr>
4043 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a8a401a071524761c661a75969c951cf5">CLInt32Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;cl_int&gt;</td>
4044 </tr>
4045 </table>
4046</div><div class="memdoc">
4047
Kaizen8938bd32017-09-28 14:38:23 +01004048<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00113">113</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004049
4050</div>
4051</div>
4052<a class="anchor" id="a55e1c5ed17b7ee3762198a38eb50650a"></a>
4053<div class="memitem">
4054<div class="memproto">
4055 <table class="memname">
4056 <tr>
4057 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a55e1c5ed17b7ee3762198a38eb50650a">CLKeyPointArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;<a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a>&gt;</td>
4058 </tr>
4059 </table>
4060</div><div class="memdoc">
4061
Kaizen8938bd32017-09-28 14:38:23 +01004062<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00104">104</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004063
4064</div>
4065</div>
4066<a class="anchor" id="a70997613219641045213b0c12948fb74"></a>
4067<div class="memitem">
4068<div class="memproto">
4069 <table class="memname">
4070 <tr>
4071 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a70997613219641045213b0c12948fb74">CLLKInternalKeypointArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;<a class="el" href="structarm__compute_1_1_c_l_l_k_internal_keypoint.xhtml">CLLKInternalKeypoint</a>&gt;</td>
4072 </tr>
4073 </table>
4074</div><div class="memdoc">
4075
Kaizen8938bd32017-09-28 14:38:23 +01004076<p>Definition at line <a class="el" href="_c_l_optical_flow_8h_source.xhtml#l00046">46</a> of file <a class="el" href="_c_l_optical_flow_8h_source.xhtml">CLOpticalFlow.h</a>.</p>
4077
4078</div>
4079</div>
4080<a class="anchor" id="ac87d48489667d7ff7fc4cc7d0d12c52e"></a>
4081<div class="memitem">
4082<div class="memproto">
4083 <table class="memname">
4084 <tr>
4085 <td class="memname">typedef <a class="el" href="classarm__compute_1_1_memory_group_base.xhtml">MemoryGroupBase</a>&lt; <a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> &gt; <a class="el" href="namespacearm__compute.xhtml#ac87d48489667d7ff7fc4cc7d0d12c52e">CLMemoryGroup</a></td>
4086 </tr>
4087 </table>
4088</div><div class="memdoc">
4089
4090<p>Definition at line <a class="el" href="_c_l_memory_group_8h_source.xhtml#l00034">34</a> of file <a class="el" href="_c_l_memory_group_8h_source.xhtml">CLMemoryGroup.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004091
4092</div>
4093</div>
4094<a class="anchor" id="a4ec6965f606c588137f7a48d84c1d6f0"></a>
4095<div class="memitem">
4096<div class="memproto">
4097 <table class="memname">
4098 <tr>
4099 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4ec6965f606c588137f7a48d84c1d6f0">CLOldValueArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;<a class="el" href="structarm__compute_1_1_c_l_old_value.xhtml">CLOldValue</a>&gt;</td>
4100 </tr>
4101 </table>
4102</div><div class="memdoc">
4103
Kaizen8938bd32017-09-28 14:38:23 +01004104<p>Definition at line <a class="el" href="_c_l_optical_flow_8h_source.xhtml#l00048">48</a> of file <a class="el" href="_c_l_optical_flow_8h_source.xhtml">CLOpticalFlow.h</a>.</p>
4105
4106</div>
4107</div>
4108<a class="anchor" id="a7d756aef16b9c22456bb7aca8fbb4f4c"></a>
4109<div class="memitem">
4110<div class="memproto">
4111 <table class="memname">
4112 <tr>
4113 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a7d756aef16b9c22456bb7aca8fbb4f4c">CLROIArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;<a class="el" href="structarm__compute_1_1_r_o_i.xhtml">ROI</a>&gt;</td>
4114 </tr>
4115 </table>
4116</div><div class="memdoc">
4117
4118<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00107">107</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004119
4120</div>
4121</div>
4122<a class="anchor" id="ac72d613f7270604dbcad2553c278b16c"></a>
4123<div class="memitem">
4124<div class="memproto">
4125 <table class="memname">
4126 <tr>
4127 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ac72d613f7270604dbcad2553c278b16c">CLSeparableConvolution5x5HorKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_hor_kernel.xhtml">CLSeparableConvolutionHorKernel</a>&lt;5&gt;</td>
4128 </tr>
4129 </table>
4130</div><div class="memdoc">
4131
4132<p>Interface for the kernel which applies a horizontal pass of 5x5 convolution to a tensor. </p>
4133
4134<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00106">106</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
4135
4136</div>
4137</div>
4138<a class="anchor" id="ac7295b0d8d71be75033238ad7fbba38c"></a>
4139<div class="memitem">
4140<div class="memproto">
4141 <table class="memname">
4142 <tr>
4143 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ac7295b0d8d71be75033238ad7fbba38c">CLSeparableConvolution5x5VertKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_vert_kernel.xhtml">CLSeparableConvolutionVertKernel</a>&lt;5&gt;</td>
4144 </tr>
4145 </table>
4146</div><div class="memdoc">
4147
4148<p>Interface for the kernel which applies a vertical pass of 5x5 convolution to a tensor. </p>
4149
4150<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00133">133</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
4151
4152</div>
4153</div>
4154<a class="anchor" id="aab26624bf4b326f8145b2909a5042004"></a>
4155<div class="memitem">
4156<div class="memproto">
4157 <table class="memname">
4158 <tr>
4159 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aab26624bf4b326f8145b2909a5042004">CLSeparableConvolution7x7HorKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_hor_kernel.xhtml">CLSeparableConvolutionHorKernel</a>&lt;7&gt;</td>
4160 </tr>
4161 </table>
4162</div><div class="memdoc">
4163
4164<p>Interface for the kernel which applies a horizontal pass of 7x7 convolution to a tensor. </p>
4165
4166<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00108">108</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
4167
4168</div>
4169</div>
4170<a class="anchor" id="a0ffdf01e236016ce8d366a69875d1375"></a>
4171<div class="memitem">
4172<div class="memproto">
4173 <table class="memname">
4174 <tr>
4175 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a0ffdf01e236016ce8d366a69875d1375">CLSeparableConvolution7x7VertKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_vert_kernel.xhtml">CLSeparableConvolutionVertKernel</a>&lt;7&gt;</td>
4176 </tr>
4177 </table>
4178</div><div class="memdoc">
4179
4180<p>Interface for the kernel which applies a vertical pass of 7x7 convolution to a tensor. </p>
4181
4182<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00135">135</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
4183
4184</div>
4185</div>
4186<a class="anchor" id="a9f34ccad344bc43d25e8be2b828853aa"></a>
4187<div class="memitem">
4188<div class="memproto">
4189 <table class="memname">
4190 <tr>
4191 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a9f34ccad344bc43d25e8be2b828853aa">CLSeparableConvolution9x9HorKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_hor_kernel.xhtml">CLSeparableConvolutionHorKernel</a>&lt;9&gt;</td>
4192 </tr>
4193 </table>
4194</div><div class="memdoc">
4195
4196<p>Interface for the kernel which applies a horizontal pass of 9x9 convolution to a tensor. </p>
4197
4198<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00110">110</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
4199
4200</div>
4201</div>
4202<a class="anchor" id="a6d08e1e881bf611c1e1b9e2bb8810d19"></a>
4203<div class="memitem">
4204<div class="memproto">
4205 <table class="memname">
4206 <tr>
4207 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a6d08e1e881bf611c1e1b9e2bb8810d19">CLSeparableConvolution9x9VertKernel</a> = <a class="el" href="classarm__compute_1_1_c_l_separable_convolution_vert_kernel.xhtml">CLSeparableConvolutionVertKernel</a>&lt;9&gt;</td>
4208 </tr>
4209 </table>
4210</div><div class="memdoc">
4211
4212<p>Interface for the kernel which applies a vertical pass of 9x9 convolution to a tensor. </p>
4213
4214<p>Definition at line <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml#l00137">137</a> of file <a class="el" href="_c_l_convolution_kernel_8h_source.xhtml">CLConvolutionKernel.h</a>.</p>
4215
4216</div>
4217</div>
4218<a class="anchor" id="a3f9ab729931f4e4fa36ff1683186d988"></a>
4219<div class="memitem">
4220<div class="memproto">
4221 <table class="memname">
4222 <tr>
4223 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a3f9ab729931f4e4fa36ff1683186d988">CLSize2DArray</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;<a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a>&gt;</td>
4224 </tr>
4225 </table>
4226</div><div class="memdoc">
4227
Kaizen8938bd32017-09-28 14:38:23 +01004228<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00108">108</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004229
4230</div>
4231</div>
4232<a class="anchor" id="a7b4c4a79c73a3f85ba89aff03fddefa7"></a>
4233<div class="memitem">
4234<div class="memproto">
4235 <table class="memname">
4236 <tr>
4237 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a7b4c4a79c73a3f85ba89aff03fddefa7">CLUInt16Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;cl_ushort&gt;</td>
4238 </tr>
4239 </table>
4240</div><div class="memdoc">
4241
Kaizen8938bd32017-09-28 14:38:23 +01004242<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00110">110</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004243
4244</div>
4245</div>
4246<a class="anchor" id="a1d7d89b7e990055dc95ed37dfb24da48"></a>
4247<div class="memitem">
4248<div class="memproto">
4249 <table class="memname">
4250 <tr>
4251 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a1d7d89b7e990055dc95ed37dfb24da48">CLUInt32Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;cl_uint&gt;</td>
4252 </tr>
4253 </table>
4254</div><div class="memdoc">
4255
Kaizen8938bd32017-09-28 14:38:23 +01004256<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00111">111</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004257
4258</div>
4259</div>
4260<a class="anchor" id="aa031694bb03711e09e25546ad2b643cc"></a>
4261<div class="memitem">
4262<div class="memproto">
4263 <table class="memname">
4264 <tr>
4265 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aa031694bb03711e09e25546ad2b643cc">CLUInt8Array</a> = <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a>&lt;cl_uchar&gt;</td>
4266 </tr>
4267 </table>
4268</div><div class="memdoc">
4269
Kaizen8938bd32017-09-28 14:38:23 +01004270<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00109">109</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004271
4272</div>
4273</div>
4274<a class="anchor" id="a327abccf7b43aa32d6a24319b986f3ab"></a>
4275<div class="memitem">
4276<div class="memproto">
4277 <table class="memname">
4278 <tr>
4279 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a327abccf7b43aa32d6a24319b986f3ab">Coordinates2DArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;<a class="el" href="structarm__compute_1_1_coordinates2_d.xhtml">Coordinates2D</a>&gt;</td>
4280 </tr>
4281 </table>
4282</div><div class="memdoc">
4283
4284<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00065">65</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
4285
4286</div>
4287</div>
4288<a class="anchor" id="a5fe01ab895629edd84a511b56657d79e"></a>
4289<div class="memitem">
4290<div class="memproto">
4291 <table class="memname">
4292 <tr>
4293 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a5fe01ab895629edd84a511b56657d79e">DetectionWindowArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;<a class="el" href="structarm__compute_1_1_detection_window.xhtml">DetectionWindow</a>&gt;</td>
4294 </tr>
4295 </table>
4296</div><div class="memdoc">
4297
4298<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00066">66</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
4299
4300</div>
4301</div>
4302<a class="anchor" id="a6e06029aa1b68c0cdeb80656cc9353fe"></a>
4303<div class="memitem">
4304<div class="memproto">
4305 <table class="memname">
4306 <tr>
4307 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a6e06029aa1b68c0cdeb80656cc9353fe">FloatArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;float&gt;</td>
4308 </tr>
4309 </table>
4310</div><div class="memdoc">
4311
4312<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00073">73</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
4313
4314</div>
4315</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00004316<a class="anchor" id="a10f3af894ca8b0479a5e6bc296083314"></a>
4317<div class="memitem">
4318<div class="memproto">
4319 <table class="memname">
4320 <tr>
4321 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a10f3af894ca8b0479a5e6bc296083314">GCDirectConvolutionLayer1x1Kernel</a> = <a class="el" href="classarm__compute_1_1_g_c_direct_convolution_layer_kernel.xhtml">GCDirectConvolutionLayerKernel</a>&lt;1&gt;</td>
4322 </tr>
4323 </table>
4324</div><div class="memdoc">
4325
4326<p>Definition at line <a class="el" href="_g_c_direct_convolution_layer_kernel_8h_source.xhtml#l00083">83</a> of file <a class="el" href="_g_c_direct_convolution_layer_kernel_8h_source.xhtml">GCDirectConvolutionLayerKernel.h</a>.</p>
4327
4328</div>
4329</div>
4330<a class="anchor" id="a35ccf8834da8b67bfb9c61fbc5e5f1e6"></a>
4331<div class="memitem">
4332<div class="memproto">
4333 <table class="memname">
4334 <tr>
4335 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a35ccf8834da8b67bfb9c61fbc5e5f1e6">GCDirectConvolutionLayer3x3Kernel</a> = <a class="el" href="classarm__compute_1_1_g_c_direct_convolution_layer_kernel.xhtml">GCDirectConvolutionLayerKernel</a>&lt;3&gt;</td>
4336 </tr>
4337 </table>
4338</div><div class="memdoc">
4339
4340<p>Definition at line <a class="el" href="_g_c_direct_convolution_layer_kernel_8h_source.xhtml#l00084">84</a> of file <a class="el" href="_g_c_direct_convolution_layer_kernel_8h_source.xhtml">GCDirectConvolutionLayerKernel.h</a>.</p>
4341
4342</div>
4343</div>
4344<a class="anchor" id="a227e525a4d0a4da25040cfdf8a3cf06b"></a>
4345<div class="memitem">
4346<div class="memproto">
4347 <table class="memname">
4348 <tr>
4349 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a227e525a4d0a4da25040cfdf8a3cf06b">GCDirectConvolutionLayer5x5Kernel</a> = <a class="el" href="classarm__compute_1_1_g_c_direct_convolution_layer_kernel.xhtml">GCDirectConvolutionLayerKernel</a>&lt;5&gt;</td>
4350 </tr>
4351 </table>
4352</div><div class="memdoc">
4353
4354<p>Definition at line <a class="el" href="_g_c_direct_convolution_layer_kernel_8h_source.xhtml#l00085">85</a> of file <a class="el" href="_g_c_direct_convolution_layer_kernel_8h_source.xhtml">GCDirectConvolutionLayerKernel.h</a>.</p>
4355
4356</div>
4357</div>
4358<a class="anchor" id="a0b1d72d612fb6f33393ea6cd6cbcf523"></a>
4359<div class="memitem">
4360<div class="memproto">
4361 <table class="memname">
4362 <tr>
4363 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a0b1d72d612fb6f33393ea6cd6cbcf523">GCImage</a> = <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a></td>
4364 </tr>
4365 </table>
4366</div><div class="memdoc">
4367
4368<p>Definition at line <a class="el" href="_g_c_tensor_8h_source.xhtml#l00097">97</a> of file <a class="el" href="_g_c_tensor_8h_source.xhtml">GCTensor.h</a>.</p>
4369
4370</div>
4371</div>
Kaizen8938bd32017-09-28 14:38:23 +01004372<a class="anchor" id="ad2398d0f2ce77c10bbebf1f85317dde5"></a>
4373<div class="memitem">
4374<div class="memproto">
4375 <table class="memname">
4376 <tr>
4377 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ad2398d0f2ce77c10bbebf1f85317dde5">GroupMappings</a> = std::map&lt;size_t, <a class="el" href="namespacearm__compute.xhtml#a762c7da7319adcc433b3ac7a67e18ed5">MemoryMappings</a>&gt;</td>
4378 </tr>
4379 </table>
4380</div><div class="memdoc">
4381
4382<p>A map of the groups and memory mappings. </p>
4383
4384<p>Definition at line <a class="el" href="arm__compute_2runtime_2_types_8h_source.xhtml#l00046">46</a> of file <a class="el" href="arm__compute_2runtime_2_types_8h_source.xhtml">Types.h</a>.</p>
4385
4386</div>
4387</div>
4388<a class="anchor" id="a73e2825fd61d349c5ca2f5313e3c8ea1"></a>
4389<div class="memitem">
4390<div class="memproto">
4391 <table class="memname">
4392 <tr>
4393 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> = half_float::half</td>
4394 </tr>
4395 </table>
4396</div><div class="memdoc">
4397
4398<p>16-bit floating point type </p>
4399
Anthony Barbier06ea0482018-02-22 15:45:35 +00004400<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00044">44</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +01004401
4402</div>
4403</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00004404<a class="anchor" id="a05d88c40a53babe38cb2cb5841c4a0ad"></a>
4405<div class="memitem">
4406<div class="memproto">
4407 <table class="memname">
4408 <tr>
4409 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a05d88c40a53babe38cb2cb5841c4a0ad">ICLCoefficientTableArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;<a class="el" href="structarm__compute_1_1_c_l_coefficient_table.xhtml">CLCoefficientTable</a>&gt;</td>
4410 </tr>
4411 </table>
4412</div><div class="memdoc">
4413
4414<p>Definition at line <a class="el" href="_c_l_l_k_tracker_kernel_8h_source.xhtml#l00066">66</a> of file <a class="el" href="_c_l_l_k_tracker_kernel_8h_source.xhtml">CLLKTrackerKernel.h</a>.</p>
4415
4416</div>
4417</div>
4418<a class="anchor" id="adf4063963bf3a4b07a5d0cc840da9ee2"></a>
4419<div class="memitem">
4420<div class="memproto">
4421 <table class="memname">
4422 <tr>
4423 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#adf4063963bf3a4b07a5d0cc840da9ee2">ICLCoordinates2DArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;<a class="el" href="structarm__compute_1_1_coordinates2_d.xhtml">Coordinates2D</a>&gt;</td>
4424 </tr>
4425 </table>
4426</div><div class="memdoc">
4427
Kaizen8938bd32017-09-28 14:38:23 +01004428<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00110">110</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004429
4430</div>
4431</div>
4432<a class="anchor" id="a4cc908807b0a45ccc6ce7ba340ae2259"></a>
4433<div class="memitem">
4434<div class="memproto">
4435 <table class="memname">
4436 <tr>
4437 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4cc908807b0a45ccc6ce7ba340ae2259">ICLDetectionWindowArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;<a class="el" href="structarm__compute_1_1_detection_window.xhtml">DetectionWindow</a>&gt;</td>
4438 </tr>
4439 </table>
4440</div><div class="memdoc">
4441
Kaizen8938bd32017-09-28 14:38:23 +01004442<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00111">111</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004443
4444</div>
4445</div>
4446<a class="anchor" id="a631bac7c033a0d341c631870f9755217"></a>
4447<div class="memitem">
4448<div class="memproto">
4449 <table class="memname">
4450 <tr>
4451 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a631bac7c033a0d341c631870f9755217">ICLFloatArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;cl_float&gt;</td>
4452 </tr>
4453 </table>
4454</div><div class="memdoc">
4455
Kaizen8938bd32017-09-28 14:38:23 +01004456<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00119">119</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004457
4458</div>
4459</div>
4460<a class="anchor" id="aa80145f30ddae0c2ccbcaa910e3e71dd"></a>
4461<div class="memitem">
4462<div class="memproto">
4463 <table class="memname">
4464 <tr>
4465 <td class="memname">typedef <a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> <a class="el" href="namespacearm__compute.xhtml#aa80145f30ddae0c2ccbcaa910e3e71dd">ICLImage</a></td>
4466 </tr>
4467 </table>
4468</div><div class="memdoc">
4469
4470<p>Definition at line <a class="el" href="_i_c_l_multi_image_8h_source.xhtml#l00032">32</a> of file <a class="el" href="_i_c_l_multi_image_8h_source.xhtml">ICLMultiImage.h</a>.</p>
4471
4472</div>
4473</div>
4474<a class="anchor" id="a67328fa21e30aecd0c27d6d2e63a2b9c"></a>
4475<div class="memitem">
4476<div class="memproto">
4477 <table class="memname">
4478 <tr>
4479 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a67328fa21e30aecd0c27d6d2e63a2b9c">ICLInt16Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;cl_short&gt;</td>
4480 </tr>
4481 </table>
4482</div><div class="memdoc">
4483
Kaizen8938bd32017-09-28 14:38:23 +01004484<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00117">117</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004485
4486</div>
4487</div>
4488<a class="anchor" id="ab95380ecf1c0253f6c785c0f59194066"></a>
4489<div class="memitem">
4490<div class="memproto">
4491 <table class="memname">
4492 <tr>
4493 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ab95380ecf1c0253f6c785c0f59194066">ICLInt32Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;cl_int&gt;</td>
4494 </tr>
4495 </table>
4496</div><div class="memdoc">
4497
Kaizen8938bd32017-09-28 14:38:23 +01004498<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00118">118</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004499
4500</div>
4501</div>
4502<a class="anchor" id="adb969f0e554bf563f2fa671399d59280"></a>
4503<div class="memitem">
4504<div class="memproto">
4505 <table class="memname">
4506 <tr>
4507 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#adb969f0e554bf563f2fa671399d59280">ICLKeyPointArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;<a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a>&gt;</td>
4508 </tr>
4509 </table>
4510</div><div class="memdoc">
4511
Kaizen8938bd32017-09-28 14:38:23 +01004512<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00109">109</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004513
4514</div>
4515</div>
4516<a class="anchor" id="a569a32a7a853d4708fd4f4840c88a157"></a>
4517<div class="memitem">
4518<div class="memproto">
4519 <table class="memname">
4520 <tr>
4521 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a569a32a7a853d4708fd4f4840c88a157">ICLLKInternalKeypointArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;<a class="el" href="structarm__compute_1_1_c_l_l_k_internal_keypoint.xhtml">CLLKInternalKeypoint</a>&gt;</td>
4522 </tr>
4523 </table>
4524</div><div class="memdoc">
4525
4526<p>Definition at line <a class="el" href="_c_l_l_k_tracker_kernel_8h_source.xhtml#l00065">65</a> of file <a class="el" href="_c_l_l_k_tracker_kernel_8h_source.xhtml">CLLKTrackerKernel.h</a>.</p>
4527
4528</div>
4529</div>
4530<a class="anchor" id="a0339a19c93dde6754834a7d4ec7dab73"></a>
4531<div class="memitem">
4532<div class="memproto">
4533 <table class="memname">
4534 <tr>
4535 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a0339a19c93dde6754834a7d4ec7dab73">ICLOldValArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;<a class="el" href="structarm__compute_1_1_c_l_old_value.xhtml">CLOldValue</a>&gt;</td>
4536 </tr>
4537 </table>
4538</div><div class="memdoc">
4539
4540<p>Definition at line <a class="el" href="_c_l_l_k_tracker_kernel_8h_source.xhtml#l00067">67</a> of file <a class="el" href="_c_l_l_k_tracker_kernel_8h_source.xhtml">CLLKTrackerKernel.h</a>.</p>
4541
4542</div>
4543</div>
Kaizen8938bd32017-09-28 14:38:23 +01004544<a class="anchor" id="a64e11fcdd0f4a3f7d832495b7053fbe9"></a>
4545<div class="memitem">
4546<div class="memproto">
4547 <table class="memname">
4548 <tr>
4549 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a64e11fcdd0f4a3f7d832495b7053fbe9">ICLROIArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;<a class="el" href="structarm__compute_1_1_r_o_i.xhtml">ROI</a>&gt;</td>
4550 </tr>
4551 </table>
4552</div><div class="memdoc">
4553
4554<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00112">112</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
4555
4556</div>
4557</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00004558<a class="anchor" id="a68396eee600b3d23bf7f95a802e65dff"></a>
4559<div class="memitem">
4560<div class="memproto">
4561 <table class="memname">
4562 <tr>
4563 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a68396eee600b3d23bf7f95a802e65dff">ICLSize2DArray</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;<a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a>&gt;</td>
4564 </tr>
4565 </table>
4566</div><div class="memdoc">
4567
Kaizen8938bd32017-09-28 14:38:23 +01004568<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00113">113</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004569
4570</div>
4571</div>
4572<a class="anchor" id="af87af588094f04e537df98eaf0426cb6"></a>
4573<div class="memitem">
4574<div class="memproto">
4575 <table class="memname">
4576 <tr>
4577 <td class="memname">using <a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> = <a class="el" href="namespacearm__compute.xhtml#aa80145f30ddae0c2ccbcaa910e3e71dd">ICLImage</a></td>
4578 </tr>
4579 </table>
4580</div><div class="memdoc">
4581
4582<p>Definition at line <a class="el" href="_c_l_histogram_8h_source.xhtml#l00034">34</a> of file <a class="el" href="_c_l_histogram_8h_source.xhtml">CLHistogram.h</a>.</p>
4583
4584</div>
4585</div>
4586<a class="anchor" id="aed5c7222c31a34327f00de37d8c4f4fc"></a>
4587<div class="memitem">
4588<div class="memproto">
4589 <table class="memname">
4590 <tr>
4591 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aed5c7222c31a34327f00de37d8c4f4fc">ICLUInt16Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;cl_ushort&gt;</td>
4592 </tr>
4593 </table>
4594</div><div class="memdoc">
4595
Kaizen8938bd32017-09-28 14:38:23 +01004596<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00115">115</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004597
4598</div>
4599</div>
4600<a class="anchor" id="a6b5f839e8d27c6351e8d58812dd46c97"></a>
4601<div class="memitem">
4602<div class="memproto">
4603 <table class="memname">
4604 <tr>
4605 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a6b5f839e8d27c6351e8d58812dd46c97">ICLUInt32Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;cl_uint&gt;</td>
4606 </tr>
4607 </table>
4608</div><div class="memdoc">
4609
Kaizen8938bd32017-09-28 14:38:23 +01004610<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00116">116</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004611
4612</div>
4613</div>
4614<a class="anchor" id="a72251c7a73b3c057ffca9f32ee3e19ea"></a>
4615<div class="memitem">
4616<div class="memproto">
4617 <table class="memname">
4618 <tr>
4619 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a72251c7a73b3c057ffca9f32ee3e19ea">ICLUInt8Array</a> = <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt;cl_uchar&gt;</td>
4620 </tr>
4621 </table>
4622</div><div class="memdoc">
4623
Kaizen8938bd32017-09-28 14:38:23 +01004624<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00114">114</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004625
4626</div>
4627</div>
4628<a class="anchor" id="aac9efd49d3bbbd53779713e5fb37de62"></a>
4629<div class="memitem">
4630<div class="memproto">
4631 <table class="memname">
4632 <tr>
4633 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aac9efd49d3bbbd53779713e5fb37de62">ICoordinates2DArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;<a class="el" href="structarm__compute_1_1_coordinates2_d.xhtml">Coordinates2D</a>&gt;</td>
4634 </tr>
4635 </table>
4636</div><div class="memdoc">
4637
Kaizen8938bd32017-09-28 14:38:23 +01004638<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00140">140</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004639
4640</div>
4641</div>
4642<a class="anchor" id="a52b3b9de6092ae37321159c4c2f1bf40"></a>
4643<div class="memitem">
4644<div class="memproto">
4645 <table class="memname">
4646 <tr>
4647 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a52b3b9de6092ae37321159c4c2f1bf40">IDetectionWindowArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;<a class="el" href="structarm__compute_1_1_detection_window.xhtml">DetectionWindow</a>&gt;</td>
4648 </tr>
4649 </table>
4650</div><div class="memdoc">
4651
Kaizen8938bd32017-09-28 14:38:23 +01004652<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00142">142</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004653
4654</div>
4655</div>
4656<a class="anchor" id="a8a82a1928159e86b0778c3c14e8842be"></a>
4657<div class="memitem">
4658<div class="memproto">
4659 <table class="memname">
4660 <tr>
4661 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a8a82a1928159e86b0778c3c14e8842be">IFloatArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;float&gt;</td>
4662 </tr>
4663 </table>
4664</div><div class="memdoc">
4665
Kaizen8938bd32017-09-28 14:38:23 +01004666<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00149">149</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004667
4668</div>
4669</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00004670<a class="anchor" id="a39070701484fa98eaa18cfcdb6aeb175"></a>
4671<div class="memitem">
4672<div class="memproto">
4673 <table class="memname">
4674 <tr>
4675 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a39070701484fa98eaa18cfcdb6aeb175">IGCImage</a> = <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a></td>
4676 </tr>
4677 </table>
4678</div><div class="memdoc">
4679
Anthony Barbier06ea0482018-02-22 15:45:35 +00004680<p>Definition at line <a class="el" href="_i_g_c_tensor_8h_source.xhtml#l00110">110</a> of file <a class="el" href="_i_g_c_tensor_8h_source.xhtml">IGCTensor.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00004681
4682</div>
4683</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00004684<a class="anchor" id="ac20902ac1ef01783c8a8d71a9bdf1100"></a>
4685<div class="memitem">
4686<div class="memproto">
4687 <table class="memname">
4688 <tr>
4689 <td class="memname">typedef <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> <a class="el" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a></td>
4690 </tr>
4691 </table>
4692</div><div class="memdoc">
4693
4694<p>Definition at line <a class="el" href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">36</a> of file <a class="el" href="_c_p_p_corner_candidates_kernel_8h_source.xhtml">CPPCornerCandidatesKernel.h</a>.</p>
4695
4696</div>
4697</div>
4698<a class="anchor" id="a1dd5e04cea002eae658fa2a899848ad7"></a>
4699<div class="memitem">
4700<div class="memproto">
4701 <table class="memname">
4702 <tr>
4703 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a1dd5e04cea002eae658fa2a899848ad7">IInt16Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;int16_t&gt;</td>
4704 </tr>
4705 </table>
4706</div><div class="memdoc">
4707
Kaizen8938bd32017-09-28 14:38:23 +01004708<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00147">147</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004709
4710</div>
4711</div>
4712<a class="anchor" id="a51fdf34dfc5c60b6f4f455f0a9cac457"></a>
4713<div class="memitem">
4714<div class="memproto">
4715 <table class="memname">
4716 <tr>
4717 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a51fdf34dfc5c60b6f4f455f0a9cac457">IInt32Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;int32_t&gt;</td>
4718 </tr>
4719 </table>
4720</div><div class="memdoc">
4721
Kaizen8938bd32017-09-28 14:38:23 +01004722<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00148">148</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004723
4724</div>
4725</div>
4726<a class="anchor" id="ab56a557a5fdf97819f23c35c24f0b0d2"></a>
4727<div class="memitem">
4728<div class="memproto">
4729 <table class="memname">
4730 <tr>
4731 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ab56a557a5fdf97819f23c35c24f0b0d2">IKeyPointArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;<a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a>&gt;</td>
4732 </tr>
4733 </table>
4734</div><div class="memdoc">
4735
Kaizen8938bd32017-09-28 14:38:23 +01004736<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00139">139</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004737
4738</div>
4739</div>
4740<a class="anchor" id="a7fb6a368d181ef193475f725c713430a"></a>
4741<div class="memitem">
4742<div class="memproto">
4743 <table class="memname">
4744 <tr>
4745 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a7fb6a368d181ef193475f725c713430a">Image</a> = <a class="el" href="classarm__compute_1_1_tensor.xhtml">Tensor</a></td>
4746 </tr>
4747 </table>
4748</div><div class="memdoc">
4749
Kaizen8938bd32017-09-28 14:38:23 +01004750<p>Definition at line <a class="el" href="runtime_2_tensor_8h_source.xhtml#l00063">63</a> of file <a class="el" href="runtime_2_tensor_8h_source.xhtml">Tensor.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004751
4752</div>
4753</div>
4754<a class="anchor" id="a9f3ed96e009111cfbe53d3f77c712390"></a>
4755<div class="memitem">
4756<div class="memproto">
4757 <table class="memname">
4758 <tr>
4759 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a9f3ed96e009111cfbe53d3f77c712390">INEKernel</a> = <a class="el" href="classarm__compute_1_1_i_c_p_p_kernel.xhtml">ICPPKernel</a></td>
4760 </tr>
4761 </table>
4762</div><div class="memdoc">
4763
4764<p>Definition at line <a class="el" href="_i_n_e_kernel_8h_source.xhtml#l00031">31</a> of file <a class="el" href="_i_n_e_kernel_8h_source.xhtml">INEKernel.h</a>.</p>
4765
4766</div>
4767</div>
4768<a class="anchor" id="a19699533eb1b662e46a10715f6086487"></a>
4769<div class="memitem">
4770<div class="memproto">
4771 <table class="memname">
4772 <tr>
4773 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a19699533eb1b662e46a10715f6086487">INELKInternalKeypointArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;<a class="el" href="structarm__compute_1_1_n_e_l_k_internal_keypoint.xhtml">NELKInternalKeypoint</a>&gt;</td>
4774 </tr>
4775 </table>
4776</div><div class="memdoc">
4777
4778<p>Definition at line <a class="el" href="_n_e_l_k_tracker_kernel_8h_source.xhtml#l00048">48</a> of file <a class="el" href="_n_e_l_k_tracker_kernel_8h_source.xhtml">NELKTrackerKernel.h</a>.</p>
4779
4780</div>
4781</div>
4782<a class="anchor" id="a4aad0c49ce3d7cf4693830398f190250"></a>
4783<div class="memitem">
4784<div class="memproto">
4785 <table class="memname">
4786 <tr>
4787 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4aad0c49ce3d7cf4693830398f190250">INESimpleKernel</a> = <a class="el" href="classarm__compute_1_1_i_c_p_p_simple_kernel.xhtml">ICPPSimpleKernel</a></td>
4788 </tr>
4789 </table>
4790</div><div class="memdoc">
4791
4792<p>Definition at line <a class="el" href="_i_n_e_simple_kernel_8h_source.xhtml#l00031">31</a> of file <a class="el" href="_i_n_e_simple_kernel_8h_source.xhtml">INESimpleKernel.h</a>.</p>
4793
4794</div>
4795</div>
4796<a class="anchor" id="a69c19b38cbee8fa6680513f6ff76bbb3"></a>
4797<div class="memitem">
4798<div class="memproto">
4799 <table class="memname">
4800 <tr>
4801 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a69c19b38cbee8fa6680513f6ff76bbb3">Int16Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;int16_t&gt;</td>
4802 </tr>
4803 </table>
4804</div><div class="memdoc">
4805
4806<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00071">71</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
4807
4808</div>
4809</div>
4810<a class="anchor" id="a6af9862834629c287a81b16837b51e44"></a>
4811<div class="memitem">
4812<div class="memproto">
4813 <table class="memname">
4814 <tr>
4815 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a6af9862834629c287a81b16837b51e44">Int32Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;int32_t&gt;</td>
4816 </tr>
4817 </table>
4818</div><div class="memdoc">
4819
4820<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00072">72</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
4821
4822</div>
4823</div>
4824<a class="anchor" id="a2ab89a5d0959531aac270879cdd3ed78"></a>
4825<div class="memitem">
4826<div class="memproto">
4827 <table class="memname">
4828 <tr>
4829 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a2ab89a5d0959531aac270879cdd3ed78">InternalKeypoint</a> = std::tuple&lt;float, float, float&gt;</td>
4830 </tr>
4831 </table>
4832</div><div class="memdoc">
4833
Anthony Barbier06ea0482018-02-22 15:45:35 +00004834<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00367">367</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +01004835
4836</div>
4837</div>
4838<a class="anchor" id="ae273be451a4d6de5fa255cb8fb09a64b"></a>
4839<div class="memitem">
4840<div class="memproto">
4841 <table class="memname">
4842 <tr>
4843 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ae273be451a4d6de5fa255cb8fb09a64b">IROIArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;<a class="el" href="structarm__compute_1_1_r_o_i.xhtml">ROI</a>&gt;</td>
4844 </tr>
4845 </table>
4846</div><div class="memdoc">
4847
4848<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00141">141</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004849
4850</div>
4851</div>
4852<a class="anchor" id="a32e4b9083329486a06960006af89a84c"></a>
4853<div class="memitem">
4854<div class="memproto">
4855 <table class="memname">
4856 <tr>
4857 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a32e4b9083329486a06960006af89a84c">ISize2DArray</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;<a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a>&gt;</td>
4858 </tr>
4859 </table>
4860</div><div class="memdoc">
4861
Kaizen8938bd32017-09-28 14:38:23 +01004862<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00143">143</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004863
4864</div>
4865</div>
4866<a class="anchor" id="a1ffe8af91a934c926d102938db8d3ce1"></a>
4867<div class="memitem">
4868<div class="memproto">
4869 <table class="memname">
4870 <tr>
4871 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a1ffe8af91a934c926d102938db8d3ce1">IUInt16Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;uint16_t&gt;</td>
4872 </tr>
4873 </table>
4874</div><div class="memdoc">
4875
Kaizen8938bd32017-09-28 14:38:23 +01004876<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00145">145</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004877
4878</div>
4879</div>
4880<a class="anchor" id="ac9b2a6fa6e146437bfc8c0bee96e4760"></a>
4881<div class="memitem">
4882<div class="memproto">
4883 <table class="memname">
4884 <tr>
4885 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ac9b2a6fa6e146437bfc8c0bee96e4760">IUInt32Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;uint32_t&gt;</td>
4886 </tr>
4887 </table>
4888</div><div class="memdoc">
4889
Kaizen8938bd32017-09-28 14:38:23 +01004890<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00146">146</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004891
4892</div>
4893</div>
4894<a class="anchor" id="a276401fd5651e75431d3e1cc90601caa"></a>
4895<div class="memitem">
4896<div class="memproto">
4897 <table class="memname">
4898 <tr>
4899 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a276401fd5651e75431d3e1cc90601caa">IUInt8Array</a> = <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a>&lt;uint8_t&gt;</td>
4900 </tr>
4901 </table>
4902</div><div class="memdoc">
4903
Kaizen8938bd32017-09-28 14:38:23 +01004904<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00144">144</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004905
4906</div>
4907</div>
4908<a class="anchor" id="a8856eca9a83e16bb0cb5880e9c6c9fe7"></a>
4909<div class="memitem">
4910<div class="memproto">
4911 <table class="memname">
4912 <tr>
4913 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a8856eca9a83e16bb0cb5880e9c6c9fe7">KeyPointArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;<a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a>&gt;</td>
4914 </tr>
4915 </table>
4916</div><div class="memdoc">
4917
4918<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00064">64</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
4919
4920</div>
4921</div>
4922<a class="anchor" id="a681c120e2188371794ec3a59768c64ab"></a>
4923<div class="memitem">
4924<div class="memproto">
4925 <table class="memname">
4926 <tr>
4927 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a681c120e2188371794ec3a59768c64ab">LKInternalKeypointArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;<a class="el" href="structarm__compute_1_1_n_e_l_k_internal_keypoint.xhtml">NELKInternalKeypoint</a>&gt;</td>
4928 </tr>
4929 </table>
4930</div><div class="memdoc">
4931
Kaizen8938bd32017-09-28 14:38:23 +01004932<p>Definition at line <a class="el" href="_n_e_optical_flow_8h_source.xhtml#l00045">45</a> of file <a class="el" href="_n_e_optical_flow_8h_source.xhtml">NEOpticalFlow.h</a>.</p>
4933
4934</div>
4935</div>
4936<a class="anchor" id="a0e7a03e2e133cb1fbb12517a3f646a09"></a>
4937<div class="memitem">
4938<div class="memproto">
4939 <table class="memname">
4940 <tr>
4941 <td class="memname">typedef <a class="el" href="classarm__compute_1_1_memory_group_base.xhtml">MemoryGroupBase</a>&lt; <a class="el" href="classarm__compute_1_1_tensor.xhtml">Tensor</a> &gt; <a class="el" href="namespacearm__compute.xhtml#a0e7a03e2e133cb1fbb12517a3f646a09">MemoryGroup</a></td>
4942 </tr>
4943 </table>
4944</div><div class="memdoc">
4945
4946<p>Definition at line <a class="el" href="_memory_group_8h_source.xhtml#l00033">33</a> of file <a class="el" href="_memory_group_8h_source.xhtml">MemoryGroup.h</a>.</p>
4947
4948</div>
4949</div>
4950<a class="anchor" id="a762c7da7319adcc433b3ac7a67e18ed5"></a>
4951<div class="memitem">
4952<div class="memproto">
4953 <table class="memname">
4954 <tr>
4955 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a762c7da7319adcc433b3ac7a67e18ed5">MemoryMappings</a> = std::map&lt;void **, size_t&gt;</td>
4956 </tr>
4957 </table>
4958</div><div class="memdoc">
4959
4960<p>A map of (handle, index/offset), where handle is the memory handle of the object to provide the memory for and index/offset is the buffer/offset from the pool that should be used. </p>
4961<dl class="section note"><dt>Note</dt><dd>All objects are pre-pinned to specific buffers to avoid any relevant overheads </dd></dl>
4962
4963<p>Definition at line <a class="el" href="arm__compute_2runtime_2_types_8h_source.xhtml#l00043">43</a> of file <a class="el" href="arm__compute_2runtime_2_types_8h_source.xhtml">Types.h</a>.</p>
4964
4965</div>
4966</div>
4967<a class="anchor" id="acded863dbfdd730829d4188d67eefcf0"></a>
4968<div class="memitem">
4969<div class="memproto">
4970 <table class="memname">
4971 <tr>
4972 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#acded863dbfdd730829d4188d67eefcf0">Mutex</a> = std::mutex</td>
4973 </tr>
4974 </table>
4975</div><div class="memdoc">
4976
4977<p>Definition at line <a class="el" href="_mutex_8h_source.xhtml#l00032">32</a> of file <a class="el" href="_mutex_8h_source.xhtml">Mutex.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004978
4979</div>
4980</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00004981<a class="anchor" id="aff99c045b07329b332b1cb97a2dd1518"></a>
4982<div class="memitem">
4983<div class="memproto">
4984 <table class="memname">
4985 <tr>
4986 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aff99c045b07329b332b1cb97a2dd1518">NEAccumulateWeightedFP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_accumulate_weighted_kernel.xhtml">NEAccumulateWeightedKernel</a></td>
4987 </tr>
4988 </table>
4989</div><div class="memdoc">
4990
Anthony Barbier06ea0482018-02-22 15:45:35 +00004991<p>Definition at line <a class="el" href="_n_e_accumulate_kernel_8h_source.xhtml#l00104">104</a> of file <a class="el" href="_n_e_accumulate_kernel_8h_source.xhtml">NEAccumulateKernel.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00004992
4993</div>
4994</div>
4995<a class="anchor" id="a96f7f6f98dc47e0dc3b928bf87397ebf"></a>
4996<div class="memitem">
4997<div class="memproto">
4998 <table class="memname">
4999 <tr>
5000 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a96f7f6f98dc47e0dc3b928bf87397ebf">NEBox3x3FP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_box3x3_kernel.xhtml">NEBox3x3Kernel</a></td>
5001 </tr>
5002 </table>
5003</div><div class="memdoc">
5004
Anthony Barbier06ea0482018-02-22 15:45:35 +00005005<p>Definition at line <a class="el" href="_n_e_box3x3_kernel_8h_source.xhtml#l00067">67</a> of file <a class="el" href="_n_e_box3x3_kernel_8h_source.xhtml">NEBox3x3Kernel.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005006
5007</div>
5008</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005009<a class="anchor" id="acf81639b3d33b5da654ef088e4d10520"></a>
5010<div class="memitem">
5011<div class="memproto">
5012 <table class="memname">
5013 <tr>
5014 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#acf81639b3d33b5da654ef088e4d10520">NEConvolution3x3Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a>&lt;3&gt;</td>
5015 </tr>
5016 </table>
5017</div><div class="memdoc">
5018
5019<p>Interface for the kernel which applied a 3x3 convolution to a tensor. </p>
5020
Anthony Barbier06ea0482018-02-22 15:45:35 +00005021<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00088">88</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005022
5023</div>
5024</div>
Anthony Barbier46d59272017-05-04 09:15:15 +01005025<a class="anchor" id="adbc7771d367ba8f51da1450d3602e5c0"></a>
5026<div class="memitem">
5027<div class="memproto">
5028 <table class="memname">
5029 <tr>
5030 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#adbc7771d367ba8f51da1450d3602e5c0">NEConvolution5x5</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_square.xhtml">NEConvolutionSquare</a>&lt;5&gt;</td>
5031 </tr>
5032 </table>
5033</div><div class="memdoc">
5034
5035<p>Basic function to run 5x5 convolution. </p>
5036
Kaizen8938bd32017-09-28 14:38:23 +01005037<p>Definition at line <a class="el" href="_n_e_convolution_8h_source.xhtml#l00102">102</a> of file <a class="el" href="_n_e_convolution_8h_source.xhtml">NEConvolution.h</a>.</p>
Anthony Barbier46d59272017-05-04 09:15:15 +01005038
5039</div>
5040</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005041<a class="anchor" id="a21898b2d2e31ab9af8933c66ff82c8c6"></a>
5042<div class="memitem">
5043<div class="memproto">
5044 <table class="memname">
5045 <tr>
5046 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a21898b2d2e31ab9af8933c66ff82c8c6">NEConvolution5x5Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a>&lt;5&gt;</td>
5047 </tr>
5048 </table>
5049</div><div class="memdoc">
5050
5051<p>Interface for the kernel which applied a 5x5 convolution to a tensor. </p>
5052
Anthony Barbier06ea0482018-02-22 15:45:35 +00005053<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00090">90</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005054
5055</div>
5056</div>
Anthony Barbier46d59272017-05-04 09:15:15 +01005057<a class="anchor" id="aeb2682fbeb2766df26b4be1971c9757d"></a>
5058<div class="memitem">
5059<div class="memproto">
5060 <table class="memname">
5061 <tr>
5062 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aeb2682fbeb2766df26b4be1971c9757d">NEConvolution7x7</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_square.xhtml">NEConvolutionSquare</a>&lt;7&gt;</td>
5063 </tr>
5064 </table>
5065</div><div class="memdoc">
5066
5067<p>Basic function to run 7x7 convolution. </p>
5068
Kaizen8938bd32017-09-28 14:38:23 +01005069<p>Definition at line <a class="el" href="_n_e_convolution_8h_source.xhtml#l00104">104</a> of file <a class="el" href="_n_e_convolution_8h_source.xhtml">NEConvolution.h</a>.</p>
Anthony Barbier46d59272017-05-04 09:15:15 +01005070
5071</div>
5072</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005073<a class="anchor" id="ae46cbbe03d31c6c8e7eba7b58999842d"></a>
5074<div class="memitem">
5075<div class="memproto">
5076 <table class="memname">
5077 <tr>
5078 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ae46cbbe03d31c6c8e7eba7b58999842d">NEConvolution7x7Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a>&lt;7&gt;</td>
5079 </tr>
5080 </table>
5081</div><div class="memdoc">
5082
5083<p>Interface for the kernel which applied a 7x7 convolution to a tensor. </p>
5084
Anthony Barbier06ea0482018-02-22 15:45:35 +00005085<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00092">92</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005086
5087</div>
5088</div>
Anthony Barbier46d59272017-05-04 09:15:15 +01005089<a class="anchor" id="ae5a088552f26a1afafd0cbf821d256fb"></a>
5090<div class="memitem">
5091<div class="memproto">
5092 <table class="memname">
5093 <tr>
5094 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ae5a088552f26a1afafd0cbf821d256fb">NEConvolution9x9</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_square.xhtml">NEConvolutionSquare</a>&lt;9&gt;</td>
5095 </tr>
5096 </table>
5097</div><div class="memdoc">
5098
5099<p>Basic function to run 9x9 convolution. </p>
5100
Kaizen8938bd32017-09-28 14:38:23 +01005101<p>Definition at line <a class="el" href="_n_e_convolution_8h_source.xhtml#l00106">106</a> of file <a class="el" href="_n_e_convolution_8h_source.xhtml">NEConvolution.h</a>.</p>
Anthony Barbier46d59272017-05-04 09:15:15 +01005102
5103</div>
5104</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005105<a class="anchor" id="a1025306f820a9e76df7e5891caacff7b"></a>
5106<div class="memitem">
5107<div class="memproto">
5108 <table class="memname">
5109 <tr>
5110 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a1025306f820a9e76df7e5891caacff7b">NEConvolution9x9Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a>&lt;9&gt;</td>
5111 </tr>
5112 </table>
5113</div><div class="memdoc">
5114
5115<p>Interface for the kernel which applied a 9x9 convolution to a tensor. </p>
5116
Anthony Barbier06ea0482018-02-22 15:45:35 +00005117<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00094">94</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005118
5119</div>
5120</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005121<a class="anchor" id="a593fd1da692f305db6ca306cb8e0158e"></a>
5122<div class="memitem">
5123<div class="memproto">
5124 <table class="memname">
5125 <tr>
5126 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a593fd1da692f305db6ca306cb8e0158e">NEGradientFP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_gradient_kernel.xhtml">NEGradientKernel</a></td>
5127 </tr>
5128 </table>
5129</div><div class="memdoc">
5130
Anthony Barbier06ea0482018-02-22 15:45:35 +00005131<p>Definition at line <a class="el" href="_n_e_canny_edge_kernel_8h_source.xhtml#l00102">102</a> of file <a class="el" href="_n_e_canny_edge_kernel_8h_source.xhtml">NECannyEdgeKernel.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005132
5133</div>
5134</div>
5135<a class="anchor" id="a0b6679b5d5c7f7dc527258181b04cf35"></a>
5136<div class="memitem">
5137<div class="memproto">
5138 <table class="memname">
5139 <tr>
5140 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a0b6679b5d5c7f7dc527258181b04cf35">NEHarrisScoreFP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_harris_score_kernel.xhtml">NEHarrisScoreKernel</a>&lt;block_size&gt;</td>
5141 </tr>
5142 </table>
5143</div><div class="memdoc">
5144
Anthony Barbier06ea0482018-02-22 15:45:35 +00005145<p>Definition at line <a class="el" href="_n_e_harris_corners_kernel_8h_source.xhtml#l00131">131</a> of file <a class="el" href="_n_e_harris_corners_kernel_8h_source.xhtml">NEHarrisCornersKernel.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005146
5147</div>
5148</div>
5149<a class="anchor" id="a0d4d47f41fae07bb3efb2d723b9965c3"></a>
5150<div class="memitem">
5151<div class="memproto">
5152 <table class="memname">
5153 <tr>
5154 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a0d4d47f41fae07bb3efb2d723b9965c3">NEMagnitudePhaseFP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_magnitude_phase_kernel.xhtml">NEMagnitudePhaseKernel</a>&lt;mag_type, phase_type&gt;</td>
5155 </tr>
5156 </table>
5157</div><div class="memdoc">
5158
Anthony Barbier06ea0482018-02-22 15:45:35 +00005159<p>Definition at line <a class="el" href="_n_e_magnitude_phase_kernel_8h_source.xhtml#l00169">169</a> of file <a class="el" href="_n_e_magnitude_phase_kernel_8h_source.xhtml">NEMagnitudePhaseKernel.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005160
5161</div>
5162</div>
5163<a class="anchor" id="a38cad49e6beaef76bc1ec5064c9e9dba"></a>
5164<div class="memitem">
5165<div class="memproto">
5166 <table class="memname">
5167 <tr>
5168 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a38cad49e6beaef76bc1ec5064c9e9dba">NENonMaximaSuppression3x3FP16Kernel</a> = <a class="el" href="classarm__compute_1_1_n_e_non_maxima_suppression3x3_kernel.xhtml">NENonMaximaSuppression3x3Kernel</a></td>
5169 </tr>
5170 </table>
5171</div><div class="memdoc">
5172
Anthony Barbier06ea0482018-02-22 15:45:35 +00005173<p>Definition at line <a class="el" href="_n_e_non_maxima_suppression3x3_kernel_8h_source.xhtml#l00104">104</a> of file <a class="el" href="_n_e_non_maxima_suppression3x3_kernel_8h_source.xhtml">NENonMaximaSuppression3x3Kernel.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005174
5175</div>
5176</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005177<a class="anchor" id="a0604c803e41880a4a16408efc4e6a69b"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00005178<div class="memitem">
5179<div class="memproto">
5180 <table class="memname">
5181 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005182 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a0604c803e41880a4a16408efc4e6a69b">NEScheduler</a> = <a class="el" href="classarm__compute_1_1_scheduler.xhtml">Scheduler</a></td>
Anthony Barbier871448e2017-03-24 14:54:29 +00005183 </tr>
5184 </table>
5185</div><div class="memdoc">
5186
5187<p>Definition at line <a class="el" href="_n_e_scheduler_8h_source.xhtml#l00031">31</a> of file <a class="el" href="_n_e_scheduler_8h_source.xhtml">NEScheduler.h</a>.</p>
5188
5189</div>
5190</div>
5191<a class="anchor" id="ac78a7593874c21cff86478c1ba6df27b"></a>
5192<div class="memitem">
5193<div class="memproto">
5194 <table class="memname">
5195 <tr>
5196 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ac78a7593874c21cff86478c1ba6df27b">NESeparableConvolution5x5HorKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_hor_kernel.xhtml">NESeparableConvolutionHorKernel</a>&lt;5&gt;</td>
5197 </tr>
5198 </table>
5199</div><div class="memdoc">
5200
5201<p>Interface for the kernel which applied a 5x1 horizontal convolution to a tensor. </p>
5202
Anthony Barbier06ea0482018-02-22 15:45:35 +00005203<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00138">138</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005204
5205</div>
5206</div>
5207<a class="anchor" id="ae4152320657df499674ed64b16c28a7b"></a>
5208<div class="memitem">
5209<div class="memproto">
5210 <table class="memname">
5211 <tr>
5212 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ae4152320657df499674ed64b16c28a7b">NESeparableConvolution5x5VertKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_vert_kernel.xhtml">NESeparableConvolutionVertKernel</a>&lt;5&gt;</td>
5213 </tr>
5214 </table>
5215</div><div class="memdoc">
5216
5217<p>Interface for the kernel which applied a 1x5 vertical convolution to a tensor. </p>
5218
Anthony Barbier06ea0482018-02-22 15:45:35 +00005219<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00198">198</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005220
5221</div>
5222</div>
5223<a class="anchor" id="aca4adbcd292c26b0e392c59875c1e926"></a>
5224<div class="memitem">
5225<div class="memproto">
5226 <table class="memname">
5227 <tr>
5228 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aca4adbcd292c26b0e392c59875c1e926">NESeparableConvolution7x7HorKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_hor_kernel.xhtml">NESeparableConvolutionHorKernel</a>&lt;7&gt;</td>
5229 </tr>
5230 </table>
5231</div><div class="memdoc">
5232
5233<p>Interface for the kernel which applied a 7x1 horizontal convolution to a tensor. </p>
5234
Anthony Barbier06ea0482018-02-22 15:45:35 +00005235<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00140">140</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005236
5237</div>
5238</div>
5239<a class="anchor" id="a0f952bd0821b506e18514a3f4dbc6c39"></a>
5240<div class="memitem">
5241<div class="memproto">
5242 <table class="memname">
5243 <tr>
5244 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a0f952bd0821b506e18514a3f4dbc6c39">NESeparableConvolution7x7VertKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_vert_kernel.xhtml">NESeparableConvolutionVertKernel</a>&lt;7&gt;</td>
5245 </tr>
5246 </table>
5247</div><div class="memdoc">
5248
5249<p>Interface for the kernel which applied a 1x7 vertical convolution to a tensor. </p>
5250
Anthony Barbier06ea0482018-02-22 15:45:35 +00005251<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00200">200</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005252
5253</div>
5254</div>
5255<a class="anchor" id="a4ba5f6b7cd6b70b75e42149f3bc08f38"></a>
5256<div class="memitem">
5257<div class="memproto">
5258 <table class="memname">
5259 <tr>
5260 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4ba5f6b7cd6b70b75e42149f3bc08f38">NESeparableConvolution9x9HorKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_hor_kernel.xhtml">NESeparableConvolutionHorKernel</a>&lt;9&gt;</td>
5261 </tr>
5262 </table>
5263</div><div class="memdoc">
5264
5265<p>Interface for the kernel which applied a 9x1 horizontal convolution to a tensor. </p>
5266
Anthony Barbier06ea0482018-02-22 15:45:35 +00005267<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00142">142</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005268
5269</div>
5270</div>
5271<a class="anchor" id="a6310d21f215fface41df4cde725a62b9"></a>
5272<div class="memitem">
5273<div class="memproto">
5274 <table class="memname">
5275 <tr>
5276 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a6310d21f215fface41df4cde725a62b9">NESeparableConvolution9x9VertKernel</a> = <a class="el" href="classarm__compute_1_1_n_e_separable_convolution_vert_kernel.xhtml">NESeparableConvolutionVertKernel</a>&lt;9&gt;</td>
5277 </tr>
5278 </table>
5279</div><div class="memdoc">
5280
5281<p>Interface for the kernel which applied a 1x9 vertical convolution to a tensor. </p>
5282
Anthony Barbier06ea0482018-02-22 15:45:35 +00005283<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00202">202</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005284
5285</div>
5286</div>
5287<a class="anchor" id="a4467b302fc9ec312c40580336ab783da"></a>
5288<div class="memitem">
5289<div class="memproto">
5290 <table class="memname">
5291 <tr>
5292 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4467b302fc9ec312c40580336ab783da">PaddingSize</a> = <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a></td>
5293 </tr>
5294 </table>
5295</div><div class="memdoc">
5296
Anthony Barbier06ea0482018-02-22 15:45:35 +00005297<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00299">299</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005298
5299</div>
5300</div>
5301<a class="anchor" id="a33e65be485104e2e9e69fca551d6f492"></a>
5302<div class="memitem">
5303<div class="memproto">
5304 <table class="memname">
5305 <tr>
5306 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a33e65be485104e2e9e69fca551d6f492">PermutationVector</a> = <a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a></td>
5307 </tr>
5308 </table>
5309</div><div class="memdoc">
5310
5311<p>Permutation vector. </p>
5312
Anthony Barbier06ea0482018-02-22 15:45:35 +00005313<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00047">47</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005314
5315</div>
5316</div>
5317<a class="anchor" id="ab8938bcb3ec0f5f8d93285eb3a28b701"></a>
5318<div class="memitem">
5319<div class="memproto">
5320 <table class="memname">
5321 <tr>
5322 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ab8938bcb3ec0f5f8d93285eb3a28b701">qasymm8_t</a> = uint8_t</td>
5323 </tr>
5324 </table>
5325</div><div class="memdoc">
5326
5327<p>8 bit quantized asymmetric scalar value </p>
5328
5329<p>Definition at line <a class="el" href="_q_asymm8_8h_source.xhtml#l00030">30</a> of file <a class="el" href="_q_asymm8_8h_source.xhtml">QAsymm8.h</a>.</p>
5330
5331</div>
5332</div>
5333<a class="anchor" id="ac7e1832b8c58f07a98fc8d390b16ac27"></a>
5334<div class="memitem">
5335<div class="memproto">
5336 <table class="memname">
5337 <tr>
5338 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ac7e1832b8c58f07a98fc8d390b16ac27">qasymm8x16_t</a> = uint8x16_t</td>
5339 </tr>
5340 </table>
5341</div><div class="memdoc">
5342
5343<p>8 bit quantized asymmetric vector with 16 elements </p>
5344
5345<p>Definition at line <a class="el" href="_n_e_asymm_8h_source.xhtml#l00035">35</a> of file <a class="el" href="_n_e_asymm_8h_source.xhtml">NEAsymm.h</a>.</p>
5346
5347</div>
5348</div>
5349<a class="anchor" id="a70ecc99f2f6b646579b58463dc026671"></a>
5350<div class="memitem">
5351<div class="memproto">
5352 <table class="memname">
5353 <tr>
5354 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a70ecc99f2f6b646579b58463dc026671">qasymm8x8_t</a> = uint8x8_t</td>
5355 </tr>
5356 </table>
5357</div><div class="memdoc">
5358
5359<p>8 bit quantized asymmetric vector with 8 elements </p>
5360
5361<p>Definition at line <a class="el" href="_n_e_asymm_8h_source.xhtml#l00031">31</a> of file <a class="el" href="_n_e_asymm_8h_source.xhtml">NEAsymm.h</a>.</p>
5362
5363</div>
5364</div>
5365<a class="anchor" id="a805d740633d70a5f0b019d72c517e67d"></a>
5366<div class="memitem">
5367<div class="memproto">
5368 <table class="memname">
5369 <tr>
5370 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a805d740633d70a5f0b019d72c517e67d">qasymm8x8x2_t</a> = uint8x8x2_t</td>
5371 </tr>
5372 </table>
5373</div><div class="memdoc">
5374
5375<p>8 bit quantized asymmetric vector with 16 elements </p>
5376
5377<p>Definition at line <a class="el" href="_n_e_asymm_8h_source.xhtml#l00032">32</a> of file <a class="el" href="_n_e_asymm_8h_source.xhtml">NEAsymm.h</a>.</p>
5378
5379</div>
5380</div>
5381<a class="anchor" id="a0c6e16826765130b480af53eda3635be"></a>
5382<div class="memitem">
5383<div class="memproto">
5384 <table class="memname">
5385 <tr>
5386 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a0c6e16826765130b480af53eda3635be">qasymm8x8x3_t</a> = uint8x8x3_t</td>
5387 </tr>
5388 </table>
5389</div><div class="memdoc">
5390
5391<p>8 bit quantized asymmetric vector with 24 elements </p>
5392
5393<p>Definition at line <a class="el" href="_n_e_asymm_8h_source.xhtml#l00033">33</a> of file <a class="el" href="_n_e_asymm_8h_source.xhtml">NEAsymm.h</a>.</p>
5394
5395</div>
5396</div>
5397<a class="anchor" id="a41d3460ff424e2e21c629b3f27386a8b"></a>
5398<div class="memitem">
5399<div class="memproto">
5400 <table class="memname">
5401 <tr>
5402 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a41d3460ff424e2e21c629b3f27386a8b">qasymm8x8x4_t</a> = uint8x8x4_t</td>
5403 </tr>
5404 </table>
5405</div><div class="memdoc">
5406
5407<p>8 bit quantized asymmetric vector with 32 elements </p>
5408
5409<p>Definition at line <a class="el" href="_n_e_asymm_8h_source.xhtml#l00034">34</a> of file <a class="el" href="_n_e_asymm_8h_source.xhtml">NEAsymm.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005410
5411</div>
5412</div>
5413<a class="anchor" id="a1521eea74b97de8f2df9304e44179400"></a>
5414<div class="memitem">
5415<div class="memproto">
5416 <table class="memname">
5417 <tr>
5418 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> = int16_t</td>
5419 </tr>
5420 </table>
5421</div><div class="memdoc">
5422
5423<p>16 bit fixed point scalar value </p>
5424
5425<p>Definition at line <a class="el" href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">30</a> of file <a class="el" href="arm__compute_2core_2_fixed_point_8h_source.xhtml">FixedPoint.h</a>.</p>
5426
5427</div>
5428</div>
5429<a class="anchor" id="a82c56f0856f56d430393e6a00baee983"></a>
5430<div class="memitem">
5431<div class="memproto">
5432 <table class="memname">
5433 <tr>
5434 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> = int16x4_t</td>
5435 </tr>
5436 </table>
5437</div><div class="memdoc">
5438
5439<p>16 bit fixed point vector with 4 elements </p>
5440
5441<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00041">41</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5442
5443</div>
5444</div>
5445<a class="anchor" id="a8d57e0f4f122442011213667168ef538"></a>
5446<div class="memitem">
5447<div class="memproto">
5448 <table class="memname">
5449 <tr>
5450 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a8d57e0f4f122442011213667168ef538">qint16x4x2_t</a> = int16x4x2_t</td>
5451 </tr>
5452 </table>
5453</div><div class="memdoc">
5454
5455<p>16 bit fixed point vector with 8 elements </p>
5456
5457<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00042">42</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5458
5459</div>
5460</div>
5461<a class="anchor" id="a63f034ee885f20111e7f5d44e48e6d93"></a>
5462<div class="memitem">
5463<div class="memproto">
5464 <table class="memname">
5465 <tr>
5466 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a63f034ee885f20111e7f5d44e48e6d93">qint16x4x3_t</a> = int16x4x3_t</td>
5467 </tr>
5468 </table>
5469</div><div class="memdoc">
5470
5471<p>16 bit fixed point vector with 12 elements </p>
5472
5473<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00043">43</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5474
5475</div>
5476</div>
5477<a class="anchor" id="a8525b18a2f34c3497bbfbd0e7c3a7875"></a>
5478<div class="memitem">
5479<div class="memproto">
5480 <table class="memname">
5481 <tr>
5482 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a8525b18a2f34c3497bbfbd0e7c3a7875">qint16x4x4_t</a> = int16x4x4_t</td>
5483 </tr>
5484 </table>
5485</div><div class="memdoc">
5486
5487<p>16 bit fixed point vector with 16 elements </p>
5488
5489<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00044">44</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5490
5491</div>
5492</div>
5493<a class="anchor" id="a4e15143176bfacdde8b06f4bb0b67427"></a>
5494<div class="memitem">
5495<div class="memproto">
5496 <table class="memname">
5497 <tr>
5498 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> = int16x8_t</td>
5499 </tr>
5500 </table>
5501</div><div class="memdoc">
5502
5503<p>16 bit fixed point vector with 8 elements </p>
5504
5505<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00045">45</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5506
5507</div>
5508</div>
5509<a class="anchor" id="a3c4099e91913f28017e1f57b8e5cbf9f"></a>
5510<div class="memitem">
5511<div class="memproto">
5512 <table class="memname">
5513 <tr>
5514 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a3c4099e91913f28017e1f57b8e5cbf9f">qint16x8x2_t</a> = int16x8x2_t</td>
5515 </tr>
5516 </table>
5517</div><div class="memdoc">
5518
5519<p>16 bit fixed point vector with 16 elements </p>
5520
5521<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00046">46</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5522
5523</div>
5524</div>
5525<a class="anchor" id="a65e109cf43ade8a2a3c57a1120b90b05"></a>
5526<div class="memitem">
5527<div class="memproto">
5528 <table class="memname">
5529 <tr>
5530 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a65e109cf43ade8a2a3c57a1120b90b05">qint16x8x3_t</a> = int16x8x3_t</td>
5531 </tr>
5532 </table>
5533</div><div class="memdoc">
5534
5535<p>16 bit fixed point vector with 24 elements </p>
5536
5537<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00047">47</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5538
5539</div>
5540</div>
5541<a class="anchor" id="a6bc1e8d62f1055278d8f05454faa422f"></a>
5542<div class="memitem">
5543<div class="memproto">
5544 <table class="memname">
5545 <tr>
5546 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a6bc1e8d62f1055278d8f05454faa422f">qint16x8x4_t</a> = int16x8x4_t</td>
5547 </tr>
5548 </table>
5549</div><div class="memdoc">
5550
5551<p>16 bit fixed point vector with 32 elements </p>
5552
5553<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00048">48</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5554
5555</div>
5556</div>
5557<a class="anchor" id="aa06c95f9976f3729316d689b4419089f"></a>
5558<div class="memitem">
5559<div class="memproto">
5560 <table class="memname">
5561 <tr>
5562 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> = int32_t</td>
5563 </tr>
5564 </table>
5565</div><div class="memdoc">
5566
5567<p>32 bit fixed point scalar value </p>
5568
5569<p>Definition at line <a class="el" href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00031">31</a> of file <a class="el" href="arm__compute_2core_2_fixed_point_8h_source.xhtml">FixedPoint.h</a>.</p>
5570
5571</div>
5572</div>
Kaizen8938bd32017-09-28 14:38:23 +01005573<a class="anchor" id="addcffa8e8086154c0449c23e6b0dff83"></a>
5574<div class="memitem">
5575<div class="memproto">
5576 <table class="memname">
5577 <tr>
5578 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#addcffa8e8086154c0449c23e6b0dff83">qint32x2_t</a> = int32x2_t</td>
5579 </tr>
5580 </table>
5581</div><div class="memdoc">
5582
5583<p>32 bit fixed point vector with 2 elements </p>
5584
5585<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00049">49</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5586
5587</div>
5588</div>
5589<a class="anchor" id="abd854c117af4dbd12633db2fbc01dd49"></a>
5590<div class="memitem">
5591<div class="memproto">
5592 <table class="memname">
5593 <tr>
5594 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> = int32x4_t</td>
5595 </tr>
5596 </table>
5597</div><div class="memdoc">
5598
5599<p>32 bit fixed point vector with 4 elements </p>
5600
5601<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00050">50</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5602
5603</div>
5604</div>
5605<a class="anchor" id="a6ed7f8448a2a08a531e8202334e4dcdd"></a>
5606<div class="memitem">
5607<div class="memproto">
5608 <table class="memname">
5609 <tr>
5610 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a6ed7f8448a2a08a531e8202334e4dcdd">qint32x4x2_t</a> = int32x4x2_t</td>
5611 </tr>
5612 </table>
5613</div><div class="memdoc">
5614
5615<p>32 bit fixed point vector with 8 elements </p>
5616
5617<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00051">51</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5618
5619</div>
5620</div>
5621<a class="anchor" id="adc3be0bc3741b081217b2609abcf0333"></a>
5622<div class="memitem">
5623<div class="memproto">
5624 <table class="memname">
5625 <tr>
5626 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#adc3be0bc3741b081217b2609abcf0333">qint64_t</a> = int64_t</td>
5627 </tr>
5628 </table>
5629</div><div class="memdoc">
5630
5631<p>64 bit fixed point scalar value </p>
5632
5633<p>Definition at line <a class="el" href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00032">32</a> of file <a class="el" href="arm__compute_2core_2_fixed_point_8h_source.xhtml">FixedPoint.h</a>.</p>
5634
5635</div>
5636</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005637<a class="anchor" id="a4c3f681c30c9398c45bc3cd5dc4f038a"></a>
5638<div class="memitem">
5639<div class="memproto">
5640 <table class="memname">
5641 <tr>
5642 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> = int8_t</td>
5643 </tr>
5644 </table>
5645</div><div class="memdoc">
5646
5647<p>8 bit fixed point scalar value </p>
5648
5649<p>Definition at line <a class="el" href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">29</a> of file <a class="el" href="arm__compute_2core_2_fixed_point_8h_source.xhtml">FixedPoint.h</a>.</p>
5650
5651</div>
5652</div>
5653<a class="anchor" id="a5b99ed49abd6b7bf13dafdd17bcef855"></a>
5654<div class="memitem">
5655<div class="memproto">
5656 <table class="memname">
5657 <tr>
5658 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> = int8x16_t</td>
5659 </tr>
5660 </table>
5661</div><div class="memdoc">
5662
5663<p>8 bit fixed point vector with 16 elements </p>
5664
5665<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00037">37</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5666
5667</div>
5668</div>
5669<a class="anchor" id="a09108711e0c18d4e9811ea4597d573b1"></a>
5670<div class="memitem">
5671<div class="memproto">
5672 <table class="memname">
5673 <tr>
5674 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a09108711e0c18d4e9811ea4597d573b1">qint8x16x2_t</a> = int8x16x2_t</td>
5675 </tr>
5676 </table>
5677</div><div class="memdoc">
5678
5679<p>8 bit fixed point vector with 32 elements </p>
5680
5681<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00038">38</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5682
5683</div>
5684</div>
5685<a class="anchor" id="a7e175277ee7de6a5aeb5cd8916dbb346"></a>
5686<div class="memitem">
5687<div class="memproto">
5688 <table class="memname">
5689 <tr>
5690 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a7e175277ee7de6a5aeb5cd8916dbb346">qint8x16x3_t</a> = int8x16x3_t</td>
5691 </tr>
5692 </table>
5693</div><div class="memdoc">
5694
5695<p>8 bit fixed point vector with 48 elements </p>
5696
5697<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00039">39</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5698
5699</div>
5700</div>
5701<a class="anchor" id="a3c4b33603ffff71e9f02c4be1a2f14d5"></a>
5702<div class="memitem">
5703<div class="memproto">
5704 <table class="memname">
5705 <tr>
5706 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a3c4b33603ffff71e9f02c4be1a2f14d5">qint8x16x4_t</a> = int8x16x4_t</td>
5707 </tr>
5708 </table>
5709</div><div class="memdoc">
5710
5711<p>8 bit fixed point vector with 64 elements </p>
5712
5713<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00040">40</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5714
5715</div>
5716</div>
5717<a class="anchor" id="a16a1bee14f1db073f75caa76dacf5078"></a>
5718<div class="memitem">
5719<div class="memproto">
5720 <table class="memname">
5721 <tr>
5722 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> = int8x8_t</td>
5723 </tr>
5724 </table>
5725</div><div class="memdoc">
5726
5727<p>8 bit fixed point vector with 8 elements </p>
5728
5729<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00033">33</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5730
5731</div>
5732</div>
5733<a class="anchor" id="ace2375b626995858a398e1ffb3108f14"></a>
5734<div class="memitem">
5735<div class="memproto">
5736 <table class="memname">
5737 <tr>
5738 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ace2375b626995858a398e1ffb3108f14">qint8x8x2_t</a> = int8x8x2_t</td>
5739 </tr>
5740 </table>
5741</div><div class="memdoc">
5742
5743<p>8 bit fixed point vector with 16 elements </p>
5744
5745<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00034">34</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5746
5747</div>
5748</div>
5749<a class="anchor" id="a252c74fae9a9238ef7c23d306e670706"></a>
5750<div class="memitem">
5751<div class="memproto">
5752 <table class="memname">
5753 <tr>
5754 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a252c74fae9a9238ef7c23d306e670706">qint8x8x3_t</a> = int8x8x3_t</td>
5755 </tr>
5756 </table>
5757</div><div class="memdoc">
5758
5759<p>8 bit fixed point vector with 24 elements </p>
5760
5761<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00035">35</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
5762
5763</div>
5764</div>
5765<a class="anchor" id="a01ae65c0a0736d4293e657a66bde1538"></a>
5766<div class="memitem">
5767<div class="memproto">
5768 <table class="memname">
5769 <tr>
5770 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a01ae65c0a0736d4293e657a66bde1538">qint8x8x4_t</a> = int8x8x4_t</td>
5771 </tr>
5772 </table>
5773</div><div class="memdoc">
5774
5775<p>8 bit fixed point vector with 32 elements </p>
5776
5777<p>Definition at line <a class="el" href="_n_e_fixed_point_8h_source.xhtml#l00036">36</a> of file <a class="el" href="_n_e_fixed_point_8h_source.xhtml">NEFixedPoint.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005778
5779</div>
5780</div>
5781<a class="anchor" id="abd445adaaca7913c9344c90dc8c76358"></a>
5782<div class="memitem">
5783<div class="memproto">
5784 <table class="memname">
5785 <tr>
5786 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#abd445adaaca7913c9344c90dc8c76358">Size2DArray</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;<a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a>&gt;</td>
5787 </tr>
5788 </table>
5789</div><div class="memdoc">
5790
5791<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00067">67</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
5792
5793</div>
5794</div>
5795<a class="anchor" id="ab91cb2269b2e58ed2cb6bd2ca831d434"></a>
5796<div class="memitem">
5797<div class="memproto">
5798 <table class="memname">
5799 <tr>
5800 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ab91cb2269b2e58ed2cb6bd2ca831d434">UInt16Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;uint16_t&gt;</td>
5801 </tr>
5802 </table>
5803</div><div class="memdoc">
5804
5805<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00069">69</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
5806
5807</div>
5808</div>
5809<a class="anchor" id="acd6eb2619ccd5eee4963de3195785359"></a>
5810<div class="memitem">
5811<div class="memproto">
5812 <table class="memname">
5813 <tr>
5814 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#acd6eb2619ccd5eee4963de3195785359">UInt32Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;uint32_t&gt;</td>
5815 </tr>
5816 </table>
5817</div><div class="memdoc">
5818
5819<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00070">70</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
5820
5821</div>
5822</div>
5823<a class="anchor" id="a9dbb5e00a3f397691eb782f03f65375c"></a>
5824<div class="memitem">
5825<div class="memproto">
5826 <table class="memname">
5827 <tr>
5828 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a9dbb5e00a3f397691eb782f03f65375c">UInt8Array</a> = <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a>&lt;uint8_t&gt;</td>
5829 </tr>
5830 </table>
5831</div><div class="memdoc">
5832
5833<p>Definition at line <a class="el" href="_array_8h_source.xhtml#l00068">68</a> of file <a class="el" href="_array_8h_source.xhtml">Array.h</a>.</p>
5834
5835</div>
5836</div>
5837<h2 class="groupheader">Enumeration Type Documentation</h2>
5838<a class="anchor" id="a2d8a00f1d80a53ce8f75fa929c873202"></a>
5839<div class="memitem">
5840<div class="memproto">
5841<table class="mlabels">
5842 <tr>
5843 <td class="mlabels-left">
5844 <table class="memname">
5845 <tr>
5846 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202">BilinearInterpolation</a></td>
5847 </tr>
5848 </table>
5849 </td>
5850 <td class="mlabels-right">
5851<span class="mlabels"><span class="mlabel">strong</span></span> </td>
5852 </tr>
5853</table>
5854</div><div class="memdoc">
5855
5856<p>Bilinear Interpolation method used by LKTracker. </p>
5857<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005858<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a2d8a00f1d80a53ce8f75fa929c873202a856d68c521c4c85363f54d95a33b7532"></a>BILINEAR_OLD_NEW&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005859</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005860<tr><td class="fieldname"><a class="anchor" id="a2d8a00f1d80a53ce8f75fa929c873202a731cb35d2d520920db9ab20dfc5edc64"></a>BILINEAR_SCHARR&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005861</td></tr>
5862</table>
5863
Anthony Barbier06ea0482018-02-22 15:45:35 +00005864<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00317">317</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
5865<div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;{</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202a856d68c521c4c85363f54d95a33b7532">BILINEAR_OLD_NEW</a>,</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202a731cb35d2d520920db9ab20dfc5edc64">BILINEAR_SCHARR</a></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a2d8a00f1d80a53ce8f75fa929c873202a856d68c521c4c85363f54d95a33b7532"><div class="ttname"><a href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202a856d68c521c4c85363f54d95a33b7532">arm_compute::BilinearInterpolation::BILINEAR_OLD_NEW</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005866<div class="ttc" id="namespacearm__compute_xhtml_a2d8a00f1d80a53ce8f75fa929c873202a731cb35d2d520920db9ab20dfc5edc64"><div class="ttname"><a href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202a731cb35d2d520920db9ab20dfc5edc64">arm_compute::BilinearInterpolation::BILINEAR_SCHARR</a></div></div>
5867</div><!-- fragment -->
5868</div>
5869</div>
5870<a class="anchor" id="a15a05537a472ee742404821851529327"></a>
5871<div class="memitem">
5872<div class="memproto">
5873<table class="mlabels">
5874 <tr>
5875 <td class="mlabels-left">
5876 <table class="memname">
5877 <tr>
5878 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a></td>
5879 </tr>
5880 </table>
5881 </td>
5882 <td class="mlabels-right">
5883<span class="mlabels"><span class="mlabel">strong</span></span> </td>
5884 </tr>
5885</table>
5886</div><div class="memdoc">
5887
5888<p>Methods available to handle borders. </p>
5889<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005890<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3"></a>UNDEFINED&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005891<p>Borders are left undefined. </p>
5892</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005893<tr><td class="fieldname"><a class="anchor" id="a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92"></a>CONSTANT&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005894<p>Pixels outside the image are assumed to have a constant value. </p>
5895</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005896<tr><td class="fieldname"><a class="anchor" id="a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa"></a>REPLICATE&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005897<p>Pixels outside the image are assumed to have the same value as the closest image pixel. </p>
5898</td></tr>
5899</table>
5900
Anthony Barbier06ea0482018-02-22 15:45:35 +00005901<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00221">221</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
5902<div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;{</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">UNDEFINED</a>, </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">CONSTANT</a>, </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">REPLICATE</a> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3"><div class="ttname"><a href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">arm_compute::BorderMode::UNDEFINED</a></div><div class="ttdoc">Borders are left undefined. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005903<div class="ttc" id="namespacearm__compute_xhtml_a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa"><div class="ttname"><a href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">arm_compute::BorderMode::REPLICATE</a></div><div class="ttdoc">Pixels outside the image are assumed to have the same value as the closest image pixel. </div></div>
5904<div class="ttc" id="namespacearm__compute_xhtml_a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92"><div class="ttname"><a href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">arm_compute::BorderMode::CONSTANT</a></div><div class="ttdoc">Pixels outside the image are assumed to have a constant value. </div></div>
5905</div><!-- fragment -->
5906</div>
5907</div>
5908<a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455a"></a>
5909<div class="memitem">
5910<div class="memproto">
5911<table class="mlabels">
5912 <tr>
5913 <td class="mlabels-left">
5914 <table class="memname">
5915 <tr>
5916 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a></td>
5917 </tr>
5918 </table>
5919 </td>
5920 <td class="mlabels-right">
5921<span class="mlabels"><span class="mlabel">strong</span></span> </td>
5922 </tr>
5923</table>
5924</div><div class="memdoc">
5925
5926<p>Available channels. </p>
5927<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005928<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa696b031073e74bf2cb98e5ef201d4aa3"></a>UNKNOWN&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005929</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005930<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa9c5959e6f08f10d0edbadf5be1f33c53"></a>C0&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005931<p>Unknown channel format. </p>
5932<p>First channel (used by formats with unknown channel types). </p>
5933</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005934<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa1a2ddc2db4693cfd16d534cde5572cc1"></a>C1&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005935<p>Second channel (used by formats with unknown channel types). </p>
5936</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005937<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aaf1a543f5a2c5d49bc5dde298fcf716e4"></a>C2&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005938<p>Third channel (used by formats with unknown channel types). </p>
5939</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005940<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa3abe124ecc82bf2c2e22e6058f38c50c"></a>C3&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005941<p>Fourth channel (used by formats with unknown channel types). </p>
5942</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005943<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6"></a>R&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005944<p>Red channel. </p>
5945</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005946<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf"></a>G&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005947<p>Green channel. </p>
5948</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005949<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"></a>B&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005950<p>Blue channel. </p>
5951</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005952<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"></a>A&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005953<p>Alpha channel. </p>
5954</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005955<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0"></a>Y&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005956<p>Luma channel. </p>
5957</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005958<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb"></a>U&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005959<p>Cb/U channel. </p>
5960</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00005961<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce"></a>V&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00005962<p>Cr/V/Value channel. </p>
5963</td></tr>
5964</table>
5965
Anthony Barbier06ea0482018-02-22 15:45:35 +00005966<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00401">401</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
5967<div class="fragment"><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;{</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>, </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9c5959e6f08f10d0edbadf5be1f33c53">C0</a>, </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa1a2ddc2db4693cfd16d534cde5572cc1">C1</a>, </div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aaf1a543f5a2c5d49bc5dde298fcf716e4">C2</a>, </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa3abe124ecc82bf2c2e22e6058f38c50c">C3</a>, </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6">R</a>, </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf">G</a>, </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">Y</a>, </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>, </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a> </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005968<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa1a2ddc2db4693cfd16d534cde5572cc1"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa1a2ddc2db4693cfd16d534cde5572cc1">arm_compute::Channel::C1</a></div><div class="ttdoc">Second channel (used by formats with unknown channel types). </div></div>
5969<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">arm_compute::Channel::V</a></div><div class="ttdoc">Cr/V/Value channel. </div></div>
5970<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
5971<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9c5959e6f08f10d0edbadf5be1f33c53"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9c5959e6f08f10d0edbadf5be1f33c53">arm_compute::Channel::C0</a></div><div class="ttdoc">Unknown channel format. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005972<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6">arm_compute::Channel::R</a></div><div class="ttdoc">Red channel. </div></div>
5973<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aaf1a543f5a2c5d49bc5dde298fcf716e4"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aaf1a543f5a2c5d49bc5dde298fcf716e4">arm_compute::Channel::C2</a></div><div class="ttdoc">Third channel (used by formats with unknown channel types). </div></div>
5974<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">arm_compute::Channel::U</a></div><div class="ttdoc">Cb/U channel. </div></div>
5975<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa3abe124ecc82bf2c2e22e6058f38c50c"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa3abe124ecc82bf2c2e22e6058f38c50c">arm_compute::Channel::C3</a></div><div class="ttdoc">Fourth channel (used by formats with unknown channel types). </div></div>
5976<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">arm_compute::Channel::Y</a></div><div class="ttdoc">Luma channel. </div></div>
Kaizen8938bd32017-09-28 14:38:23 +01005977<div class="ttc" id="namespacearm__compute_xhtml_a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3"><div class="ttname"><a href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">arm_compute::CLVersion::UNKNOWN</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005978<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf">arm_compute::Channel::G</a></div><div class="ttdoc">Green channel. </div></div>
5979</div><!-- fragment -->
5980</div>
5981</div>
Kaizen8938bd32017-09-28 14:38:23 +01005982<a class="anchor" id="a3a440b3893fa10608d4428958be1c52e"></a>
5983<div class="memitem">
5984<div class="memproto">
5985<table class="mlabels">
5986 <tr>
5987 <td class="mlabels-left">
5988 <table class="memname">
5989 <tr>
5990 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52e">CLVersion</a></td>
5991 </tr>
5992 </table>
5993 </td>
5994 <td class="mlabels-right">
5995<span class="mlabels"><span class="mlabel">strong</span></span> </td>
5996 </tr>
5997</table>
5998</div><div class="memdoc">
5999<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006000<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a3a440b3893fa10608d4428958be1c52ea06e5b2cbe2f75bb5eec32613499cf22a"></a>CL10&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006001</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006002<tr><td class="fieldname"><a class="anchor" id="a3a440b3893fa10608d4428958be1c52ea80e95ed62d0c47e4d8c0696d467d4db3"></a>CL11&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006003</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006004<tr><td class="fieldname"><a class="anchor" id="a3a440b3893fa10608d4428958be1c52ead7beedb1bf6bfae8111da26424266675"></a>CL12&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006005</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006006<tr><td class="fieldname"><a class="anchor" id="a3a440b3893fa10608d4428958be1c52eaba90edbc644c32afa8a7e36e87735aab"></a>CL20&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006007</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006008<tr><td class="fieldname"><a class="anchor" id="a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3"></a>UNKNOWN&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006009</td></tr>
6010</table>
6011
6012<p>Definition at line <a class="el" href="_c_l_types_8h_source.xhtml#l00047">47</a> of file <a class="el" href="_c_l_types_8h_source.xhtml">CLTypes.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006013<div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea06e5b2cbe2f75bb5eec32613499cf22a">CL10</a>, <span class="comment">/* the OpenCL 1.0 */</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea80e95ed62d0c47e4d8c0696d467d4db3">CL11</a>, <span class="comment">/* the OpenCL 1.1 */</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ead7beedb1bf6bfae8111da26424266675">CL12</a>, <span class="comment">/* the OpenCL 1.2 */</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52eaba90edbc644c32afa8a7e36e87735aab">CL20</a>, <span class="comment">/* the OpenCL 2.0 and above */</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a> <span class="comment">/* unkown version */</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a3a440b3893fa10608d4428958be1c52eaba90edbc644c32afa8a7e36e87735aab"><div class="ttname"><a href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52eaba90edbc644c32afa8a7e36e87735aab">arm_compute::CLVersion::CL20</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01006014<div class="ttc" id="namespacearm__compute_xhtml_a3a440b3893fa10608d4428958be1c52ead7beedb1bf6bfae8111da26424266675"><div class="ttname"><a href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ead7beedb1bf6bfae8111da26424266675">arm_compute::CLVersion::CL12</a></div></div>
6015<div class="ttc" id="namespacearm__compute_xhtml_a3a440b3893fa10608d4428958be1c52ea06e5b2cbe2f75bb5eec32613499cf22a"><div class="ttname"><a href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea06e5b2cbe2f75bb5eec32613499cf22a">arm_compute::CLVersion::CL10</a></div></div>
6016<div class="ttc" id="namespacearm__compute_xhtml_a3a440b3893fa10608d4428958be1c52ea80e95ed62d0c47e4d8c0696d467d4db3"><div class="ttname"><a href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea80e95ed62d0c47e4d8c0696d467d4db3">arm_compute::CLVersion::CL11</a></div></div>
6017<div class="ttc" id="namespacearm__compute_xhtml_a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3"><div class="ttname"><a href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">arm_compute::CLVersion::UNKNOWN</a></div></div>
6018</div><!-- fragment -->
6019</div>
6020</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006021<a class="anchor" id="a82b8ac759c804bc1fb4e2d21e178fb6f"></a>
6022<div class="memitem">
6023<div class="memproto">
6024<table class="mlabels">
6025 <tr>
6026 <td class="mlabels-left">
6027 <table class="memname">
6028 <tr>
6029 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a></td>
6030 </tr>
6031 </table>
6032 </td>
6033 <td class="mlabels-right">
6034<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6035 </tr>
6036</table>
6037</div><div class="memdoc">
6038
6039<p>Policy to handle overflow. </p>
6040<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006041<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0"></a>WRAP&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006042<p>Wrap around. </p>
6043</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006044<tr><td class="fieldname"><a class="anchor" id="a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86"></a>SATURATE&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006045<p>Saturate. </p>
6046</td></tr>
6047</table>
6048
Anthony Barbier06ea0482018-02-22 15:45:35 +00006049<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00302">302</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6050<div class="fragment"><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;{</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0">WRAP</a>, </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86">SATURATE</a> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0"><div class="ttname"><a href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0">arm_compute::ConvertPolicy::WRAP</a></div><div class="ttdoc">Wrap around. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006051<div class="ttc" id="namespacearm__compute_xhtml_a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86"><div class="ttname"><a href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86">arm_compute::ConvertPolicy::SATURATE</a></div><div class="ttdoc">Saturate. </div></div>
6052</div><!-- fragment -->
6053</div>
6054</div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00006055<a class="anchor" id="a683661ae75dcb7aef16b9c9bde31517d"></a>
6056<div class="memitem">
6057<div class="memproto">
6058<table class="mlabels">
6059 <tr>
6060 <td class="mlabels-left">
6061 <table class="memname">
6062 <tr>
6063 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517d">ConvolutionMethod</a></td>
6064 </tr>
6065 </table>
6066 </td>
6067 <td class="mlabels-right">
6068<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6069 </tr>
6070</table>
6071</div><div class="memdoc">
6072
6073<p>Available ConvolutionMethod. </p>
6074<table class="fieldtable">
6075<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a683661ae75dcb7aef16b9c9bde31517da5174aac3927faa9ee34befb7fc87a9e3"></a>GEMM&#160;</td><td class="fielddoc">
6076<p>Convolution using GEMM. </p>
6077</td></tr>
6078<tr><td class="fieldname"><a class="anchor" id="a683661ae75dcb7aef16b9c9bde31517da4c5d06b02c97731aaa976179c62dcf76"></a>DIRECT&#160;</td><td class="fielddoc">
6079<p>Direct convolution. </p>
6080</td></tr>
6081<tr><td class="fieldname"><a class="anchor" id="a683661ae75dcb7aef16b9c9bde31517da9d024a5762b3a992dec7eb3c49d17ae8"></a>WINOGRAD&#160;</td><td class="fielddoc">
6082<p>Convolution using Winograd. </p>
6083</td></tr>
6084</table>
6085
6086<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l01063">1063</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6087<div class="fragment"><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;{</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da5174aac3927faa9ee34befb7fc87a9e3">GEMM</a>, </div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da4c5d06b02c97731aaa976179c62dcf76">DIRECT</a>, </div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da9d024a5762b3a992dec7eb3c49d17ae8">WINOGRAD</a> </div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a683661ae75dcb7aef16b9c9bde31517da4c5d06b02c97731aaa976179c62dcf76"><div class="ttname"><a href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da4c5d06b02c97731aaa976179c62dcf76">arm_compute::ConvolutionMethod::DIRECT</a></div><div class="ttdoc">Direct convolution. </div></div>
6088<div class="ttc" id="namespacearm__compute_xhtml_a683661ae75dcb7aef16b9c9bde31517da9d024a5762b3a992dec7eb3c49d17ae8"><div class="ttname"><a href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da9d024a5762b3a992dec7eb3c49d17ae8">arm_compute::ConvolutionMethod::WINOGRAD</a></div><div class="ttdoc">Convolution using Winograd. </div></div>
6089<div class="ttc" id="namespacearm__compute_xhtml_a683661ae75dcb7aef16b9c9bde31517da5174aac3927faa9ee34befb7fc87a9e3"><div class="ttname"><a href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da5174aac3927faa9ee34befb7fc87a9e3">arm_compute::ConvolutionMethod::GEMM</a></div><div class="ttdoc">Convolution using GEMM. </div></div>
6090</div><!-- fragment -->
6091</div>
6092</div>
Kaizen8938bd32017-09-28 14:38:23 +01006093<a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853d"></a>
6094<div class="memitem">
6095<div class="memproto">
6096<table class="mlabels">
6097 <tr>
6098 <td class="mlabels-left">
6099 <table class="memname">
6100 <tr>
6101 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853d">CPUTarget</a></td>
6102 </tr>
6103 </table>
6104 </td>
6105 <td class="mlabels-right">
6106<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6107 </tr>
6108</table>
6109</div><div class="memdoc">
6110
6111<p>Available CPU Targets. </p>
6112<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006113<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da7bb4605304408687bbcfe83a1c85c5d2"></a>ARCH_MASK&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006114</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006115<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da189a7dee91b2b03205881c665cfc9ac5"></a>CPU_MODEL&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006116</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006117<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853dac945a6a364e6bb4138f727c809f1ba22"></a>INTRINSICS&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006118</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006119<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da45a830a4c6240ac27c392266589a630c"></a>ARMV7&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006120</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006121<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853dae756f50f85aff43114661560586b0cdd"></a>ARMV8&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006122</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006123<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da3d16766c34a116d6c2a9c5bc116f8f3d"></a>ARMV8_2&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006124</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006125<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da2e661c06783635c6781ed83ba9091a0e"></a>A7x&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006126</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006127<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da58cf3eba9701a090bfa99b54df20eced"></a>A5x&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006128</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006129<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da40679521b5da0954b705341a2859f782"></a>DOT&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006130</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006131<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853daecf3e2493afebcfefb0b9b86bd50ef0d"></a>A53&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006132</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006133<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da83a0ae9a921c5de44da55ab444611649"></a>A55&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006134</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006135<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da8a2396eb11e41f727e6cdaa783d7d893"></a>A55_DOT&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006136</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006137<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da05f60b9c3ca8212c8ebeb166d58bc937"></a>A72&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006138</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006139<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853daaf79f683ceaea4650b20e898d6c4c373"></a>A73&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006140</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006141<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853dadb48626fe69fc2fa2191287510a76831"></a>A75&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006142</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006143<tr><td class="fieldname"><a class="anchor" id="a5bc939238e1f14a4c39aaee8186a853da3ccaa97eef88d0725900d73d2c54aa15"></a>A75_DOT&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006144</td></tr>
6145</table>
6146
6147<p>Definition at line <a class="el" href="_c_p_p_types_8h_source.xhtml#l00030">30</a> of file <a class="el" href="_c_p_p_types_8h_source.xhtml">CPPTypes.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006148<div class="fragment"><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da7bb4605304408687bbcfe83a1c85c5d2">ARCH_MASK</a> = 0x0F00,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da189a7dee91b2b03205881c665cfc9ac5">CPU_MODEL</a> = 0x00FF,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dac945a6a364e6bb4138f727c809f1ba22">INTRINSICS</a> = 0x0100,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da45a830a4c6240ac27c392266589a630c">ARMV7</a> = 0x0200,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dae756f50f85aff43114661560586b0cdd">ARMV8</a> = 0x0300,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da3d16766c34a116d6c2a9c5bc116f8f3d">ARMV8_2</a> = 0x0400,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da2e661c06783635c6781ed83ba9091a0e">A7x</a> = 0x0070,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da58cf3eba9701a090bfa99b54df20eced">A5x</a> = 0x0050,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da40679521b5da0954b705341a2859f782">DOT</a> = 0x1000,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853daecf3e2493afebcfefb0b9b86bd50ef0d">A53</a> = (<a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dae756f50f85aff43114661560586b0cdd">ARMV8</a> | <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da2e661c06783635c6781ed83ba9091a0e">A7x</a> | 0x3),</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; A55 = (ARMV8_2 | A5x | 0x5),</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da8a2396eb11e41f727e6cdaa783d7d893">A55_DOT</a> = (<a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da83a0ae9a921c5de44da55ab444611649">A55</a> | <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da40679521b5da0954b705341a2859f782">DOT</a>),</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; A72 = (ARMV8 | A7x | 0x2),</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853daaf79f683ceaea4650b20e898d6c4c373">A73</a> = (<a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dae756f50f85aff43114661560586b0cdd">ARMV8</a> | <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da2e661c06783635c6781ed83ba9091a0e">A7x</a> | 0x3),</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; A75 = (ARMV8_2 | A7x | 0x5),</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da3ccaa97eef88d0725900d73d2c54aa15">A75_DOT</a> = (<a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dadb48626fe69fc2fa2191287510a76831">A75</a> | <a class="code" href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da40679521b5da0954b705341a2859f782">DOT</a>),</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da45a830a4c6240ac27c392266589a630c"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da45a830a4c6240ac27c392266589a630c">arm_compute::CPUTarget::ARMV7</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01006149<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853dadb48626fe69fc2fa2191287510a76831"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dadb48626fe69fc2fa2191287510a76831">arm_compute::CPUTarget::A75</a></div></div>
6150<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da40679521b5da0954b705341a2859f782"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da40679521b5da0954b705341a2859f782">arm_compute::CPUTarget::DOT</a></div></div>
6151<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da83a0ae9a921c5de44da55ab444611649"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da83a0ae9a921c5de44da55ab444611649">arm_compute::CPUTarget::A55</a></div></div>
6152<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da58cf3eba9701a090bfa99b54df20eced"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da58cf3eba9701a090bfa99b54df20eced">arm_compute::CPUTarget::A5x</a></div></div>
6153<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da8a2396eb11e41f727e6cdaa783d7d893"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da8a2396eb11e41f727e6cdaa783d7d893">arm_compute::CPUTarget::A55_DOT</a></div></div>
6154<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da189a7dee91b2b03205881c665cfc9ac5"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da189a7dee91b2b03205881c665cfc9ac5">arm_compute::CPUTarget::CPU_MODEL</a></div></div>
6155<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da3d16766c34a116d6c2a9c5bc116f8f3d"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da3d16766c34a116d6c2a9c5bc116f8f3d">arm_compute::CPUTarget::ARMV8_2</a></div></div>
6156<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853daaf79f683ceaea4650b20e898d6c4c373"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853daaf79f683ceaea4650b20e898d6c4c373">arm_compute::CPUTarget::A73</a></div></div>
6157<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da2e661c06783635c6781ed83ba9091a0e"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da2e661c06783635c6781ed83ba9091a0e">arm_compute::CPUTarget::A7x</a></div></div>
6158<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853dae756f50f85aff43114661560586b0cdd"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dae756f50f85aff43114661560586b0cdd">arm_compute::CPUTarget::ARMV8</a></div></div>
6159<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da7bb4605304408687bbcfe83a1c85c5d2"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da7bb4605304408687bbcfe83a1c85c5d2">arm_compute::CPUTarget::ARCH_MASK</a></div></div>
6160<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853dac945a6a364e6bb4138f727c809f1ba22"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853dac945a6a364e6bb4138f727c809f1ba22">arm_compute::CPUTarget::INTRINSICS</a></div></div>
6161<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853daecf3e2493afebcfefb0b9b86bd50ef0d"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853daecf3e2493afebcfefb0b9b86bd50ef0d">arm_compute::CPUTarget::A53</a></div></div>
6162<div class="ttc" id="namespacearm__compute_xhtml_a5bc939238e1f14a4c39aaee8186a853da3ccaa97eef88d0725900d73d2c54aa15"><div class="ttname"><a href="namespacearm__compute.xhtml#a5bc939238e1f14a4c39aaee8186a853da3ccaa97eef88d0725900d73d2c54aa15">arm_compute::CPUTarget::A75_DOT</a></div></div>
6163</div><!-- fragment -->
6164</div>
6165</div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00006166<a class="anchor" id="ad1d5cce2d9e9a5d61c243e5c989112e0"></a>
6167<div class="memitem">
6168<div class="memproto">
6169<table class="mlabels">
6170 <tr>
6171 <td class="mlabels-left">
6172 <table class="memname">
6173 <tr>
6174 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a></td>
6175 </tr>
6176 </table>
6177 </td>
6178 <td class="mlabels-right">
6179<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6180 </tr>
6181</table>
6182</div><div class="memdoc">
6183
6184<p>Supported tensor data layouts. </p>
6185<table class="fieldtable">
6186<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f"></a>NCHW&#160;</td><td class="fielddoc">
6187</td></tr>
6188<tr><td class="fieldname"><a class="anchor" id="ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51"></a>NHWC&#160;</td><td class="fielddoc">
6189</td></tr>
6190</table>
6191
6192<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00110">110</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6193<div class="fragment"><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">NCHW</a>,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">NHWC</a></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f"><div class="ttname"><a href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">arm_compute::DataLayout::NCHW</a></div></div>
6194<div class="ttc" id="namespacearm__compute_xhtml_ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51"><div class="ttname"><a href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">arm_compute::DataLayout::NHWC</a></div></div>
6195</div><!-- fragment -->
6196</div>
6197</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006198<a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6"></a>
6199<div class="memitem">
6200<div class="memproto">
6201<table class="mlabels">
6202 <tr>
6203 <td class="mlabels-left">
6204 <table class="memname">
6205 <tr>
6206 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a></td>
6207 </tr>
6208 </table>
6209 </td>
6210 <td class="mlabels-right">
6211<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6212 </tr>
6213</table>
6214</div><div class="memdoc">
6215
6216<p>Available data types. </p>
6217<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006218<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a696b031073e74bf2cb98e5ef201d4aa3"></a>UNKNOWN&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006219</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006220<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a6669348b484e3008dca2bfa8e85e40b5"></a>U8&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006221</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006222<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975"></a>S8&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006223</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006224<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543"></a>QS8&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006225</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006226<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924"></a>QASYMM8&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006227</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006228<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6aef9ef3ebca4d2b64b6ec83808bafa5f2"></a>U16&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006229</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006230<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a6e0b0886efb94aec797f6b830329b72c"></a>S16&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006231</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006232<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9"></a>QS16&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006233</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006234<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6ac8bd5bedff8ef192d39a962afc0e19ee"></a>U32&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006235</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006236<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6aa1e28eee0339658d39a8b4d325b56e9c"></a>S32&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006237</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006238<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf"></a>QS32&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006239</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006240<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa"></a>U64&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006241</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006242<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc"></a>S64&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006243</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006244<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a56d8353718e6fdc78b8d69078a2cdb94"></a>F16&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006245</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006246<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a44ad4ef5a76e6aa6fb3e3fa079a54fda"></a>F32&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006247</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006248<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e"></a>F64&#160;</td><td class="fielddoc">
6249</td></tr>
6250<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1"></a>SIZET&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006251</td></tr>
6252</table>
6253
Anthony Barbier06ea0482018-02-22 15:45:35 +00006254<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00072">72</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6255<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">S8</a>,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">QASYMM8</a>,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf">QS32</a>,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">U64</a>,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">S64</a>,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">F64</a>,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">SIZET</a></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">arm_compute::DataType::QS16</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006256<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">arm_compute::DataType::QS8</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006257<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">arm_compute::Format::U8</a></div><div class="ttdoc">1 channel, 1 U8 per channel </div></div>
6258<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::Format::F32</a></div><div class="ttdoc">1 channel, 1 F32 per channel </div></div>
6259<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">arm_compute::Format::U16</a></div><div class="ttdoc">1 channel, 1 U16 per channel </div></div>
6260<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">arm_compute::Format::F16</a></div><div class="ttdoc">1 channel, 1 F16 per channel </div></div>
6261<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">arm_compute::Format::S32</a></div><div class="ttdoc">1 channel, 1 S32 per channel </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006262<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">arm_compute::DataType::S64</a></div></div>
6263<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">arm_compute::DataType::SIZET</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006264<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">arm_compute::Format::U32</a></div><div class="ttdoc">1 channel, 1 U32 per channel </div></div>
6265<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">arm_compute::DataType::QASYMM8</a></div></div>
6266<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">arm_compute::Format::S16</a></div><div class="ttdoc">1 channel, 1 S16 per channel </div></div>
Kaizen8938bd32017-09-28 14:38:23 +01006267<div class="ttc" id="namespacearm__compute_xhtml_a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3"><div class="ttname"><a href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">arm_compute::CLVersion::UNKNOWN</a></div></div>
6268<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf">arm_compute::DataType::QS32</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006269<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">arm_compute::DataType::F64</a></div></div>
6270<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">arm_compute::DataType::U64</a></div></div>
6271<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">arm_compute::DataType::S8</a></div></div>
6272</div><!-- fragment -->
6273</div>
6274</div>
6275<a class="anchor" id="a1fece1bd804e64f39f602d1c3969849a"></a>
6276<div class="memitem">
6277<div class="memproto">
6278<table class="mlabels">
6279 <tr>
6280 <td class="mlabels-left">
6281 <table class="memname">
6282 <tr>
6283 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849a">DimensionRoundingType</a></td>
6284 </tr>
6285 </table>
6286 </td>
6287 <td class="mlabels-right">
6288<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6289 </tr>
6290</table>
6291</div><div class="memdoc">
6292
6293<p>Dimension rounding type when down-scaling on CNNs. </p>
6294<dl class="section note"><dt>Note</dt><dd>Used in pooling and convolution layer </dd></dl>
6295<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006296<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a1fece1bd804e64f39f602d1c3969849aa56c1e354d36beb85b0d881c5b2e24cbe"></a>FLOOR&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006297<p>Floor rounding. </p>
6298</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006299<tr><td class="fieldname"><a class="anchor" id="a1fece1bd804e64f39f602d1c3969849aa5bdce8e6d9dc3efbbd31e90a8a181dff"></a>CEIL&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006300<p>Ceil rounding. </p>
6301</td></tr>
6302</table>
6303
Anthony Barbier06ea0482018-02-22 15:45:35 +00006304<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00476">476</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6305<div class="fragment"><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa56c1e354d36beb85b0d881c5b2e24cbe">FLOOR</a>, </div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa5bdce8e6d9dc3efbbd31e90a8a181dff">CEIL</a> </div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a1fece1bd804e64f39f602d1c3969849aa5bdce8e6d9dc3efbbd31e90a8a181dff"><div class="ttname"><a href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa5bdce8e6d9dc3efbbd31e90a8a181dff">arm_compute::DimensionRoundingType::CEIL</a></div><div class="ttdoc">Ceil rounding. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006306<div class="ttc" id="namespacearm__compute_xhtml_a1fece1bd804e64f39f602d1c3969849aa56c1e354d36beb85b0d881c5b2e24cbe"><div class="ttname"><a href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa56c1e354d36beb85b0d881c5b2e24cbe">arm_compute::DimensionRoundingType::FLOOR</a></div><div class="ttdoc">Floor rounding. </div></div>
6307</div><!-- fragment -->
6308</div>
6309</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006310<a class="anchor" id="a59e56af19e754a6aa26a612ebf91d05f"></a>
6311<div class="memitem">
6312<div class="memproto">
6313<table class="mlabels">
6314 <tr>
6315 <td class="mlabels-left">
6316 <table class="memname">
6317 <tr>
6318 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05f">ErrorCode</a></td>
6319 </tr>
6320 </table>
6321 </td>
6322 <td class="mlabels-right">
6323<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6324 </tr>
6325</table>
6326</div><div class="memdoc">
6327<table class="fieldtable">
6328<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a59e56af19e754a6aa26a612ebf91d05fae0aa021e21dddbd6d8cecec71e9cf564"></a>OK&#160;</td><td class="fielddoc">
6329<p>No error. </p>
6330</td></tr>
6331<tr><td class="fieldname"><a class="anchor" id="a59e56af19e754a6aa26a612ebf91d05fa62be47fdd89da032cf78dfce82239579"></a>RUNTIME_ERROR&#160;</td><td class="fielddoc">
6332<p>Generic runtime error. </p>
6333</td></tr>
6334</table>
6335
6336<p>Definition at line <a class="el" href="core_2_error_8h_source.xhtml#l00032">32</a> of file <a class="el" href="core_2_error_8h_source.xhtml">Error.h</a>.</p>
6337<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05fae0aa021e21dddbd6d8cecec71e9cf564">OK</a>, </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05fa62be47fdd89da032cf78dfce82239579">RUNTIME_ERROR</a> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a59e56af19e754a6aa26a612ebf91d05fae0aa021e21dddbd6d8cecec71e9cf564"><div class="ttname"><a href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05fae0aa021e21dddbd6d8cecec71e9cf564">arm_compute::ErrorCode::OK</a></div><div class="ttdoc">No error. </div></div>
6338<div class="ttc" id="namespacearm__compute_xhtml_a59e56af19e754a6aa26a612ebf91d05fa62be47fdd89da032cf78dfce82239579"><div class="ttname"><a href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05fa62be47fdd89da032cf78dfce82239579">arm_compute::ErrorCode::RUNTIME_ERROR</a></div><div class="ttdoc">Generic runtime error. </div></div>
6339</div><!-- fragment -->
6340</div>
6341</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006342<a class="anchor" id="afa20b6a7f4383003babd690f026f22dc"></a>
6343<div class="memitem">
6344<div class="memproto">
6345<table class="mlabels">
6346 <tr>
6347 <td class="mlabels-left">
6348 <table class="memname">
6349 <tr>
6350 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a></td>
6351 </tr>
6352 </table>
6353 </td>
6354 <td class="mlabels-right">
6355<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6356 </tr>
6357</table>
6358</div><div class="memdoc">
6359
6360<p>Fixed point operation. </p>
6361<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006362<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca9eeb52badb613229884838847294b90d"></a>ADD&#160;</td><td class="fielddoc">
Kaizenbf8b01d2017-10-12 14:26:51 +01006363<p>Addition. </p>
6364</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006365<tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca241dd841abade20fcb27b8a9f494e1eb"></a>SUB&#160;</td><td class="fielddoc">
Kaizenbf8b01d2017-10-12 14:26:51 +01006366<p>Subtraction. </p>
6367</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006368<tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca2cdf52a55876063ec93b7d18bc741f6c"></a>MUL&#160;</td><td class="fielddoc">
Kaizenbf8b01d2017-10-12 14:26:51 +01006369<p>Multiplication. </p>
6370</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006371<tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7"></a>EXP&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006372<p>Exponential. </p>
6373</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006374<tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3"></a>LOG&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006375<p>Logarithm. </p>
6376</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006377<tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b"></a>INV_SQRT&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006378<p>Inverse square root. </p>
6379</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006380<tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1"></a>RECIPROCAL&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006381<p>Reciprocal. </p>
6382</td></tr>
6383</table>
6384
Kaizen8938bd32017-09-28 14:38:23 +01006385<p>Definition at line <a class="el" href="tests_2_types_8h_source.xhtml#l00034">34</a> of file <a class="el" href="tests_2_types_8h_source.xhtml">Types.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006386<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="arithmetic__op_8cl.xhtml#af3b709fb668cf93ca09e2a46a2a031a8">ADD</a>, </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="arithmetic__op_8cl.xhtml#aafc2c4f262a0686c07f86c7d2e1d8d14">SUB</a>, </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca2cdf52a55876063ec93b7d18bc741f6c">MUL</a>, </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7">EXP</a>, </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3">LOG</a>, </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b">INV_SQRT</a>, </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1">RECIPROCAL</a> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3"><div class="ttname"><a href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3">arm_compute::FixedPointOp::LOG</a></div><div class="ttdoc">Logarithm. </div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006387<div class="ttc" id="namespacearm__compute_xhtml_afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7"><div class="ttname"><a href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7">arm_compute::FixedPointOp::EXP</a></div><div class="ttdoc">Exponential. </div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +01006388<div class="ttc" id="arithmetic__op_8cl_xhtml_af3b709fb668cf93ca09e2a46a2a031a8"><div class="ttname"><a href="arithmetic__op_8cl.xhtml#af3b709fb668cf93ca09e2a46a2a031a8">ADD</a></div><div class="ttdeci">#define ADD(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="arithmetic__op_8cl_source.xhtml#l00034">arithmetic_op.cl:34</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006389<div class="ttc" id="namespacearm__compute_xhtml_afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b"><div class="ttname"><a href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b">arm_compute::FixedPointOp::INV_SQRT</a></div><div class="ttdoc">Inverse square root. </div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +01006390<div class="ttc" id="arithmetic__op_8cl_xhtml_aafc2c4f262a0686c07f86c7d2e1d8d14"><div class="ttname"><a href="arithmetic__op_8cl.xhtml#aafc2c4f262a0686c07f86c7d2e1d8d14">SUB</a></div><div class="ttdeci">#define SUB(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="arithmetic__op_8cl_source.xhtml#l00035">arithmetic_op.cl:35</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006391<div class="ttc" id="namespacearm__compute_xhtml_afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1"><div class="ttname"><a href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1">arm_compute::FixedPointOp::RECIPROCAL</a></div><div class="ttdoc">Reciprocal. </div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +01006392<div class="ttc" id="namespacearm__compute_xhtml_afa20b6a7f4383003babd690f026f22dca2cdf52a55876063ec93b7d18bc741f6c"><div class="ttname"><a href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca2cdf52a55876063ec93b7d18bc741f6c">arm_compute::FixedPointOp::MUL</a></div><div class="ttdoc">Multiplication. </div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006393</div><!-- fragment -->
6394</div>
6395</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006396<a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58"></a>
6397<div class="memitem">
6398<div class="memproto">
6399<table class="mlabels">
6400 <tr>
6401 <td class="mlabels-left">
6402 <table class="memname">
6403 <tr>
6404 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a></td>
6405 </tr>
6406 </table>
6407 </td>
6408 <td class="mlabels-right">
6409<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6410 </tr>
6411</table>
6412</div><div class="memdoc">
6413
6414<p><a class="el" href="struct_image.xhtml" title="Structure to hold Image information. ">Image</a> colour formats. </p>
6415<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006416<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3"></a>UNKNOWN&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006417<p>Unknown image format. </p>
6418</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006419<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5"></a>U8&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006420<p>1 channel, 1 U8 per channel </p>
6421</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006422<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c"></a>S16&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006423<p>1 channel, 1 S16 per channel </p>
6424</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006425<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2"></a>U16&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006426<p>1 channel, 1 U16 per channel </p>
6427</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006428<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c"></a>S32&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006429<p>1 channel, 1 S32 per channel </p>
6430</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006431<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee"></a>U32&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006432<p>1 channel, 1 U32 per channel </p>
6433</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006434<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94"></a>F16&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006435<p>1 channel, 1 F16 per channel </p>
6436</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006437<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda"></a>F32&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006438<p>1 channel, 1 F32 per channel </p>
6439</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006440<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825"></a>UV88&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006441<p>2 channel, 1 U8 per channel </p>
6442</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006443<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0"></a>RGB888&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006444<p>3 channels, 1 U8 per channel </p>
6445</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006446<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619"></a>RGBA8888&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006447<p>4 channels, 1 U8 per channel </p>
6448</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006449<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c"></a>YUV444&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006450<p>A 3 plane of 8 bit 4:4:4 sampled Y, U, V planes. </p>
6451</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006452<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164"></a>YUYV422&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006453<p>A single plane of 32-bit macro pixel of Y0, U0, Y1, V0 bytes. </p>
6454</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006455<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755"></a>NV12&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006456<p>A 2 plane YUV format of Luma (Y) and interleaved UV data at 4:2:0 sampling. </p>
6457</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006458<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4"></a>NV21&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006459<p>A 2 plane YUV format of Luma (Y) and interleaved VU data at 4:2:0 sampling. </p>
6460</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006461<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778"></a>IYUV&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006462<p>A 3 plane of 8-bit 4:2:0 sampled Y, U, V planes. </p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006463</td></tr>
6464<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa"></a>UYVY422&#160;</td><td class="fielddoc">
6465<p>A single plane of 32-bit macro pixel of U0, Y0, V0, Y1 byte. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006466</td></tr>
6467</table>
6468
Anthony Barbier06ea0482018-02-22 15:45:35 +00006469<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00050">50</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6470<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>, </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>, </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>, </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>, </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>, </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>, </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">arm_compute::Format::UYVY422</a></div><div class="ttdoc">A single plane of 32-bit macro pixel of U0, Y0, V0, Y1 byte. </div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006471<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">arm_compute::Format::U8</a></div><div class="ttdoc">1 channel, 1 U8 per channel </div></div>
6472<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::Format::F32</a></div><div class="ttdoc">1 channel, 1 F32 per channel </div></div>
6473<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">arm_compute::Format::NV12</a></div><div class="ttdoc">A 2 plane YUV format of Luma (Y) and interleaved UV data at 4:2:0 sampling. </div></div>
6474<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">arm_compute::Format::U16</a></div><div class="ttdoc">1 channel, 1 U16 per channel </div></div>
6475<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">arm_compute::Format::NV21</a></div><div class="ttdoc">A 2 plane YUV format of Luma (Y) and interleaved VU data at 4:2:0 sampling. </div></div>
6476<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">arm_compute::Format::F16</a></div><div class="ttdoc">1 channel, 1 F16 per channel </div></div>
6477<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">arm_compute::Format::S32</a></div><div class="ttdoc">1 channel, 1 S32 per channel </div></div>
6478<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">arm_compute::Format::RGB888</a></div><div class="ttdoc">3 channels, 1 U8 per channel </div></div>
6479<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">arm_compute::Format::U32</a></div><div class="ttdoc">1 channel, 1 U32 per channel </div></div>
6480<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">arm_compute::Format::YUV444</a></div><div class="ttdoc">A 3 plane of 8 bit 4:4:4 sampled Y, U, V planes. </div></div>
6481<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">arm_compute::Format::S16</a></div><div class="ttdoc">1 channel, 1 S16 per channel </div></div>
6482<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">arm_compute::Format::IYUV</a></div><div class="ttdoc">A 3 plane of 8-bit 4:2:0 sampled Y, U, V planes. </div></div>
6483<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">arm_compute::Format::RGBA8888</a></div><div class="ttdoc">4 channels, 1 U8 per channel </div></div>
Kaizen8938bd32017-09-28 14:38:23 +01006484<div class="ttc" id="namespacearm__compute_xhtml_a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3"><div class="ttname"><a href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">arm_compute::CLVersion::UNKNOWN</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006485<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">arm_compute::Format::UV88</a></div><div class="ttdoc">2 channel, 1 U8 per channel </div></div>
6486<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">arm_compute::Format::YUYV422</a></div><div class="ttdoc">A single plane of 32-bit macro pixel of Y0, U0, Y1, V0 bytes. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006487</div><!-- fragment -->
6488</div>
6489</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006490<a class="anchor" id="a735ac6c2a02e320969625308810444f3"></a>
6491<div class="memitem">
6492<div class="memproto">
6493<table class="mlabels">
6494 <tr>
6495 <td class="mlabels-left">
6496 <table class="memname">
6497 <tr>
6498 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a></td>
6499 </tr>
6500 </table>
6501 </td>
6502 <td class="mlabels-right">
6503<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6504 </tr>
6505</table>
6506</div><div class="memdoc">
6507
6508<p>Available GPU Targets. </p>
6509<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006510<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3a57a3b40730a5af7ea3e13eb4bba56d82"></a>GPU_ARCH_MASK&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006511</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006512<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38"></a>MIDGARD&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006513</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006514<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e"></a>BIFROST&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006515</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006516<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673"></a>T600&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006517</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006518<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd"></a>T700&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006519</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006520<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048"></a>T800&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006521</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006522<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298"></a>G70&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006523</td></tr>
6524</table>
6525
Kaizen8938bd32017-09-28 14:38:23 +01006526<p>Definition at line <a class="el" href="_c_l_types_8h_source.xhtml#l00035">35</a> of file <a class="el" href="_c_l_types_8h_source.xhtml">CLTypes.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006527<div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a57a3b40730a5af7ea3e13eb4bba56d82">GPU_ARCH_MASK</a> = 0xF00,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">MIDGARD</a> = 0x100,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e">BIFROST</a> = 0x200,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">T600</a> = 0x110,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd">T700</a> = 0x120,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">T800</a> = 0x130,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298">G70</a> = 0x210</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd">arm_compute::GPUTarget::T700</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006528<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">arm_compute::GPUTarget::T800</a></div></div>
6529<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3a57a3b40730a5af7ea3e13eb4bba56d82"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a57a3b40730a5af7ea3e13eb4bba56d82">arm_compute::GPUTarget::GPU_ARCH_MASK</a></div></div>
6530<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">arm_compute::GPUTarget::T600</a></div></div>
6531<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298">arm_compute::GPUTarget::G70</a></div></div>
6532<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">arm_compute::GPUTarget::MIDGARD</a></div></div>
6533<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e">arm_compute::GPUTarget::BIFROST</a></div></div>
6534</div><!-- fragment -->
6535</div>
6536</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006537<a class="anchor" id="ae46abc5ecac309cbece5c06cb80daaf7"></a>
6538<div class="memitem">
6539<div class="memproto">
6540<table class="mlabels">
6541 <tr>
6542 <td class="mlabels-left">
6543 <table class="memname">
6544 <tr>
6545 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7">GradientDimension</a></td>
6546 </tr>
6547 </table>
6548 </td>
6549 <td class="mlabels-right">
6550<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6551 </tr>
6552</table>
6553</div><div class="memdoc">
6554
6555<p>Gradient dimension type. </p>
6556<table class="fieldtable">
6557<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ae46abc5ecac309cbece5c06cb80daaf7a5515a637eda61b978e97adaa5d7629cc"></a>GRAD_XY&#160;</td><td class="fielddoc">
6558<p>x and y gradient dimension </p>
6559</td></tr>
6560</table>
6561
6562<p>Definition at line <a class="el" href="tests_2_types_8h_source.xhtml#l00046">46</a> of file <a class="el" href="tests_2_types_8h_source.xhtml">Types.h</a>.</p>
6563<div class="fragment"><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GRAD_X, </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GRAD_Y, </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7a5515a637eda61b978e97adaa5d7629cc">GRAD_XY</a>, </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_ae46abc5ecac309cbece5c06cb80daaf7a5515a637eda61b978e97adaa5d7629cc"><div class="ttname"><a href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7a5515a637eda61b978e97adaa5d7629cc">arm_compute::GradientDimension::GRAD_XY</a></div><div class="ttdoc">x and y gradient dimension </div></div>
6564</div><!-- fragment -->
6565</div>
6566</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006567<a class="anchor" id="a673665b4587a2956fcbad5f0e9ba89d3"></a>
6568<div class="memitem">
6569<div class="memproto">
6570<table class="mlabels">
6571 <tr>
6572 <td class="mlabels-left">
6573 <table class="memname">
6574 <tr>
6575 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3">HOGNormType</a></td>
6576 </tr>
6577 </table>
6578 </td>
6579 <td class="mlabels-right">
6580<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6581 </tr>
6582</table>
6583</div><div class="memdoc">
6584
6585<p>Normalization type for Histogram of Oriented Gradients (<a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a>) </p>
6586<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006587<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a673665b4587a2956fcbad5f0e9ba89d3a80485e54c7a3c93a0f74637c6b918ce5"></a>L2_NORM&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006588<p>L2-norm. </p>
6589</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006590<tr><td class="fieldname"><a class="anchor" id="a673665b4587a2956fcbad5f0e9ba89d3ac9e68c0594494ec85805b225a7acb9c2"></a>L2HYS_NORM&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006591<p>L2-norm followed by clipping. </p>
6592</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006593<tr><td class="fieldname"><a class="anchor" id="a673665b4587a2956fcbad5f0e9ba89d3a68616ae21712c00705b962f4eff06eaa"></a>L1_NORM&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006594<p>L1 norm. </p>
6595</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00006596</table>
6597
Anthony Barbier06ea0482018-02-22 15:45:35 +00006598<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00450">450</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6599<div class="fragment"><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;{</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a80485e54c7a3c93a0f74637c6b918ce5">L2_NORM</a> = 1, </div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3ac9e68c0594494ec85805b225a7acb9c2">L2HYS_NORM</a> = 2, </div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a68616ae21712c00705b962f4eff06eaa">L1_NORM</a> = 3 </div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a673665b4587a2956fcbad5f0e9ba89d3ac9e68c0594494ec85805b225a7acb9c2"><div class="ttname"><a href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3ac9e68c0594494ec85805b225a7acb9c2">arm_compute::HOGNormType::L2HYS_NORM</a></div><div class="ttdoc">L2-norm followed by clipping. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006600<div class="ttc" id="namespacearm__compute_xhtml_a673665b4587a2956fcbad5f0e9ba89d3a68616ae21712c00705b962f4eff06eaa"><div class="ttname"><a href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a68616ae21712c00705b962f4eff06eaa">arm_compute::HOGNormType::L1_NORM</a></div><div class="ttdoc">L1 norm. </div></div>
6601<div class="ttc" id="namespacearm__compute_xhtml_a673665b4587a2956fcbad5f0e9ba89d3a80485e54c7a3c93a0f74637c6b918ce5"><div class="ttname"><a href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a80485e54c7a3c93a0f74637c6b918ce5">arm_compute::HOGNormType::L2_NORM</a></div><div class="ttdoc">L2-norm. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006602</div><!-- fragment -->
6603</div>
6604</div>
6605<a class="anchor" id="a966a9c417ce5e94dca08d9b5e745c0c9"></a>
6606<div class="memitem">
6607<div class="memproto">
6608<table class="mlabels">
6609 <tr>
6610 <td class="mlabels-left">
6611 <table class="memname">
6612 <tr>
6613 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a></td>
6614 </tr>
6615 </table>
6616 </td>
6617 <td class="mlabels-right">
6618<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6619 </tr>
6620</table>
6621</div><div class="memdoc">
6622
6623<p>Interpolation method. </p>
6624<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006625<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2"></a>NEAREST_NEIGHBOR&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006626<p>Output values are defined to match the source pixel whose center is nearest to the sample position. </p>
6627</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006628<tr><td class="fieldname"><a class="anchor" id="a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65"></a>BILINEAR&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006629<p>Output values are defined by bilinear interpolation between the pixels. </p>
6630</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006631<tr><td class="fieldname"><a class="anchor" id="a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4"></a>AREA&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006632<p>Output values are determined by averaging the source pixels whose areas fall under the area of the destination pixel, projected onto the source image. </p>
6633</td></tr>
6634</table>
6635
Anthony Barbier06ea0482018-02-22 15:45:35 +00006636<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00309">309</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6637<div class="fragment"><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;{</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2">NEAREST_NEIGHBOR</a>, </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">BILINEAR</a>, </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">AREA</a>, </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65"><div class="ttname"><a href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">arm_compute::InterpolationPolicy::BILINEAR</a></div><div class="ttdoc">Output values are defined by bilinear interpolation between the pixels. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006638<div class="ttc" id="namespacearm__compute_xhtml_a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2"><div class="ttname"><a href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2">arm_compute::InterpolationPolicy::NEAREST_NEIGHBOR</a></div><div class="ttdoc">Output values are defined to match the source pixel whose center is nearest to the sample position...</div></div>
6639<div class="ttc" id="namespacearm__compute_xhtml_a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4"><div class="ttname"><a href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">arm_compute::InterpolationPolicy::AREA</a></div><div class="ttdoc">Output values are determined by averaging the source pixels whose areas fall under the area of the de...</div></div>
6640</div><!-- fragment -->
6641</div>
6642</div>
6643<a class="anchor" id="a7b3ec6413f000b02fdb4e39a951d9f8a"></a>
6644<div class="memitem">
6645<div class="memproto">
6646<table class="mlabels">
6647 <tr>
6648 <td class="mlabels-left">
6649 <table class="memname">
6650 <tr>
6651 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8a">MagnitudeType</a></td>
6652 </tr>
6653 </table>
6654 </td>
6655 <td class="mlabels-right">
6656<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6657 </tr>
6658</table>
6659</div><div class="memdoc">
6660
6661<p>Magnitude calculation type. </p>
6662<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006663<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a7b3ec6413f000b02fdb4e39a951d9f8aac2f1be73bf576190d1f42bdaf5162ae8"></a>L1NORM&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006664<p>L1 normalization type. </p>
6665</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006666<tr><td class="fieldname"><a class="anchor" id="a7b3ec6413f000b02fdb4e39a951d9f8aad927ac799e8b24f80fc80d89b2eb7131"></a>L2NORM&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006667<p>L2 normalization type. </p>
6668</td></tr>
6669</table>
6670
Anthony Barbier06ea0482018-02-22 15:45:35 +00006671<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00339">339</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6672<div class="fragment"><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aac2f1be73bf576190d1f42bdaf5162ae8">L1NORM</a>, </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aad927ac799e8b24f80fc80d89b2eb7131">L2NORM</a> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a7b3ec6413f000b02fdb4e39a951d9f8aac2f1be73bf576190d1f42bdaf5162ae8"><div class="ttname"><a href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aac2f1be73bf576190d1f42bdaf5162ae8">arm_compute::MagnitudeType::L1NORM</a></div><div class="ttdoc">L1 normalization type. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006673<div class="ttc" id="namespacearm__compute_xhtml_a7b3ec6413f000b02fdb4e39a951d9f8aad927ac799e8b24f80fc80d89b2eb7131"><div class="ttname"><a href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aad927ac799e8b24f80fc80d89b2eb7131">arm_compute::MagnitudeType::L2NORM</a></div><div class="ttdoc">L2 normalization type. </div></div>
6674</div><!-- fragment -->
6675</div>
6676</div>
Kaizen8938bd32017-09-28 14:38:23 +01006677<a class="anchor" id="af0a4d6be70322c742c12da1edccbb74d"></a>
6678<div class="memitem">
6679<div class="memproto">
6680<table class="mlabels">
6681 <tr>
6682 <td class="mlabels-left">
6683 <table class="memname">
6684 <tr>
6685 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#af0a4d6be70322c742c12da1edccbb74d">MappingType</a></td>
6686 </tr>
6687 </table>
6688 </td>
6689 <td class="mlabels-right">
6690<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6691 </tr>
6692</table>
6693</div><div class="memdoc">
6694
6695<p>Mapping type. </p>
6696<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006697<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="af0a4d6be70322c742c12da1edccbb74daac354f9e7a5097598cdd933b42fd190e"></a>BLOBS&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006698<p>Mappings are in blob granularity. </p>
6699</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006700<tr><td class="fieldname"><a class="anchor" id="af0a4d6be70322c742c12da1edccbb74da465202c26fd7181c6bc9a80648499073"></a>OFFSETS&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006701<p>Mappings are in offset granularity in the same blob. </p>
6702</td></tr>
6703</table>
6704
6705<p>Definition at line <a class="el" href="arm__compute_2runtime_2_types_8h_source.xhtml#l00032">32</a> of file <a class="el" href="arm__compute_2runtime_2_types_8h_source.xhtml">Types.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006706<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="namespacearm__compute.xhtml#af0a4d6be70322c742c12da1edccbb74daac354f9e7a5097598cdd933b42fd190e">BLOBS</a>, </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="namespacearm__compute.xhtml#af0a4d6be70322c742c12da1edccbb74da465202c26fd7181c6bc9a80648499073">OFFSETS</a> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_af0a4d6be70322c742c12da1edccbb74daac354f9e7a5097598cdd933b42fd190e"><div class="ttname"><a href="namespacearm__compute.xhtml#af0a4d6be70322c742c12da1edccbb74daac354f9e7a5097598cdd933b42fd190e">arm_compute::MappingType::BLOBS</a></div><div class="ttdoc">Mappings are in blob granularity. </div></div>
Kaizen8938bd32017-09-28 14:38:23 +01006707<div class="ttc" id="namespacearm__compute_xhtml_af0a4d6be70322c742c12da1edccbb74da465202c26fd7181c6bc9a80648499073"><div class="ttname"><a href="namespacearm__compute.xhtml#af0a4d6be70322c742c12da1edccbb74da465202c26fd7181c6bc9a80648499073">arm_compute::MappingType::OFFSETS</a></div><div class="ttdoc">Mappings are in offset granularity in the same blob. </div></div>
6708</div><!-- fragment -->
6709</div>
6710</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006711<a class="anchor" id="afdda916edc7502967bbec17ea3c06c02"></a>
6712<div class="memitem">
6713<div class="memproto">
6714<table class="mlabels">
6715 <tr>
6716 <td class="mlabels-left">
6717 <table class="memname">
6718 <tr>
6719 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a></td>
6720 </tr>
6721 </table>
6722 </td>
6723 <td class="mlabels-right">
6724<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6725 </tr>
6726</table>
6727</div><div class="memdoc">
6728
6729<p>Available matrix patterns. </p>
6730<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006731<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="afdda916edc7502967bbec17ea3c06c02ae657cce1913c857166b0475f18668ef5"></a>BOX&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006732<p>Box pattern matrix. </p>
6733</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006734<tr><td class="fieldname"><a class="anchor" id="afdda916edc7502967bbec17ea3c06c02a04dd53a8e6c2306e9bbf944c1d6047f2"></a>CROSS&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006735<p>Cross pattern matrix. </p>
6736</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006737<tr><td class="fieldname"><a class="anchor" id="afdda916edc7502967bbec17ea3c06c02a290d4b81f4e2b47d86fd1b0170e9aab7"></a>DISK&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006738<p>Disk pattern matrix. </p>
6739</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006740<tr><td class="fieldname"><a class="anchor" id="afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb"></a>OTHER&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006741<p>Any other matrix pattern. </p>
6742</td></tr>
6743</table>
6744
Anthony Barbier06ea0482018-02-22 15:45:35 +00006745<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00418">418</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6746<div class="fragment"><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;{</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02ae657cce1913c857166b0475f18668ef5">BOX</a>, </div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a04dd53a8e6c2306e9bbf944c1d6047f2">CROSS</a>, </div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a290d4b81f4e2b47d86fd1b0170e9aab7">DISK</a>, </div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb">OTHER</a> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_afdda916edc7502967bbec17ea3c06c02a290d4b81f4e2b47d86fd1b0170e9aab7"><div class="ttname"><a href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a290d4b81f4e2b47d86fd1b0170e9aab7">arm_compute::MatrixPattern::DISK</a></div><div class="ttdoc">Disk pattern matrix. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006747<div class="ttc" id="namespacearm__compute_xhtml_afdda916edc7502967bbec17ea3c06c02ae657cce1913c857166b0475f18668ef5"><div class="ttname"><a href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02ae657cce1913c857166b0475f18668ef5">arm_compute::MatrixPattern::BOX</a></div><div class="ttdoc">Box pattern matrix. </div></div>
6748<div class="ttc" id="namespacearm__compute_xhtml_afdda916edc7502967bbec17ea3c06c02a04dd53a8e6c2306e9bbf944c1d6047f2"><div class="ttname"><a href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a04dd53a8e6c2306e9bbf944c1d6047f2">arm_compute::MatrixPattern::CROSS</a></div><div class="ttdoc">Cross pattern matrix. </div></div>
6749<div class="ttc" id="namespacearm__compute_xhtml_afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb"><div class="ttname"><a href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb">arm_compute::MatrixPattern::OTHER</a></div><div class="ttdoc">Any other matrix pattern. </div></div>
6750</div><!-- fragment -->
6751</div>
6752</div>
6753<a class="anchor" id="adf2ced65e536375a1c96425d9fced858"></a>
6754<div class="memitem">
6755<div class="memproto">
6756<table class="mlabels">
6757 <tr>
6758 <td class="mlabels-left">
6759 <table class="memname">
6760 <tr>
6761 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> : unsigned</td>
6762 </tr>
6763 </table>
6764 </td>
6765 <td class="mlabels-right">
6766<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6767 </tr>
6768</table>
6769</div><div class="memdoc">
6770
6771<p>Available non linear functions. </p>
6772<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006773<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="adf2ced65e536375a1c96425d9fced858a8ab0c3a037e882577dec378985477074"></a>MEDIAN&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006774<p>Non linear median filter. </p>
6775</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006776<tr><td class="fieldname"><a class="anchor" id="adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653"></a>MIN&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006777<p>Non linear erode. </p>
6778</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006779<tr><td class="fieldname"><a class="anchor" id="adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5"></a>MAX&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006780<p>Non linear dilate. </p>
6781</td></tr>
6782</table>
6783
Anthony Barbier06ea0482018-02-22 15:45:35 +00006784<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00427">427</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6785<div class="fragment"><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; : <span class="keywordtype">unsigned</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;{</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a8ab0c3a037e882577dec378985477074">MEDIAN</a> = 0, </div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653">MIN</a> = 1, </div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">MAX</a> = 2, </div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5"><div class="ttname"><a href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">arm_compute::NonLinearFilterFunction::MAX</a></div><div class="ttdoc">Non linear dilate. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006786<div class="ttc" id="namespacearm__compute_xhtml_adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653"><div class="ttname"><a href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653">arm_compute::NonLinearFilterFunction::MIN</a></div><div class="ttdoc">Non linear erode. </div></div>
6787<div class="ttc" id="namespacearm__compute_xhtml_adf2ced65e536375a1c96425d9fced858a8ab0c3a037e882577dec378985477074"><div class="ttname"><a href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a8ab0c3a037e882577dec378985477074">arm_compute::NonLinearFilterFunction::MEDIAN</a></div><div class="ttdoc">Non linear median filter. </div></div>
6788</div><!-- fragment -->
6789</div>
6790</div>
6791<a class="anchor" id="ad4bb8dabdbf8ad75e34220cc666b59ca"></a>
6792<div class="memitem">
6793<div class="memproto">
6794<table class="mlabels">
6795 <tr>
6796 <td class="mlabels-left">
6797 <table class="memname">
6798 <tr>
6799 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a></td>
6800 </tr>
6801 </table>
6802 </td>
6803 <td class="mlabels-right">
6804<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6805 </tr>
6806</table>
6807</div><div class="memdoc">
6808
6809<p>The normalization type used for the normalization layer. </p>
6810<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006811<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ad4bb8dabdbf8ad75e34220cc666b59caaca2475ab7883ebb9f125241141896190"></a>IN_MAP_1D&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006812<p>Normalization applied within the same map in 1D region. </p>
6813</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006814<tr><td class="fieldname"><a class="anchor" id="ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e"></a>IN_MAP_2D&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006815<p>Normalization applied within the same map in 2D region. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006816</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006817<tr><td class="fieldname"><a class="anchor" id="ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5"></a>CROSS_MAP&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006818<p>Normalization applied cross maps. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006819</td></tr>
6820</table>
6821
Anthony Barbier06ea0482018-02-22 15:45:35 +00006822<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00442">442</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6823<div class="fragment"><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caaca2475ab7883ebb9f125241141896190">IN_MAP_1D</a>, </div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e">IN_MAP_2D</a>, </div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5">CROSS_MAP</a> </div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_ad4bb8dabdbf8ad75e34220cc666b59caaca2475ab7883ebb9f125241141896190"><div class="ttname"><a href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caaca2475ab7883ebb9f125241141896190">arm_compute::NormType::IN_MAP_1D</a></div><div class="ttdoc">Normalization applied within the same map in 1D region. </div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006824<div class="ttc" id="namespacearm__compute_xhtml_ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5"><div class="ttname"><a href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5">arm_compute::NormType::CROSS_MAP</a></div><div class="ttdoc">Normalization applied cross maps. </div></div>
6825<div class="ttc" id="namespacearm__compute_xhtml_ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e"><div class="ttname"><a href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e">arm_compute::NormType::IN_MAP_2D</a></div><div class="ttdoc">Normalization applied within the same map in 2D region. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006826</div><!-- fragment -->
6827</div>
6828</div>
6829<a class="anchor" id="af00a42ecad444bbda75cde1b64bd7e72"></a>
6830<div class="memitem">
6831<div class="memproto">
6832<table class="mlabels">
6833 <tr>
6834 <td class="mlabels-left">
6835 <table class="memname">
6836 <tr>
6837 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72">PhaseType</a></td>
6838 </tr>
6839 </table>
6840 </td>
6841 <td class="mlabels-right">
6842<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6843 </tr>
6844</table>
6845</div><div class="memdoc">
6846
6847<p>Phase calculation type. </p>
6848<dl class="section note"><dt>Note</dt><dd>When PhaseType == SIGNED, each angle is mapped to the range 0 to 255 inclusive otherwise angles between 0 and 180 </dd></dl>
6849<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006850<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="af00a42ecad444bbda75cde1b64bd7e72a6898b46a1cde8a1572e2722c44c5ab07"></a>SIGNED&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006851<p>Angle range: [0, 360]. </p>
6852</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006853<tr><td class="fieldname"><a class="anchor" id="af00a42ecad444bbda75cde1b64bd7e72aaf36b47f395cd01f48b8fc1013665054"></a>UNSIGNED&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006854<p>Angle range: [0, 180]. </p>
6855</td></tr>
6856</table>
6857
Anthony Barbier06ea0482018-02-22 15:45:35 +00006858<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00349">349</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6859<div class="fragment"><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;{</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72a6898b46a1cde8a1572e2722c44c5ab07">SIGNED</a>, </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72aaf36b47f395cd01f48b8fc1013665054">UNSIGNED</a> </div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_af00a42ecad444bbda75cde1b64bd7e72aaf36b47f395cd01f48b8fc1013665054"><div class="ttname"><a href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72aaf36b47f395cd01f48b8fc1013665054">arm_compute::PhaseType::UNSIGNED</a></div><div class="ttdoc">Angle range: [0, 180]. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006860<div class="ttc" id="namespacearm__compute_xhtml_af00a42ecad444bbda75cde1b64bd7e72a6898b46a1cde8a1572e2722c44c5ab07"><div class="ttname"><a href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72a6898b46a1cde8a1572e2722c44c5ab07">arm_compute::PhaseType::SIGNED</a></div><div class="ttdoc">Angle range: [0, 360]. </div></div>
6861</div><!-- fragment -->
6862</div>
6863</div>
6864<a class="anchor" id="a9172da722f0a434e5cc07c0a3c115d93"></a>
6865<div class="memitem">
6866<div class="memproto">
6867<table class="mlabels">
6868 <tr>
6869 <td class="mlabels-left">
6870 <table class="memname">
6871 <tr>
6872 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a></td>
6873 </tr>
6874 </table>
6875 </td>
6876 <td class="mlabels-right">
6877<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6878 </tr>
6879</table>
6880</div><div class="memdoc">
6881
6882<p>Available pooling types. </p>
6883<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006884<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a9172da722f0a434e5cc07c0a3c115d93a26a4b44a837bf97b972628509912b4a5"></a>MAX&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006885<p>Max Pooling. </p>
6886</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006887<tr><td class="fieldname"><a class="anchor" id="a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a"></a>AVG&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006888<p>Average Pooling. </p>
6889</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006890<tr><td class="fieldname"><a class="anchor" id="a9172da722f0a434e5cc07c0a3c115d93a7e6aa2d53f6ee2b1a34b017fa403cb76"></a>L2&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006891<p>L2 Pooling. </p>
6892</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00006893</table>
6894
Anthony Barbier06ea0482018-02-22 15:45:35 +00006895<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00483">483</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6896<div class="fragment"><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;{</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">MAX</a>, </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a">AVG</a>, </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93a7e6aa2d53f6ee2b1a34b017fa403cb76">L2</a> </div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a9172da722f0a434e5cc07c0a3c115d93a7e6aa2d53f6ee2b1a34b017fa403cb76"><div class="ttname"><a href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93a7e6aa2d53f6ee2b1a34b017fa403cb76">arm_compute::PoolingType::L2</a></div><div class="ttdoc">L2 Pooling. </div></div>
Kaizen8938bd32017-09-28 14:38:23 +01006897<div class="ttc" id="namespacearm__compute_xhtml_a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a"><div class="ttname"><a href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a">arm_compute::PoolingType::AVG</a></div><div class="ttdoc">Average Pooling. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006898<div class="ttc" id="namespacearm__compute_xhtml_adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5"><div class="ttname"><a href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">arm_compute::NonLinearFilterFunction::MAX</a></div><div class="ttdoc">Non linear dilate. </div></div>
6899</div><!-- fragment -->
6900</div>
6901</div>
Kaizen8938bd32017-09-28 14:38:23 +01006902<a class="anchor" id="a5827eb9cb394e74af87f74bd354fb45b"></a>
6903<div class="memitem">
6904<div class="memproto">
6905<table class="mlabels">
6906 <tr>
6907 <td class="mlabels-left">
6908 <table class="memname">
6909 <tr>
6910 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45b">ReductionOperation</a></td>
6911 </tr>
6912 </table>
6913 </td>
6914 <td class="mlabels-right">
6915<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6916 </tr>
6917</table>
6918</div><div class="memdoc">
6919
6920<p>Available reduction operations. </p>
6921<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006922<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a5827eb9cb394e74af87f74bd354fb45ba2ce6e134b828b72fad160fa17c8d1b64"></a>SUM_SQUARE&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006923<p>Sum of squares. </p>
6924</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006925<tr><td class="fieldname"><a class="anchor" id="a5827eb9cb394e74af87f74bd354fb45ba6970bdc2201030b9c03fbdcf3973858a"></a>SUM&#160;</td><td class="fielddoc">
Kaizen8938bd32017-09-28 14:38:23 +01006926<p>Sum. </p>
6927</td></tr>
6928</table>
6929
Anthony Barbier06ea0482018-02-22 15:45:35 +00006930<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00435">435</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
6931<div class="fragment"><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45ba2ce6e134b828b72fad160fa17c8d1b64">SUM_SQUARE</a>, </div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45ba6970bdc2201030b9c03fbdcf3973858a">SUM</a>, </div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a5827eb9cb394e74af87f74bd354fb45ba2ce6e134b828b72fad160fa17c8d1b64"><div class="ttname"><a href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45ba2ce6e134b828b72fad160fa17c8d1b64">arm_compute::ReductionOperation::SUM_SQUARE</a></div><div class="ttdoc">Sum of squares. </div></div>
Kaizen8938bd32017-09-28 14:38:23 +01006932<div class="ttc" id="namespacearm__compute_xhtml_a5827eb9cb394e74af87f74bd354fb45ba6970bdc2201030b9c03fbdcf3973858a"><div class="ttname"><a href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45ba6970bdc2201030b9c03fbdcf3973858a">arm_compute::ReductionOperation::SUM</a></div><div class="ttdoc">Sum. </div></div>
6933</div><!-- fragment -->
6934</div>
6935</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006936<a class="anchor" id="add6426cbf2e057a195846d4ba09a50be"></a>
6937<div class="memitem">
6938<div class="memproto">
6939<table class="mlabels">
6940 <tr>
6941 <td class="mlabels-left">
6942 <table class="memname">
6943 <tr>
6944 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a></td>
6945 </tr>
6946 </table>
6947 </td>
6948 <td class="mlabels-right">
6949<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6950 </tr>
6951</table>
6952</div><div class="memdoc">
6953
6954<p>Rounding method. </p>
6955<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006956<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="add6426cbf2e057a195846d4ba09a50bea5631ad8e27788edfca7e13535d862c06"></a>TO_ZERO&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00006957<p>Truncates the least significand values that are lost in operations. </p>
6958</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006959<tr><td class="fieldname"><a class="anchor" id="add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95"></a>TO_NEAREST_UP&#160;</td><td class="fielddoc">
6960<p>Rounds to nearest value; half rounds away from zero. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006961</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006962<tr><td class="fieldname"><a class="anchor" id="add6426cbf2e057a195846d4ba09a50bea02ff1fff1812f84c89547fcd6c176150"></a>TO_NEAREST_EVEN&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01006963<p>Rounds to nearest value; half rounds to nearest even. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006964</td></tr>
6965</table>
6966
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006967<p>Definition at line <a class="el" href="_rounding_8h_source.xhtml#l00030">30</a> of file <a class="el" href="_rounding_8h_source.xhtml">Rounding.h</a>.</p>
6968<div class="fragment"><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea5631ad8e27788edfca7e13535d862c06">TO_ZERO</a>, </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95">TO_NEAREST_UP</a>, </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea02ff1fff1812f84c89547fcd6c176150">TO_NEAREST_EVEN</a>, </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95"><div class="ttname"><a href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95">arm_compute::RoundingPolicy::TO_NEAREST_UP</a></div><div class="ttdoc">Rounds to nearest value; half rounds away from zero. </div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006969<div class="ttc" id="namespacearm__compute_xhtml_add6426cbf2e057a195846d4ba09a50bea02ff1fff1812f84c89547fcd6c176150"><div class="ttname"><a href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea02ff1fff1812f84c89547fcd6c176150">arm_compute::RoundingPolicy::TO_NEAREST_EVEN</a></div><div class="ttdoc">Rounds to nearest value; half rounds to nearest even. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006970<div class="ttc" id="namespacearm__compute_xhtml_add6426cbf2e057a195846d4ba09a50bea5631ad8e27788edfca7e13535d862c06"><div class="ttname"><a href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea5631ad8e27788edfca7e13535d862c06">arm_compute::RoundingPolicy::TO_ZERO</a></div><div class="ttdoc">Truncates the least significand values that are lost in operations. </div></div>
6971</div><!-- fragment -->
6972</div>
6973</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00006974<a class="anchor" id="a16a59381d4d74d17d86d69eb4d286d7b"></a>
6975<div class="memitem">
6976<div class="memproto">
6977<table class="mlabels">
6978 <tr>
6979 <td class="mlabels-left">
6980 <table class="memname">
6981 <tr>
6982 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7b">SamplingPolicy</a></td>
6983 </tr>
6984 </table>
6985 </td>
6986 <td class="mlabels-right">
6987<span class="mlabels"><span class="mlabel">strong</span></span> </td>
6988 </tr>
6989</table>
6990</div><div class="memdoc">
6991
6992<p>Available Sampling Policies. </p>
6993<table class="fieldtable">
6994<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a16a59381d4d74d17d86d69eb4d286d7bac397289ee45877be0cd49811fe245b4e"></a>CENTER&#160;</td><td class="fielddoc">
6995<p>Samples are taken at pixel center. </p>
6996</td></tr>
6997<tr><td class="fieldname"><a class="anchor" id="a16a59381d4d74d17d86d69eb4d286d7ba747385047b85ae751f83adb36435a3c1"></a>TOP_LEFT&#160;</td><td class="fielddoc">
6998<p>Samples are taken at pixel top left corner. </p>
6999</td></tr>
7000</table>
7001
Anthony Barbier06ea0482018-02-22 15:45:35 +00007002<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00094">94</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
7003<div class="fragment"><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7bac397289ee45877be0cd49811fe245b4e">CENTER</a>, </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7ba747385047b85ae751f83adb36435a3c1">TOP_LEFT</a> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a16a59381d4d74d17d86d69eb4d286d7bac397289ee45877be0cd49811fe245b4e"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7bac397289ee45877be0cd49811fe245b4e">arm_compute::SamplingPolicy::CENTER</a></div><div class="ttdoc">Samples are taken at pixel center. </div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007004<div class="ttc" id="namespacearm__compute_xhtml_a16a59381d4d74d17d86d69eb4d286d7ba747385047b85ae751f83adb36435a3c1"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7ba747385047b85ae751f83adb36435a3c1">arm_compute::SamplingPolicy::TOP_LEFT</a></div><div class="ttdoc">Samples are taken at pixel top left corner. </div></div>
7005</div><!-- fragment -->
7006</div>
7007</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007008<a class="anchor" id="a08c1503414e23f5dd10ff83492685453"></a>
7009<div class="memitem">
7010<div class="memproto">
7011<table class="mlabels">
7012 <tr>
7013 <td class="mlabels-left">
7014 <table class="memname">
7015 <tr>
7016 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453">Termination</a></td>
7017 </tr>
7018 </table>
7019 </td>
7020 <td class="mlabels-right">
7021<span class="mlabels"><span class="mlabel">strong</span></span> </td>
7022 </tr>
7023</table>
7024</div><div class="memdoc">
7025
7026<p>Termination criteria. </p>
7027<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007028<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a08c1503414e23f5dd10ff83492685453a5a2e12b6baf7ad91a2ce32f19c36bd1b"></a>TERM_CRITERIA_EPSILON&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00007029</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007030<tr><td class="fieldname"><a class="anchor" id="a08c1503414e23f5dd10ff83492685453a43f2a8b688fb96e5ad8ba08308bbcdfd"></a>TERM_CRITERIA_ITERATIONS&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00007031</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007032<tr><td class="fieldname"><a class="anchor" id="a08c1503414e23f5dd10ff83492685453a788740b1ba2d6463dae318a332513b29"></a>TERM_CRITERIA_BOTH&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00007033</td></tr>
7034</table>
7035
Anthony Barbier06ea0482018-02-22 15:45:35 +00007036<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00331">331</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
7037<div class="fragment"><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;{</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a5a2e12b6baf7ad91a2ce32f19c36bd1b">TERM_CRITERIA_EPSILON</a>,</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a43f2a8b688fb96e5ad8ba08308bbcdfd">TERM_CRITERIA_ITERATIONS</a>,</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a788740b1ba2d6463dae318a332513b29">TERM_CRITERIA_BOTH</a></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a08c1503414e23f5dd10ff83492685453a5a2e12b6baf7ad91a2ce32f19c36bd1b"><div class="ttname"><a href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a5a2e12b6baf7ad91a2ce32f19c36bd1b">arm_compute::Termination::TERM_CRITERIA_EPSILON</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007038<div class="ttc" id="namespacearm__compute_xhtml_a08c1503414e23f5dd10ff83492685453a43f2a8b688fb96e5ad8ba08308bbcdfd"><div class="ttname"><a href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a43f2a8b688fb96e5ad8ba08308bbcdfd">arm_compute::Termination::TERM_CRITERIA_ITERATIONS</a></div></div>
7039<div class="ttc" id="namespacearm__compute_xhtml_a08c1503414e23f5dd10ff83492685453a788740b1ba2d6463dae318a332513b29"><div class="ttname"><a href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a788740b1ba2d6463dae318a332513b29">arm_compute::Termination::TERM_CRITERIA_BOTH</a></div></div>
7040</div><!-- fragment -->
7041</div>
7042</div>
7043<a class="anchor" id="a3e6b23e675649b83240691abbc42a649"></a>
7044<div class="memitem">
7045<div class="memproto">
7046<table class="mlabels">
7047 <tr>
7048 <td class="mlabels-left">
7049 <table class="memname">
7050 <tr>
7051 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649">ThresholdType</a></td>
7052 </tr>
7053 </table>
7054 </td>
7055 <td class="mlabels-right">
7056<span class="mlabels"><span class="mlabel">strong</span></span> </td>
7057 </tr>
7058</table>
7059</div><div class="memdoc">
7060
7061<p>Threshold mode. </p>
7062<table class="fieldtable">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007063<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a3e6b23e675649b83240691abbc42a649a98ad0e8750ae10ad556ed7a62affb452"></a>BINARY&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00007064<p>Threshold with one value. </p>
7065</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007066<tr><td class="fieldname"><a class="anchor" id="a3e6b23e675649b83240691abbc42a649a01036ddcc971d02f6c32c3da31a119f2"></a>RANGE&#160;</td><td class="fielddoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00007067<p>Threshold with two values. </p>
7068</td></tr>
7069</table>
7070
Anthony Barbier06ea0482018-02-22 15:45:35 +00007071<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00324">324</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
7072<div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a98ad0e8750ae10ad556ed7a62affb452">BINARY</a>, </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a01036ddcc971d02f6c32c3da31a119f2">RANGE</a> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;};</div><div class="ttc" id="namespacearm__compute_xhtml_a3e6b23e675649b83240691abbc42a649a01036ddcc971d02f6c32c3da31a119f2"><div class="ttname"><a href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a01036ddcc971d02f6c32c3da31a119f2">arm_compute::ThresholdType::RANGE</a></div><div class="ttdoc">Threshold with two values. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007073<div class="ttc" id="namespacearm__compute_xhtml_a3e6b23e675649b83240691abbc42a649a98ad0e8750ae10ad556ed7a62affb452"><div class="ttname"><a href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a98ad0e8750ae10ad556ed7a62affb452">arm_compute::ThresholdType::BINARY</a></div><div class="ttdoc">Threshold with one value. </div></div>
7074</div><!-- fragment -->
7075</div>
7076</div>
7077<h2 class="groupheader">Function Documentation</h2>
7078<a class="anchor" id="a41c1523098580451b378f76b8c37a0f0"></a>
7079<div class="memitem">
7080<div class="memproto">
7081<table class="mlabels">
7082 <tr>
7083 <td class="mlabels-left">
7084 <table class="memname">
7085 <tr>
7086 <td class="memname">int arm_compute::adjust_down </td>
7087 <td>(</td>
7088 <td class="paramtype">int&#160;</td>
7089 <td class="paramname"><em>required</em>, </td>
7090 </tr>
7091 <tr>
7092 <td class="paramkey"></td>
7093 <td></td>
7094 <td class="paramtype">int&#160;</td>
7095 <td class="paramname"><em>available</em>, </td>
7096 </tr>
7097 <tr>
7098 <td class="paramkey"></td>
7099 <td></td>
7100 <td class="paramtype">int&#160;</td>
7101 <td class="paramname"><em>step</em>&#160;</td>
7102 </tr>
7103 <tr>
7104 <td></td>
7105 <td>)</td>
7106 <td></td><td></td>
7107 </tr>
7108 </table>
7109 </td>
7110 <td class="mlabels-right">
7111<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7112 </tr>
7113</table>
7114</div><div class="memdoc">
7115
7116<p>Decrease <code>required</code> in steps of <code>step</code> until it's less than <code>available</code>. </p>
7117<dl class="params"><dt>Parameters</dt><dd>
7118 <table class="params">
7119 <tr><td class="paramdir">[in]</td><td class="paramname">required</td><td>Number of required bytes. </td></tr>
7120 <tr><td class="paramdir">[in]</td><td class="paramname">available</td><td>Number of available bytes. </td></tr>
7121 <tr><td class="paramdir">[in]</td><td class="paramname">step</td><td>Step size used to decrease required bytes.</td></tr>
7122 </table>
7123 </dd>
7124</dl>
7125<dl class="section return"><dt>Returns</dt><dd>Largest value smaller than <code>available</code> that is a multiple of <code>step</code> </dd></dl>
7126
7127<p>Definition at line <a class="el" href="_i_access_window_8h_source.xhtml#l00047">47</a> of file <a class="el" href="_i_access_window_8h_source.xhtml">IAccessWindow.h</a>.</p>
7128
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007129<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>.</p>
7130<div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(step &lt;= 0);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacecaffe__data__extractor.xhtml#ae81948490ddf54e80a22593640178350">required</a> - step * ((<a class="code" href="namespacecaffe__data__extractor.xhtml#ae81948490ddf54e80a22593640178350">required</a> - available + step - 1) / step);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
7131<div class="ttc" id="namespacecaffe__data__extractor_xhtml_ae81948490ddf54e80a22593640178350"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#ae81948490ddf54e80a22593640178350">caffe_data_extractor.required</a></div><div class="ttdeci">required</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007132</div><!-- fragment -->
7133</div>
7134</div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00007135<a class="anchor" id="add7f7487c235331a6518dd16ad1e3b38"></a>
7136<div class="memitem">
7137<div class="memproto">
7138<table class="mlabels">
7139 <tr>
7140 <td class="mlabels-left">
7141 <table class="memname">
7142 <tr>
7143 <td class="memname"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> arm_compute::adjust_odd_shape </td>
7144 <td>(</td>
7145 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
7146 <td class="paramname"><em>shape</em>, </td>
7147 </tr>
7148 <tr>
7149 <td class="paramkey"></td>
7150 <td></td>
7151 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
7152 <td class="paramname"><em>format</em>&#160;</td>
7153 </tr>
7154 <tr>
7155 <td></td>
7156 <td>)</td>
7157 <td></td><td></td>
7158 </tr>
7159 </table>
7160 </td>
7161 <td class="mlabels-right">
7162<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7163 </tr>
7164</table>
7165</div><div class="memdoc">
7166
7167<p>Adjust tensor shape size if width or height are odd for a given multi-planar format. </p>
7168<p>No modification is done for other formats.</p>
7169<dl class="section note"><dt>Note</dt><dd>Adding here a few links discussing the issue of odd size and sharing the same solution: Android Source: <a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/graphics/java/android/graphics/YuvImage.java">https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/graphics/java/android/graphics/YuvImage.java</a> WebM: <a href="https://groups.google.com/a/webmproject.org/forum/#!topic/webm-discuss/LaCKpqiDTXM">https://groups.google.com/a/webmproject.org/forum/#!topic/webm-discuss/LaCKpqiDTXM</a> libYUV: <a href="https://bugs.chromium.org/p/libyuv/issues/detail?id=198&can=1&q=odd%20width">https://bugs.chromium.org/p/libyuv/issues/detail?id=198&amp;can=1&amp;q=odd%20width</a> YUVPlayer: <a href="https://sourceforge.net/p/raw-yuvplayer/bugs/1/">https://sourceforge.net/p/raw-yuvplayer/bugs/1/</a></dd></dl>
7170<dl class="params"><dt>Parameters</dt><dd>
7171 <table class="params">
7172 <tr><td class="paramdir">[in,out]</td><td class="paramname">shape</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> shape of 2D size </td></tr>
7173 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Format of the tensor </td></tr>
7174 </table>
7175 </dd>
7176</dl>
7177
7178<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00669">669</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
7179
7180<p>References <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00534">has_format_horizontal_subsampling()</a>, <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00545">has_format_vertical_subsampling()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00077">TensorShape::set()</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>.</p>
7181
7182<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00286">error_on_tensors_not_even()</a>, and <a class="el" href="_channel_extract_fixture_8h_source.xhtml#l00048">ChannelExtractValidationFixture&lt; MultiImageType, TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
7183<div class="fragment"><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;{</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; TensorShape output{ <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a> };</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="comment">// Force width to be even for formats which require subsampling of the U and V channels</span></div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#aa2f22cc01532e0236e438324310fdb94">has_format_horizontal_subsampling</a>(format))</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; {</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; output.set(0, output.x() &amp; ~1<a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; }</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="comment">// Force height to be even for formats which require subsampling of the U and V channels</span></div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#a95358b677c5c17f5cc1e369e4a27e2c2">has_format_vertical_subsampling</a>(format))</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; output.set(1, output.y() &amp; ~1<a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; }</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">return</span> output;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
7184<div class="ttc" id="namespacearm__compute_xhtml_a95358b677c5c17f5cc1e369e4a27e2c2"><div class="ttname"><a href="namespacearm__compute.xhtml#a95358b677c5c17f5cc1e369e4a27e2c2">arm_compute::has_format_vertical_subsampling</a></div><div class="ttdeci">bool has_format_vertical_subsampling(Format format)</div><div class="ttdoc">Return true if the given format has vertical subsampling. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l00545">Utils.h:545</a></div></div>
7185<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">arm_compute::Channel::U</a></div><div class="ttdoc">Cb/U channel. </div></div>
7186<div class="ttc" id="namespacearm__compute_xhtml_aa2f22cc01532e0236e438324310fdb94"><div class="ttname"><a href="namespacearm__compute.xhtml#aa2f22cc01532e0236e438324310fdb94">arm_compute::has_format_horizontal_subsampling</a></div><div class="ttdeci">bool has_format_horizontal_subsampling(Format format)</div><div class="ttdoc">Return true if the given format has horizontal subsampling. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l00534">Utils.h:534</a></div></div>
7187</div><!-- fragment -->
7188</div>
7189</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007190<a class="anchor" id="ab16fcfbfc3ee6dbc0c112f0bc9b3d9c2"></a>
7191<div class="memitem">
7192<div class="memproto">
7193<table class="mlabels">
7194 <tr>
7195 <td class="mlabels-left">
7196 <table class="memname">
7197 <tr>
7198 <td class="memname">int arm_compute::adjust_up </td>
7199 <td>(</td>
7200 <td class="paramtype">int&#160;</td>
7201 <td class="paramname"><em>required</em>, </td>
7202 </tr>
7203 <tr>
7204 <td class="paramkey"></td>
7205 <td></td>
7206 <td class="paramtype">int&#160;</td>
7207 <td class="paramname"><em>available</em>, </td>
7208 </tr>
7209 <tr>
7210 <td class="paramkey"></td>
7211 <td></td>
7212 <td class="paramtype">int&#160;</td>
7213 <td class="paramname"><em>step</em>&#160;</td>
7214 </tr>
7215 <tr>
7216 <td></td>
7217 <td>)</td>
7218 <td></td><td></td>
7219 </tr>
7220 </table>
7221 </td>
7222 <td class="mlabels-right">
7223<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7224 </tr>
7225</table>
7226</div><div class="memdoc">
7227
7228<p>Increase <code>required</code> in steps of <code>step</code> until it's greater than <code>available</code>. </p>
7229<dl class="params"><dt>Parameters</dt><dd>
7230 <table class="params">
7231 <tr><td class="paramdir">[in]</td><td class="paramname">required</td><td>Number of required bytes. </td></tr>
7232 <tr><td class="paramdir">[in]</td><td class="paramname">available</td><td>Number of available bytes. </td></tr>
7233 <tr><td class="paramdir">[in]</td><td class="paramname">step</td><td>Step size used to increase required bytes.</td></tr>
7234 </table>
7235 </dd>
7236</dl>
7237<dl class="section return"><dt>Returns</dt><dd>Largest value smaller than <code>available</code> that is a multiple of <code>step</code> </dd></dl>
7238
7239<p>Definition at line <a class="el" href="_i_access_window_8h_source.xhtml#l00063">63</a> of file <a class="el" href="_i_access_window_8h_source.xhtml">IAccessWindow.h</a>.</p>
7240
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007241<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>.</p>
7242<div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(step &lt;= 0);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacecaffe__data__extractor.xhtml#ae81948490ddf54e80a22593640178350">required</a> + step * ((available - <a class="code" href="namespacecaffe__data__extractor.xhtml#ae81948490ddf54e80a22593640178350">required</a> + step - 1) / step);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
7243<div class="ttc" id="namespacecaffe__data__extractor_xhtml_ae81948490ddf54e80a22593640178350"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#ae81948490ddf54e80a22593640178350">caffe_data_extractor.required</a></div><div class="ttdeci">required</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007244</div><!-- fragment -->
7245</div>
7246</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007247<a class="anchor" id="a9a20062caae09fce4a567be558f9d702"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007248<div class="memitem">
7249<div class="memproto">
7250<table class="mlabels">
7251 <tr>
7252 <td class="mlabels-left">
7253 <table class="memname">
7254 <tr>
7255 <td class="memname">bool auto_init_if_empty </td>
7256 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007257 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007258 <td class="paramname"><em>info</em>, </td>
7259 </tr>
7260 <tr>
7261 <td class="paramkey"></td>
7262 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007263 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007264 <td class="paramname"><em>shape</em>, </td>
7265 </tr>
7266 <tr>
7267 <td class="paramkey"></td>
7268 <td></td>
7269 <td class="paramtype">int&#160;</td>
7270 <td class="paramname"><em>num_channels</em>, </td>
7271 </tr>
7272 <tr>
7273 <td class="paramkey"></td>
7274 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007275 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007276 <td class="paramname"><em>data_type</em>, </td>
7277 </tr>
7278 <tr>
7279 <td class="paramkey"></td>
7280 <td></td>
7281 <td class="paramtype">int&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007282 <td class="paramname"><em>fixed_point_position</em>, </td>
7283 </tr>
7284 <tr>
7285 <td class="paramkey"></td>
7286 <td></td>
7287 <td class="paramtype"><a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a>&#160;</td>
7288 <td class="paramname"><em>quantization_info</em> = <code><a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a>()</code>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007289 </tr>
7290 <tr>
7291 <td></td>
7292 <td>)</td>
7293 <td></td><td></td>
7294 </tr>
7295 </table>
7296 </td>
7297 <td class="mlabels-right">
7298<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7299 </tr>
7300</table>
7301</div><div class="memdoc">
7302
Anthony Barbier06ea0482018-02-22 15:45:35 +00007303<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00201">201</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007304
Anthony Barbier06ea0482018-02-22 15:45:35 +00007305<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a9ebcdce876b4cd07736afa47d50154de">ITensorInfo::set_data_type()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a8d9488caf817e12132f0ca2a4c30deba">ITensorInfo::set_fixed_point_position()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#aaf74be25e2392705f29352ffaa4b1f9d">ITensorInfo::set_num_channels()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a575d37eaf8a905c8ca3c0250757c2b81">ITensorInfo::set_quantization_info()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a12a4f1190952613e36b44846962e26bb">ITensorInfo::set_tensor_shape()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7c66505457d00ece3aa4b34cab80757d">ITensorInfo::tensor_shape()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00153">TensorShape::total_size()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007306
Anthony Barbier06ea0482018-02-22 15:45:35 +00007307<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">permute()</a>.</p>
7308<div class="fragment"><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;{</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.tensor_shape().total_size() == 0)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_data_type(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_num_channels(num_channels);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_tensor_shape(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_fixed_point_position(fixed_point_position);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_quantization_info(quantization_info);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01007309<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() -&gt; set_format(Format::S16)</div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +00007310<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01007311</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +01007312</div>
7313</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007314<a class="anchor" id="a5844c8e025388ddd8c3afc5c3f7a3256"></a>
7315<div class="memitem">
7316<div class="memproto">
7317<table class="mlabels">
7318 <tr>
7319 <td class="mlabels-left">
7320 <table class="memname">
7321 <tr>
7322 <td class="memname">bool auto_init_if_empty </td>
7323 <td>(</td>
7324 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
7325 <td class="paramname"><em>info_sink</em>, </td>
7326 </tr>
7327 <tr>
7328 <td class="paramkey"></td>
7329 <td></td>
7330 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
7331 <td class="paramname"><em>info_source</em>&#160;</td>
7332 </tr>
7333 <tr>
7334 <td></td>
7335 <td>)</td>
7336 <td></td><td></td>
7337 </tr>
7338 </table>
7339 </td>
7340 <td class="mlabels-right">
7341<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7342 </tr>
7343</table>
7344</div><div class="memdoc">
7345
7346<p>Auto initialize the tensor info using another tensor info. </p>
7347<dl class="params"><dt>Parameters</dt><dd>
7348 <table class="params">
7349 <tr><td class="paramname">info_sink</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info used to check and assign </td></tr>
7350 <tr><td class="paramname">info_source</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info used to assign</td></tr>
7351 </table>
7352 </dd>
7353</dl>
7354<dl class="section return"><dt>Returns</dt><dd>True if the tensor info has been initialized </dd></dl>
7355
Anthony Barbier06ea0482018-02-22 15:45:35 +00007356<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00221">221</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007357
Anthony Barbier06ea0482018-02-22 15:45:35 +00007358<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ab21a362740e892b6e913bd8db03b0e67">ITensorInfo::fixed_point_position()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ad7829ae79223ab87f9da4c0bd7d229ba">ITensorInfo::num_channels()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a3f3e1a3200223e6a304a533b1016e749">ITensorInfo::quantization_info()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a9ebcdce876b4cd07736afa47d50154de">ITensorInfo::set_data_type()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a8d9488caf817e12132f0ca2a4c30deba">ITensorInfo::set_fixed_point_position()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#aaf74be25e2392705f29352ffaa4b1f9d">ITensorInfo::set_num_channels()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a575d37eaf8a905c8ca3c0250757c2b81">ITensorInfo::set_quantization_info()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a12a4f1190952613e36b44846962e26bb">ITensorInfo::set_tensor_shape()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7c66505457d00ece3aa4b34cab80757d">ITensorInfo::tensor_shape()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00153">TensorShape::total_size()</a>.</p>
7359<div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;{</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span>(info_sink.tensor_shape().total_size() == 0)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; info_sink.set_data_type(info_source.data_type());</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; info_sink.set_num_channels(info_source.num_channels());</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; info_sink.set_tensor_shape(info_source.tensor_shape());</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; info_sink.set_fixed_point_position(info_source.fixed_point_position());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; info_sink.set_quantization_info(info_source.quantization_info());</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007360</div>
7361</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007362<a class="anchor" id="a64c17a5a42d2499a1626222ff9753b4d"></a>
7363<div class="memitem">
7364<div class="memproto">
7365 <table class="memname">
7366 <tr>
7367 <td class="memname">std::string arm_compute::build_information </td>
7368 <td>(</td>
7369 <td class="paramname"></td><td>)</td>
7370 <td></td>
7371 </tr>
7372 </table>
7373</div><div class="memdoc">
7374
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007375<p>Returns the <a class="el" href="namespacearm__compute.xhtml" title="This file contains all available output stages for GEMMLowp on OpenCL. ">arm_compute</a> library build information. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00007376<p>Contains the version number and the build options used to build the library</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007377<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="namespacearm__compute.xhtml" title="This file contains all available output stages for GEMMLowp on OpenCL. ">arm_compute</a> library build information </dd></dl>
7378
Anthony Barbier06ea0482018-02-22 15:45:35 +00007379<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00060">floor_to_multiple()</a>, and <a class="el" href="main_8cpp_source.xhtml#l00063">main()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00007380
Anthony Barbier871448e2017-03-24 14:54:29 +00007381</div>
7382</div>
Kaizenbf8b01d2017-10-12 14:26:51 +01007383<a class="anchor" id="a075313545533c34978309ed57d18333f"></a>
7384<div class="memitem">
7385<div class="memproto">
7386 <table class="memname">
7387 <tr>
7388 <td class="memname"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> arm_compute::calculate_depth_concatenate_shape </td>
7389 <td>(</td>
7390 <td class="paramtype">const std::vector&lt; T * &gt; &amp;&#160;</td>
7391 <td class="paramname"><em>inputs_vector</em></td><td>)</td>
7392 <td></td>
7393 </tr>
7394 </table>
7395</div><div class="memdoc">
7396
7397<p>Calculate the output shapes of the depth concatenate function. </p>
7398<dl class="params"><dt>Parameters</dt><dd>
7399 <table class="params">
7400 <tr><td class="paramdir">[in]</td><td class="paramname">inputs_vector</td><td>The vector that stores all the pointers to input.</td></tr>
7401 </table>
7402 </dd>
7403</dl>
7404<dl class="section return"><dt>Returns</dt><dd>the output shape </dd></dl>
7405
Anthony Barbier06ea0482018-02-22 15:45:35 +00007406<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00633">633</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Kaizenbf8b01d2017-10-12 14:26:51 +01007407
Anthony Barbier06ea0482018-02-22 15:45:35 +00007408<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</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="_tensor_shape_8h_source.xhtml#l00077">TensorShape::set()</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00133">arm_compute::test::validation::shape</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions&lt; T &gt;::x()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00086">Dimensions&lt; T &gt;::y()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00091">Dimensions&lt; T &gt;::z()</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007409
7410<p>Referenced by <a class="el" href="benchmark_2fixtures_2_depth_concatenate_layer_fixture_8h_source.xhtml#l00086">DepthConcatenateLayerFixture&lt; TensorType, ITensorType, Function, AccessorType &gt;::setup()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00007411<div class="fragment"><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;{</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; TensorShape out_shape = inputs_vector[0]-&gt;info()-&gt;tensor_shape();</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordtype">size_t</span> max_x = 0;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordtype">size_t</span> max_y = 0;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordtype">size_t</span> depth = 0;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &amp;tensor : inputs_vector)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(tensor == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keyword">const</span> TensorShape <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a> = tensor-&gt;info()-&gt;tensor_shape();</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; max_x = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(shape.x(), max_x);</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; max_y = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(shape.y(), max_y);</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; depth += shape.z();</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; }</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; out_shape.set(0, max_x);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; out_shape.set(1, max_y);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; out_shape.set(2, depth);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">return</span> out_shape;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007412<div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +01007413<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&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
7414</div><!-- fragment -->
7415</div>
7416</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007417<a class="anchor" id="a0101a40c4a6acc2af3b55afa7632f16a"></a>
7418<div class="memitem">
7419<div class="memproto">
7420<table class="mlabels">
7421 <tr>
7422 <td class="mlabels-left">
7423 <table class="memname">
7424 <tr>
7425 <td class="memname">uint32_t arm_compute::calculate_matrix_scale </td>
7426 <td>(</td>
7427 <td class="paramtype">const int16_t *&#160;</td>
7428 <td class="paramname"><em>matrix</em>, </td>
7429 </tr>
7430 <tr>
7431 <td class="paramkey"></td>
7432 <td></td>
7433 <td class="paramtype">unsigned int&#160;</td>
7434 <td class="paramname"><em>matrix_size</em>&#160;</td>
7435 </tr>
7436 <tr>
7437 <td></td>
7438 <td>)</td>
7439 <td></td><td></td>
7440 </tr>
7441 </table>
7442 </td>
7443 <td class="mlabels-right">
7444<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7445 </tr>
7446</table>
7447</div><div class="memdoc">
7448
7449<p>Calculate the scale of the given square matrix. </p>
7450<p>The scale is the absolute value of the sum of all the coefficients in the matrix.</p>
7451<dl class="section note"><dt>Note</dt><dd>If the coefficients add up to 0 then the scale is set to 1.</dd></dl>
7452<dl class="params"><dt>Parameters</dt><dd>
7453 <table class="params">
7454 <tr><td class="paramdir">[in]</td><td class="paramname">matrix</td><td>Matrix coefficients </td></tr>
7455 <tr><td class="paramdir">[in]</td><td class="paramname">matrix_size</td><td>Number of elements per side of the square matrix. (Number of coefficients = matrix_size * matrix_size).</td></tr>
7456 </table>
7457 </dd>
7458</dl>
7459<dl class="section return"><dt>Returns</dt><dd>The absolute value of the sum of the coefficients if they don't add up to 0, otherwise 1. </dd></dl>
7460
Anthony Barbier06ea0482018-02-22 15:45:35 +00007461<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00619">619</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00007462
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007463<p>References <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="accumulate_8cl_source.xhtml#l00041">accumulate()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00286">size</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00007464<div class="fragment"><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;{</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a> = matrix_size * matrix_size;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(1, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ae115fc750a92fb6a5e094998b56fcc56">std::abs</a>(<a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(matrix, matrix + size, 0)));</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;}</div><div class="ttc" id="hwc_8hpp_xhtml_ab2c6b258f02add8fdf4cfc7c371dd772"><div class="ttname"><a href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a></div><div class="ttdeci">uint32_t size</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00286">hwc.hpp:286</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01007465<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>
7466<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&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
7467<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&lt; T &gt; abs(fixed_point&lt; T &gt; 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>
Anthony Barbier871448e2017-03-24 14:54:29 +00007468</div><!-- fragment -->
7469</div>
7470</div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007471<a class="anchor" id="a2bbb5d1cdb27c0e8c517cb7c544226c6"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007472<div class="memitem">
7473<div class="memproto">
7474 <table class="memname">
7475 <tr>
7476 <td class="memname"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> arm_compute::calculate_max_enlarged_window </td>
7477 <td>(</td>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007478 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
7479 <td class="paramname"><em>valid_region</em>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007480 </tr>
7481 <tr>
7482 <td class="paramkey"></td>
7483 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007484 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;&#160;</td>
7485 <td class="paramname"><em>steps</em> = <code><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>()</code>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007486 </tr>
7487 <tr>
7488 <td class="paramkey"></td>
7489 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007490 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
7491 <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>()</code>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007492 </tr>
7493 <tr>
7494 <td></td>
7495 <td>)</td>
7496 <td></td><td></td>
7497 </tr>
7498 </table>
7499</div><div class="memdoc">
7500
7501<p>Calculate the maximum window for a given tensor shape and border setting. </p>
7502<p>The window will also includes the border.</p>
7503<dl class="params"><dt>Parameters</dt><dd>
7504 <table class="params">
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007505 <tr><td class="paramdir">[in]</td><td class="paramname">valid_region</td><td>Valid region object defining the shape of the tensor space for which the window is created. </td></tr>
7506 <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>(Optional) Number of elements processed for each step. </td></tr>
7507 <tr><td class="paramdir">[in]</td><td class="paramname">border_size</td><td>(Optional) Border size. The border region will be included in the window.</td></tr>
7508 </table>
7509 </dd>
7510</dl>
7511<dl class="section return"><dt>Returns</dt><dd>The maximum window the kernel can be executed on. </dd></dl>
7512
7513<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00430">calculate_max_enlarged_window()</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00407">calculate_max_window_horizontal()</a>.</p>
7514
7515</div>
7516</div>
7517<a class="anchor" id="afcdda83b6a85d5798f08d92c0e235e2e"></a>
7518<div class="memitem">
7519<div class="memproto">
7520<table class="mlabels">
7521 <tr>
7522 <td class="mlabels-left">
7523 <table class="memname">
7524 <tr>
7525 <td class="memname"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> arm_compute::calculate_max_enlarged_window </td>
7526 <td>(</td>
7527 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
7528 <td class="paramname"><em>info</em>, </td>
7529 </tr>
7530 <tr>
7531 <td class="paramkey"></td>
7532 <td></td>
7533 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;&#160;</td>
7534 <td class="paramname"><em>steps</em> = <code><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>()</code>, </td>
7535 </tr>
7536 <tr>
7537 <td class="paramkey"></td>
7538 <td></td>
7539 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
7540 <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>()</code>&#160;</td>
7541 </tr>
7542 <tr>
7543 <td></td>
7544 <td>)</td>
7545 <td></td><td></td>
7546 </tr>
7547 </table>
7548 </td>
7549 <td class="mlabels-right">
7550<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7551 </tr>
7552</table>
7553</div><div class="memdoc">
7554
7555<p>Calculate the maximum window for a given tensor shape and border setting. </p>
7556<p>The window will also includes the border.</p>
7557<dl class="params"><dt>Parameters</dt><dd>
7558 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +01007559 <tr><td class="paramdir">[in]</td><td class="paramname">info</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info object defining the shape of the object for which the window is created. </td></tr>
7560 <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>(Optional) Number of elements processed for each step. </td></tr>
7561 <tr><td class="paramdir">[in]</td><td class="paramname">border_size</td><td>(Optional) Border size. The border region will be included in the window.</td></tr>
7562 </table>
7563 </dd>
7564</dl>
7565<dl class="section return"><dt>Returns</dt><dd>The maximum window the kernel can be executed on. </dd></dl>
7566
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007567<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00430">430</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
7568
7569<p>References <a class="el" href="namespacearm__compute.xhtml#a2bbb5d1cdb27c0e8c517cb7c544226c6">calculate_max_enlarged_window()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a74dfd07380a290c34fe7c8e065029b95">ITensorInfo::valid_region()</a>.</p>
7570<div class="fragment"><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;{</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#afcdda83b6a85d5798f08d92c0e235e2e">calculate_max_enlarged_window</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.valid_region(), steps, border_size);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_afcdda83b6a85d5798f08d92c0e235e2e"><div class="ttname"><a href="namespacearm__compute.xhtml#afcdda83b6a85d5798f08d92c0e235e2e">arm_compute::calculate_max_enlarged_window</a></div><div class="ttdeci">Window calculate_max_enlarged_window(const ITensorInfo &amp;info, const Steps &amp;steps=Steps(), BorderSize border_size=BorderSize())</div><div class="ttdoc">Calculate the maximum window for a given tensor shape and border setting. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00430">Helpers.h:430</a></div></div>
7571<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() -&gt; set_format(Format::S16)</div></div>
7572</div><!-- fragment -->
7573</div>
7574</div>
7575<a class="anchor" id="a1c28e5916fd54b778da115bfe646f588"></a>
7576<div class="memitem">
7577<div class="memproto">
7578 <table class="memname">
7579 <tr>
7580 <td class="memname"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> arm_compute::calculate_max_window </td>
7581 <td>(</td>
7582 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
7583 <td class="paramname"><em>valid_region</em>, </td>
7584 </tr>
7585 <tr>
7586 <td class="paramkey"></td>
7587 <td></td>
7588 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;&#160;</td>
7589 <td class="paramname"><em>steps</em> = <code><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>()</code>, </td>
7590 </tr>
7591 <tr>
7592 <td class="paramkey"></td>
7593 <td></td>
7594 <td class="paramtype">bool&#160;</td>
7595 <td class="paramname"><em>skip_border</em> = <code>false</code>, </td>
7596 </tr>
7597 <tr>
7598 <td class="paramkey"></td>
7599 <td></td>
7600 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
7601 <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>()</code>&#160;</td>
7602 </tr>
7603 <tr>
7604 <td></td>
7605 <td>)</td>
7606 <td></td><td></td>
7607 </tr>
7608 </table>
7609</div><div class="memdoc">
7610
7611<p>Calculate the maximum window for a given tensor shape and border setting. </p>
7612<dl class="params"><dt>Parameters</dt><dd>
7613 <table class="params">
7614 <tr><td class="paramdir">[in]</td><td class="paramname">valid_region</td><td>Valid region object defining the shape of the tensor space for which the window is created. </td></tr>
7615 <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>(Optional) Number of elements processed for each step. </td></tr>
7616 <tr><td class="paramdir">[in]</td><td class="paramname">skip_border</td><td>(Optional) If true exclude the border region from the window. </td></tr>
7617 <tr><td class="paramdir">[in]</td><td class="paramname">border_size</td><td>(Optional) Border size.</td></tr>
7618 </table>
7619 </dd>
7620</dl>
7621<dl class="section return"><dt>Returns</dt><dd>The maximum window the kernel can be executed on. </dd></dl>
7622
7623<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00382">calculate_max_window()</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00341">update_window_and_padding()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007624
Anthony Barbierdbdab852017-06-23 15:42:00 +01007625</div>
7626</div>
7627<a class="anchor" id="aa2117aef4381edbdf81e17ec088df7f1"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00007628<div class="memitem">
7629<div class="memproto">
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007630<table class="mlabels">
7631 <tr>
7632 <td class="mlabels-left">
Anthony Barbier871448e2017-03-24 14:54:29 +00007633 <table class="memname">
7634 <tr>
7635 <td class="memname"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> arm_compute::calculate_max_window </td>
7636 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007637 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00007638 <td class="paramname"><em>info</em>, </td>
7639 </tr>
7640 <tr>
7641 <td class="paramkey"></td>
7642 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007643 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;&#160;</td>
7644 <td class="paramname"><em>steps</em> = <code><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>()</code>, </td>
Anthony Barbier871448e2017-03-24 14:54:29 +00007645 </tr>
7646 <tr>
7647 <td class="paramkey"></td>
7648 <td></td>
7649 <td class="paramtype">bool&#160;</td>
7650 <td class="paramname"><em>skip_border</em> = <code>false</code>, </td>
7651 </tr>
7652 <tr>
7653 <td class="paramkey"></td>
7654 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007655 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
7656 <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>()</code>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00007657 </tr>
7658 <tr>
7659 <td></td>
7660 <td>)</td>
7661 <td></td><td></td>
7662 </tr>
7663 </table>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007664 </td>
7665 <td class="mlabels-right">
7666<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7667 </tr>
7668</table>
Anthony Barbier871448e2017-03-24 14:54:29 +00007669</div><div class="memdoc">
7670
7671<p>Calculate the maximum window for a given tensor shape and border setting. </p>
7672<dl class="params"><dt>Parameters</dt><dd>
7673 <table class="params">
7674 <tr><td class="paramdir">[in]</td><td class="paramname">info</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info object defining the shape of the object for which the window is created. </td></tr>
7675 <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>(Optional) Number of elements processed for each step. </td></tr>
7676 <tr><td class="paramdir">[in]</td><td class="paramname">skip_border</td><td>(Optional) If true exclude the border region from the window. </td></tr>
7677 <tr><td class="paramdir">[in]</td><td class="paramname">border_size</td><td>(Optional) Border size.</td></tr>
7678 </table>
7679 </dd>
7680</dl>
7681<dl class="section return"><dt>Returns</dt><dd>The maximum window the kernel can be executed on. </dd></dl>
7682
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007683<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00382">382</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
7684
7685<p>References <a class="el" href="namespacearm__compute.xhtml#a1c28e5916fd54b778da115bfe646f588">calculate_max_window()</a>, <a class="el" href="namespacearm__compute.xhtml#a252e257c58bfccbb272c0a5bf81d42cb">calculate_max_window_horizontal()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a74dfd07380a290c34fe7c8e065029b95">ITensorInfo::valid_region()</a>.</p>
7686<div class="fragment"><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#aa2117aef4381edbdf81e17ec088df7f1">calculate_max_window</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.valid_region(), steps, skip_border, border_size);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
7687<div class="ttc" id="namespacearm__compute_xhtml_aa2117aef4381edbdf81e17ec088df7f1"><div class="ttname"><a href="namespacearm__compute.xhtml#aa2117aef4381edbdf81e17ec088df7f1">arm_compute::calculate_max_window</a></div><div class="ttdeci">Window calculate_max_window(const ITensorInfo &amp;info, const Steps &amp;steps=Steps(), bool skip_border=false, BorderSize border_size=BorderSize())</div><div class="ttdoc">Calculate the maximum window for a given tensor shape and border setting. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00382">Helpers.h:382</a></div></div>
7688</div><!-- fragment -->
7689</div>
7690</div>
7691<a class="anchor" id="a252e257c58bfccbb272c0a5bf81d42cb"></a>
7692<div class="memitem">
7693<div class="memproto">
7694 <table class="memname">
7695 <tr>
7696 <td class="memname"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> arm_compute::calculate_max_window_horizontal </td>
7697 <td>(</td>
7698 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
7699 <td class="paramname"><em>valid_region</em>, </td>
7700 </tr>
7701 <tr>
7702 <td class="paramkey"></td>
7703 <td></td>
7704 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;&#160;</td>
7705 <td class="paramname"><em>steps</em> = <code><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>()</code>, </td>
7706 </tr>
7707 <tr>
7708 <td class="paramkey"></td>
7709 <td></td>
7710 <td class="paramtype">bool&#160;</td>
7711 <td class="paramname"><em>skip_border</em> = <code>false</code>, </td>
7712 </tr>
7713 <tr>
7714 <td class="paramkey"></td>
7715 <td></td>
7716 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
7717 <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>()</code>&#160;</td>
7718 </tr>
7719 <tr>
7720 <td></td>
7721 <td>)</td>
7722 <td></td><td></td>
7723 </tr>
7724 </table>
7725</div><div class="memdoc">
7726
7727<p>Calculate the maximum window used by a horizontal kernel for a given tensor shape and border setting. </p>
7728<dl class="params"><dt>Parameters</dt><dd>
7729 <table class="params">
7730 <tr><td class="paramdir">[in]</td><td class="paramname">valid_region</td><td>Valid region object defining the shape of the tensor space for which the window is created. </td></tr>
7731 <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>(Optional) Number of elements processed for each step. </td></tr>
7732 <tr><td class="paramdir">[in]</td><td class="paramname">skip_border</td><td>(Optional) If true exclude the border region from the window. </td></tr>
7733 <tr><td class="paramdir">[in]</td><td class="paramname">border_size</td><td>(Optional) Border size. The border region will be excluded from the window.</td></tr>
7734 </table>
7735 </dd>
7736</dl>
7737<dl class="section return"><dt>Returns</dt><dd>The maximum window the kernel can be executed on. </dd></dl>
7738
7739<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00382">calculate_max_window()</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00407">calculate_max_window_horizontal()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007740
Anthony Barbier871448e2017-03-24 14:54:29 +00007741</div>
7742</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007743<a class="anchor" id="a47456b4d520aee1cba80bf6e20f6685a"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00007744<div class="memitem">
7745<div class="memproto">
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007746<table class="mlabels">
7747 <tr>
7748 <td class="mlabels-left">
Anthony Barbier871448e2017-03-24 14:54:29 +00007749 <table class="memname">
7750 <tr>
7751 <td class="memname"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> arm_compute::calculate_max_window_horizontal </td>
7752 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007753 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00007754 <td class="paramname"><em>info</em>, </td>
7755 </tr>
7756 <tr>
7757 <td class="paramkey"></td>
7758 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007759 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;&#160;</td>
7760 <td class="paramname"><em>steps</em> = <code><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>()</code>, </td>
Anthony Barbier871448e2017-03-24 14:54:29 +00007761 </tr>
7762 <tr>
7763 <td class="paramkey"></td>
7764 <td></td>
7765 <td class="paramtype">bool&#160;</td>
7766 <td class="paramname"><em>skip_border</em> = <code>false</code>, </td>
7767 </tr>
7768 <tr>
7769 <td class="paramkey"></td>
7770 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007771 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
7772 <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>()</code>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00007773 </tr>
7774 <tr>
7775 <td></td>
7776 <td>)</td>
7777 <td></td><td></td>
7778 </tr>
7779 </table>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007780 </td>
7781 <td class="mlabels-right">
7782<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7783 </tr>
7784</table>
Anthony Barbier871448e2017-03-24 14:54:29 +00007785</div><div class="memdoc">
7786
7787<p>Calculate the maximum window used by a horizontal kernel for a given tensor shape and border setting. </p>
7788<dl class="params"><dt>Parameters</dt><dd>
7789 <table class="params">
7790 <tr><td class="paramdir">[in]</td><td class="paramname">info</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info object defining the shape of the object for which the window is created. </td></tr>
7791 <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>(Optional) Number of elements processed for each step. </td></tr>
7792 <tr><td class="paramdir">[in]</td><td class="paramname">skip_border</td><td>(Optional) If true exclude the border region from the window. </td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007793 <tr><td class="paramdir">[in]</td><td class="paramname">border_size</td><td>(Optional) Border size.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00007794 </table>
7795 </dd>
7796</dl>
7797<dl class="section return"><dt>Returns</dt><dd>The maximum window the kernel can be executed on. </dd></dl>
7798
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007799<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00407">407</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007800
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007801<p>References <a class="el" href="namespacearm__compute.xhtml#a2bbb5d1cdb27c0e8c517cb7c544226c6">calculate_max_enlarged_window()</a>, <a class="el" href="namespacearm__compute.xhtml#a252e257c58bfccbb272c0a5bf81d42cb">calculate_max_window_horizontal()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a74dfd07380a290c34fe7c8e065029b95">ITensorInfo::valid_region()</a>.</p>
7802<div class="fragment"><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;{</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a47456b4d520aee1cba80bf6e20f6685a">calculate_max_window_horizontal</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.valid_region(), steps, skip_border, border_size);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
7803<div class="ttc" id="namespacearm__compute_xhtml_a47456b4d520aee1cba80bf6e20f6685a"><div class="ttname"><a href="namespacearm__compute.xhtml#a47456b4d520aee1cba80bf6e20f6685a">arm_compute::calculate_max_window_horizontal</a></div><div class="ttdeci">Window calculate_max_window_horizontal(const ITensorInfo &amp;info, const Steps &amp;steps=Steps(), bool skip_border=false, BorderSize border_size=BorderSize())</div><div class="ttdoc">Calculate the maximum window used by a horizontal kernel for a given tensor shape and border setting...</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00407">Helpers.h:407</a></div></div>
7804</div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +01007805</div>
7806</div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00007807<a class="anchor" id="afa7962c747457714d0944af80cb07058"></a>
7808<div class="memitem">
7809<div class="memproto">
7810 <table class="memname">
7811 <tr>
7812 <td class="memname"><a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> arm_compute::calculate_same_pad </td>
7813 <td>(</td>
7814 <td class="paramtype"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>&#160;</td>
7815 <td class="paramname"><em>input_shape</em>, </td>
7816 </tr>
7817 <tr>
7818 <td class="paramkey"></td>
7819 <td></td>
7820 <td class="paramtype"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>&#160;</td>
7821 <td class="paramname"><em>weights_shape</em>, </td>
7822 </tr>
7823 <tr>
7824 <td class="paramkey"></td>
7825 <td></td>
7826 <td class="paramtype"><a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>&#160;</td>
7827 <td class="paramname"><em>conv_info</em>&#160;</td>
7828 </tr>
7829 <tr>
7830 <td></td>
7831 <td>)</td>
7832 <td></td><td></td>
7833 </tr>
7834 </table>
7835</div><div class="memdoc">
7836
7837<p>Calculate padding requirements in case of SAME padding. </p>
7838<dl class="params"><dt>Parameters</dt><dd>
7839 <table class="params">
7840 <tr><td class="paramdir">[in]</td><td class="paramname">input_shape</td><td>Input shape </td></tr>
7841 <tr><td class="paramdir">[in]</td><td class="paramname">weights_shape</td><td>Weights shape </td></tr>
7842 <tr><td class="paramdir">[in]</td><td class="paramname">conv_info</td><td>Convolution information (containing strides)</td></tr>
7843 </table>
7844 </dd>
7845</dl>
7846<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml" title="Padding and stride information class. ">PadStrideInfo</a> for SAME padding </dd></dl>
7847
7848<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
7849
7850</div>
7851</div>
7852<a class="anchor" id="a9d714e1b7d9d7818309138b7d830ebcb"></a>
7853<div class="memitem">
7854<div class="memproto">
7855<table class="mlabels">
7856 <tr>
7857 <td class="mlabels-left">
7858 <table class="memname">
7859 <tr>
7860 <td class="memname"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> arm_compute::calculate_subsampled_shape </td>
7861 <td>(</td>
7862 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
7863 <td class="paramname"><em>shape</em>, </td>
7864 </tr>
7865 <tr>
7866 <td class="paramkey"></td>
7867 <td></td>
7868 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
7869 <td class="paramname"><em>format</em>, </td>
7870 </tr>
7871 <tr>
7872 <td class="paramkey"></td>
7873 <td></td>
7874 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
7875 <td class="paramname"><em>channel</em> = <code><a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">Channel::UNKNOWN</a></code>&#160;</td>
7876 </tr>
7877 <tr>
7878 <td></td>
7879 <td>)</td>
7880 <td></td><td></td>
7881 </tr>
7882 </table>
7883 </td>
7884 <td class="mlabels-right">
7885<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7886 </tr>
7887</table>
7888</div><div class="memdoc">
7889
7890<p>Calculate subsampled shape for a given format and channel. </p>
7891<dl class="params"><dt>Parameters</dt><dd>
7892 <table class="params">
7893 <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>Shape of the tensor to calculate the extracted channel. </td></tr>
7894 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Format of the tensor. </td></tr>
7895 <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Channel to create tensor shape to be extracted.</td></tr>
7896 </table>
7897 </dd>
7898</dl>
7899<dl class="section return"><dt>Returns</dt><dd>The subsampled tensor shape. </dd></dl>
7900
7901<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00696">696</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
7902
7903<p>References <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00534">has_format_horizontal_subsampling()</a>, <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00545">has_format_vertical_subsampling()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00077">TensorShape::set()</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>, <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a>.</p>
7904
7905<p>Referenced by <a class="el" href="reference_2_channel_extract_8cpp_source.xhtml#l00039">arm_compute::test::validation::reference::channel_extract()</a>, and <a class="el" href="_channel_extract_fixture_8h_source.xhtml#l00048">ChannelExtractValidationFixture&lt; MultiImageType, TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
7906<div class="fragment"><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;{</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; TensorShape output{ <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a> };</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="comment">// Subsample shape only for U or V channel</span></div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">if</span>(Channel::U == channel || Channel::V == channel || Channel::UNKNOWN == channel)</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="comment">// Subsample width for the tensor shape when channel is U or V</span></div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#aa2f22cc01532e0236e438324310fdb94">has_format_horizontal_subsampling</a>(format))</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; output.set(0, output.x() / 2<a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; }</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="comment">// Subsample height for the tensor shape when channel is U or V</span></div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#a95358b677c5c17f5cc1e369e4a27e2c2">has_format_vertical_subsampling</a>(format))</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; {</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; output.set(1, output.y() / 2<a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">return</span> output;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
7907<div class="ttc" id="namespacearm__compute_xhtml_a95358b677c5c17f5cc1e369e4a27e2c2"><div class="ttname"><a href="namespacearm__compute.xhtml#a95358b677c5c17f5cc1e369e4a27e2c2">arm_compute::has_format_vertical_subsampling</a></div><div class="ttdeci">bool has_format_vertical_subsampling(Format format)</div><div class="ttdoc">Return true if the given format has vertical subsampling. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l00545">Utils.h:545</a></div></div>
7908<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">arm_compute::Channel::U</a></div><div class="ttdoc">Cb/U channel. </div></div>
7909<div class="ttc" id="namespacearm__compute_xhtml_aa2f22cc01532e0236e438324310fdb94"><div class="ttname"><a href="namespacearm__compute.xhtml#aa2f22cc01532e0236e438324310fdb94">arm_compute::has_format_horizontal_subsampling</a></div><div class="ttdeci">bool has_format_horizontal_subsampling(Format format)</div><div class="ttdoc">Return true if the given format has horizontal subsampling. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l00534">Utils.h:534</a></div></div>
7910</div><!-- fragment -->
7911</div>
7912</div>
Kaizen8938bd32017-09-28 14:38:23 +01007913<a class="anchor" id="ae3c6412e9c2b3b6c75a577f700e9b228"></a>
7914<div class="memitem">
7915<div class="memproto">
7916<table class="mlabels">
7917 <tr>
7918 <td class="mlabels-left">
7919 <table class="memname">
7920 <tr>
7921 <td class="memname"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> calculate_valid_region_scale </td>
7922 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007923 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +01007924 <td class="paramname"><em>src_info</em>, </td>
7925 </tr>
7926 <tr>
7927 <td class="paramkey"></td>
7928 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007929 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +01007930 <td class="paramname"><em>dst_shape</em>, </td>
7931 </tr>
7932 <tr>
7933 <td class="paramkey"></td>
7934 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007935 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +01007936 <td class="paramname"><em>policy</em>, </td>
7937 </tr>
7938 <tr>
7939 <td class="paramkey"></td>
7940 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007941 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +01007942 <td class="paramname"><em>border_size</em>, </td>
7943 </tr>
7944 <tr>
7945 <td class="paramkey"></td>
7946 <td></td>
7947 <td class="paramtype">bool&#160;</td>
7948 <td class="paramname"><em>border_undefined</em>&#160;</td>
7949 </tr>
7950 <tr>
7951 <td></td>
7952 <td>)</td>
7953 <td></td><td></td>
7954 </tr>
7955 </table>
7956 </td>
7957 <td class="mlabels-right">
7958<span class="mlabels"><span class="mlabel">inline</span></span> </td>
7959 </tr>
7960</table>
7961</div><div class="memdoc">
Anthony Barbier871448e2017-03-24 14:54:29 +00007962
Kaizen8938bd32017-09-28 14:38:23 +01007963<p>Helper function to calculate the Valid Region for Scale. </p>
7964<dl class="params"><dt>Parameters</dt><dd>
7965 <table class="params">
7966 <tr><td class="paramdir">[in]</td><td class="paramname">src_info</td><td>Input tensor info used to check. </td></tr>
7967 <tr><td class="paramdir">[in]</td><td class="paramname">dst_shape</td><td>Shape of the output. </td></tr>
7968 <tr><td class="paramdir">[in]</td><td class="paramname">policy</td><td>Interpolation policy. </td></tr>
7969 <tr><td class="paramdir">[in]</td><td class="paramname">border_size</td><td>Size of the border. </td></tr>
7970 <tr><td class="paramdir">[in]</td><td class="paramname">border_undefined</td><td>True if the border is undefined.</td></tr>
7971 </table>
7972 </dd>
7973</dl>
7974<dl class="section return"><dt>Returns</dt><dd>The corrispondent valid region </dd></dl>
7975
Anthony Barbier06ea0482018-02-22 15:45:35 +00007976<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00291">291</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +01007977
Anthony Barbier06ea0482018-02-22 15:45:35 +00007978<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00216">ValidRegion::anchor</a>, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">BILINEAR</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00296">BorderSize::left</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00074">Dimensions&lt; T &gt;::set()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00077">TensorShape::set()</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00133">arm_compute::test::validation::shape</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00217">ValidRegion::shape</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7c66505457d00ece3aa4b34cab80757d">ITensorInfo::tensor_shape()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00293">BorderSize::top</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a74dfd07380a290c34fe7c8e065029b95">ITensorInfo::valid_region()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00007979
Anthony Barbier06ea0482018-02-22 15:45:35 +00007980<p>Referenced by <a class="el" href="validation_2_c_l_2_scale_8cpp_source.xhtml#l00070">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="validation_2_c_l_2_scale_8cpp_source.xhtml#l00119">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">permute()</a>.</p>
7981<div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> wr = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(dst_shape[0]) / static_cast&lt;float&gt;(src_info.tensor_shape()[0]);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> hr = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(dst_shape[1]) / static_cast&lt;float&gt;(src_info.tensor_shape()[1]);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; ValidRegion valid_region{ Coordinates(), dst_shape, src_info.tensor_shape().num_dimensions() };</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; Coordinates &amp;anchor = valid_region.anchor;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; TensorShape &amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a> = valid_region.shape;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; anchor.set(0, (policy == InterpolationPolicy::BILINEAR</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; &amp;&amp; border_undefined) ?</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; ((static_cast&lt;int&gt;(src_info.valid_region().anchor[0]) + border_size.left + 0.5f) * wr - 0.5f) :</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; ((static_cast&lt;int&gt;(src_info.valid_region().anchor[0]) + 0.5f) * wr - 0.5f));</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; anchor.set(1, (policy == InterpolationPolicy::BILINEAR</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; &amp;&amp; border_undefined) ?</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; ((static_cast&lt;int&gt;(src_info.valid_region().anchor[1]) + border_size.top + 0.5f) * hr - 0.5f) :</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; ((static_cast&lt;int&gt;(src_info.valid_region().anchor[1]) + 0.5f) * hr - 0.5f));</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordtype">float</span> shape_out_x = (policy == InterpolationPolicy::BILINEAR</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; &amp;&amp; border_undefined) ?</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; ((static_cast&lt;int&gt;(src_info.valid_region().anchor[0]) + static_cast&lt;int&gt;(src_info.valid_region().shape[0]) - 1) - 1 + 0.5f) * wr - 0.5f :</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; ((static_cast&lt;int&gt;(src_info.valid_region().anchor[0]) + static_cast&lt;int&gt;(src_info.valid_region().shape[0])) + 0.5f) * wr - 0.5f;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordtype">float</span> shape_out_y = (policy == InterpolationPolicy::BILINEAR</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; &amp;&amp; border_undefined) ?</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; ((static_cast&lt;int&gt;(src_info.valid_region().anchor[1]) + static_cast&lt;int&gt;(src_info.valid_region().shape[1]) - 1) - 1 + 0.5f) * hr - 0.5f :</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; ((static_cast&lt;int&gt;(src_info.valid_region().anchor[1]) + static_cast&lt;int&gt;(src_info.valid_region().shape[1])) + 0.5f) * hr - 0.5f;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; shape.set(0, shape_out_x - anchor[0]);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; shape.set(1, shape_out_y - anchor[1]);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> valid_region;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00007982</div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +00007983</div>
7984</div>
7985<a class="anchor" id="adf0c6059174045f80af46a0f1fb57bc6"></a>
7986<div class="memitem">
7987<div class="memproto">
7988<table class="mlabels">
7989 <tr>
7990 <td class="mlabels-left">
7991 <table class="memname">
7992 <tr>
7993 <td class="memname">auto arm_compute::ceil_to_multiple </td>
7994 <td>(</td>
7995 <td class="paramtype">S&#160;</td>
7996 <td class="paramname"><em>value</em>, </td>
7997 </tr>
7998 <tr>
7999 <td class="paramkey"></td>
8000 <td></td>
8001 <td class="paramtype">T&#160;</td>
8002 <td class="paramname"><em>divisor</em>&#160;</td>
8003 </tr>
8004 <tr>
8005 <td></td>
8006 <td>)</td>
Kaizen8938bd32017-09-28 14:38:23 +01008007 <td></td><td> -&gt; decltype(((<a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a> + divisor - 1) / divisor) * divisor)
Anthony Barbier871448e2017-03-24 14:54:29 +00008008</td>
8009 </tr>
8010 </table>
8011 </td>
8012 <td class="mlabels-right">
8013<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8014 </tr>
8015</table>
8016</div><div class="memdoc">
8017
8018<p>Computes the smallest number larger or equal to value that is a multiple of divisor. </p>
8019
Anthony Barbier06ea0482018-02-22 15:45:35 +00008020<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00052">52</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00008021
Anthony Barbier06ea0482018-02-22 15:45:35 +00008022<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00045">DIV_CEIL()</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00278">value</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00008023
Anthony Barbier06ea0482018-02-22 15:45:35 +00008024<p>Referenced by <a class="el" href="_c_l_2_remap_8cpp_source.xhtml#l00053">arm_compute::test::validation::DATA_TEST_CASE()</a>, and <a class="el" href="_window_8inl_source.xhtml#l00134">Window::scale()</a>.</p>
8025<div class="fragment"><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a> &lt; 0 || divisor &lt;= 0);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a12705a88669cb9fb90451ebe0db53c41">DIV_CEIL</a>(<a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, divisor) * divisor;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
8026<div class="ttc" id="namespacearm__compute_xhtml_a12705a88669cb9fb90451ebe0db53c41"><div class="ttname"><a href="namespacearm__compute.xhtml#a12705a88669cb9fb90451ebe0db53c41">arm_compute::DIV_CEIL</a></div><div class="ttdeci">constexpr auto DIV_CEIL(S val, T m) -&gt; decltype((val+m-1)/m)</div><div class="ttdoc">Calculate the rounded up quotient of val / m. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l00045">Utils.h:45</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008027<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#l00278">hwc.hpp:278</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008028</div><!-- fragment -->
8029</div>
8030</div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00008031<a class="anchor" id="afab149f8d8b0f6405303ee8056fa77d3"></a>
8032<div class="memitem">
8033<div class="memproto">
8034<table class="mlabels">
8035 <tr>
8036 <td class="mlabels-left">
8037 <table class="memname">
8038 <tr>
8039 <td class="memname">int arm_compute::channel_idx_from_format </td>
8040 <td>(</td>
8041 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
8042 <td class="paramname"><em>format</em>, </td>
8043 </tr>
8044 <tr>
8045 <td class="paramkey"></td>
8046 <td></td>
8047 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
8048 <td class="paramname"><em>channel</em>&#160;</td>
8049 </tr>
8050 <tr>
8051 <td></td>
8052 <td>)</td>
8053 <td></td><td></td>
8054 </tr>
8055 </table>
8056 </td>
8057 <td class="mlabels-right">
8058<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8059 </tr>
8060</table>
8061</div><div class="memdoc">
8062
8063<p>Return the channel index of a given channel given an input format. </p>
8064<dl class="params"><dt>Parameters</dt><dd>
8065 <table class="params">
8066 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format </td></tr>
8067 <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Input channel</td></tr>
8068 </table>
8069 </dd>
8070</dl>
8071<dl class="section return"><dt>Returns</dt><dd>The channel index of the specific channel of the specific format </dd></dl>
8072
8073<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00300">300</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
8074
8075<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf">G</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6">R</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">Y</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>.</p>
8076
8077<p>Referenced by <a class="el" href="reference_2_channel_extract_8cpp_source.xhtml#l00039">arm_compute::test::validation::reference::channel_extract()</a>.</p>
8078<div class="fragment"><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;{</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">switch</span>(format)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">case</span> Channel::R:</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">case</span> Channel::G:</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">case</span> Channel::B:</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">case</span> Channel::R:</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">case</span> Channel::G:</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">case</span> Channel::B:</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">case</span> Channel::A:</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">return</span> 3;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">case</span> Channel::Y:</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">return</span> 3;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">case</span> Channel::Y:</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">case</span> Channel::Y:</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">case</span> Channel::Y:</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">case</span> Channel::Y:</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported format&quot;</span>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
8079</div><!-- fragment -->
8080</div>
8081</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008082<a class="anchor" id="af2be1325decaa34a8a1199af177148c6"></a>
8083<div class="memitem">
8084<div class="memproto">
8085 <table class="memname">
8086 <tr>
8087 <td class="memname">void arm_compute::colorconvert_iyuv_to_nv12 </td>
8088 <td>(</td>
8089 <td class="paramtype">const void *__restrict&#160;</td>
8090 <td class="paramname"><em>input</em>, </td>
8091 </tr>
8092 <tr>
8093 <td class="paramkey"></td>
8094 <td></td>
8095 <td class="paramtype">void *__restrict&#160;</td>
8096 <td class="paramname"><em>output</em>, </td>
8097 </tr>
8098 <tr>
8099 <td class="paramkey"></td>
8100 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008101 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008102 <td class="paramname"><em>win</em>&#160;</td>
8103 </tr>
8104 <tr>
8105 <td></td>
8106 <td>)</td>
8107 <td></td><td></td>
8108 </tr>
8109 </table>
8110</div><div class="memdoc">
8111
8112<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00550">550</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8113
Anthony Barbier06ea0482018-02-22 15:45:35 +00008114<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008115<div class="fragment"><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;{</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; win.validate();</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>IMultiImage *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span>IMultiImage *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="comment">// UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win_uv.x().step() / 2));</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; win_uv.validate();</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; Iterator in_y(input_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; Iterator in_u(input_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; Iterator in_v(input_ptr-&gt;plane(2), win_uv);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; Iterator out_y(output_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; Iterator out_uv(output_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; {</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_top = vld2q_u8(in_y.ptr());</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_bottom = vld2q_u8(in_y.ptr() + input_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y());</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; uint8x16x2_t ta_uv;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; ta_uv.val[0] = vld1q_u8(in_u.ptr());</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; ta_uv.val[1] = vld1q_u8(in_v.ptr());</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="comment">//ta_y.val[0] = Y0 Y2 Y4 Y6 ...</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="comment">//ta_y.val[1] = Y1 Y3 Y5 Y7 ...</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="comment">//ta_uv.val[0] = U0 U2 U4 U6 ...</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="comment">//ta_uv.val[1] = V0 V2 V4 V6 ...</span></div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; vst2q_u8(out_y.ptr(), ta_y_top);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; vst2q_u8(out_y.ptr() + output_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y(), ta_y_bottom);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; vst2q_u8(out_uv.ptr(), ta_uv);</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; },</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; in_y, in_u, in_v, out_y, out_uv);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008116<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008117</div><!-- fragment -->
8118</div>
8119</div>
8120<a class="anchor" id="a6e42fac1baa264b033ac430b63ebd145"></a>
8121<div class="memitem">
8122<div class="memproto">
8123 <table class="memname">
8124 <tr>
8125 <td class="memname">void arm_compute::colorconvert_iyuv_to_rgb </td>
8126 <td>(</td>
8127 <td class="paramtype">const void *__restrict&#160;</td>
8128 <td class="paramname"><em>input</em>, </td>
8129 </tr>
8130 <tr>
8131 <td class="paramkey"></td>
8132 <td></td>
8133 <td class="paramtype">void *__restrict&#160;</td>
8134 <td class="paramname"><em>output</em>, </td>
8135 </tr>
8136 <tr>
8137 <td class="paramkey"></td>
8138 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008139 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008140 <td class="paramname"><em>win</em>&#160;</td>
8141 </tr>
8142 <tr>
8143 <td></td>
8144 <td>)</td>
8145 <td></td><td></td>
8146 </tr>
8147 </table>
8148</div><div class="memdoc">
8149
8150<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00445">445</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8151
Jenkinsc3f34a42018-03-02 12:38:09 +00008152<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a6b14f175bf5281f57b561e2d4e4b1f1f">ITensorInfo::strides_in_bytes()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00086">Dimensions&lt; T &gt;::y()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008153<div class="fragment"><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;{</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; win.validate();</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>IMultiImage *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; constexpr <span class="keyword">auto</span> element_size = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a> ? 32 : 24;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> out_stride = output_ptr-&gt;info()-&gt;strides_in_bytes().y();</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="comment">// UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win_uv.x().step() / 2));</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; win_uv.validate();</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; Iterator in_y(input_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; Iterator in_u(input_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; Iterator in_v(input_ptr-&gt;plane(2), win_uv);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; Iterator out(output_ptr, win);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_top = vld2q_u8(in_y.ptr());</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_bottom = vld2q_u8(in_y.ptr() + input_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y());</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_u = vld1q_u8(in_u.ptr());</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_v = vld1q_u8(in_v.ptr());</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="comment">//ta_y.val[0] = Y0 Y2 Y4 Y6 ...</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="comment">//ta_y.val[1] = Y1 Y3 Y5 Y7 ...</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">//ta_u.val[0] = U0 U2 U4 U6 ...</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">//ta_v.val[0] = V0 V2 V4 V6 ...</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// Convert the uint8x16x4_t to float32x4x4_t</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; float32x4x4_t yvec_top, yyvec_top, yvec_bottom, yyvec_bottom, uvec, vvec;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; convert_uint8x16_to_float32x4x4(ta_y_top.val[0], yvec_top);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; convert_uint8x16_to_float32x4x4(ta_y_top.val[1], yyvec_top);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; convert_uint8x16_to_float32x4x4(ta_y_bottom.val[0], yvec_bottom);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; convert_uint8x16_to_float32x4x4(ta_y_bottom.val[1], yyvec_bottom);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; convert_uint8x16_to_float32x4x4(ta_u, uvec);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; convert_uint8x16_to_float32x4x4(ta_v, vvec);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; yuyv_to_rgb_calculation(yvec_top.val[0], uvec.val[0], yyvec_top.val[0], vvec.val[0], out.ptr() + 0 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; yuyv_to_rgb_calculation(yvec_top.val[1], uvec.val[1], yyvec_top.val[1], vvec.val[1], out.ptr() + 1 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; yuyv_to_rgb_calculation(yvec_top.val[2], uvec.val[2], yyvec_top.val[2], vvec.val[2], out.ptr() + 2 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; yuyv_to_rgb_calculation(yvec_top.val[3], uvec.val[3], yyvec_top.val[3], vvec.val[3], out.ptr() + 3 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; yuyv_to_rgb_calculation(yvec_bottom.val[0], uvec.val[0], yyvec_bottom.val[0], vvec.val[0], out.ptr() + out_stride + 0 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; yuyv_to_rgb_calculation(yvec_bottom.val[1], uvec.val[1], yyvec_bottom.val[1], vvec.val[1], out.ptr() + out_stride + 1 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; yuyv_to_rgb_calculation(yvec_bottom.val[2], uvec.val[2], yyvec_bottom.val[2], vvec.val[2], out.ptr() + out_stride + 2 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; yuyv_to_rgb_calculation(yvec_bottom.val[3], uvec.val[3], yyvec_bottom.val[3], vvec.val[3], out.ptr() + out_stride + 3 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; },</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; in_y, in_u, in_v, out);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008154<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008155<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +00008156<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008157</div><!-- fragment -->
8158</div>
8159</div>
8160<a class="anchor" id="a08e9d88293a5cef787bb324c2dc0a6bf"></a>
8161<div class="memitem">
8162<div class="memproto">
8163 <table class="memname">
8164 <tr>
8165 <td class="memname">void arm_compute::colorconvert_iyuv_to_yuv4 </td>
8166 <td>(</td>
8167 <td class="paramtype">const void *__restrict&#160;</td>
8168 <td class="paramname"><em>input</em>, </td>
8169 </tr>
8170 <tr>
8171 <td class="paramkey"></td>
8172 <td></td>
8173 <td class="paramtype">void *__restrict&#160;</td>
8174 <td class="paramname"><em>output</em>, </td>
8175 </tr>
8176 <tr>
8177 <td class="paramkey"></td>
8178 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008179 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008180 <td class="paramname"><em>win</em>&#160;</td>
8181 </tr>
8182 <tr>
8183 <td></td>
8184 <td>)</td>
8185 <td></td><td></td>
8186 </tr>
8187 </table>
8188</div><div class="memdoc">
8189
8190<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00737">737</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8191
Anthony Barbier06ea0482018-02-22 15:45:35 +00008192<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008193<div class="fragment"><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;{</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; win.validate();</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>IMultiImage *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span>IMultiImage *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="comment">// UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win_uv.x().step() / 2));</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; win_uv.validate();</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; Iterator in_y(input_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; Iterator in_u(input_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; Iterator in_v(input_ptr-&gt;plane(2), win_uv);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; Iterator out_y(output_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; Iterator out_u(output_ptr-&gt;plane(1), win);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; Iterator out_v(output_ptr-&gt;plane(2), win);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; {</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_top = vld2q_u8(in_y.ptr());</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_bottom = vld2q_u8(in_y.ptr() + input_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y());</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_u = vld1q_u8(in_u.ptr());</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_v = vld1q_u8(in_v.ptr());</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="comment">//ta_y.val[0] = Y0 Y2 Y4 Y6 ...</span></div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="comment">//ta_y.val[1] = Y1 Y3 Y5 Y7 ...</span></div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="comment">//ta_u = U0 U2 U4 U6 ...</span></div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="comment">//ta_v = V0 V2 V4 V6 ...</span></div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; vst2q_u8(out_y.ptr(), ta_y_top);</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; vst2q_u8(out_y.ptr() + output_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y(), ta_y_bottom);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; uint8x16x2_t uvec;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; uvec.val[0] = ta_u;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; uvec.val[1] = ta_u;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; vst2q_u8(out_u.ptr(), uvec);</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; vst2q_u8(out_u.ptr() + output_ptr-&gt;plane(1)-&gt;info()-&gt;strides_in_bytes().y(), uvec);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; uint8x16x2_t vvec;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; vvec.val[0] = ta_v;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; vvec.val[1] = ta_v;</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; vst2q_u8(out_v.ptr(), vvec);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; vst2q_u8(out_v.ptr() + output_ptr-&gt;plane(2)-&gt;info()-&gt;strides_in_bytes().y(), vvec);</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; },</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; in_y, in_u, in_v, out_y, out_u, out_v);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008194<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008195</div><!-- fragment -->
8196</div>
8197</div>
8198<a class="anchor" id="a199d36780fbb4a70168f290480673650"></a>
8199<div class="memitem">
8200<div class="memproto">
8201 <table class="memname">
8202 <tr>
8203 <td class="memname">void arm_compute::colorconvert_nv12_to_iyuv </td>
8204 <td>(</td>
8205 <td class="paramtype">const void *__restrict&#160;</td>
8206 <td class="paramname"><em>input</em>, </td>
8207 </tr>
8208 <tr>
8209 <td class="paramkey"></td>
8210 <td></td>
8211 <td class="paramtype">void *__restrict&#160;</td>
8212 <td class="paramname"><em>output</em>, </td>
8213 </tr>
8214 <tr>
8215 <td class="paramkey"></td>
8216 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008217 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008218 <td class="paramname"><em>win</em>&#160;</td>
8219 </tr>
8220 <tr>
8221 <td></td>
8222 <td>)</td>
8223 <td></td><td></td>
8224 </tr>
8225 </table>
8226</div><div class="memdoc">
8227
8228<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00591">591</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8229
Anthony Barbier06ea0482018-02-22 15:45:35 +00008230<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008231<div class="fragment"><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;{</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; win.validate();</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>IMultiImage *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span>IMultiImage *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; constexpr <span class="keyword">auto</span> shift = uv ? 0 : 1;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="comment">// UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win_uv.x().step() / 2));</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; win_uv.validate();</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; Iterator in_y(input_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; Iterator in_uv(input_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; Iterator out_y(output_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; Iterator out_u(output_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; Iterator out_v(output_ptr-&gt;plane(2), win_uv);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; {</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_top = vld2q_u8(in_y.ptr());</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_bottom = vld2q_u8(in_y.ptr() + input_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y());</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_uv = vld2q_u8(in_uv.ptr());</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">//ta_y.val[0] = Y0 Y2 Y4 Y6 ...</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="comment">//ta_y.val[1] = Y1 Y3 Y5 Y7 ...</span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="comment">//ta_uv.val[0] = U0 U2 U4 U6 ...</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="comment">//ta_uv.val[1] = V0 V2 V4 V6 ...</span></div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; vst2q_u8(out_y.ptr(), ta_y_top);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; vst2q_u8(out_y.ptr() + output_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y(), ta_y_bottom);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; vst1q_u8(out_u.ptr(), ta_uv.val[0 + shift]);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; vst1q_u8(out_v.ptr(), ta_uv.val[1 - shift]);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; },</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; in_y, in_uv, out_y, out_u, out_v);</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008232<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008233</div><!-- fragment -->
8234</div>
8235</div>
8236<a class="anchor" id="ae6a44e412bccc0705a720708b0692218"></a>
8237<div class="memitem">
8238<div class="memproto">
8239 <table class="memname">
8240 <tr>
8241 <td class="memname">void arm_compute::colorconvert_nv12_to_rgb </td>
8242 <td>(</td>
8243 <td class="paramtype">const void *__restrict&#160;</td>
8244 <td class="paramname"><em>input</em>, </td>
8245 </tr>
8246 <tr>
8247 <td class="paramkey"></td>
8248 <td></td>
8249 <td class="paramtype">void *__restrict&#160;</td>
8250 <td class="paramname"><em>output</em>, </td>
8251 </tr>
8252 <tr>
8253 <td class="paramkey"></td>
8254 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008255 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008256 <td class="paramname"><em>win</em>&#160;</td>
8257 </tr>
8258 <tr>
8259 <td></td>
8260 <td>)</td>
8261 <td></td><td></td>
8262 </tr>
8263 </table>
8264</div><div class="memdoc">
8265
8266<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00389">389</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8267
Jenkinsc3f34a42018-03-02 12:38:09 +00008268<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a6b14f175bf5281f57b561e2d4e4b1f1f">ITensorInfo::strides_in_bytes()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00086">Dimensions&lt; T &gt;::y()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008269<div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;{</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; win.validate();</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>IMultiImage *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; constexpr <span class="keyword">auto</span> element_size = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a> ? 32 : 24;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> out_stride = output_ptr-&gt;info()-&gt;strides_in_bytes().y();</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; constexpr <span class="keyword">auto</span> shift = uv ? 0 : 1;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="comment">// UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win.x().step() / 2));</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; win_uv.validate();</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; Iterator in_y(input_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; Iterator in_uv(input_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; Iterator out(output_ptr, win);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_top = vld2q_u8(in_y.ptr());</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_bottom = vld2q_u8(in_y.ptr() + input_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y());</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_uv = vld2q_u8(in_uv.ptr());</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="comment">//ta_y.val[0] = Y0 Y2 Y4 Y6 ...</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="comment">//ta_y.val[1] = Y1 Y3 Y5 Y7 ...</span></div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">//ta_uv.val[0] = U0 U2 U4 U6 ...</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">//ta_uv.val[1] = V0 V2 V4 V6 ...</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">// Convert the uint8x16x4_t to float32x4x4_t</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; float32x4x4_t yvec_top, yyvec_top, yvec_bottom, yyvec_bottom, uvec, vvec;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; convert_uint8x16_to_float32x4x4(ta_y_top.val[0], yvec_top);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; convert_uint8x16_to_float32x4x4(ta_y_top.val[1], yyvec_top);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; convert_uint8x16_to_float32x4x4(ta_y_bottom.val[0], yvec_bottom);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; convert_uint8x16_to_float32x4x4(ta_y_bottom.val[1], yyvec_bottom);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; convert_uint8x16_to_float32x4x4(ta_uv.val[0 + shift], uvec);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; convert_uint8x16_to_float32x4x4(ta_uv.val[1 - shift], vvec);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; yuyv_to_rgb_calculation(yvec_top.val[0], uvec.val[0], yyvec_top.val[0], vvec.val[0], out.ptr() + 0 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; yuyv_to_rgb_calculation(yvec_top.val[1], uvec.val[1], yyvec_top.val[1], vvec.val[1], out.ptr() + 1 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; yuyv_to_rgb_calculation(yvec_top.val[2], uvec.val[2], yyvec_top.val[2], vvec.val[2], out.ptr() + 2 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; yuyv_to_rgb_calculation(yvec_top.val[3], uvec.val[3], yyvec_top.val[3], vvec.val[3], out.ptr() + 3 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; yuyv_to_rgb_calculation(yvec_bottom.val[0], uvec.val[0], yyvec_bottom.val[0], vvec.val[0], out.ptr() + out_stride + 0 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; yuyv_to_rgb_calculation(yvec_bottom.val[1], uvec.val[1], yyvec_bottom.val[1], vvec.val[1], out.ptr() + out_stride + 1 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; yuyv_to_rgb_calculation(yvec_bottom.val[2], uvec.val[2], yyvec_bottom.val[2], vvec.val[2], out.ptr() + out_stride + 2 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; yuyv_to_rgb_calculation(yvec_bottom.val[3], uvec.val[3], yyvec_bottom.val[3], vvec.val[3], out.ptr() + out_stride + 3 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; },</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; in_y, in_uv, out);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008270<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008271<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +00008272<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008273</div><!-- fragment -->
8274</div>
8275</div>
8276<a class="anchor" id="a587a54c85dcc72838b8f4b5575ebafe4"></a>
8277<div class="memitem">
8278<div class="memproto">
8279 <table class="memname">
8280 <tr>
8281 <td class="memname">void arm_compute::colorconvert_nv12_to_yuv4 </td>
8282 <td>(</td>
8283 <td class="paramtype">const void *__restrict&#160;</td>
8284 <td class="paramname"><em>input</em>, </td>
8285 </tr>
8286 <tr>
8287 <td class="paramkey"></td>
8288 <td></td>
8289 <td class="paramtype">void *__restrict&#160;</td>
8290 <td class="paramname"><em>output</em>, </td>
8291 </tr>
8292 <tr>
8293 <td class="paramkey"></td>
8294 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008295 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008296 <td class="paramname"><em>win</em>&#160;</td>
8297 </tr>
8298 <tr>
8299 <td></td>
8300 <td>)</td>
8301 <td></td><td></td>
8302 </tr>
8303 </table>
8304</div><div class="memdoc">
8305
8306<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00686">686</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8307
Anthony Barbier06ea0482018-02-22 15:45:35 +00008308<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008309<div class="fragment"><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;{</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; win.validate();</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>IMultiImage *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span>IMultiImage *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; constexpr <span class="keyword">auto</span> shift = uv ? 0 : 1;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="comment">// UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win_uv.x().step() / 2));</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; win_uv.validate();</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; Iterator in_y(input_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; Iterator in_uv(input_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; Iterator out_y(output_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; Iterator out_u(output_ptr-&gt;plane(1), win);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; Iterator out_v(output_ptr-&gt;plane(2), win);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; {</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_top = vld2q_u8(in_y.ptr());</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_y_bottom = vld2q_u8(in_y.ptr() + input_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y());</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_uv = vld2q_u8(in_uv.ptr());</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="comment">//ta_y.val[0] = Y0 Y2 Y4 Y6 ...</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">//ta_y.val[1] = Y1 Y3 Y5 Y7 ...</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">//ta_uv.val[0] = U0 U2 U4 U6 ...</span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="comment">//ta_uv.val[1] = V0 V2 V4 V6 ...</span></div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; vst2q_u8(out_y.ptr(), ta_y_top);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; vst2q_u8(out_y.ptr() + output_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y(), ta_y_bottom);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; uint8x16x2_t uvec;</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; uvec.val[0] = ta_uv.val[0 + shift];</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; uvec.val[1] = ta_uv.val[0 + shift];</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; vst2q_u8(out_u.ptr(), uvec);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; vst2q_u8(out_u.ptr() + output_ptr-&gt;plane(1)-&gt;info()-&gt;strides_in_bytes().y(), uvec);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; uint8x16x2_t vvec;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; vvec.val[0] = ta_uv.val[1 - shift];</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; vvec.val[1] = ta_uv.val[1 - shift];</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; vst2q_u8(out_v.ptr(), vvec);</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; vst2q_u8(out_v.ptr() + output_ptr-&gt;plane(2)-&gt;info()-&gt;strides_in_bytes().y(), vvec);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; },</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; in_y, in_uv, out_y, out_u, out_v);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008310<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008311</div><!-- fragment -->
8312</div>
8313</div>
8314<a class="anchor" id="a49b7a8e217ba7aad821fdeaab86bad53"></a>
8315<div class="memitem">
8316<div class="memproto">
8317 <table class="memname">
8318 <tr>
8319 <td class="memname">void arm_compute::colorconvert_rgb_to_iyuv </td>
8320 <td>(</td>
8321 <td class="paramtype">const void *__restrict&#160;</td>
8322 <td class="paramname"><em>input</em>, </td>
8323 </tr>
8324 <tr>
8325 <td class="paramkey"></td>
8326 <td></td>
8327 <td class="paramtype">void *__restrict&#160;</td>
8328 <td class="paramname"><em>output</em>, </td>
8329 </tr>
8330 <tr>
8331 <td class="paramkey"></td>
8332 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008333 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008334 <td class="paramname"><em>win</em>&#160;</td>
8335 </tr>
8336 <tr>
8337 <td></td>
8338 <td>)</td>
8339 <td></td><td></td>
8340 </tr>
8341 </table>
8342</div><div class="memdoc">
8343
8344<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00825">825</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8345
Jenkinsc3f34a42018-03-02 12:38:09 +00008346<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00184">Iterator::ptr()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008347<div class="fragment"><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;{</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; win.validate();</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span>IMultiImage *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="comment">// UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win_uv.x().step() / 2));</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; win_uv.validate();</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; Iterator in(input_ptr, win);</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; Iterator out_y(output_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; Iterator out_u(output_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; Iterator out_v(output_ptr-&gt;plane(2), win_uv);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; {</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_rgb_top = load_rgb(in.ptr(), <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_rgb_bottom = load_rgb(in.ptr() + input_ptr-&gt;info()-&gt;strides_in_bytes().y(), <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="comment">//ta_rgb.val[0] = R0 R1 R2 R3 ...</span></div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="comment">//ta_rgb.val[1] = G0 G1 G2 G3 ...</span></div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="comment">//ta_rgb.val[2] = B0 B1 B2 B3 ...</span></div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; store_rgb_to_iyuv(ta_rgb_top.val[0], ta_rgb_top.val[1], ta_rgb_top.val[2],</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; ta_rgb_bottom.val[0], ta_rgb_bottom.val[1], ta_rgb_bottom.val[2],</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; out_y.ptr(), out_y.ptr() + output_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y(),</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; out_u.ptr(), out_v.ptr());</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; },</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; in, out_y, out_u, out_v);</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008348<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008349<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +00008350<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008351</div><!-- fragment -->
8352</div>
8353</div>
8354<a class="anchor" id="a14fd899b732509e245976b9967b8931d"></a>
8355<div class="memitem">
8356<div class="memproto">
8357 <table class="memname">
8358 <tr>
8359 <td class="memname">void arm_compute::colorconvert_rgb_to_nv12 </td>
8360 <td>(</td>
8361 <td class="paramtype">const void *__restrict&#160;</td>
8362 <td class="paramname"><em>input</em>, </td>
8363 </tr>
8364 <tr>
8365 <td class="paramkey"></td>
8366 <td></td>
8367 <td class="paramtype">void *__restrict&#160;</td>
8368 <td class="paramname"><em>output</em>, </td>
8369 </tr>
8370 <tr>
8371 <td class="paramkey"></td>
8372 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008373 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008374 <td class="paramname"><em>win</em>&#160;</td>
8375 </tr>
8376 <tr>
8377 <td></td>
8378 <td>)</td>
8379 <td></td><td></td>
8380 </tr>
8381 </table>
8382</div><div class="memdoc">
8383
8384<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00789">789</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8385
Jenkinsc3f34a42018-03-02 12:38:09 +00008386<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00184">Iterator::ptr()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008387<div class="fragment"><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;{</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; win.validate();</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span>IMultiImage *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="comment">// UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win_uv.x().step() / 2));</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; win_uv.validate();</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; Iterator in(input_ptr, win);</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; Iterator out_y(output_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; Iterator out_uv(output_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_rgb_top = load_rgb(in.ptr(), <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_rgb_bottom = load_rgb(in.ptr() + input_ptr-&gt;info()-&gt;strides_in_bytes().y(), <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="comment">//ta_rgb.val[0] = R0 R1 R2 R3 ...</span></div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="comment">//ta_rgb.val[1] = G0 G1 G2 G3 ...</span></div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="comment">//ta_rgb.val[2] = B0 B1 B2 B3 ...</span></div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; store_rgb_to_nv12(ta_rgb_top.val[0], ta_rgb_top.val[1], ta_rgb_top.val[2],</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; ta_rgb_bottom.val[0], ta_rgb_bottom.val[1], ta_rgb_bottom.val[2],</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; out_y.ptr(), out_y.ptr() + output_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y(),</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; out_uv.ptr());</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; },</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; in, out_y, out_uv);</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008388<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008389<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +00008390<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008391</div><!-- fragment -->
8392</div>
8393</div>
8394<a class="anchor" id="a93cc303c8ae098d264f07d37890412de"></a>
8395<div class="memitem">
8396<div class="memproto">
8397 <table class="memname">
8398 <tr>
8399 <td class="memname">void arm_compute::colorconvert_rgb_to_rgbx </td>
8400 <td>(</td>
8401 <td class="paramtype">const void *__restrict&#160;</td>
8402 <td class="paramname"><em>input</em>, </td>
8403 </tr>
8404 <tr>
8405 <td class="paramkey"></td>
8406 <td></td>
8407 <td class="paramtype">void *__restrict&#160;</td>
8408 <td class="paramname"><em>output</em>, </td>
8409 </tr>
8410 <tr>
8411 <td class="paramkey"></td>
8412 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008413 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008414 <td class="paramname"><em>win</em>&#160;</td>
8415 </tr>
8416 <tr>
8417 <td></td>
8418 <td>)</td>
8419 <td></td><td></td>
8420 </tr>
8421 </table>
8422</div><div class="memdoc">
8423
8424<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00303">303</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8425
Anthony Barbier06ea0482018-02-22 15:45:35 +00008426<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00184">Iterator::ptr()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008427<div class="fragment"><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;{</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; Iterator in(input_ptr, win);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; Iterator out(output_ptr, win);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta1 = vld3q_u8(in.ptr());</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; uint8x16x4_t ta2;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; ta2.val[0] = ta1.val[0];</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; ta2.val[1] = ta1.val[1];</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; ta2.val[2] = ta1.val[2];</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; ta2.val[3] = vdupq_n_u8(255);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; vst4q_u8(out.ptr(), ta2);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; },</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; in, out);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008428<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008429<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
8430</div><!-- fragment -->
8431</div>
8432</div>
8433<a class="anchor" id="ad304c0b0a72ed3f65c24fa69ab3cd53e"></a>
8434<div class="memitem">
8435<div class="memproto">
8436 <table class="memname">
8437 <tr>
8438 <td class="memname">void arm_compute::colorconvert_rgb_to_yuv4 </td>
8439 <td>(</td>
8440 <td class="paramtype">const void *__restrict&#160;</td>
8441 <td class="paramname"><em>input</em>, </td>
8442 </tr>
8443 <tr>
8444 <td class="paramkey"></td>
8445 <td></td>
8446 <td class="paramtype">void *__restrict&#160;</td>
8447 <td class="paramname"><em>output</em>, </td>
8448 </tr>
8449 <tr>
8450 <td class="paramkey"></td>
8451 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008452 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008453 <td class="paramname"><em>win</em>&#160;</td>
8454 </tr>
8455 <tr>
8456 <td></td>
8457 <td>)</td>
8458 <td></td><td></td>
8459 </tr>
8460 </table>
8461</div><div class="memdoc">
8462
8463<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00862">862</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8464
Jenkinsc3f34a42018-03-02 12:38:09 +00008465<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00184">Iterator::ptr()</a>, and <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008466<div class="fragment"><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;{</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; win.validate();</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span>IMultiImage *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; Iterator in(input_ptr, win);</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; Iterator out_y(output_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; Iterator out_u(output_ptr-&gt;plane(1), win);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; Iterator out_v(output_ptr-&gt;plane(2), win);</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; {</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_rgb = load_rgb(in.ptr(), <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="comment">//ta_rgb.val[0] = R0 R1 R2 R3 ...</span></div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="comment">//ta_rgb.val[1] = G0 G1 G2 G3 ...</span></div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="comment">//ta_rgb.val[2] = B0 B1 B2 B3 ...</span></div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; store_rgb_to_yuv4(ta_rgb.val[0], ta_rgb.val[1], ta_rgb.val[2],</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; out_y.ptr(), out_u.ptr(), out_v.ptr());</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; },</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; in, out_y, out_u, out_v);</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008467<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008468<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +00008469<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008470</div><!-- fragment -->
8471</div>
8472</div>
8473<a class="anchor" id="acf7451c0d0f8a4b1cfbb60d7531a43aa"></a>
8474<div class="memitem">
8475<div class="memproto">
8476 <table class="memname">
8477 <tr>
8478 <td class="memname">void arm_compute::colorconvert_rgbx_to_rgb </td>
8479 <td>(</td>
8480 <td class="paramtype">const void *&#160;</td>
8481 <td class="paramname"><em>input</em>, </td>
8482 </tr>
8483 <tr>
8484 <td class="paramkey"></td>
8485 <td></td>
8486 <td class="paramtype">void *&#160;</td>
8487 <td class="paramname"><em>output</em>, </td>
8488 </tr>
8489 <tr>
8490 <td class="paramkey"></td>
8491 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008492 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008493 <td class="paramname"><em>win</em>&#160;</td>
8494 </tr>
8495 <tr>
8496 <td></td>
8497 <td>)</td>
8498 <td></td><td></td>
8499 </tr>
8500 </table>
8501</div><div class="memdoc">
8502
8503<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00327">327</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8504
Anthony Barbier06ea0482018-02-22 15:45:35 +00008505<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00184">Iterator::ptr()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008506<div class="fragment"><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; Iterator in(input_ptr, win);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; Iterator out(output_ptr, win);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta1 = vld4q_u8(in.ptr());</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; uint8x16x3_t ta2;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; ta2.val[0] = ta1.val[0];</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; ta2.val[1] = ta1.val[1];</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; ta2.val[2] = ta1.val[2];</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; vst3q_u8(out.ptr(), ta2);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; },</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; in, out);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008507<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008508<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
8509</div><!-- fragment -->
8510</div>
8511</div>
8512<a class="anchor" id="ae43e8f0463c0289169025c3041688d36"></a>
8513<div class="memitem">
8514<div class="memproto">
8515 <table class="memname">
8516 <tr>
8517 <td class="memname">void arm_compute::colorconvert_yuyv_to_iyuv </td>
8518 <td>(</td>
8519 <td class="paramtype">const void *__restrict&#160;</td>
8520 <td class="paramname"><em>input</em>, </td>
8521 </tr>
8522 <tr>
8523 <td class="paramkey"></td>
8524 <td></td>
8525 <td class="paramtype">void *__restrict&#160;</td>
8526 <td class="paramname"><em>output</em>, </td>
8527 </tr>
8528 <tr>
8529 <td class="paramkey"></td>
8530 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008531 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008532 <td class="paramname"><em>win</em>&#160;</td>
8533 </tr>
8534 <tr>
8535 <td></td>
8536 <td>)</td>
8537 <td></td><td></td>
8538 </tr>
8539 </table>
8540</div><div class="memdoc">
8541
8542<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00633">633</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8543
Anthony Barbier06ea0482018-02-22 15:45:35 +00008544<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00184">Iterator::ptr()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008545<div class="fragment"><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;{</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; win.validate();</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span>IMultiImage *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; constexpr <span class="keyword">auto</span> shift = yuyv ? 0 : 1;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// Destination&#39;s UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win_uv.x().step() / 2));</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; win_uv.validate();</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; Iterator in(input_ptr, win);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; Iterator out_y(output_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; Iterator out_u(output_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; Iterator out_v(output_ptr-&gt;plane(2), win_uv);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; {</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_top = vld4q_u8(in.ptr());</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_bottom = vld4q_u8(in.ptr() + input_ptr-&gt;info()-&gt;strides_in_bytes().y());</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="comment">//ta.val[0] = Y0 Y2 Y4 Y6 ...</span></div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="comment">//ta.val[1] = U0 U2 U4 U6 ...</span></div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="comment">//ta.val[2] = Y1 Y3 Y5 Y7 ...</span></div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="comment">//ta.val[3] = V0 V2 V4 V7 ...</span></div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; uint8x16x2_t yvec;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; yvec.val[0] = ta_top.val[0 + shift];</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; yvec.val[1] = ta_top.val[2 + shift];</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; vst2q_u8(out_y.ptr(), yvec);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; uint8x16x2_t yyvec;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; yyvec.val[0] = ta_bottom.val[0 + shift];</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; yyvec.val[1] = ta_bottom.val[2 + shift];</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; vst2q_u8(out_y.ptr() + output_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y(), yyvec);</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; uint8x16_t uvec;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; uvec = vhaddq_u8(ta_top.val[1 - shift], ta_bottom.val[1 - shift]);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; vst1q_u8(out_u.ptr(), uvec);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; uint8x16_t vvec;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; vvec = vhaddq_u8(ta_top.val[3 - shift], ta_bottom.val[3 - shift]);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; vst1q_u8(out_v.ptr(), vvec);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; },</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; in, out_y, out_u, out_v);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008546<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008547<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
8548</div><!-- fragment -->
8549</div>
8550</div>
8551<a class="anchor" id="a8ee13904a3f5ba84b28cb53d956021d7"></a>
8552<div class="memitem">
8553<div class="memproto">
8554 <table class="memname">
8555 <tr>
8556 <td class="memname">void arm_compute::colorconvert_yuyv_to_nv12 </td>
8557 <td>(</td>
8558 <td class="paramtype">const void *__restrict&#160;</td>
8559 <td class="paramname"><em>input</em>, </td>
8560 </tr>
8561 <tr>
8562 <td class="paramkey"></td>
8563 <td></td>
8564 <td class="paramtype">void *__restrict&#160;</td>
8565 <td class="paramname"><em>output</em>, </td>
8566 </tr>
8567 <tr>
8568 <td class="paramkey"></td>
8569 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008570 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008571 <td class="paramname"><em>win</em>&#160;</td>
8572 </tr>
8573 <tr>
8574 <td></td>
8575 <td>)</td>
8576 <td></td><td></td>
8577 </tr>
8578 </table>
8579</div><div class="memdoc">
8580
8581<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00502">502</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8582
Anthony Barbier06ea0482018-02-22 15:45:35 +00008583<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_window_8h_source.xhtml#l00043">Window::DimX</a>, <a class="el" href="_window_8h_source.xhtml#l00045">Window::DimY</a>, <a class="el" href="_window_8h_source.xhtml#l00090">Window::Dimension::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00184">Iterator::ptr()</a>, <a class="el" href="_window_8inl_source.xhtml#l00041">Window::set()</a>, <a class="el" href="_window_8h_source.xhtml#l00085">Window::Dimension::start()</a>, <a class="el" href="_window_8h_source.xhtml#l00095">Window::Dimension::step()</a>, <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00136">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00145">Window::y()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008584<div class="fragment"><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;{</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; win.validate();</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span>IMultiImage *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; constexpr <span class="keyword">auto</span> shift = yuyv ? 0 : 1;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="comment">// NV12&#39;s UV&#39;s width and height are subsampled</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; Window win_uv(win);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; win_uv.set(Window::DimX, Window::Dimension(win_uv.x().start() / 2, win_uv.x().end() / 2, win_uv.x().step() / 2));</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; win_uv.set(Window::DimY, Window::Dimension(win_uv.y().start() / 2, win_uv.y().end() / 2, 1));</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; win_uv.validate();</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; Iterator in(input_ptr, win);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; Iterator out_y(output_ptr-&gt;plane(0), win);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; Iterator out_uv(output_ptr-&gt;plane(1), win_uv);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; {</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_top = vld4q_u8(in.ptr());</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta_bottom = vld4q_u8(in.ptr() + input_ptr-&gt;info()-&gt;strides_in_bytes().y());</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="comment">//ta.val[0] = Y0 Y2 Y4 Y6 ...</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="comment">//ta.val[1] = U0 U2 U4 U6 ...</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="comment">//ta.val[2] = Y1 Y3 Y5 Y7 ...</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="comment">//ta.val[3] = V0 V2 V4 V7 ...</span></div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; uint8x16x2_t yvec;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; yvec.val[0] = ta_top.val[0 + shift];</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; yvec.val[1] = ta_top.val[2 + shift];</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; vst2q_u8(out_y.ptr(), yvec);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; uint8x16x2_t yyvec;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; yyvec.val[0] = ta_bottom.val[0 + shift];</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; yyvec.val[1] = ta_bottom.val[2 + shift];</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; vst2q_u8(out_y.ptr() + output_ptr-&gt;plane(0)-&gt;info()-&gt;strides_in_bytes().y(), yyvec);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; uint8x16x2_t uvvec;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; uvvec.val[0] = vhaddq_u8(ta_top.val[1 - shift], ta_bottom.val[1 - shift]);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; uvvec.val[1] = vhaddq_u8(ta_top.val[3 - shift], ta_bottom.val[3 - shift]);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; vst2q_u8(out_uv.ptr(), uvvec);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; },</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; in, out_y, out_uv);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008585<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008586<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
8587</div><!-- fragment -->
8588</div>
8589</div>
8590<a class="anchor" id="a3c22c0d3494660b72b4fc04fec76f92d"></a>
8591<div class="memitem">
8592<div class="memproto">
8593 <table class="memname">
8594 <tr>
8595 <td class="memname">void arm_compute::colorconvert_yuyv_to_rgb </td>
8596 <td>(</td>
8597 <td class="paramtype">const void *__restrict&#160;</td>
8598 <td class="paramname"><em>input</em>, </td>
8599 </tr>
8600 <tr>
8601 <td class="paramkey"></td>
8602 <td></td>
8603 <td class="paramtype">void *__restrict&#160;</td>
8604 <td class="paramname"><em>output</em>, </td>
8605 </tr>
8606 <tr>
8607 <td class="paramkey"></td>
8608 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008609 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008610 <td class="paramname"><em>win</em>&#160;</td>
8611 </tr>
8612 <tr>
8613 <td></td>
8614 <td>)</td>
8615 <td></td><td></td>
8616 </tr>
8617 </table>
8618</div><div class="memdoc">
8619
8620<p>Definition at line <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00351">351</a> of file <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml">NEColorConvertHelper.inl</a>.</p>
8621
Jenkinsc3f34a42018-03-02 12:38:09 +00008622<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00122">execute_window_loop()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00184">Iterator::ptr()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008623<div class="fragment"><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;{</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == input);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == output);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> input_ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(input);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> output_ptr = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">IImage</a> *__restrict<span class="keyword">&gt;</span>(output);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; constexpr <span class="keyword">auto</span> element_size = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a> ? 32 : 24;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; constexpr <span class="keyword">auto</span> shift = yuyv ? 0 : 1;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; Iterator in(input_ptr, win);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; Iterator out(output_ptr, win);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">execute_window_loop</a>(win, [&amp;](<span class="keyword">const</span> Coordinates &amp; <span class="keywordtype">id</span>)</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; float32x4x4_t uvec, yvec, vvec, yyvec;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> ta = vld4q_u8(in.ptr());</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="comment">//ta.val[0] = Y0 Y2 Y4 Y6 ...</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="comment">//ta.val[1] = U0 U2 U4 U6 ...</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="comment">//ta.val[2] = Y1 Y3 Y5 Y7 ...</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="comment">//ta.val[3] = V0 V2 V4 V7 ...</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="comment">// Convert the uint8x16x4_t to float32x4x4_t</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; convert_uint8x16_to_float32x4x4(ta.val[0 + shift], yvec);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; convert_uint8x16_to_float32x4x4(ta.val[1 - shift], uvec);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; convert_uint8x16_to_float32x4x4(ta.val[2 + shift], yyvec);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; convert_uint8x16_to_float32x4x4(ta.val[3 - shift], vvec);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; yuyv_to_rgb_calculation(yvec.val[0], uvec.val[0], yyvec.val[0], vvec.val[0], out.ptr() + 0 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; yuyv_to_rgb_calculation(yvec.val[1], uvec.val[1], yyvec.val[1], vvec.val[1], out.ptr() + 1 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; yuyv_to_rgb_calculation(yvec.val[2], uvec.val[2], yyvec.val[2], vvec.val[2], out.ptr() + 2 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; yuyv_to_rgb_calculation(yvec.val[3], uvec.val[3], yyvec.val[3], vvec.val[3], out.ptr() + 3 * element_size, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; },</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; in, out);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008624<div class="ttc" id="namespacearm__compute_xhtml_a6c0dcc38187027dcb89cd9724bc5a823"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c0dcc38187027dcb89cd9724bc5a823">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &amp;w, L &amp;&amp;lambda_function, Ts &amp;&amp;...iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00122">Helpers.inl:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008625<div class="ttc" id="namespacearm__compute_xhtml_ac20902ac1ef01783c8a8d71a9bdf1100"><div class="ttname"><a href="namespacearm__compute.xhtml#ac20902ac1ef01783c8a8d71a9bdf1100">arm_compute::IImage</a></div><div class="ttdeci">ITensor IImage</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_corner_candidates_kernel_8h_source.xhtml#l00036">CPPCornerCandidatesKernel.h:36</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +00008626<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008627</div><!-- fragment -->
8628</div>
8629</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008630<a class="anchor" id="a35178800b82e07a49da5a81cdeda9a0c"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00008631<div class="memitem">
8632<div class="memproto">
8633<table class="mlabels">
8634 <tr>
8635 <td class="mlabels-left">
8636 <table class="memname">
8637 <tr>
8638 <td class="memname"><a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a> arm_compute::compute_strides </td>
8639 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008640 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008641 <td class="paramname"><em>info</em>, </td>
8642 </tr>
8643 <tr>
8644 <td class="paramkey"></td>
8645 <td></td>
8646 <td class="paramtype">T&#160;</td>
8647 <td class="paramname"><em>stride_x</em>, </td>
8648 </tr>
8649 <tr>
8650 <td class="paramkey"></td>
8651 <td></td>
8652 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
8653 <td class="paramname"><em>fixed_strides</em>&#160;</td>
8654 </tr>
8655 <tr>
8656 <td></td>
8657 <td>)</td>
8658 <td></td><td></td>
8659 </tr>
8660 </table>
8661 </td>
8662 <td class="mlabels-right">
8663<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8664 </tr>
8665</table>
8666</div><div class="memdoc">
8667
8668<p>Create a strides object based on the provided strides and the tensor dimensions. </p>
8669<dl class="params"><dt>Parameters</dt><dd>
8670 <table class="params">
8671 <tr><td class="paramdir">[in]</td><td class="paramname">info</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info object providing the shape of the tensor for unspecified strides. </td></tr>
8672 <tr><td class="paramdir">[in]</td><td class="paramname">stride_x</td><td>Stride to be used in X dimension (in bytes). </td></tr>
8673 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_strides</td><td><a class="el" href="classarm__compute_1_1_strides.xhtml" title="Strides of an item in bytes. ">Strides</a> to be used in higher dimensions starting at Y (in bytes).</td></tr>
8674 </table>
8675 </dd>
8676</dl>
8677<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_strides.xhtml" title="Strides of an item in bytes. ">Strides</a> object based on the specified strides. Missing strides are calculated based on the tensor shape and the strides of lower dimensions. </dd></dl>
8678
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008679<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00474">474</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00008680
Anthony Barbier06ea0482018-02-22 15:45:35 +00008681<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a1f4e725b8e1ea36b30e09dc08ae6961d">ITensorInfo::num_dimensions()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00074">Dimensions&lt; T &gt;::set()</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00133">arm_compute::test::validation::shape</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7c66505457d00ece3aa4b34cab80757d">ITensorInfo::tensor_shape()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00008682
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008683<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00496">compute_strides()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00008684<div class="fragment"><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keyword">const</span> TensorShape &amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a> = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.tensor_shape();</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// Create strides object</span></div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; Strides strides(stride_x, fixed_strides...);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 1 + <span class="keyword">sizeof</span>...(Ts); i &lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.num_dimensions(); ++i)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; strides.set(i, shape[i - 1] * strides[i - 1]);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">return</span> strides;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01008685<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() -&gt; set_format(Format::S16)</div></div>
8686</div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +00008687</div>
8688</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008689<a class="anchor" id="a8c35748731709927597cb5a2c227e682"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00008690<div class="memitem">
8691<div class="memproto">
8692<table class="mlabels">
8693 <tr>
8694 <td class="mlabels-left">
8695 <table class="memname">
8696 <tr>
8697 <td class="memname"><a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a> arm_compute::compute_strides </td>
8698 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008699 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008700 <td class="paramname"><em>info</em></td><td>)</td>
8701 <td></td>
8702 </tr>
8703 </table>
8704 </td>
8705 <td class="mlabels-right">
8706<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8707 </tr>
8708</table>
8709</div><div class="memdoc">
8710
8711<p>Create a strides object based on the tensor dimensions. </p>
8712<dl class="params"><dt>Parameters</dt><dd>
8713 <table class="params">
8714 <tr><td class="paramdir">[in]</td><td class="paramname">info</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info object used to compute the strides.</td></tr>
8715 </table>
8716 </dd>
8717</dl>
8718<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_strides.xhtml" title="Strides of an item in bytes. ">Strides</a> object based on element size and tensor shape. </dd></dl>
8719
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008720<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00496">496</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00008721
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008722<p>References <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00474">compute_strides()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#aa459796b5489eca8a9160cb5dcf1a103">ITensorInfo::element_size()</a>.</p>
8723<div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;{</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a8c35748731709927597cb5a2c227e682">compute_strides</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.element_size());</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
8724<div class="ttc" id="namespacearm__compute_xhtml_a8c35748731709927597cb5a2c227e682"><div class="ttname"><a href="namespacearm__compute.xhtml#a8c35748731709927597cb5a2c227e682">arm_compute::compute_strides</a></div><div class="ttdeci">Strides compute_strides(const ITensorInfo &amp;info)</div><div class="ttdoc">Create a strides object based on the tensor dimensions. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00496">Helpers.h:496</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01008725</div><!-- fragment -->
8726</div>
8727</div>
8728<a class="anchor" id="ad95e1c14c3007ca18950bf8f4c5a5c93"></a>
8729<div class="memitem">
8730<div class="memproto">
8731<table class="mlabels">
8732 <tr>
8733 <td class="mlabels-left">
8734 <table class="memname">
8735 <tr>
8736 <td class="memname">int coords2index </td>
8737 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008738 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +01008739 <td class="paramname"><em>shape</em>, </td>
8740 </tr>
8741 <tr>
8742 <td class="paramkey"></td>
8743 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008744 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +01008745 <td class="paramname"><em>coord</em>&#160;</td>
8746 </tr>
8747 <tr>
8748 <td></td>
8749 <td>)</td>
8750 <td></td><td></td>
8751 </tr>
8752 </table>
8753 </td>
8754 <td class="mlabels-right">
8755<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8756 </tr>
8757</table>
8758</div><div class="memdoc">
8759
8760<p>Convert n-dimensional coordinates into a linear index. </p>
8761<dl class="params"><dt>Parameters</dt><dd>
8762 <table class="params">
8763 <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>Shape of the n-dimensional tensor. </td></tr>
8764 <tr><td class="paramdir">[in]</td><td class="paramname">coord</td><td>N-dimensional coordinates.</td></tr>
8765 </table>
8766 </dd>
8767</dl>
8768<dl class="section return"><dt>Returns</dt><dd>linead index </dd></dl>
8769
Anthony Barbier06ea0482018-02-22 15:45:35 +00008770<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00343">343</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +01008771
Anthony Barbier06ea0482018-02-22 15:45:35 +00008772<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00297">ARM_COMPUTE_ERROR_ON_MSG</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00147">ARM_COMPUTE_UNUSED</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00153">TensorShape::total_size()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008773
Anthony Barbier06ea0482018-02-22 15:45:35 +00008774<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">permute()</a>.</p>
8775<div class="fragment"><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;{</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">int</span> num_elements = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.total_size();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(num_elements);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(num_elements == 0, <span class="stringliteral">&quot;Cannot create linear index from empty shape!&quot;</span>);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordtype">int</span> index = 0;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordtype">int</span> stride = 1;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> d = 0; d &lt; coord.num_dimensions(); ++d)</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; index += coord[d] * stride;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; stride *= <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>[d];</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> index;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008776<div class="ttc" id="core_2_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00147">Error.h:147</a></div></div>
8777<div class="ttc" id="core_2_error_8h_xhtml_a5bbdcf574d3f5e412fa6a1117911e67b"><div class="ttname"><a href="core_2_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond,...)</div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00297">Error.h:297</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008778</div><!-- fragment -->
8779</div>
8780</div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008781<a class="anchor" id="a35fb9d1dde1b976f4b7d361aabcc7c0d"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008782<div class="memitem">
8783<div class="memproto">
8784 <table class="memname">
8785 <tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008786 <td class="memname">std::unique_ptr&lt;<a class="el" href="classarm__compute_1_1_kernel.xhtml">Kernel</a>&gt; arm_compute::create_configure_kernel </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008787 <td>(</td>
8788 <td class="paramtype">T &amp;&amp;...&#160;</td>
8789 <td class="paramname"><em>args</em></td><td>)</td>
8790 <td></td>
8791 </tr>
8792 </table>
8793</div><div class="memdoc">
8794
8795<p>Helper function to create and return a unique_ptr pointed to a CL kernel object It also calls the kernel's configuration. </p>
8796<dl class="params"><dt>Parameters</dt><dd>
8797 <table class="params">
8798 <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>All the arguments that need pass to kernel's configuration.</td></tr>
8799 </table>
8800 </dd>
8801</dl>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008802<dl class="section return"><dt>Returns</dt><dd>A unique pointer pointed to a CL kernel object </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008803
Kaizen8938bd32017-09-28 14:38:23 +01008804<p>Definition at line <a class="el" href="_c_l_helpers_8h_source.xhtml#l00088">88</a> of file <a class="el" href="_c_l_helpers_8h_source.xhtml">CLHelpers.h</a>.</p>
8805
8806<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00021">caffe_data_extractor::args</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008807<div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; std::unique_ptr&lt;Kernel&gt; k = arm_compute::support::cpp14::make_unique&lt;Kernel&gt;();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; k-&gt;configure(std::forward&lt;T&gt;(<a class="code" href="namespacecaffe__data__extractor.xhtml#a8187411843a6284ffb964ef3fb9fcab3">args</a>)...);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> k;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a8187411843a6284ffb964ef3fb9fcab3"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a8187411843a6284ffb964ef3fb9fcab3">caffe_data_extractor.args</a></div><div class="ttdeci">args</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00021">caffe_data_extractor.py:21</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01008808</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +01008809</div>
8810</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008811<a class="anchor" id="a3eee3c80d78ee4574a5eed0af5af919d"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008812<div class="memitem">
8813<div class="memproto">
8814 <table class="memname">
8815 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008816 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">Status</a> arm_compute::create_error </td>
8817 <td>(</td>
8818 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05f">ErrorCode</a>&#160;</td>
8819 <td class="paramname"><em>error_code</em>, </td>
8820 </tr>
8821 <tr>
8822 <td class="paramkey"></td>
8823 <td></td>
8824 <td class="paramtype">const char *&#160;</td>
8825 <td class="paramname"><em>function</em>, </td>
8826 </tr>
8827 <tr>
8828 <td class="paramkey"></td>
8829 <td></td>
8830 <td class="paramtype">const char *&#160;</td>
8831 <td class="paramname"><em>file</em>, </td>
8832 </tr>
8833 <tr>
8834 <td class="paramkey"></td>
8835 <td></td>
8836 <td class="paramtype">const int&#160;</td>
8837 <td class="paramname"><em>line</em>, </td>
8838 </tr>
8839 <tr>
8840 <td class="paramkey"></td>
8841 <td></td>
8842 <td class="paramtype">const char *&#160;</td>
8843 <td class="paramname"><em>msg</em>, </td>
8844 </tr>
8845 <tr>
8846 <td class="paramkey"></td>
8847 <td></td>
8848 <td class="paramtype">&#160;</td>
8849 <td class="paramname"><em>...</em>&#160;</td>
8850 </tr>
8851 <tr>
8852 <td></td>
8853 <td>)</td>
8854 <td></td><td></td>
8855 </tr>
8856 </table>
8857</div><div class="memdoc">
8858
8859<p>Creates an error containing the error message. </p>
8860<dl class="params"><dt>Parameters</dt><dd>
8861 <table class="params">
8862 <tr><td class="paramdir">[in]</td><td class="paramname">error_code</td><td>Error code </td></tr>
8863 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
8864 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
8865 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
8866 <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Message to display before aborting. </td></tr>
8867 <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>Variable number of arguments of the message.</td></tr>
8868 </table>
8869 </dd>
8870</dl>
8871<dl class="section return"><dt>Returns</dt><dd>status containing the error </dd></dl>
8872
8873<p>Referenced by <a class="el" href="core_2_error_8h_source.xhtml#l00089">Status::throw_if_error()</a>.</p>
8874
8875</div>
8876</div>
8877<a class="anchor" id="a2edb6ec8bea5c26d7d802d21caf64d02"></a>
8878<div class="memitem">
8879<div class="memproto">
8880 <table class="memname">
8881 <tr>
8882 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">Status</a> arm_compute::create_error_va_list </td>
8883 <td>(</td>
8884 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a59e56af19e754a6aa26a612ebf91d05f">ErrorCode</a>&#160;</td>
8885 <td class="paramname"><em>error_code</em>, </td>
8886 </tr>
8887 <tr>
8888 <td class="paramkey"></td>
8889 <td></td>
8890 <td class="paramtype">const char *&#160;</td>
8891 <td class="paramname"><em>function</em>, </td>
8892 </tr>
8893 <tr>
8894 <td class="paramkey"></td>
8895 <td></td>
8896 <td class="paramtype">const char *&#160;</td>
8897 <td class="paramname"><em>file</em>, </td>
8898 </tr>
8899 <tr>
8900 <td class="paramkey"></td>
8901 <td></td>
8902 <td class="paramtype">const int&#160;</td>
8903 <td class="paramname"><em>line</em>, </td>
8904 </tr>
8905 <tr>
8906 <td class="paramkey"></td>
8907 <td></td>
8908 <td class="paramtype">const char *&#160;</td>
8909 <td class="paramname"><em>msg</em>, </td>
8910 </tr>
8911 <tr>
8912 <td class="paramkey"></td>
8913 <td></td>
8914 <td class="paramtype">va_list&#160;</td>
8915 <td class="paramname"><em>args</em>&#160;</td>
8916 </tr>
8917 <tr>
8918 <td></td>
8919 <td>)</td>
8920 <td></td><td></td>
8921 </tr>
8922 </table>
8923</div><div class="memdoc">
8924
8925<p>Creates an error containing the error message from variable argument list. </p>
8926<dl class="params"><dt>Parameters</dt><dd>
8927 <table class="params">
8928 <tr><td class="paramdir">[in]</td><td class="paramname">error_code</td><td>Error code </td></tr>
8929 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
8930 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
8931 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
8932 <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Message to display before aborting. </td></tr>
8933 <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>Variable argument list of the message.</td></tr>
8934 </table>
8935 </dd>
8936</dl>
8937<dl class="section return"><dt>Returns</dt><dd>status containing the error </dd></dl>
8938
8939<p>Referenced by <a class="el" href="core_2_error_8h_source.xhtml#l00089">Status::throw_if_error()</a>.</p>
8940
8941</div>
8942</div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008943<a class="anchor" id="abc72c95941485d8a068fa38372308574"></a>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008944<div class="memitem">
8945<div class="memproto">
8946 <table class="memname">
8947 <tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008948 <td class="memname">std::unique_ptr&lt;<a class="el" href="classarm__compute_1_1_kernel.xhtml">Kernel</a>&gt; arm_compute::create_kernel </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008949 <td>(</td>
8950 <td class="paramname"></td><td>)</td>
8951 <td></td>
8952 </tr>
8953 </table>
8954</div><div class="memdoc">
8955
8956<p>Helper function to create and return a unique_ptr pointed to a CL kernel object. </p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008957<dl class="section return"><dt>Returns</dt><dd>A unique pointer pointed to a CL kernel object </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008958
Kaizen8938bd32017-09-28 14:38:23 +01008959<p>Definition at line <a class="el" href="_c_l_helpers_8h_source.xhtml#l00100">100</a> of file <a class="el" href="_c_l_helpers_8h_source.xhtml">CLHelpers.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008960
8961<p>References <a class="el" href="namespacearm__compute.xhtml#a7f65c0c2b3ad21f427f6bb25f411e0ce">fp16_support()</a>, <a class="el" href="namespacearm__compute.xhtml#a4a351d5c39dec88af98a671da1c43fd6">get_arch_from_target()</a>, <a class="el" href="namespacearm__compute.xhtml#a54c9b94a266f8065b64f001c47815b68">get_cl_version()</a>, <a class="el" href="namespacearm__compute.xhtml#a9d0143bdde8255313aae6ac020dd629c">get_target_from_device()</a>, and <a class="el" href="namespacearm__compute.xhtml#aa2499c7ccf5b1636360a9ac6cc52a67b">non_uniform_workgroup_support()</a>.</p>
8962
Anthony Barbierf45d5a92018-01-24 16:23:15 +00008963<p>Referenced by <a class="el" href="_g_c_kernel_library_8h_source.xhtml#l00233">GCKernelLibrary::set_context()</a>, and <a class="el" href="_c_l_kernel_library_8h_source.xhtml#l00260">CLKernelLibrary::set_device()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008964<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::unique_ptr&lt;Kernel&gt; k = arm_compute::support::cpp14::make_unique&lt;Kernel&gt;();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> k;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +01008965</div>
8966</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008967<a class="anchor" id="abb7e0f23a4f2e63f39433f158dad47ab"></a>
8968<div class="memitem">
8969<div class="memproto">
8970<table class="mlabels">
8971 <tr>
8972 <td class="mlabels-left">
8973 <table class="memname">
8974 <tr>
8975 <td class="memname">size_t arm_compute::data_size_from_type </td>
8976 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008977 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008978 <td class="paramname"><em>data_type</em></td><td>)</td>
8979 <td></td>
8980 </tr>
8981 </table>
8982 </td>
8983 <td class="mlabels-right">
8984<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8985 </tr>
8986</table>
8987</div><div class="memdoc">
8988
8989<p>The size in bytes of the data type. </p>
8990<dl class="params"><dt>Parameters</dt><dd>
8991 <table class="params">
8992 <tr><td class="paramdir">[in]</td><td class="paramname">data_type</td><td>Input data type</td></tr>
8993 </table>
8994 </dd>
8995</dl>
8996<dl class="section return"><dt>Returns</dt><dd>The size in bytes of the data type </dd></dl>
8997
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008998<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00089">89</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00008999
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009000<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">F64</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">QASYMM8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf">QS32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">S64</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">S8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">SIZET</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">U64</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009001
Anthony Barbierf45d5a92018-01-24 16:23:15 +00009002<p>Referenced by <a class="el" href="validation_2_c_l_2_activation_layer_8cpp_source.xhtml#l00114">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_tensor_info_8h_source.xhtml#l00243">TensorInfo::element_size()</a>, <a class="el" href="_alex_net_network_8h_source.xhtml#l00057">AlexNetNetwork&lt; ITensorType, TensorType, SubTensorType, arm_compute::test::Accessor, ActivationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, FullyConnectedLayerFunction, NormalizationLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::init()</a>, <a class="el" href="_g_e_m_m_transpose1x_w_fixture_8h_source.xhtml#l00050">GEMMTranspose1xWValidationFixedPointFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="validation_2fixtures_2_fully_connected_layer_fixture_8h_source.xhtml#l00056">FullyConnectedLayerValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T, run_interleave &gt;::setup()</a>, and <a class="el" href="validation_2fixtures_2_convolution_layer_fixture_8h_source.xhtml#l00057">ConvolutionValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009003<div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">switch</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">case</span> DataType::U8:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">case</span> DataType::S8:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> DataType::QASYMM8:</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">case</span> DataType::U16:</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">case</span> DataType::S16:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">case</span> DataType::U32:</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">case</span> DataType::S32:</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">case</span> DataType::QS32:</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">case</span> DataType::F64:</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">case</span> DataType::U64:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">case</span> DataType::S64:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> 8;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">case</span> DataType::SIZET:</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(size_t);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Invalid data type&quot;</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +00009004<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009005</div><!-- fragment -->
9006</div>
9007</div>
9008<a class="anchor" id="a01adc12d8e07c06cdb0f03c56a455bf3"></a>
9009<div class="memitem">
9010<div class="memproto">
9011<table class="mlabels">
9012 <tr>
9013 <td class="mlabels-left">
9014 <table class="memname">
9015 <tr>
9016 <td class="memname">std::pair&lt;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&gt; arm_compute::data_type_for_convolution </td>
9017 <td>(</td>
9018 <td class="paramtype">const int16_t *&#160;</td>
9019 <td class="paramname"><em>conv_col</em>, </td>
9020 </tr>
9021 <tr>
9022 <td class="paramkey"></td>
9023 <td></td>
9024 <td class="paramtype">const int16_t *&#160;</td>
9025 <td class="paramname"><em>conv_row</em>, </td>
9026 </tr>
9027 <tr>
9028 <td class="paramkey"></td>
9029 <td></td>
9030 <td class="paramtype">size_t&#160;</td>
9031 <td class="paramname"><em>size</em>&#160;</td>
9032 </tr>
9033 <tr>
9034 <td></td>
9035 <td>)</td>
9036 <td></td><td></td>
9037 </tr>
9038 </table>
9039 </td>
9040 <td class="mlabels-right">
9041<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9042 </tr>
9043</table>
9044</div><div class="memdoc">
9045
9046<p>Calculate accurary required by the horizontal and vertical convolution computations. </p>
9047<dl class="params"><dt>Parameters</dt><dd>
9048 <table class="params">
9049 <tr><td class="paramdir">[in]</td><td class="paramname">conv_col</td><td>Pointer to the vertical vector of the separated convolution filter </td></tr>
9050 <tr><td class="paramdir">[in]</td><td class="paramname">conv_row</td><td>Pointer to the horizontal vector of the convolution filter </td></tr>
9051 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Number of elements per vector of the separated matrix</td></tr>
9052 </table>
9053 </dd>
9054</dl>
9055<dl class="section return"><dt>Returns</dt><dd>The return type is a pair. The first element of the pair is the biggest data type needed for the first stage. The second element of the pair is the biggest data type needed for the second stage. </dd></dl>
9056
Anthony Barbier06ea0482018-02-22 15:45:35 +00009057<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00728">728</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009058
Kaizen8938bd32017-09-28 14:38:23 +01009059<p>References <a class="el" href="accumulate_8cl_source.xhtml#l00041">accumulate()</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, and <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00009060<div class="fragment"><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;{</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> first_stage = DataType::UNKNOWN;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> second_stage = DataType::UNKNOWN;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keyword">auto</span> gez = [](<span class="keyword">const</span> int16_t &amp;v)</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordflow">return</span> v &gt;= 0;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; };</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keyword">auto</span> accu_neg = [](<span class="keyword">const</span> <span class="keywordtype">int</span> &amp;first, <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;second)</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; {</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">return</span> first + (second &lt; 0 ? second : 0);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; };</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">auto</span> accu_pos = [](<span class="keyword">const</span> <span class="keywordtype">int</span> &amp;first, <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;second)</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">return</span> first + (second &gt; 0 ? second : 0);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; };</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> only_positive_coefficients = std::all_of(conv_row, conv_row + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, gez) &amp;&amp; std::all_of(conv_col, conv_col + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, gez);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">if</span>(only_positive_coefficients)</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; {</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_row_value = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(conv_row, conv_row + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, 0) * UINT8_MAX;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_value = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(conv_col, conv_col + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, 0) * max_row_value;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; first_stage = (max_row_value &lt;= UINT16_MAX) ? DataType::U16 : DataType::S32;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; second_stage = (max_value &lt;= UINT16_MAX) ? DataType::U16 : DataType::S32;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; }</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; {</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> min_row_value = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(conv_row, conv_row + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, 0, accu_neg) * UINT8_MAX;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_row_value = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(conv_row, conv_row + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, 0, accu_pos) * UINT8_MAX;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> neg_coeffs_sum = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(conv_col, conv_col + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, 0, accu_neg);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> pos_coeffs_sum = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(conv_col, conv_col + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, 0, accu_pos);</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> min_value = neg_coeffs_sum * max_row_value + pos_coeffs_sum * min_row_value;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_value = neg_coeffs_sum * min_row_value + pos_coeffs_sum * max_row_value;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; first_stage = ((INT16_MIN &lt;= min_row_value) &amp;&amp; (max_row_value &lt;= INT16_MAX)) ? DataType::S16 : DataType::S32;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; second_stage = ((INT16_MIN &lt;= min_value) &amp;&amp; (max_value &lt;= INT16_MAX)) ? DataType::S16 : DataType::S32;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; }</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">return</span> std::make_pair(first_stage, second_stage);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;}</div><div class="ttc" id="hwc_8hpp_xhtml_ab2c6b258f02add8fdf4cfc7c371dd772"><div class="ttname"><a href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a></div><div class="ttdeci">uint32_t size</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00286">hwc.hpp:286</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01009061<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00009062<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#l00072">Types.h:72</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009063</div><!-- fragment -->
9064</div>
9065</div>
9066<a class="anchor" id="a3992df9e8723140a53e49dc194d89ef5"></a>
9067<div class="memitem">
9068<div class="memproto">
9069<table class="mlabels">
9070 <tr>
9071 <td class="mlabels-left">
9072 <table class="memname">
9073 <tr>
9074 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> arm_compute::data_type_for_convolution_matrix </td>
9075 <td>(</td>
9076 <td class="paramtype">const int16_t *&#160;</td>
9077 <td class="paramname"><em>conv</em>, </td>
9078 </tr>
9079 <tr>
9080 <td class="paramkey"></td>
9081 <td></td>
9082 <td class="paramtype">size_t&#160;</td>
9083 <td class="paramname"><em>size</em>&#160;</td>
9084 </tr>
9085 <tr>
9086 <td></td>
9087 <td>)</td>
9088 <td></td><td></td>
9089 </tr>
9090 </table>
9091 </td>
9092 <td class="mlabels-right">
9093<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9094 </tr>
9095</table>
9096</div><div class="memdoc">
9097
9098<p>Calculate the accuracy required by the squared convolution calculation. </p>
9099<dl class="params"><dt>Parameters</dt><dd>
9100 <table class="params">
9101 <tr><td class="paramdir">[in]</td><td class="paramname">conv</td><td>Pointer to the squared convolution matrix </td></tr>
9102 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The total size of the convolution matrix</td></tr>
9103 </table>
9104 </dd>
9105</dl>
9106<dl class="section return"><dt>Returns</dt><dd>The return is the biggest data type needed to do the convolution </dd></dl>
9107
Anthony Barbier06ea0482018-02-22 15:45:35 +00009108<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">784</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009109
Jenkinsc3f34a42018-03-02 12:38:09 +00009110<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, <a class="el" href="accumulate_8cl_source.xhtml#l00041">accumulate()</a>, <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">arm_compute::test::validation::b</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00133">arm_compute::test::validation::border_mode</a>, <a class="el" href="namespacearm__compute.xhtml#afa7962c747457714d0944af80cb07058">calculate_same_pad()</a>, <a class="el" href="namespacearm__compute.xhtml#a5c7b26988083a67a91cd3e7962f38521">deconvolution_output_dimensions()</a>, <a class="el" href="namespacearm__compute.xhtml#a7d57332eb91a8735f173556b3caf6236">deconvolution_output_shape()</a>, <a class="el" href="namespacearm__compute.xhtml#a532fb45c0261724a4c2e755cfd3a44e6">lower_string()</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#a3d3d8bf7b86db4d7d4ebfe5b332f41b3">scaled_dimensions()</a>, <a class="el" href="namespacearm__compute.xhtml#ac955c978e18cc9bf6daea31f13076fba">string_from_activation_func()</a>, <a class="el" href="namespacearm__compute.xhtml#abd15add5c6c7de5c8205ce236875aadd">string_from_border_mode()</a>, <a class="el" href="namespacearm__compute.xhtml#a106c203dd6af234d38452ea0ee7b2ddc">string_from_channel()</a>, <a class="el" href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">string_from_data_type()</a>, <a class="el" href="namespacearm__compute.xhtml#a9c92c867fc64454545668d87b20979eb">string_from_format()</a>, <a class="el" href="namespacearm__compute.xhtml#ade34f5e72f050fd3665f3294dfb15850">string_from_interpolation_policy()</a>, <a class="el" href="namespacearm__compute.xhtml#a018795ab2489d17309e158ff5c060ab1">string_from_matrix_pattern()</a>, <a class="el" href="namespacearm__compute.xhtml#a14831547f57ecf5f0deef888ad41ad30">string_from_non_linear_filter_function()</a>, <a class="el" href="namespacearm__compute.xhtml#afb5698af5404d5d11e3516c87b6e7041">string_from_norm_type()</a>, <a class="el" href="namespacearm__compute.xhtml#a84a03e85d2c40bf54ec8cdd5e3715c58">string_from_pooling_type()</a>, <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>.</p>
9111<div class="fragment"><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;{</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keyword">auto</span> gez = [](<span class="keyword">const</span> int16_t v)</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; {</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">return</span> v &gt;= 0;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; };</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> only_positive_coefficients = std::all_of(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a> + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, gez);</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">if</span>(only_positive_coefficients)</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_conv_value = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a> + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, 0) * UINT8_MAX;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">if</span>(max_conv_value &lt;= UINT16_MAX)</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; {</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">return</span> DataType::U16;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; }</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; {</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">return</span> DataType::S32;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; }</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; }</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> min_value = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a> + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, 0, [](<span class="keywordtype">int</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <span class="keywordtype">int</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>)</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; {</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">return</span> b &lt; 0 ? a + b : <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; })</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; * UINT8_MAX;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_value = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a> + <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>, 0, [](<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b)</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">return</span> b &gt; 0 ? a + b : <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; })</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; * UINT8_MAX;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">if</span>((INT16_MIN &lt;= min_value) &amp;&amp; (INT16_MAX &gt;= max_value))</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; {</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">return</span> DataType::S16;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; }</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">return</span> DataType::S32;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; }</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00009112<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_adf88bb8e946175c496fb362aa458128b"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">arm_compute::test::validation::conv</a></div><div class="ttdeci">int16_t conv[25]</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00140">Convolution.cpp:140</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00009113<div class="ttc" id="hwc_8hpp_xhtml_ab2c6b258f02add8fdf4cfc7c371dd772"><div class="ttname"><a href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a></div><div class="ttdeci">uint32_t size</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00286">hwc.hpp:286</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +01009114<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>
Jenkinsc3f34a42018-03-02 12:38:09 +00009115<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009116</div><!-- fragment -->
9117</div>
9118</div>
9119<a class="anchor" id="a59846ef5ca75cd81cdb7e8a1ce08f9db"></a>
9120<div class="memitem">
9121<div class="memproto">
9122<table class="mlabels">
9123 <tr>
9124 <td class="mlabels-left">
9125 <table class="memname">
9126 <tr>
9127 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> arm_compute::data_type_from_format </td>
9128 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009129 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009130 <td class="paramname"><em>format</em></td><td>)</td>
9131 <td></td>
9132 </tr>
9133 </table>
9134 </td>
9135 <td class="mlabels-right">
9136<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9137 </tr>
9138</table>
9139</div><div class="memdoc">
9140
9141<p>Return the data type used by a given single-planar pixel format. </p>
9142<dl class="params"><dt>Parameters</dt><dd>
9143 <table class="params">
9144 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format</td></tr>
9145 </table>
9146 </dd>
9147</dl>
9148<dl class="section return"><dt>Returns</dt><dd>The size in bytes of the pixel format </dd></dl>
9149
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009150<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00195">195</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009151
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009152<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009153
Anthony Barbierf45d5a92018-01-24 16:23:15 +00009154<p>Referenced by <a class="el" href="validation_2_c_l_2_harris_corners_8cpp_source.xhtml#l00058">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00282">SimpleTensor&lt; T &gt;::data_type()</a>, <a class="el" href="validation_2fixtures_2_magnitude_fixture_8h_source.xhtml#l00046">MagnitudeValidationFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="_phase_fixture_8h_source.xhtml#l00046">PhaseValidationFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="_derivative_fixture_8h_source.xhtml#l00047">DerivativeValidationFixture&lt; TensorType, AccessorType, FunctionType, T, U &gt;::setup()</a>, <a class="el" href="_h_o_g_descriptor_fixture_8h_source.xhtml#l00048">HOGDescriptorValidationFixture&lt; TensorType, HOGType, AccessorType, FunctionType, T, U &gt;::setup()</a>, <a class="el" href="_scharr_fixture_8h_source.xhtml#l00070">ScharrValidationFixture&lt; TensorType, AccessorType, FunctionType, T, U &gt;::setup()</a>, and <a class="el" href="_sobel_fixture_8h_source.xhtml#l00105">SobelValidationFixture&lt; TensorType, AccessorType, FunctionType, T, U &gt;::setup()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009155<div class="fragment"><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">switch</span>(format)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> Format::UV88:</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> DataType::U8;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> DataType::U16;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> DataType::S16;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> DataType::U32;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> DataType::S32;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> DataType::F16;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> DataType::F32;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">//Doesn&#39;t make sense for planar formats:</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported data_type for given format&quot;</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> DataType::UNKNOWN;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009156</div><!-- fragment -->
9157</div>
9158</div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00009159<a class="anchor" id="a5c7b26988083a67a91cd3e7962f38521"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009160<div class="memitem">
9161<div class="memproto">
9162 <table class="memname">
9163 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009164 <td class="memname">const std::pair&lt;unsigned int, unsigned int&gt; arm_compute::deconvolution_output_dimensions </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009165 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009166 <td class="paramtype">unsigned int&#160;</td>
9167 <td class="paramname"><em>in_width</em>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009168 </tr>
9169 <tr>
9170 <td class="paramkey"></td>
9171 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009172 <td class="paramtype">unsigned int&#160;</td>
9173 <td class="paramname"><em>in_height</em>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009174 </tr>
9175 <tr>
9176 <td class="paramkey"></td>
9177 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009178 <td class="paramtype">unsigned int&#160;</td>
9179 <td class="paramname"><em>kernel_width</em>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009180 </tr>
9181 <tr>
9182 <td class="paramkey"></td>
9183 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009184 <td class="paramtype">unsigned int&#160;</td>
9185 <td class="paramname"><em>kernel_height</em>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009186 </tr>
9187 <tr>
9188 <td class="paramkey"></td>
9189 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009190 <td class="paramtype">unsigned int&#160;</td>
9191 <td class="paramname"><em>padx</em>, </td>
9192 </tr>
9193 <tr>
9194 <td class="paramkey"></td>
9195 <td></td>
9196 <td class="paramtype">unsigned int&#160;</td>
9197 <td class="paramname"><em>pady</em>, </td>
9198 </tr>
9199 <tr>
9200 <td class="paramkey"></td>
9201 <td></td>
9202 <td class="paramtype">unsigned int&#160;</td>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00009203 <td class="paramname"><em>inner_border_right</em>, </td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009204 </tr>
9205 <tr>
9206 <td class="paramkey"></td>
9207 <td></td>
9208 <td class="paramtype">unsigned int&#160;</td>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00009209 <td class="paramname"><em>inner_border_top</em>, </td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009210 </tr>
9211 <tr>
9212 <td class="paramkey"></td>
9213 <td></td>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00009214 <td class="paramtype">unsigned int&#160;</td>
9215 <td class="paramname"><em>stride_x</em>, </td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009216 </tr>
9217 <tr>
9218 <td class="paramkey"></td>
9219 <td></td>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00009220 <td class="paramtype">unsigned int&#160;</td>
9221 <td class="paramname"><em>stride_y</em>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009222 </tr>
9223 <tr>
9224 <td></td>
9225 <td>)</td>
9226 <td></td><td></td>
9227 </tr>
9228 </table>
9229</div><div class="memdoc">
9230
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009231<p>Returns expected width and height of the deconvolution's output tensor. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009232<dl class="params"><dt>Parameters</dt><dd>
9233 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009234 <tr><td class="paramdir">[in]</td><td class="paramname">in_width</td><td>Width of input tensor (Number of columns) </td></tr>
9235 <tr><td class="paramdir">[in]</td><td class="paramname">in_height</td><td>Height of input tensor (Number of rows) </td></tr>
9236 <tr><td class="paramdir">[in]</td><td class="paramname">kernel_width</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> width. </td></tr>
9237 <tr><td class="paramdir">[in]</td><td class="paramname">kernel_height</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> height. </td></tr>
9238 <tr><td class="paramdir">[in]</td><td class="paramname">padx</td><td>X axis padding. </td></tr>
9239 <tr><td class="paramdir">[in]</td><td class="paramname">pady</td><td>Y axis padding. </td></tr>
Anthony Barbierf45d5a92018-01-24 16:23:15 +00009240 <tr><td class="paramdir">[in]</td><td class="paramname">inner_border_right</td><td>The number of zeros added to right edge of the input. </td></tr>
9241 <tr><td class="paramdir">[in]</td><td class="paramname">inner_border_top</td><td>The number of zeros added to top edge of the input. </td></tr>
9242 <tr><td class="paramdir">[in]</td><td class="paramname">stride_x</td><td>X axis input stride. </td></tr>
9243 <tr><td class="paramdir">[in]</td><td class="paramname">stride_y</td><td>Y axis input stride.</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009244 </table>
9245 </dd>
9246</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009247<dl class="section return"><dt>Returns</dt><dd>A pair with the new width in the first position and the new height in the second. </dd></dl>
9248
Anthony Barbier06ea0482018-02-22 15:45:35 +00009249<p>Referenced by <a class="el" href="_c_l_2_deconvolution_layer_8cpp_source.xhtml#l00062">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>, and <a class="el" href="_deconvolution_layer_fixture_8h_source.xhtml#l00141">DeconvolutionValidationFixture&lt; TensorType, AccessorType, FunctionType, T, kernel_size_x, kernel_size_y &gt;::setup()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009250
9251</div>
9252</div>
9253<a class="anchor" id="a7d57332eb91a8735f173556b3caf6236"></a>
9254<div class="memitem">
9255<div class="memproto">
9256 <table class="memname">
9257 <tr>
9258 <td class="memname"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> arm_compute::deconvolution_output_shape </td>
9259 <td>(</td>
9260 <td class="paramtype">const std::pair&lt; unsigned int, unsigned int &gt; &amp;&#160;</td>
9261 <td class="paramname"><em>out_dims</em>, </td>
9262 </tr>
9263 <tr>
9264 <td class="paramkey"></td>
9265 <td></td>
9266 <td class="paramtype"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>&#160;</td>
9267 <td class="paramname"><em>input</em>, </td>
9268 </tr>
9269 <tr>
9270 <td class="paramkey"></td>
9271 <td></td>
9272 <td class="paramtype"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>&#160;</td>
9273 <td class="paramname"><em>weights</em>&#160;</td>
9274 </tr>
9275 <tr>
9276 <td></td>
9277 <td>)</td>
9278 <td></td><td></td>
9279 </tr>
9280 </table>
9281</div><div class="memdoc">
9282
9283<p>Returns expected shape for the deconvolution output tensor. </p>
9284<dl class="params"><dt>Parameters</dt><dd>
9285 <table class="params">
9286 <tr><td class="paramdir">[in]</td><td class="paramname">out_dims</td><td>widht and height of the output tensor, these values can be obtained with the function deconvolution_output_dimensions. </td></tr>
9287 <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>Shape of the input tensor. </td></tr>
9288 <tr><td class="paramdir">[in]</td><td class="paramname">weights</td><td>Shape of the weights tensor.</td></tr>
9289 </table>
9290 </dd>
9291</dl>
9292<dl class="section return"><dt>Returns</dt><dd>Deconvolution output tensor shape. </dd></dl>
9293
Anthony Barbier06ea0482018-02-22 15:45:35 +00009294<p>Referenced by <a class="el" href="_c_l_2_deconvolution_layer_8cpp_source.xhtml#l00062">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>, and <a class="el" href="_deconvolution_layer_fixture_8h_source.xhtml#l00141">DeconvolutionValidationFixture&lt; TensorType, AccessorType, FunctionType, T, kernel_size_x, kernel_size_y &gt;::setup()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009295
9296</div>
9297</div>
Kaizen8938bd32017-09-28 14:38:23 +01009298<a class="anchor" id="ad656a27ce8a507e31096ca45683ba9a5"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009299<div class="memitem">
9300<div class="memproto">
9301<table class="mlabels">
9302 <tr>
9303 <td class="mlabels-left">
9304 <table class="memname">
9305 <tr>
Kaizen8938bd32017-09-28 14:38:23 +01009306 <td class="memname">T arm_compute::delta_bilinear_c1 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009307 <td>(</td>
Kaizen8938bd32017-09-28 14:38:23 +01009308 <td class="paramtype">const T *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009309 <td class="paramname"><em>pixel_ptr</em>, </td>
9310 </tr>
9311 <tr>
9312 <td class="paramkey"></td>
9313 <td></td>
9314 <td class="paramtype">size_t&#160;</td>
9315 <td class="paramname"><em>stride</em>, </td>
9316 </tr>
9317 <tr>
9318 <td class="paramkey"></td>
9319 <td></td>
9320 <td class="paramtype">float&#160;</td>
9321 <td class="paramname"><em>dx</em>, </td>
9322 </tr>
9323 <tr>
9324 <td class="paramkey"></td>
9325 <td></td>
9326 <td class="paramtype">float&#160;</td>
9327 <td class="paramname"><em>dy</em>&#160;</td>
9328 </tr>
9329 <tr>
9330 <td></td>
9331 <td>)</td>
9332 <td></td><td></td>
9333 </tr>
9334 </table>
9335 </td>
9336 <td class="mlabels-right">
9337<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9338 </tr>
9339</table>
9340</div><div class="memdoc">
9341
9342<p>Computes bilinear interpolation using the pointer to the top-left pixel and the pixel's distance between the real coordinates and the smallest following integer coordinates. </p>
Kaizen8938bd32017-09-28 14:38:23 +01009343<p>Input must be in single channel format.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009344<dl class="params"><dt>Parameters</dt><dd>
9345 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +01009346 <tr><td class="paramdir">[in]</td><td class="paramname">pixel_ptr</td><td>Pointer to the top-left pixel value of a single channel input. </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009347 <tr><td class="paramdir">[in]</td><td class="paramname">stride</td><td>Stride to access the bottom-left and bottom-right pixel values </td></tr>
9348 <tr><td class="paramdir">[in]</td><td class="paramname">dx</td><td>Pixel's distance between the X real coordinate and the smallest X following integer </td></tr>
9349 <tr><td class="paramdir">[in]</td><td class="paramname">dy</td><td>Pixel's distance between the Y real coordinate and the smallest Y following integer</td></tr>
9350 </table>
9351 </dd>
9352</dl>
9353<dl class="section note"><dt>Note</dt><dd>dx and dy must be in the range [0, 1.0]</dd></dl>
9354<dl class="section return"><dt>Returns</dt><dd>The bilinear interpolated pixel value </dd></dl>
9355
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009356<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00100">100</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009357
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009358<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009359
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009360<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00183">pixel_bilinear_c1()</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00210">pixel_bilinear_c1_clamp()</a>.</p>
9361<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(pixel_ptr == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dx1 = 1.0f - dx;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dy1 = 1.0f - dy;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">const</span> T a00 = *pixel_ptr;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">const</span> T a01 = *(pixel_ptr + 1);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">const</span> T a10 = *(pixel_ptr + stride);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">const</span> T a11 = *(pixel_ptr + stride + 1);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w1 = dx1 * dy1;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w2 = dx * dy1;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w3 = dx1 * dy;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w4 = dx * dy;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(a00 * w1 + a01 * w2 + a10 * w3 + a11 * w4);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
9362</div><!-- fragment -->
9363</div>
9364</div>
9365<a class="anchor" id="a6174495b626531de015ae2b810859287"></a>
9366<div class="memitem">
9367<div class="memproto">
9368<table class="mlabels">
9369 <tr>
9370 <td class="mlabels-left">
9371 <table class="memname">
9372 <tr>
9373 <td class="memname">T arm_compute::delta_linear_c1_x </td>
9374 <td>(</td>
9375 <td class="paramtype">const T *&#160;</td>
9376 <td class="paramname"><em>pixel_ptr</em>, </td>
9377 </tr>
9378 <tr>
9379 <td class="paramkey"></td>
9380 <td></td>
9381 <td class="paramtype">float&#160;</td>
9382 <td class="paramname"><em>dx</em>&#160;</td>
9383 </tr>
9384 <tr>
9385 <td></td>
9386 <td>)</td>
9387 <td></td><td></td>
9388 </tr>
9389 </table>
9390 </td>
9391 <td class="mlabels-right">
9392<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9393 </tr>
9394</table>
9395</div><div class="memdoc">
9396
9397<p>Computes linear interpolation using the pointer to the left pixel and the pixel's distance between the real coordinates and the smallest following integer coordinates. </p>
9398<p>Input must be in single channel format.</p>
9399<dl class="params"><dt>Parameters</dt><dd>
9400 <table class="params">
9401 <tr><td class="paramdir">[in]</td><td class="paramname">pixel_ptr</td><td>Pointer to the left pixel value of a single channel input. </td></tr>
9402 <tr><td class="paramdir">[in]</td><td class="paramname">dx</td><td>Pixel's distance between the X real coordinate and the smallest X following integer</td></tr>
9403 </table>
9404 </dd>
9405</dl>
9406<dl class="section note"><dt>Note</dt><dd>dx must be in the range [0, 1.0]</dd></dl>
9407<dl class="section return"><dt>Returns</dt><dd>The linear interpolated pixel value </dd></dl>
9408
9409<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00157">157</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
9410
9411<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>.</p>
9412
9413<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00210">pixel_bilinear_c1_clamp()</a>.</p>
9414<div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(pixel_ptr == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> T a00 = *pixel_ptr;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">const</span> T a01 = *(pixel_ptr + 1);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dx1 = 1.0f - dx;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w1 = dx1;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w2 = dx;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(a00 * w1 + a01 * w2);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
9415</div><!-- fragment -->
9416</div>
9417</div>
9418<a class="anchor" id="ad5fa8bacf824e9538014bfb0dcdaab52"></a>
9419<div class="memitem">
9420<div class="memproto">
9421<table class="mlabels">
9422 <tr>
9423 <td class="mlabels-left">
9424 <table class="memname">
9425 <tr>
9426 <td class="memname">T arm_compute::delta_linear_c1_y </td>
9427 <td>(</td>
9428 <td class="paramtype">const T *&#160;</td>
9429 <td class="paramname"><em>pixel_ptr</em>, </td>
9430 </tr>
9431 <tr>
9432 <td class="paramkey"></td>
9433 <td></td>
9434 <td class="paramtype">size_t&#160;</td>
9435 <td class="paramname"><em>stride</em>, </td>
9436 </tr>
9437 <tr>
9438 <td class="paramkey"></td>
9439 <td></td>
9440 <td class="paramtype">float&#160;</td>
9441 <td class="paramname"><em>dy</em>&#160;</td>
9442 </tr>
9443 <tr>
9444 <td></td>
9445 <td>)</td>
9446 <td></td><td></td>
9447 </tr>
9448 </table>
9449 </td>
9450 <td class="mlabels-right">
9451<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9452 </tr>
9453</table>
9454</div><div class="memdoc">
9455
9456<p>Computes linear interpolation using the pointer to the top pixel and the pixel's distance between the real coordinates and the smallest following integer coordinates. </p>
9457<p>Input must be in single channel format.</p>
9458<dl class="params"><dt>Parameters</dt><dd>
9459 <table class="params">
9460 <tr><td class="paramdir">[in]</td><td class="paramname">pixel_ptr</td><td>Pointer to the top pixel value of a single channel input. </td></tr>
9461 <tr><td class="paramdir">[in]</td><td class="paramname">stride</td><td>Stride to access the bottom pixel value </td></tr>
9462 <tr><td class="paramdir">[in]</td><td class="paramname">dy</td><td>Pixel's distance between the Y real coordinate and the smallest Y following integer</td></tr>
9463 </table>
9464 </dd>
9465</dl>
9466<dl class="section note"><dt>Note</dt><dd>dy must be in the range [0, 1.0]</dd></dl>
9467<dl class="section return"><dt>Returns</dt><dd>The linear interpolated pixel value </dd></dl>
9468
9469<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00132">132</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
9470
9471<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>.</p>
9472
9473<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00210">pixel_bilinear_c1_clamp()</a>.</p>
9474<div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(pixel_ptr == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dy1 = 1.0f - dy;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> T a00 = *pixel_ptr;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">const</span> T a10 = *(pixel_ptr + stride);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w1 = dy1;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w3 = dy;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(a00 * w1 + a10 * w3);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009475</div><!-- fragment -->
9476</div>
9477</div>
9478<a class="anchor" id="a12705a88669cb9fb90451ebe0db53c41"></a>
9479<div class="memitem">
9480<div class="memproto">
9481 <table class="memname">
9482 <tr>
9483 <td class="memname">constexpr auto arm_compute::DIV_CEIL </td>
9484 <td>(</td>
9485 <td class="paramtype">S&#160;</td>
9486 <td class="paramname"><em>val</em>, </td>
9487 </tr>
9488 <tr>
9489 <td class="paramkey"></td>
9490 <td></td>
9491 <td class="paramtype">T&#160;</td>
9492 <td class="paramname"><em>m</em>&#160;</td>
9493 </tr>
9494 <tr>
9495 <td></td>
9496 <td>)</td>
9497 <td></td><td> -&gt; decltype((val + m - 1) / m)
9498</td>
9499 </tr>
9500 </table>
9501</div><div class="memdoc">
9502
9503<p>Calculate the rounded up quotient of val / m. </p>
9504
Anthony Barbier06ea0482018-02-22 15:45:35 +00009505<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00045">45</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009506
Anthony Barbier06ea0482018-02-22 15:45:35 +00009507<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00052">ceil_to_multiple()</a>.</p>
9508<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> (val + m - 1) / m;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +00009509</div>
9510</div>
9511<a class="anchor" id="a34b06c0cd94808a77b697e79880b84b0"></a>
9512<div class="memitem">
9513<div class="memproto">
9514<table class="mlabels">
9515 <tr>
9516 <td class="mlabels-left">
9517 <table class="memname">
9518 <tr>
9519 <td class="memname">size_t arm_compute::element_size_from_data_type </td>
9520 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009521 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009522 <td class="paramname"><em>dt</em></td><td>)</td>
9523 <td></td>
9524 </tr>
9525 </table>
9526 </td>
9527 <td class="mlabels-right">
9528<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9529 </tr>
9530</table>
9531</div><div class="memdoc">
9532
9533<p>The size in bytes of the data type. </p>
9534<dl class="params"><dt>Parameters</dt><dd>
9535 <table class="params">
9536 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Input data type</td></tr>
9537 </table>
9538 </dd>
9539</dl>
9540<dl class="section return"><dt>Returns</dt><dd>The size in bytes of the data type </dd></dl>
9541
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009542<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00164">164</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009543
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009544<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">QASYMM8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf">QS32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">S8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009545
Anthony Barbier06ea0482018-02-22 15:45:35 +00009546<p>Referenced by <a class="el" href="_simple_tensor_8h_source.xhtml#l00251">SimpleTensor&lt; T &gt;::element_size()</a>, <a class="el" href="_validate_8h_source.xhtml#l00897">error_on_value_not_representable_in_fixed_point()</a>, and <a class="el" href="_validation_8cpp_source.xhtml#l00181">arm_compute::test::validation::validate()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009547<div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">switch</span>(dt)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">case</span> DataType::S8:</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">case</span> DataType::U8:</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">case</span> DataType::QASYMM8:</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">case</span> DataType::U16:</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">case</span> DataType::S16:</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">case</span> DataType::U32:</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> DataType::S32:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">case</span> DataType::QS32:</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Undefined element size for given data type&quot;</span>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009548</div><!-- fragment -->
9549</div>
9550</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009551<a class="anchor" id="ab36bc98bdbf6c4d7bee0cb099513c806"></a>
9552<div class="memitem">
9553<div class="memproto">
9554 <table class="memname">
9555 <tr>
9556 <td class="memname">void arm_compute::enqueue </td>
9557 <td>(</td>
9558 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_g_c_kernel.xhtml">IGCKernel</a> &amp;&#160;</td>
9559 <td class="paramname"><em>kernel</em>, </td>
9560 </tr>
9561 <tr>
9562 <td class="paramkey"></td>
9563 <td></td>
9564 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
9565 <td class="paramname"><em>window</em>, </td>
9566 </tr>
9567 <tr>
9568 <td class="paramkey"></td>
9569 <td></td>
9570 <td class="paramtype">const <a class="el" href="classarm__compute_1_1gles_1_1_n_d_range.xhtml">gles::NDRange</a> &amp;&#160;</td>
9571 <td class="paramname"><em>lws</em> = <code><a class="el" href="classarm__compute_1_1gles_1_1_n_d_range.xhtml">gles::NDRange</a>(1U,&#160;1U,&#160;1U)</code>&#160;</td>
9572 </tr>
9573 <tr>
9574 <td></td>
9575 <td>)</td>
9576 <td></td><td></td>
9577 </tr>
9578 </table>
9579</div><div class="memdoc">
9580
9581<p>Add the kernel to the command queue with the given window. </p>
9582<dl class="section note"><dt>Note</dt><dd>Depending on the size of the window, this might translate into several jobs being enqueued.</dd>
9583<dd>
9584If kernel-&gt;kernel() is empty then the function will return without adding anything to the queue.</dd></dl>
9585<dl class="params"><dt>Parameters</dt><dd>
9586 <table class="params">
9587 <tr><td class="paramdir">[in]</td><td class="paramname">kernel</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> to enqueue </td></tr>
9588 <tr><td class="paramdir">[in]</td><td class="paramname">window</td><td><a class="el" href="classarm__compute_1_1_window.xhtml" title="Describe a multidimensional execution window. ">Window</a> the kernel has to process. </td></tr>
9589 <tr><td class="paramdir">[in]</td><td class="paramname">lws</td><td>Local workgroup size requested, by default (1, 1, 1)</td></tr>
9590 </table>
9591 </dd>
9592</dl>
9593<dl class="section note"><dt>Note</dt><dd>If any dimension of the lws is greater than the global workgroup size then no lws will be passed. </dd></dl>
9594
9595</div>
9596</div>
Kaizen8938bd32017-09-28 14:38:23 +01009597<a class="anchor" id="a0f68015f649819f1102aa73d7b88b29e"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00009598<div class="memitem">
9599<div class="memproto">
9600 <table class="memname">
9601 <tr>
9602 <td class="memname">void arm_compute::enqueue </td>
9603 <td>(</td>
9604 <td class="paramtype">cl::CommandQueue &amp;&#160;</td>
9605 <td class="paramname"><em>queue</em>, </td>
9606 </tr>
9607 <tr>
9608 <td class="paramkey"></td>
9609 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009610 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml">ICLKernel</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009611 <td class="paramname"><em>kernel</em>, </td>
9612 </tr>
9613 <tr>
9614 <td class="paramkey"></td>
9615 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009616 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009617 <td class="paramname"><em>window</em>, </td>
9618 </tr>
9619 <tr>
9620 <td class="paramkey"></td>
9621 <td></td>
9622 <td class="paramtype">const cl::NDRange &amp;&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009623 <td class="paramname"><em>lws_hint</em> = <code><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#aebe2d25607545d31f2b1ace6d60a81da">CLKernelLibrary::get</a>().default_ndrange()</code>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009624 </tr>
9625 <tr>
9626 <td></td>
9627 <td>)</td>
9628 <td></td><td></td>
9629 </tr>
9630 </table>
9631</div><div class="memdoc">
9632
9633<p>Add the kernel to the command queue with the given window. </p>
9634<dl class="section note"><dt>Note</dt><dd>Depending on the size of the window, this might translate into several jobs being enqueued.</dd>
9635<dd>
9636If kernel-&gt;kernel() is empty then the function will return without adding anything to the queue.</dd></dl>
9637<dl class="params"><dt>Parameters</dt><dd>
9638 <table class="params">
9639 <tr><td class="paramdir">[in,out]</td><td class="paramname">queue</td><td>OpenCL command queue. </td></tr>
9640 <tr><td class="paramdir">[in]</td><td class="paramname">kernel</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> to enqueue </td></tr>
9641 <tr><td class="paramdir">[in]</td><td class="paramname">window</td><td><a class="el" href="classarm__compute_1_1_window.xhtml" title="Describe a multidimensional execution window. ">Window</a> the kernel has to process. </td></tr>
Kaizenbf8b01d2017-10-12 14:26:51 +01009642 <tr><td class="paramdir">[in]</td><td class="paramname">lws_hint</td><td>Local workgroup size requested, by default (128,1).</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00009643 </table>
9644 </dd>
9645</dl>
9646<dl class="section note"><dt>Note</dt><dd>If any dimension of the lws is greater than the global workgroup size then no lws will be passed. </dd></dl>
9647
Anthony Barbier06ea0482018-02-22 15:45:35 +00009648<p>Referenced by <a class="el" href="_i_c_l_kernel_8h_source.xhtml#l00235">ICLKernel::get_target()</a>, and <a class="el" href="_i_g_c_kernel_8h_source.xhtml#l00103">IGCKernel::set_lws_hint()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009649
Anthony Barbier871448e2017-03-24 14:54:29 +00009650</div>
9651</div>
9652<a class="anchor" id="a568b0fbfa3d903099d9c9f7b6acf188d"></a>
9653<div class="memitem">
9654<div class="memproto">
9655 <table class="memname">
9656 <tr>
9657 <td class="memname">void arm_compute::error </td>
9658 <td>(</td>
9659 <td class="paramtype">const char *&#160;</td>
9660 <td class="paramname"><em>function</em>, </td>
9661 </tr>
9662 <tr>
9663 <td class="paramkey"></td>
9664 <td></td>
9665 <td class="paramtype">const char *&#160;</td>
9666 <td class="paramname"><em>file</em>, </td>
9667 </tr>
9668 <tr>
9669 <td class="paramkey"></td>
9670 <td></td>
9671 <td class="paramtype">const int&#160;</td>
9672 <td class="paramname"><em>line</em>, </td>
9673 </tr>
9674 <tr>
9675 <td class="paramkey"></td>
9676 <td></td>
9677 <td class="paramtype">const char *&#160;</td>
9678 <td class="paramname"><em>msg</em>, </td>
9679 </tr>
9680 <tr>
9681 <td class="paramkey"></td>
9682 <td></td>
9683 <td class="paramtype">&#160;</td>
9684 <td class="paramname"><em>...</em>&#160;</td>
9685 </tr>
9686 <tr>
9687 <td></td>
9688 <td>)</td>
9689 <td></td><td></td>
9690 </tr>
9691 </table>
9692</div><div class="memdoc">
9693
9694<p>Print an error message then throw an std::runtime_error. </p>
9695<dl class="params"><dt>Parameters</dt><dd>
9696 <table class="params">
9697 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
9698 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
9699 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
9700 <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Message to display before aborting. </td></tr>
9701 <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>Variable number of arguments of the message. </td></tr>
9702 </table>
9703 </dd>
9704</dl>
9705
Anthony Barbier06ea0482018-02-22 15:45:35 +00009706<p>Referenced by <a class="el" href="_framework_8cpp_source.xhtml#l00253">Framework::error_on_missing_assets()</a>, <a class="el" href="main_8cpp_source.xhtml#l00063">main()</a>, and <a class="el" href="core_2_error_8h_source.xhtml#l00089">Status::throw_if_error()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +01009707
Anthony Barbier871448e2017-03-24 14:54:29 +00009708</div>
9709</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009710<a class="anchor" id="ae7fcde610527b8fa3d9acdf398187962"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00009711<div class="memitem">
9712<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009713<table class="mlabels">
9714 <tr>
9715 <td class="mlabels-left">
Anthony Barbier871448e2017-03-24 14:54:29 +00009716 <table class="memname">
9717 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009718 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_channel_not_in </td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009719 <td>(</td>
9720 <td class="paramtype">const char *&#160;</td>
9721 <td class="paramname"><em>function</em>, </td>
9722 </tr>
9723 <tr>
9724 <td class="paramkey"></td>
9725 <td></td>
9726 <td class="paramtype">const char *&#160;</td>
9727 <td class="paramname"><em>file</em>, </td>
9728 </tr>
9729 <tr>
9730 <td class="paramkey"></td>
9731 <td></td>
9732 <td class="paramtype">const int&#160;</td>
9733 <td class="paramname"><em>line</em>, </td>
9734 </tr>
9735 <tr>
9736 <td class="paramkey"></td>
9737 <td></td>
9738 <td class="paramtype">T&#160;</td>
9739 <td class="paramname"><em>cn</em>, </td>
9740 </tr>
9741 <tr>
9742 <td class="paramkey"></td>
9743 <td></td>
9744 <td class="paramtype">T &amp;&amp;&#160;</td>
9745 <td class="paramname"><em>channel</em>, </td>
9746 </tr>
9747 <tr>
9748 <td class="paramkey"></td>
9749 <td></td>
9750 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
9751 <td class="paramname"><em>channels</em>&#160;</td>
9752 </tr>
9753 <tr>
9754 <td></td>
9755 <td>)</td>
9756 <td></td><td></td>
9757 </tr>
9758 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009759 </td>
9760 <td class="mlabels-right">
9761<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9762 </tr>
9763</table>
Anthony Barbier871448e2017-03-24 14:54:29 +00009764</div><div class="memdoc">
9765
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009766<p>Return an error if the channel is not in channels. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009767<dl class="params"><dt>Parameters</dt><dd>
9768 <table class="params">
9769 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
9770 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
9771 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
9772 <tr><td class="paramdir">[in]</td><td class="paramname">cn</td><td>Input channel </td></tr>
9773 <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>First channel allowed. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009774 <tr><td class="paramdir">[in]</td><td class="paramname">channels</td><td>(Optional) Further allowed channels.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00009775 </table>
9776 </dd>
9777</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009778<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +00009779
Anthony Barbier06ea0482018-02-22 15:45:35 +00009780<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00734">734</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009781
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009782<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, and <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00009783<div class="fragment"><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;{</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(cn == Channel::UNKNOWN, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keyword">const</span> std::array&lt;T, <span class="keyword">sizeof</span>...(Ts)&gt; channels_array{ { std::forward&lt;Ts&gt;(channels)... } };</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(channel != cn &amp;&amp; std::none_of(channels_array.begin(), channels_array.end(), [&amp;](<span class="keyword">const</span> T &amp; f)</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">return</span> f == cn;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }),</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009784<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009785</div><!-- fragment -->
9786</div>
9787</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009788<a class="anchor" id="aa2af31a4685af1fb5ecef784c5e96da0"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00009789<div class="memitem">
9790<div class="memproto">
9791 <table class="memname">
9792 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009793 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_channel_not_in_known_format </td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009794 <td>(</td>
9795 <td class="paramtype">const char *&#160;</td>
9796 <td class="paramname"><em>function</em>, </td>
9797 </tr>
9798 <tr>
9799 <td class="paramkey"></td>
9800 <td></td>
9801 <td class="paramtype">const char *&#160;</td>
9802 <td class="paramname"><em>file</em>, </td>
9803 </tr>
9804 <tr>
9805 <td class="paramkey"></td>
9806 <td></td>
9807 <td class="paramtype">const int&#160;</td>
9808 <td class="paramname"><em>line</em>, </td>
9809 </tr>
9810 <tr>
9811 <td class="paramkey"></td>
9812 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009813 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009814 <td class="paramname"><em>fmt</em>, </td>
9815 </tr>
9816 <tr>
9817 <td class="paramkey"></td>
9818 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009819 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009820 <td class="paramname"><em>cn</em>&#160;</td>
9821 </tr>
9822 <tr>
9823 <td></td>
9824 <td>)</td>
9825 <td></td><td></td>
9826 </tr>
9827 </table>
9828</div><div class="memdoc">
9829
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009830<p>Return an error if the channel is not in format. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009831<dl class="params"><dt>Parameters</dt><dd>
9832 <table class="params">
9833 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
9834 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
9835 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
9836 <tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>Input channel </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009837 <tr><td class="paramdir">[in]</td><td class="paramname">cn</td><td>First channel allowed.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00009838 </table>
9839 </dd>
9840</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009841<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +00009842
9843</div>
9844</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009845<a class="anchor" id="a454f8112fcca60b99883f19ff43daf9f"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00009846<div class="memitem">
9847<div class="memproto">
9848 <table class="memname">
9849 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009850 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_coordinates_dimensions_gte </td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009851 <td>(</td>
9852 <td class="paramtype">const char *&#160;</td>
9853 <td class="paramname"><em>function</em>, </td>
9854 </tr>
9855 <tr>
9856 <td class="paramkey"></td>
9857 <td></td>
9858 <td class="paramtype">const char *&#160;</td>
9859 <td class="paramname"><em>file</em>, </td>
9860 </tr>
9861 <tr>
9862 <td class="paramkey"></td>
9863 <td></td>
9864 <td class="paramtype">const int&#160;</td>
9865 <td class="paramname"><em>line</em>, </td>
9866 </tr>
9867 <tr>
9868 <td class="paramkey"></td>
9869 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009870 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009871 <td class="paramname"><em>pos</em>, </td>
9872 </tr>
9873 <tr>
9874 <td class="paramkey"></td>
9875 <td></td>
9876 <td class="paramtype">unsigned int&#160;</td>
9877 <td class="paramname"><em>max_dim</em>&#160;</td>
9878 </tr>
9879 <tr>
9880 <td></td>
9881 <td>)</td>
9882 <td></td><td></td>
9883 </tr>
9884 </table>
9885</div><div class="memdoc">
9886
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009887<p>Return an error if the passed coordinates have too many dimensions. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009888<p>The coordinates have too many dimensions if any of the dimensions greater or equal to max_dim is different from 0.</p>
9889<dl class="params"><dt>Parameters</dt><dd>
9890 <table class="params">
9891 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
9892 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
9893 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
9894 <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td><a class="el" href="classarm__compute_1_1_coordinates.xhtml" title="Coordinates of an item. ">Coordinates</a> to validate </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009895 <tr><td class="paramdir">[in]</td><td class="paramname">max_dim</td><td>Maximum number of dimensions allowed.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00009896 </table>
9897 </dd>
9898</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009899<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +00009900
9901</div>
9902</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009903<a class="anchor" id="a499a45039b9bba66384504843d5823d4"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00009904<div class="memitem">
9905<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009906<table class="mlabels">
9907 <tr>
9908 <td class="mlabels-left">
Anthony Barbier871448e2017-03-24 14:54:29 +00009909 <table class="memname">
9910 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009911 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_data_type_channel_not_in </td>
Anthony Barbier871448e2017-03-24 14:54:29 +00009912 <td>(</td>
9913 <td class="paramtype">const char *&#160;</td>
9914 <td class="paramname"><em>function</em>, </td>
9915 </tr>
9916 <tr>
9917 <td class="paramkey"></td>
9918 <td></td>
9919 <td class="paramtype">const char *&#160;</td>
9920 <td class="paramname"><em>file</em>, </td>
9921 </tr>
9922 <tr>
9923 <td class="paramkey"></td>
9924 <td></td>
9925 <td class="paramtype">const int&#160;</td>
9926 <td class="paramname"><em>line</em>, </td>
9927 </tr>
9928 <tr>
9929 <td class="paramkey"></td>
9930 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009931 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
9932 <td class="paramname"><em>tensor_info</em>, </td>
9933 </tr>
9934 <tr>
9935 <td class="paramkey"></td>
9936 <td></td>
9937 <td class="paramtype">size_t&#160;</td>
9938 <td class="paramname"><em>num_channels</em>, </td>
9939 </tr>
9940 <tr>
9941 <td class="paramkey"></td>
9942 <td></td>
9943 <td class="paramtype">T &amp;&amp;&#160;</td>
9944 <td class="paramname"><em>dt</em>, </td>
9945 </tr>
9946 <tr>
9947 <td class="paramkey"></td>
9948 <td></td>
9949 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
9950 <td class="paramname"><em>dts</em>&#160;</td>
9951 </tr>
9952 <tr>
9953 <td></td>
9954 <td>)</td>
9955 <td></td><td></td>
9956 </tr>
9957 </table>
9958 </td>
9959 <td class="mlabels-right">
9960<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9961 </tr>
9962</table>
9963</div><div class="memdoc">
9964
9965<p>Return an error if the data type or the number of channels of the passed tensor info does not match any of the data types and number of channels provided. </p>
9966<dl class="params"><dt>Parameters</dt><dd>
9967 <table class="params">
9968 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
9969 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
9970 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
9971 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info to validate. </td></tr>
9972 <tr><td class="paramdir">[in]</td><td class="paramname">num_channels</td><td>Number of channels to check </td></tr>
9973 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>First data type allowed. </td></tr>
9974 <tr><td class="paramdir">[in]</td><td class="paramname">dts</td><td>(Optional) Further allowed data types.</td></tr>
9975 </table>
9976 </dd>
9977</dl>
9978<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
9979
Anthony Barbier06ea0482018-02-22 15:45:35 +00009980<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00673">673</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009981
Anthony Barbier06ea0482018-02-22 15:45:35 +00009982<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00620">error_on_data_type_not_in()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ad7829ae79223ab87f9da4c0bd7d229ba">ITensorInfo::num_channels()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009983
Anthony Barbier06ea0482018-02-22 15:45:35 +00009984<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00694">error_on_data_type_channel_not_in()</a>.</p>
9985<div class="fragment"><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;{</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#a774ec1fdc7bd1e7973c866d13734bc21">arm_compute::error_on_data_type_not_in</a>(<span class="keyword">function</span>, file, line, tensor_info, std::forward&lt;T&gt;(dt), std::forward&lt;Ts&gt;(dts)...));</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> tensor_nc = tensor_info-&gt;num_channels();</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(tensor_nc != num_channels, <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Number of channels %d. Required number of channels %d&quot;</span>, tensor_nc, num_channels);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009986<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00009987<div class="ttc" id="namespacearm__compute_xhtml_a774ec1fdc7bd1e7973c866d13734bc21"><div class="ttname"><a href="namespacearm__compute.xhtml#a774ec1fdc7bd1e7973c866d13734bc21">arm_compute::error_on_data_type_not_in</a></div><div class="ttdeci">arm_compute::Status error_on_data_type_not_in(const char *function, const char *file, const int line, const ITensorInfo *tensor_info, T &amp;&amp;dt, Ts &amp;&amp;...dts)</div><div class="ttdoc">Return an error if the data type of the passed tensor info does not match any of the data types provi...</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00620">Validate.h:620</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009988<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
9989</div><!-- fragment -->
9990</div>
9991</div>
9992<a class="anchor" id="ad3137e73dbd78133d25751abd84540d8"></a>
9993<div class="memitem">
9994<div class="memproto">
9995<table class="mlabels">
9996 <tr>
9997 <td class="mlabels-left">
9998 <table class="memname">
9999 <tr>
10000 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_data_type_channel_not_in </td>
10001 <td>(</td>
10002 <td class="paramtype">const char *&#160;</td>
10003 <td class="paramname"><em>function</em>, </td>
10004 </tr>
10005 <tr>
10006 <td class="paramkey"></td>
10007 <td></td>
10008 <td class="paramtype">const char *&#160;</td>
10009 <td class="paramname"><em>file</em>, </td>
10010 </tr>
10011 <tr>
10012 <td class="paramkey"></td>
10013 <td></td>
10014 <td class="paramtype">const int&#160;</td>
10015 <td class="paramname"><em>line</em>, </td>
10016 </tr>
10017 <tr>
10018 <td class="paramkey"></td>
10019 <td></td>
10020 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010021 <td class="paramname"><em>tensor</em>, </td>
10022 </tr>
10023 <tr>
10024 <td class="paramkey"></td>
10025 <td></td>
10026 <td class="paramtype">size_t&#160;</td>
10027 <td class="paramname"><em>num_channels</em>, </td>
10028 </tr>
10029 <tr>
10030 <td class="paramkey"></td>
10031 <td></td>
10032 <td class="paramtype">T &amp;&amp;&#160;</td>
10033 <td class="paramname"><em>dt</em>, </td>
10034 </tr>
10035 <tr>
10036 <td class="paramkey"></td>
10037 <td></td>
10038 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
10039 <td class="paramname"><em>dts</em>&#160;</td>
10040 </tr>
10041 <tr>
10042 <td></td>
10043 <td>)</td>
10044 <td></td><td></td>
10045 </tr>
10046 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010047 </td>
10048 <td class="mlabels-right">
10049<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10050 </tr>
10051</table>
Anthony Barbier871448e2017-03-24 14:54:29 +000010052</div><div class="memdoc">
10053
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010054<p>Return an error if the data type or the number of channels of the passed tensor does not match any of the data types and number of channels provided. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +000010055<dl class="params"><dt>Parameters</dt><dd>
10056 <table class="params">
10057 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10058 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10059 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10060 <tr><td class="paramdir">[in]</td><td class="paramname">tensor</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> to validate. </td></tr>
10061 <tr><td class="paramdir">[in]</td><td class="paramname">num_channels</td><td>Number of channels to check </td></tr>
10062 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>First data type allowed. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010063 <tr><td class="paramdir">[in]</td><td class="paramname">dts</td><td>(Optional) Further allowed data types.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000010064 </table>
10065 </dd>
10066</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010067<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000010068
Anthony Barbier06ea0482018-02-22 15:45:35 +000010069<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00694">694</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000010070
Anthony Barbier06ea0482018-02-22 15:45:35 +000010071<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00673">error_on_data_type_channel_not_in()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
10072<div class="fragment"><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;{</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(<a class="code" href="namespacearm__compute.xhtml#ad3137e73dbd78133d25751abd84540d8">error_on_data_type_channel_not_in</a>(<span class="keyword">function</span>, file, line, tensor-&gt;info(), num_channels, std::forward&lt;T&gt;(dt), std::forward&lt;Ts&gt;(dts)...));</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010073<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000010074<div class="ttc" id="namespacearm__compute_xhtml_ad3137e73dbd78133d25751abd84540d8"><div class="ttname"><a href="namespacearm__compute.xhtml#ad3137e73dbd78133d25751abd84540d8">arm_compute::error_on_data_type_channel_not_in</a></div><div class="ttdeci">arm_compute::Status error_on_data_type_channel_not_in(const char *function, const char *file, const int line, const ITensor *tensor, size_t num_channels, T &amp;&amp;dt, Ts &amp;&amp;...dts)</div><div class="ttdoc">Return an error if the data type or the number of channels of the passed tensor does not match any of...</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00694">Validate.h:694</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010075<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000010076</div><!-- fragment -->
10077</div>
10078</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010079<a class="anchor" id="a774ec1fdc7bd1e7973c866d13734bc21"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000010080<div class="memitem">
10081<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010082<table class="mlabels">
10083 <tr>
10084 <td class="mlabels-left">
Anthony Barbier871448e2017-03-24 14:54:29 +000010085 <table class="memname">
10086 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010087 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_data_type_not_in </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010088 <td>(</td>
10089 <td class="paramtype">const char *&#160;</td>
10090 <td class="paramname"><em>function</em>, </td>
10091 </tr>
10092 <tr>
10093 <td class="paramkey"></td>
10094 <td></td>
10095 <td class="paramtype">const char *&#160;</td>
10096 <td class="paramname"><em>file</em>, </td>
10097 </tr>
10098 <tr>
10099 <td class="paramkey"></td>
10100 <td></td>
10101 <td class="paramtype">const int&#160;</td>
10102 <td class="paramname"><em>line</em>, </td>
10103 </tr>
10104 <tr>
10105 <td class="paramkey"></td>
10106 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010107 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
10108 <td class="paramname"><em>tensor_info</em>, </td>
10109 </tr>
10110 <tr>
10111 <td class="paramkey"></td>
10112 <td></td>
10113 <td class="paramtype">T &amp;&amp;&#160;</td>
10114 <td class="paramname"><em>dt</em>, </td>
10115 </tr>
10116 <tr>
10117 <td class="paramkey"></td>
10118 <td></td>
10119 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
10120 <td class="paramname"><em>dts</em>&#160;</td>
10121 </tr>
10122 <tr>
10123 <td></td>
10124 <td>)</td>
10125 <td></td><td></td>
10126 </tr>
10127 </table>
10128 </td>
10129 <td class="mlabels-right">
10130<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10131 </tr>
10132</table>
10133</div><div class="memdoc">
10134
10135<p>Return an error if the data type of the passed tensor info does not match any of the data types provided. </p>
10136<dl class="params"><dt>Parameters</dt><dd>
10137 <table class="params">
10138 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10139 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10140 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10141 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info to validate. </td></tr>
10142 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>First data type allowed. </td></tr>
10143 <tr><td class="paramdir">[in]</td><td class="paramname">dts</td><td>(Optional) Further allowed data types.</td></tr>
10144 </table>
10145 </dd>
10146</dl>
10147<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
10148
Anthony Barbier06ea0482018-02-22 15:45:35 +000010149<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00620">620</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010150
10151<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, <a class="el" href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">string_from_data_type()</a>, and <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
10152
Anthony Barbier06ea0482018-02-22 15:45:35 +000010153<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00673">error_on_data_type_channel_not_in()</a>, and <a class="el" href="_validate_8h_source.xhtml#l00648">error_on_data_type_not_in()</a>.</p>
10154<div class="fragment"><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;{</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor_info == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;tensor_dt = tensor_info-&gt;data_type(); <span class="comment">//NOLINT</span></div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor_dt == DataType::UNKNOWN, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keyword">const</span> std::array&lt;T, <span class="keyword">sizeof</span>...(Ts)&gt; dts_array{ { std::forward&lt;Ts&gt;(dts)... } };</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(tensor_dt != dt &amp;&amp; std::none_of(dts_array.begin(), dts_array.end(), [&amp;](<span class="keyword">const</span> T &amp; d)</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">return</span> d == tensor_dt;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }),</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;ITensor data type %s not supported by this kernel&quot;</span>, <a class="code" href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">string_from_data_type</a>(tensor_dt).c_str());</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_aefa1d9648995e5eccc693c690e27aa88"><div class="ttname"><a href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">arm_compute::string_from_data_type</a></div><div class="ttdeci">const std::string &amp; string_from_data_type(DataType dt)</div><div class="ttdoc">Convert a data type identity into a string. </div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010155<div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
10156<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
10157<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000010158<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#l00072">Types.h:72</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010159</div><!-- fragment -->
10160</div>
10161</div>
10162<a class="anchor" id="a4ae0ca8176fce8caa48601dc8324ca97"></a>
10163<div class="memitem">
10164<div class="memproto">
10165<table class="mlabels">
10166 <tr>
10167 <td class="mlabels-left">
10168 <table class="memname">
10169 <tr>
10170 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_data_type_not_in </td>
10171 <td>(</td>
10172 <td class="paramtype">const char *&#160;</td>
10173 <td class="paramname"><em>function</em>, </td>
10174 </tr>
10175 <tr>
10176 <td class="paramkey"></td>
10177 <td></td>
10178 <td class="paramtype">const char *&#160;</td>
10179 <td class="paramname"><em>file</em>, </td>
10180 </tr>
10181 <tr>
10182 <td class="paramkey"></td>
10183 <td></td>
10184 <td class="paramtype">const int&#160;</td>
10185 <td class="paramname"><em>line</em>, </td>
10186 </tr>
10187 <tr>
10188 <td class="paramkey"></td>
10189 <td></td>
10190 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010191 <td class="paramname"><em>tensor</em>, </td>
10192 </tr>
10193 <tr>
10194 <td class="paramkey"></td>
10195 <td></td>
10196 <td class="paramtype">T &amp;&amp;&#160;</td>
10197 <td class="paramname"><em>dt</em>, </td>
10198 </tr>
10199 <tr>
10200 <td class="paramkey"></td>
10201 <td></td>
10202 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
10203 <td class="paramname"><em>dts</em>&#160;</td>
10204 </tr>
10205 <tr>
10206 <td></td>
10207 <td>)</td>
10208 <td></td><td></td>
10209 </tr>
10210 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010211 </td>
10212 <td class="mlabels-right">
10213<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10214 </tr>
10215</table>
Anthony Barbier871448e2017-03-24 14:54:29 +000010216</div><div class="memdoc">
10217
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010218<p>Return an error if the data type of the passed tensor does not match any of the data types provided. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +000010219<dl class="params"><dt>Parameters</dt><dd>
10220 <table class="params">
10221 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10222 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10223 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10224 <tr><td class="paramdir">[in]</td><td class="paramname">tensor</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> to validate. </td></tr>
10225 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>First data type allowed. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010226 <tr><td class="paramdir">[in]</td><td class="paramname">dts</td><td>(Optional) Further allowed data types.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000010227 </table>
10228 </dd>
10229</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010230<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000010231
Anthony Barbier06ea0482018-02-22 15:45:35 +000010232<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00648">648</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000010233
Anthony Barbier06ea0482018-02-22 15:45:35 +000010234<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00620">error_on_data_type_not_in()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
10235<div class="fragment"><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;{</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#a774ec1fdc7bd1e7973c866d13734bc21">arm_compute::error_on_data_type_not_in</a>(<span class="keyword">function</span>, file, line, tensor-&gt;info(), std::forward&lt;T&gt;(dt), std::forward&lt;Ts&gt;(dts)...));</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010236<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000010237<div class="ttc" id="namespacearm__compute_xhtml_a774ec1fdc7bd1e7973c866d13734bc21"><div class="ttname"><a href="namespacearm__compute.xhtml#a774ec1fdc7bd1e7973c866d13734bc21">arm_compute::error_on_data_type_not_in</a></div><div class="ttdeci">arm_compute::Status error_on_data_type_not_in(const char *function, const char *file, const int line, const ITensorInfo *tensor_info, T &amp;&amp;dt, Ts &amp;&amp;...dts)</div><div class="ttdoc">Return an error if the data type of the passed tensor info does not match any of the data types provi...</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00620">Validate.h:620</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010238<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000010239</div><!-- fragment -->
10240</div>
10241</div>
10242<a class="anchor" id="a0b360558b516e256f0af005a164c674e"></a>
10243<div class="memitem">
10244<div class="memproto">
10245 <table class="memname">
10246 <tr>
10247 <td class="memname">void arm_compute::error_on_format_not_in </td>
10248 <td>(</td>
10249 <td class="paramtype">const char *&#160;</td>
10250 <td class="paramname"><em>function</em>, </td>
10251 </tr>
10252 <tr>
10253 <td class="paramkey"></td>
10254 <td></td>
10255 <td class="paramtype">const char *&#160;</td>
10256 <td class="paramname"><em>file</em>, </td>
10257 </tr>
10258 <tr>
10259 <td class="paramkey"></td>
10260 <td></td>
10261 <td class="paramtype">const int&#160;</td>
10262 <td class="paramname"><em>line</em>, </td>
10263 </tr>
10264 <tr>
10265 <td class="paramkey"></td>
10266 <td></td>
10267 <td class="paramtype">const T *&#160;</td>
10268 <td class="paramname"><em>object</em>, </td>
10269 </tr>
10270 <tr>
10271 <td class="paramkey"></td>
10272 <td></td>
10273 <td class="paramtype">F &amp;&amp;&#160;</td>
10274 <td class="paramname"><em>format</em>, </td>
10275 </tr>
10276 <tr>
10277 <td class="paramkey"></td>
10278 <td></td>
10279 <td class="paramtype">Fs &amp;&amp;...&#160;</td>
10280 <td class="paramname"><em>formats</em>&#160;</td>
10281 </tr>
10282 <tr>
10283 <td></td>
10284 <td>)</td>
10285 <td></td><td></td>
10286 </tr>
10287 </table>
10288</div><div class="memdoc">
10289
10290<p>Throw an error if the format of the passed tensor/multi-image does not match any of the formats provided. </p>
10291<dl class="params"><dt>Parameters</dt><dd>
10292 <table class="params">
10293 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10294 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10295 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10296 <tr><td class="paramdir">[in]</td><td class="paramname">object</td><td>Tensor/multi-image to validate. </td></tr>
10297 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>First format allowed. </td></tr>
10298 <tr><td class="paramdir">[in]</td><td class="paramname">formats</td><td>(Optional) Further allowed formats. </td></tr>
10299 </table>
10300 </dd>
10301</dl>
10302
Anthony Barbier06ea0482018-02-22 15:45:35 +000010303<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00587">587</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000010304
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010305<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00316">ARM_COMPUTE_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00298">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00147">ARM_COMPUTE_UNUSED</a>, <a class="el" href="namespacearm__compute.xhtml#a9c92c867fc64454545668d87b20979eb">string_from_format()</a>, and <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000010306<div class="fragment"><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;{</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_ERROR_ON_LOC</a>(<span class="keywordtype">object</span> == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> &amp;&amp;object_format = <span class="keywordtype">object</span>-&gt;info()-&gt;format();</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(object_format);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_ERROR_ON_LOC</a>(object_format == Format::UNKNOWN, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keyword">const</span> std::array&lt;F, <span class="keyword">sizeof</span>...(Fs)&gt; formats_array{ { std::forward&lt;Fs&gt;(formats)... } };</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(formats_array);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>(object_format != format &amp;&amp; std::none_of(formats_array.begin(), formats_array.end(), [&amp;](<span class="keyword">const</span> F &amp; f)</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; {</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">return</span> f == object_format;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; }),</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Format %s not supported by this kernel&quot;</span>, <a class="code" href="namespacearm__compute.xhtml#a9c92c867fc64454545668d87b20979eb">string_from_format</a>(object_format).c_str());</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_ac90c3bce005225cbaa4a43740917bb58"><div class="ttname"><a href="core_2_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_LOC(cond, func, file, line)</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="core_2_error_8h_source.xhtml#l00316">Error.h:316</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010307<div class="ttc" id="core_2_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00147">Error.h:147</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000010308<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">arm_compute::Format</a></div><div class="ttdeci">Format</div><div class="ttdoc">Image colour formats. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00050">Types.h:50</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010309<div class="ttc" id="core_2_error_8h_xhtml_a1b62e396a1789909dadda61ea4cda96f"><div class="ttname"><a href="core_2_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00298">Error.h:298</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000010310<div class="ttc" id="namespacearm__compute_xhtml_a9c92c867fc64454545668d87b20979eb"><div class="ttname"><a href="namespacearm__compute.xhtml#a9c92c867fc64454545668d87b20979eb">arm_compute::string_from_format</a></div><div class="ttdeci">const std::string &amp; string_from_format(Format format)</div><div class="ttdoc">Convert a tensor format into a string. </div></div>
10311</div><!-- fragment -->
10312</div>
10313</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010314<a class="anchor" id="adf16abfe081654f8bb2b9a4fee09100e"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000010315<div class="memitem">
10316<div class="memproto">
10317 <table class="memname">
10318 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010319 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_invalid_multi_hog </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010320 <td>(</td>
10321 <td class="paramtype">const char *&#160;</td>
10322 <td class="paramname"><em>function</em>, </td>
10323 </tr>
10324 <tr>
10325 <td class="paramkey"></td>
10326 <td></td>
10327 <td class="paramtype">const char *&#160;</td>
10328 <td class="paramname"><em>file</em>, </td>
10329 </tr>
10330 <tr>
10331 <td class="paramkey"></td>
10332 <td></td>
10333 <td class="paramtype">const int&#160;</td>
10334 <td class="paramname"><em>line</em>, </td>
10335 </tr>
10336 <tr>
10337 <td class="paramkey"></td>
10338 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010339 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml">IMultiHOG</a> *&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010340 <td class="paramname"><em>multi_hog</em>&#160;</td>
10341 </tr>
10342 <tr>
10343 <td></td>
10344 <td>)</td>
10345 <td></td><td></td>
10346 </tr>
10347 </table>
10348</div><div class="memdoc">
10349
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010350<p>Return an error if the <a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml">IMultiHOG</a> container is invalid. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +000010351<p>An <a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml">IMultiHOG</a> container is invalid if:</p>
10352<ol type="1">
10353<li>it is a nullptr</li>
10354<li>it doesn't contain models</li>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010355<li>it doesn't have the <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> data objects with the same phase_type, normalization_type and l2_hyst_threshold (if normalization_type == L2HYS_NORM)</li>
10356</ol>
Anthony Barbier871448e2017-03-24 14:54:29 +000010357<dl class="params"><dt>Parameters</dt><dd>
10358 <table class="params">
10359 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10360 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10361 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010362 <tr><td class="paramdir">[in]</td><td class="paramname">multi_hog</td><td><a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml" title="Interface for storing multiple HOG data-objects. ">IMultiHOG</a> container to validate</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000010363 </table>
10364 </dd>
10365</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010366<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000010367
10368</div>
10369</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010370<a class="anchor" id="a7fdf77ab857ef3a644eef09389cc808d"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010371<div class="memitem">
10372<div class="memproto">
10373 <table class="memname">
10374 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010375 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_invalid_subtensor </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010376 <td>(</td>
10377 <td class="paramtype">const char *&#160;</td>
10378 <td class="paramname"><em>function</em>, </td>
10379 </tr>
10380 <tr>
10381 <td class="paramkey"></td>
10382 <td></td>
10383 <td class="paramtype">const char *&#160;</td>
10384 <td class="paramname"><em>file</em>, </td>
10385 </tr>
10386 <tr>
10387 <td class="paramkey"></td>
10388 <td></td>
10389 <td class="paramtype">const int&#160;</td>
10390 <td class="paramname"><em>line</em>, </td>
10391 </tr>
10392 <tr>
10393 <td class="paramkey"></td>
10394 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010395 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010396 <td class="paramname"><em>parent_shape</em>, </td>
10397 </tr>
10398 <tr>
10399 <td class="paramkey"></td>
10400 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010401 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010402 <td class="paramname"><em>coords</em>, </td>
10403 </tr>
10404 <tr>
10405 <td class="paramkey"></td>
10406 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010407 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010408 <td class="paramname"><em>shape</em>&#160;</td>
10409 </tr>
10410 <tr>
10411 <td></td>
10412 <td>)</td>
10413 <td></td><td></td>
10414 </tr>
10415 </table>
10416</div><div class="memdoc">
10417
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010418<p>Return an error if if the coordinates and shape of the subtensor are within the parent tensor. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010419<dl class="params"><dt>Parameters</dt><dd>
10420 <table class="params">
10421 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10422 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10423 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10424 <tr><td class="paramdir">[in]</td><td class="paramname">parent_shape</td><td>Parent tensor shape </td></tr>
10425 <tr><td class="paramdir">[in]</td><td class="paramname">coords</td><td><a class="el" href="classarm__compute_1_1_coordinates.xhtml" title="Coordinates of an item. ">Coordinates</a> inside the parent tensor where the first element of the subtensor is </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010426 <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>Shape of the subtensor</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010427 </table>
10428 </dd>
10429</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010430<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010431
10432</div>
10433</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010434<a class="anchor" id="a74dd77930a4d0ccf755c1cc648601c63"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010435<div class="memitem">
10436<div class="memproto">
10437 <table class="memname">
10438 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010439 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_invalid_subtensor_valid_region </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010440 <td>(</td>
10441 <td class="paramtype">const char *&#160;</td>
10442 <td class="paramname"><em>function</em>, </td>
10443 </tr>
10444 <tr>
10445 <td class="paramkey"></td>
10446 <td></td>
10447 <td class="paramtype">const char *&#160;</td>
10448 <td class="paramname"><em>file</em>, </td>
10449 </tr>
10450 <tr>
10451 <td class="paramkey"></td>
10452 <td></td>
10453 <td class="paramtype">const int&#160;</td>
10454 <td class="paramname"><em>line</em>, </td>
10455 </tr>
10456 <tr>
10457 <td class="paramkey"></td>
10458 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010459 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010460 <td class="paramname"><em>parent_valid_region</em>, </td>
10461 </tr>
10462 <tr>
10463 <td class="paramkey"></td>
10464 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010465 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010466 <td class="paramname"><em>valid_region</em>&#160;</td>
10467 </tr>
10468 <tr>
10469 <td></td>
10470 <td>)</td>
10471 <td></td><td></td>
10472 </tr>
10473 </table>
10474</div><div class="memdoc">
10475
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010476<p>Return an error if the valid region of a subtensor is not inside the valid region of the parent tensor. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010477<dl class="params"><dt>Parameters</dt><dd>
10478 <table class="params">
10479 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10480 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10481 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10482 <tr><td class="paramdir">[in]</td><td class="paramname">parent_valid_region</td><td>Parent valid region. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010483 <tr><td class="paramdir">[in]</td><td class="paramname">valid_region</td><td>Valid region of subtensor.</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010484 </table>
10485 </dd>
10486</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010487<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010488
10489</div>
10490</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010491<a class="anchor" id="aceb8dd0f6a4e2539b39b5a69a1c345b4"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000010492<div class="memitem">
10493<div class="memproto">
10494 <table class="memname">
10495 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010496 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_invalid_subwindow </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010497 <td>(</td>
10498 <td class="paramtype">const char *&#160;</td>
10499 <td class="paramname"><em>function</em>, </td>
10500 </tr>
10501 <tr>
10502 <td class="paramkey"></td>
10503 <td></td>
10504 <td class="paramtype">const char *&#160;</td>
10505 <td class="paramname"><em>file</em>, </td>
10506 </tr>
10507 <tr>
10508 <td class="paramkey"></td>
10509 <td></td>
10510 <td class="paramtype">const int&#160;</td>
10511 <td class="paramname"><em>line</em>, </td>
10512 </tr>
10513 <tr>
10514 <td class="paramkey"></td>
10515 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010516 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010517 <td class="paramname"><em>full</em>, </td>
10518 </tr>
10519 <tr>
10520 <td class="paramkey"></td>
10521 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010522 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010523 <td class="paramname"><em>sub</em>&#160;</td>
10524 </tr>
10525 <tr>
10526 <td></td>
10527 <td>)</td>
10528 <td></td><td></td>
10529 </tr>
10530 </table>
10531</div><div class="memdoc">
10532
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010533<p>Return an error if the passed subwindow is invalid. </p>
10534<p>The subwindow is invalid if:</p><ul>
Anthony Barbier871448e2017-03-24 14:54:29 +000010535<li>It is not a valid window.</li>
10536<li>It is not fully contained inside the full window</li>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010537<li>The step for each of its dimension is not identical to the corresponding one of the full window.</li>
10538</ul>
Anthony Barbier871448e2017-03-24 14:54:29 +000010539<dl class="params"><dt>Parameters</dt><dd>
10540 <table class="params">
10541 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10542 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10543 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10544 <tr><td class="paramdir">[in]</td><td class="paramname">full</td><td>Full size window </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010545 <tr><td class="paramdir">[in]</td><td class="paramname">sub</td><td>Sub-window to validate.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000010546 </table>
10547 </dd>
10548</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010549<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000010550
10551</div>
10552</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010553<a class="anchor" id="a00672eb7b5db5f6396b39b241eaf12f7"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000010554<div class="memitem">
10555<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010556<table class="mlabels">
10557 <tr>
10558 <td class="mlabels-left">
Anthony Barbier871448e2017-03-24 14:54:29 +000010559 <table class="memname">
10560 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010561 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_data_types </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010562 <td>(</td>
10563 <td class="paramtype">const char *&#160;</td>
10564 <td class="paramname"><em>function</em>, </td>
10565 </tr>
10566 <tr>
10567 <td class="paramkey"></td>
10568 <td></td>
10569 <td class="paramtype">const char *&#160;</td>
10570 <td class="paramname"><em>file</em>, </td>
10571 </tr>
10572 <tr>
10573 <td class="paramkey"></td>
10574 <td></td>
10575 <td class="paramtype">const int&#160;</td>
10576 <td class="paramname"><em>line</em>, </td>
10577 </tr>
10578 <tr>
10579 <td class="paramkey"></td>
10580 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010581 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
10582 <td class="paramname"><em>tensor_info</em>, </td>
10583 </tr>
10584 <tr>
10585 <td class="paramkey"></td>
10586 <td></td>
10587 <td class="paramtype">Ts...&#160;</td>
10588 <td class="paramname"><em>tensor_infos</em>&#160;</td>
10589 </tr>
10590 <tr>
10591 <td></td>
10592 <td>)</td>
10593 <td></td><td></td>
10594 </tr>
10595 </table>
10596 </td>
10597 <td class="mlabels-right">
10598<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10599 </tr>
10600</table>
10601</div><div class="memdoc">
10602
10603<p>Return an error if the passed two tensor infos have different data types. </p>
10604<dl class="params"><dt>Parameters</dt><dd>
10605 <table class="params">
10606 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10607 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10608 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10609 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info</td><td>The first tensor info to be compared. </td></tr>
10610 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_infos</td><td>(Optional) Further allowed tensor infos.</td></tr>
10611 </table>
10612 </dd>
10613</dl>
10614<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
10615
Anthony Barbier06ea0482018-02-22 15:45:35 +000010616<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00407">407</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010617
10618<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, and <a class="el" href="_validate_8h_source.xhtml#l00134">error_on_nullptr()</a>.</p>
10619
Anthony Barbier06ea0482018-02-22 15:45:35 +000010620<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00433">error_on_mismatching_data_types()</a>.</p>
10621<div class="fragment"><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;{</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor_info == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a>(<span class="keyword">function</span>, file, line, std::forward&lt;Ts&gt;(tensor_infos)...));</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&amp;tensor_data_type = tensor_info-&gt;data_type();</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">const</span> std::array&lt;<span class="keyword">const</span> ITensorInfo *, <span class="keyword">sizeof</span>...(Ts)&gt; tensors_infos_array{ { std::forward&lt;Ts&gt;(tensor_infos)... } };</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(std::any_of(tensors_infos_array.begin(), tensors_infos_array.end(), [&amp;](<span class="keyword">const</span> ITensorInfo * tensor_info_obj)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> tensor_info_obj-&gt;data_type() != tensor_data_type;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }),</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different data types&quot;</span>);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_af4587cd36ddbf2e4dde217d1a1007940"><div class="ttname"><a href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a></div><div class="ttdeci">arm_compute::Status error_on_nullptr(const char *function, const char *file, const int line, Ts &amp;&amp;...pointers)</div><div class="ttdoc">Create an error if one of the pointers is a nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00134">Validate.h:134</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010622<div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
10623<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
10624<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
10625<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000010626<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#l00072">Types.h:72</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010627</div><!-- fragment -->
10628</div>
10629</div>
10630<a class="anchor" id="a709c2aef39aa212b840c6395fc20ce17"></a>
10631<div class="memitem">
10632<div class="memproto">
10633<table class="mlabels">
10634 <tr>
10635 <td class="mlabels-left">
10636 <table class="memname">
10637 <tr>
10638 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_data_types </td>
10639 <td>(</td>
10640 <td class="paramtype">const char *&#160;</td>
10641 <td class="paramname"><em>function</em>, </td>
10642 </tr>
10643 <tr>
10644 <td class="paramkey"></td>
10645 <td></td>
10646 <td class="paramtype">const char *&#160;</td>
10647 <td class="paramname"><em>file</em>, </td>
10648 </tr>
10649 <tr>
10650 <td class="paramkey"></td>
10651 <td></td>
10652 <td class="paramtype">const int&#160;</td>
10653 <td class="paramname"><em>line</em>, </td>
10654 </tr>
10655 <tr>
10656 <td class="paramkey"></td>
10657 <td></td>
10658 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010010659 <td class="paramname"><em>tensor</em>, </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000010660 </tr>
10661 <tr>
10662 <td class="paramkey"></td>
10663 <td></td>
10664 <td class="paramtype">Ts...&#160;</td>
10665 <td class="paramname"><em>tensors</em>&#160;</td>
10666 </tr>
10667 <tr>
10668 <td></td>
10669 <td>)</td>
10670 <td></td><td></td>
10671 </tr>
10672 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010673 </td>
10674 <td class="mlabels-right">
10675<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10676 </tr>
10677</table>
Anthony Barbier871448e2017-03-24 14:54:29 +000010678</div><div class="memdoc">
10679
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010680<p>Return an error if the passed two tensors have different data types. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +000010681<dl class="params"><dt>Parameters</dt><dd>
10682 <table class="params">
10683 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10684 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10685 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
Kaizen8938bd32017-09-28 14:38:23 +010010686 <tr><td class="paramdir">[in]</td><td class="paramname">tensor</td><td>The first tensor to be compared. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010687 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000010688 </table>
10689 </dd>
10690</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010691<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000010692
Anthony Barbier06ea0482018-02-22 15:45:35 +000010693<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00433">433</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000010694
Anthony Barbier06ea0482018-02-22 15:45:35 +000010695<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00407">error_on_mismatching_data_types()</a>, <a class="el" href="_validate_8h_source.xhtml#l00134">error_on_nullptr()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
10696<div class="fragment"><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;{</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a>(<span class="keyword">function</span>, file, line, std::forward&lt;Ts&gt;(tensors)...));</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#a00672eb7b5db5f6396b39b241eaf12f7">arm_compute::error_on_mismatching_data_types</a>(<span class="keyword">function</span>, file, line, tensor-&gt;info(),</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; detail::get_tensor_info_t&lt;ITensorInfo *&gt;()(tensors)...));</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_af4587cd36ddbf2e4dde217d1a1007940"><div class="ttname"><a href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a></div><div class="ttdeci">arm_compute::Status error_on_nullptr(const char *function, const char *file, const int line, Ts &amp;&amp;...pointers)</div><div class="ttdoc">Create an error if one of the pointers is a nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00134">Validate.h:134</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010697<div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
10698<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
10699<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000010700<div class="ttc" id="namespacearm__compute_xhtml_a00672eb7b5db5f6396b39b241eaf12f7"><div class="ttname"><a href="namespacearm__compute.xhtml#a00672eb7b5db5f6396b39b241eaf12f7">arm_compute::error_on_mismatching_data_types</a></div><div class="ttdeci">arm_compute::Status error_on_mismatching_data_types(const char *function, const char *file, const int line, const ITensorInfo *tensor_info, Ts...tensor_infos)</div><div class="ttdoc">Return an error if the passed two tensor infos have different data types. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00407">Validate.h:407</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010701</div><!-- fragment -->
10702</div>
10703</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010704<a class="anchor" id="ab3f385292b90327061e1276f3e3445c7"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010705<div class="memitem">
10706<div class="memproto">
10707 <table class="memname">
10708 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010709 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_dimensions </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010710 <td>(</td>
10711 <td class="paramtype">const char *&#160;</td>
10712 <td class="paramname"><em>function</em>, </td>
10713 </tr>
10714 <tr>
10715 <td class="paramkey"></td>
10716 <td></td>
10717 <td class="paramtype">const char *&#160;</td>
10718 <td class="paramname"><em>file</em>, </td>
10719 </tr>
10720 <tr>
10721 <td class="paramkey"></td>
10722 <td></td>
10723 <td class="paramtype">int&#160;</td>
10724 <td class="paramname"><em>line</em>, </td>
10725 </tr>
10726 <tr>
10727 <td class="paramkey"></td>
10728 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010729 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010730 <td class="paramname"><em>dim1</em>, </td>
10731 </tr>
10732 <tr>
10733 <td class="paramkey"></td>
10734 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010735 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010736 <td class="paramname"><em>dim2</em>, </td>
10737 </tr>
10738 <tr>
10739 <td class="paramkey"></td>
10740 <td></td>
10741 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
10742 <td class="paramname"><em>dims</em>&#160;</td>
10743 </tr>
10744 <tr>
10745 <td></td>
10746 <td>)</td>
10747 <td></td><td></td>
10748 </tr>
10749 </table>
10750</div><div class="memdoc">
10751
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010752<p>Return an error if the passed dimension objects differ. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010753<dl class="params"><dt>Parameters</dt><dd>
10754 <table class="params">
10755 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10756 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10757 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10758 <tr><td class="paramdir">[in]</td><td class="paramname">dim1</td><td>The first object to be compared. </td></tr>
10759 <tr><td class="paramdir">[in]</td><td class="paramname">dim2</td><td>The second object to be compared. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010760 <tr><td class="paramdir">[in]</td><td class="paramname">dims</td><td>(Optional) Further allowed objects.</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010761 </table>
10762 </dd>
10763</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010764<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010765
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010766<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00263">263</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010767
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010768<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, and <a class="el" href="_validate_8h_source.xhtml#l00099">arm_compute::detail::for_each_error()</a>.</p>
10769<div class="fragment"><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(<a class="code" href="namespacearm__compute_1_1detail.xhtml#a2fa22dee7227625fa4516f267235667c">detail::for_each_error</a>(detail::compare_dimension&lt;T&gt;(dim1, <span class="keyword">function</span>, file, line), dim2, std::forward&lt;Ts&gt;(dims)...));</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
10770<div class="ttc" id="namespacearm__compute_1_1detail_xhtml_a2fa22dee7227625fa4516f267235667c"><div class="ttname"><a href="namespacearm__compute_1_1detail.xhtml#a2fa22dee7227625fa4516f267235667c">arm_compute::detail::for_each_error</a></div><div class="ttdeci">arm_compute::Status for_each_error(F &amp;&amp;func, T &amp;&amp;arg, Ts &amp;&amp;...args)</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00105">Validate.h:105</a></div></div>
10771<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010772</div><!-- fragment -->
10773</div>
10774</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010775<a class="anchor" id="aafd4504246cc7e82e108204cb9636a90"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010776<div class="memitem">
10777<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010778<table class="mlabels">
10779 <tr>
10780 <td class="mlabels-left">
Anthony Barbierdbdab852017-06-23 15:42:00 +010010781 <table class="memname">
10782 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010783 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_fixed_point </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010784 <td>(</td>
10785 <td class="paramtype">const char *&#160;</td>
10786 <td class="paramname"><em>function</em>, </td>
10787 </tr>
10788 <tr>
10789 <td class="paramkey"></td>
10790 <td></td>
10791 <td class="paramtype">const char *&#160;</td>
10792 <td class="paramname"><em>file</em>, </td>
10793 </tr>
10794 <tr>
10795 <td class="paramkey"></td>
10796 <td></td>
10797 <td class="paramtype">const int&#160;</td>
10798 <td class="paramname"><em>line</em>, </td>
10799 </tr>
10800 <tr>
10801 <td class="paramkey"></td>
10802 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010803 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
10804 <td class="paramname"><em>tensor_info_1</em>, </td>
10805 </tr>
10806 <tr>
10807 <td class="paramkey"></td>
10808 <td></td>
10809 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
10810 <td class="paramname"><em>tensor_info_2</em>, </td>
10811 </tr>
10812 <tr>
10813 <td class="paramkey"></td>
10814 <td></td>
10815 <td class="paramtype">Ts...&#160;</td>
10816 <td class="paramname"><em>tensor_infos</em>&#160;</td>
10817 </tr>
10818 <tr>
10819 <td></td>
10820 <td>)</td>
10821 <td></td><td></td>
10822 </tr>
10823 </table>
10824 </td>
10825 <td class="mlabels-right">
10826<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10827 </tr>
10828</table>
10829</div><div class="memdoc">
10830
10831<p>Return an error if the passed tensor infos have different fixed point data types or different fixed point positions. </p>
10832<dl class="section note"><dt>Note</dt><dd>: If the first tensor doesn't have fixed point data type, the function returns without throwing an error</dd></dl>
10833<dl class="params"><dt>Parameters</dt><dd>
10834 <table class="params">
10835 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10836 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10837 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10838 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_1</td><td>The first tensor info to be compared. </td></tr>
10839 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_2</td><td>The second tensor info to be compared. </td></tr>
10840 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_infos</td><td>(Optional) Further allowed tensor infos.</td></tr>
10841 </table>
10842 </dd>
10843</dl>
10844<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
10845
Anthony Barbier06ea0482018-02-22 15:45:35 +000010846<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00461">461</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010847
Anthony Barbier06ea0482018-02-22 15:45:35 +000010848<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ab21a362740e892b6e913bd8db03b0e67">ITensorInfo::fixed_point_position()</a>, and <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01010">is_data_type_fixed_point()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010849
Anthony Barbier06ea0482018-02-22 15:45:35 +000010850<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00500">error_on_mismatching_fixed_point()</a>.</p>
10851<div class="fragment"><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;{</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&amp;first_data_type = tensor_info_1-&gt;data_type();</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> first_fixed_point_position = tensor_info_1-&gt;fixed_point_position();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="namespacearm__compute.xhtml#ab6bb62694ae8369d18a9c9687040975e">is_data_type_fixed_point</a>(first_data_type))</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">const</span> std::array &lt; <span class="keyword">const</span> ITensorInfo *, 1 + <span class="keyword">sizeof</span>...(Ts) &gt; tensor_infos_array{ { tensor_info_2, std::forward&lt;Ts&gt;(tensor_infos)... } };</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(std::any_of(tensor_infos_array.begin(), tensor_infos_array.end(), [&amp;](<span class="keyword">const</span> ITensorInfo * tensor_info)</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">return</span> tensor_info-&gt;data_type() != first_data_type;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }),</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different fixed point data types&quot;</span>);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(std::any_of(tensor_infos_array.begin(), tensor_infos_array.end(), [&amp;](<span class="keyword">const</span> ITensorInfo * tensor_info)</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> tensor_info-&gt;fixed_point_position() != first_fixed_point_position;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }),</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different fixed point positions&quot;</span>);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
10852<div class="ttc" id="namespacearm__compute_xhtml_ab6bb62694ae8369d18a9c9687040975e"><div class="ttname"><a href="namespacearm__compute.xhtml#ab6bb62694ae8369d18a9c9687040975e">arm_compute::is_data_type_fixed_point</a></div><div class="ttdeci">bool is_data_type_fixed_point(DataType dt)</div><div class="ttdoc">Check if a given data type is of fixed point type. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l01010">Utils.h:1010</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010853<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000010854<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#l00072">Types.h:72</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010855</div><!-- fragment -->
10856</div>
10857</div>
10858<a class="anchor" id="a8ecebd0b1ad2f0c593f7b093a1e43448"></a>
10859<div class="memitem">
10860<div class="memproto">
10861<table class="mlabels">
10862 <tr>
10863 <td class="mlabels-left">
10864 <table class="memname">
10865 <tr>
10866 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_fixed_point </td>
10867 <td>(</td>
10868 <td class="paramtype">const char *&#160;</td>
10869 <td class="paramname"><em>function</em>, </td>
10870 </tr>
10871 <tr>
10872 <td class="paramkey"></td>
10873 <td></td>
10874 <td class="paramtype">const char *&#160;</td>
10875 <td class="paramname"><em>file</em>, </td>
10876 </tr>
10877 <tr>
10878 <td class="paramkey"></td>
10879 <td></td>
10880 <td class="paramtype">const int&#160;</td>
10881 <td class="paramname"><em>line</em>, </td>
10882 </tr>
10883 <tr>
10884 <td class="paramkey"></td>
10885 <td></td>
10886 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010887 <td class="paramname"><em>tensor_1</em>, </td>
10888 </tr>
10889 <tr>
10890 <td class="paramkey"></td>
10891 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010892 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010893 <td class="paramname"><em>tensor_2</em>, </td>
10894 </tr>
10895 <tr>
10896 <td class="paramkey"></td>
10897 <td></td>
10898 <td class="paramtype">Ts...&#160;</td>
10899 <td class="paramname"><em>tensors</em>&#160;</td>
10900 </tr>
10901 <tr>
10902 <td></td>
10903 <td>)</td>
10904 <td></td><td></td>
10905 </tr>
10906 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010907 </td>
10908 <td class="mlabels-right">
10909<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10910 </tr>
10911</table>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010912</div><div class="memdoc">
10913
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010914<p>Return an error if the passed tensor have different fixed point data types or different fixed point positions. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010915<dl class="section note"><dt>Note</dt><dd>: If the first tensor doesn't have fixed point data type, the function returns without throwing an error</dd></dl>
10916<dl class="params"><dt>Parameters</dt><dd>
10917 <table class="params">
10918 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10919 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10920 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
10921 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
10922 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010923 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors.</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010924 </table>
10925 </dd>
10926</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010927<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010928
Anthony Barbier06ea0482018-02-22 15:45:35 +000010929<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00500">500</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010930
Anthony Barbier06ea0482018-02-22 15:45:35 +000010931<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00461">error_on_mismatching_fixed_point()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
10932<div class="fragment"><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;{</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#aafd4504246cc7e82e108204cb9636a90">arm_compute::error_on_mismatching_fixed_point</a>(<span class="keyword">function</span>, file, line, tensor_1-&gt;info(), tensor_2-&gt;info(),</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; detail::get_tensor_info_t&lt;ITensorInfo *&gt;()(tensors)...));</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_aafd4504246cc7e82e108204cb9636a90"><div class="ttname"><a href="namespacearm__compute.xhtml#aafd4504246cc7e82e108204cb9636a90">arm_compute::error_on_mismatching_fixed_point</a></div><div class="ttdeci">arm_compute::Status error_on_mismatching_fixed_point(const char *function, const char *file, const int line, const ITensorInfo *tensor_info_1, const ITensorInfo *tensor_info_2, Ts...tensor_infos)</div><div class="ttdoc">Return an error if the passed tensor infos have different fixed point data types or different fixed p...</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00461">Validate.h:461</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010933<div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
10934<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010935</div><!-- fragment -->
10936</div>
10937</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010938<a class="anchor" id="a82c748dc3464dfc48133fbf8f84d7240"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010939<div class="memitem">
10940<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010941<table class="mlabels">
10942 <tr>
10943 <td class="mlabels-left">
Anthony Barbierdbdab852017-06-23 15:42:00 +010010944 <table class="memname">
10945 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010946 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_fixed_point_position </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010947 <td>(</td>
10948 <td class="paramtype">const char *&#160;</td>
10949 <td class="paramname"><em>function</em>, </td>
10950 </tr>
10951 <tr>
10952 <td class="paramkey"></td>
10953 <td></td>
10954 <td class="paramtype">const char *&#160;</td>
10955 <td class="paramname"><em>file</em>, </td>
10956 </tr>
10957 <tr>
10958 <td class="paramkey"></td>
10959 <td></td>
10960 <td class="paramtype">const int&#160;</td>
10961 <td class="paramname"><em>line</em>, </td>
10962 </tr>
10963 <tr>
10964 <td class="paramkey"></td>
10965 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010966 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
10967 <td class="paramname"><em>tensor_info_1</em>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010968 </tr>
10969 <tr>
10970 <td class="paramkey"></td>
10971 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010972 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
10973 <td class="paramname"><em>tensor_info_2</em>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010974 </tr>
10975 <tr>
10976 <td class="paramkey"></td>
10977 <td></td>
10978 <td class="paramtype">Ts...&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010979 <td class="paramname"><em>tensor_infos</em>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010980 </tr>
10981 <tr>
10982 <td></td>
10983 <td>)</td>
10984 <td></td><td></td>
10985 </tr>
10986 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010987 </td>
10988 <td class="mlabels-right">
10989<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10990 </tr>
10991</table>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010992</div><div class="memdoc">
10993
Anthony Barbier8140e1e2017-12-14 23:48:46 +000010994<p>Return an error if the input fixed-point positions are different. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010010995<dl class="params"><dt>Parameters</dt><dd>
10996 <table class="params">
10997 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
10998 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
10999 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011000 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_1</td><td>The first tensor info to be compared. </td></tr>
11001 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_2</td><td>The second tensor info to be compared. </td></tr>
11002 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_infos</td><td>(Optional) Further allowed tensor infos.</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011003 </table>
11004 </dd>
11005</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011006<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011007
Anthony Barbier06ea0482018-02-22 15:45:35 +000011008<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00852">852</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011009
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011010<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ab21a362740e892b6e913bd8db03b0e67">ITensorInfo::fixed_point_position()</a>.</p>
11011
Anthony Barbier06ea0482018-02-22 15:45:35 +000011012<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00875">error_on_mismatching_fixed_point_position()</a>.</p>
11013<div class="fragment"><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;{</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keyword">const</span> std::array &lt; <span class="keyword">const</span> ITensorInfo *, 1 + <span class="keyword">sizeof</span>...(Ts) &gt; tensor_info_array{ { tensor_info_2, std::forward&lt;Ts&gt;(tensor_infos)... } };</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(std::any_of(tensor_info_array.begin(), tensor_info_array.end(), [&amp;](<span class="keyword">const</span> ITensorInfo * tensor_info)</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; {</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">return</span> tensor_info-&gt;fixed_point_position() != tensor_info_1-&gt;fixed_point_position();</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; }),</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different fixed-point positions&quot;</span>);</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011014<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000011015</div><!-- fragment -->
11016</div>
11017</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011018<a class="anchor" id="adec7d6b27c9cacab7940ce67eaab4bf6"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000011019<div class="memitem">
11020<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011021<table class="mlabels">
11022 <tr>
11023 <td class="mlabels-left">
Anthony Barbier871448e2017-03-24 14:54:29 +000011024 <table class="memname">
11025 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011026 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_fixed_point_position </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011027 <td>(</td>
11028 <td class="paramtype">const char *&#160;</td>
11029 <td class="paramname"><em>function</em>, </td>
11030 </tr>
11031 <tr>
11032 <td class="paramkey"></td>
11033 <td></td>
11034 <td class="paramtype">const char *&#160;</td>
11035 <td class="paramname"><em>file</em>, </td>
11036 </tr>
11037 <tr>
11038 <td class="paramkey"></td>
11039 <td></td>
11040 <td class="paramtype">const int&#160;</td>
11041 <td class="paramname"><em>line</em>, </td>
11042 </tr>
11043 <tr>
11044 <td class="paramkey"></td>
11045 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011046 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011047 <td class="paramname"><em>tensor_1</em>, </td>
11048 </tr>
11049 <tr>
11050 <td class="paramkey"></td>
11051 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011052 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011053 <td class="paramname"><em>tensor_2</em>, </td>
11054 </tr>
11055 <tr>
11056 <td class="paramkey"></td>
11057 <td></td>
11058 <td class="paramtype">Ts...&#160;</td>
11059 <td class="paramname"><em>tensors</em>&#160;</td>
11060 </tr>
11061 <tr>
11062 <td></td>
11063 <td>)</td>
11064 <td></td><td></td>
11065 </tr>
11066 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011067 </td>
11068 <td class="mlabels-right">
11069<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11070 </tr>
11071</table>
Anthony Barbier871448e2017-03-24 14:54:29 +000011072</div><div class="memdoc">
11073
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011074<p>Return an error if the input fixed-point positions are different. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011075<dl class="params"><dt>Parameters</dt><dd>
11076 <table class="params">
11077 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11078 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11079 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11080 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
11081 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011082 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000011083 </table>
11084 </dd>
11085</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011086<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000011087
Anthony Barbier06ea0482018-02-22 15:45:35 +000011088<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00875">875</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011089
Anthony Barbier06ea0482018-02-22 15:45:35 +000011090<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00852">error_on_mismatching_fixed_point_position()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
11091<div class="fragment"><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;{</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#a82c748dc3464dfc48133fbf8f84d7240">arm_compute::error_on_mismatching_fixed_point_position</a>(<span class="keyword">function</span>, file, line, tensor_1-&gt;info(), tensor_2-&gt;info(),</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; detail::get_tensor_info_t&lt;ITensorInfo *&gt;()(tensors)...));</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011092<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000011093<div class="ttc" id="namespacearm__compute_xhtml_a82c748dc3464dfc48133fbf8f84d7240"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c748dc3464dfc48133fbf8f84d7240">arm_compute::error_on_mismatching_fixed_point_position</a></div><div class="ttdeci">arm_compute::Status error_on_mismatching_fixed_point_position(const char *function, const char *file, const int line, const ITensorInfo *tensor_info_1, const ITensorInfo *tensor_info_2, Ts...tensor_infos)</div><div class="ttdoc">Return an error if the input fixed-point positions are different. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00852">Validate.h:852</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011094</div><!-- fragment -->
11095</div>
11096</div>
11097<a class="anchor" id="af4c3199d58278db542e1cdfb72a41901"></a>
11098<div class="memitem">
11099<div class="memproto">
11100<table class="mlabels">
11101 <tr>
11102 <td class="mlabels-left">
11103 <table class="memname">
11104 <tr>
11105 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_quantization_info </td>
11106 <td>(</td>
11107 <td class="paramtype">const char *&#160;</td>
11108 <td class="paramname"><em>function</em>, </td>
11109 </tr>
11110 <tr>
11111 <td class="paramkey"></td>
11112 <td></td>
11113 <td class="paramtype">const char *&#160;</td>
11114 <td class="paramname"><em>file</em>, </td>
11115 </tr>
11116 <tr>
11117 <td class="paramkey"></td>
11118 <td></td>
11119 <td class="paramtype">const int&#160;</td>
11120 <td class="paramname"><em>line</em>, </td>
11121 </tr>
11122 <tr>
11123 <td class="paramkey"></td>
11124 <td></td>
11125 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
11126 <td class="paramname"><em>tensor_info_1</em>, </td>
11127 </tr>
11128 <tr>
11129 <td class="paramkey"></td>
11130 <td></td>
11131 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
11132 <td class="paramname"><em>tensor_info_2</em>, </td>
11133 </tr>
11134 <tr>
11135 <td class="paramkey"></td>
11136 <td></td>
11137 <td class="paramtype">Ts...&#160;</td>
11138 <td class="paramname"><em>tensor_infos</em>&#160;</td>
11139 </tr>
11140 <tr>
11141 <td></td>
11142 <td>)</td>
11143 <td></td><td></td>
11144 </tr>
11145 </table>
11146 </td>
11147 <td class="mlabels-right">
11148<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11149 </tr>
11150</table>
11151</div><div class="memdoc">
11152
11153<p>Return an error if the passed tensor infos have different asymmetric quantized data types or different quantization info. </p>
11154<dl class="section note"><dt>Note</dt><dd>: If the first tensor info doesn't have asymmetric quantized data type, the function returns without throwing an error</dd></dl>
11155<dl class="params"><dt>Parameters</dt><dd>
11156 <table class="params">
11157 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11158 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11159 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11160 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_1</td><td>The first tensor info to be compared. </td></tr>
11161 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_2</td><td>The second tensor info to be compared. </td></tr>
11162 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_infos</td><td>(Optional) Further allowed tensor infos.</td></tr>
11163 </table>
11164 </dd>
11165</dl>
11166<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
11167
Anthony Barbier06ea0482018-02-22 15:45:35 +000011168<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00526">526</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011169
Anthony Barbier06ea0482018-02-22 15:45:35 +000011170<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01029">is_data_type_quantized_asymmetric()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a3f3e1a3200223e6a304a533b1016e749">ITensorInfo::quantization_info()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011171
Anthony Barbier06ea0482018-02-22 15:45:35 +000011172<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00565">error_on_mismatching_quantization_info()</a>.</p>
11173<div class="fragment"><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;{</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&amp;first_data_type = tensor_info_1-&gt;data_type();</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keyword">const</span> QuantizationInfo first_quantization_info = tensor_info_1-&gt;quantization_info();</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="namespacearm__compute.xhtml#a14f46283f316e7f0fad301d5c1507e9f">is_data_type_quantized_asymmetric</a>(first_data_type))</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; }</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keyword">const</span> std::array &lt; <span class="keyword">const</span> ITensorInfo *, 1 + <span class="keyword">sizeof</span>...(Ts) &gt; tensor_infos_array{ { tensor_info_2, std::forward&lt;Ts&gt;(tensor_infos)... } };</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(std::any_of(tensor_infos_array.begin(), tensor_infos_array.end(), [&amp;](<span class="keyword">const</span> ITensorInfo * tensor_info)</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; {</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">return</span> tensor_info-&gt;data_type() != first_data_type;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }),</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different asymmetric quantized data types&quot;</span>);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(std::any_of(tensor_infos_array.begin(), tensor_infos_array.end(), [&amp;](<span class="keyword">const</span> ITensorInfo * tensor_info)</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">return</span> tensor_info-&gt;quantization_info() != first_quantization_info;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }),</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different quantization information&quot;</span>);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011174<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000011175<div class="ttc" id="namespacearm__compute_xhtml_a14f46283f316e7f0fad301d5c1507e9f"><div class="ttname"><a href="namespacearm__compute.xhtml#a14f46283f316e7f0fad301d5c1507e9f">arm_compute::is_data_type_quantized_asymmetric</a></div><div class="ttdeci">bool is_data_type_quantized_asymmetric(DataType dt)</div><div class="ttdoc">Check if a given data type is of asymmetric quantized type. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l01029">Utils.h:1029</a></div></div>
11176<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#l00072">Types.h:72</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011177</div><!-- fragment -->
11178</div>
11179</div>
11180<a class="anchor" id="a5be375b525bba68610a75da0a043df3a"></a>
11181<div class="memitem">
11182<div class="memproto">
11183<table class="mlabels">
11184 <tr>
11185 <td class="mlabels-left">
11186 <table class="memname">
11187 <tr>
11188 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_quantization_info </td>
11189 <td>(</td>
11190 <td class="paramtype">const char *&#160;</td>
11191 <td class="paramname"><em>function</em>, </td>
11192 </tr>
11193 <tr>
11194 <td class="paramkey"></td>
11195 <td></td>
11196 <td class="paramtype">const char *&#160;</td>
11197 <td class="paramname"><em>file</em>, </td>
11198 </tr>
11199 <tr>
11200 <td class="paramkey"></td>
11201 <td></td>
11202 <td class="paramtype">const int&#160;</td>
11203 <td class="paramname"><em>line</em>, </td>
11204 </tr>
11205 <tr>
11206 <td class="paramkey"></td>
11207 <td></td>
11208 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
11209 <td class="paramname"><em>tensor_1</em>, </td>
11210 </tr>
11211 <tr>
11212 <td class="paramkey"></td>
11213 <td></td>
11214 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
11215 <td class="paramname"><em>tensor_2</em>, </td>
11216 </tr>
11217 <tr>
11218 <td class="paramkey"></td>
11219 <td></td>
11220 <td class="paramtype">Ts...&#160;</td>
11221 <td class="paramname"><em>tensors</em>&#160;</td>
11222 </tr>
11223 <tr>
11224 <td></td>
11225 <td>)</td>
11226 <td></td><td></td>
11227 </tr>
11228 </table>
11229 </td>
11230 <td class="mlabels-right">
11231<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11232 </tr>
11233</table>
11234</div><div class="memdoc">
11235
11236<p>Return an error if the passed tensor have different asymmetric quantized data types or different quantization info. </p>
11237<dl class="section note"><dt>Note</dt><dd>: If the first tensor doesn't have asymmetric quantized data type, the function returns without throwing an error</dd></dl>
11238<dl class="params"><dt>Parameters</dt><dd>
11239 <table class="params">
11240 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11241 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11242 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11243 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
11244 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
11245 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors.</td></tr>
11246 </table>
11247 </dd>
11248</dl>
11249<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
11250
Anthony Barbier06ea0482018-02-22 15:45:35 +000011251<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00565">565</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011252
Anthony Barbier06ea0482018-02-22 15:45:35 +000011253<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00526">error_on_mismatching_quantization_info()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
11254<div class="fragment"><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;{</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#af4c3199d58278db542e1cdfb72a41901">arm_compute::error_on_mismatching_quantization_info</a>(<span class="keyword">function</span>, file, line, tensor_1-&gt;info(), tensor_2-&gt;info(),</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; detail::get_tensor_info_t&lt;ITensorInfo *&gt;()(tensors)...));</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_af4c3199d58278db542e1cdfb72a41901"><div class="ttname"><a href="namespacearm__compute.xhtml#af4c3199d58278db542e1cdfb72a41901">arm_compute::error_on_mismatching_quantization_info</a></div><div class="ttdeci">arm_compute::Status error_on_mismatching_quantization_info(const char *function, const char *file, const int line, const ITensorInfo *tensor_info_1, const ITensorInfo *tensor_info_2, Ts...tensor_infos)</div><div class="ttdoc">Return an error if the passed tensor infos have different asymmetric quantized data types or differen...</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00526">Validate.h:526</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011255<div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
11256<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
11257</div><!-- fragment -->
11258</div>
11259</div>
11260<a class="anchor" id="aea117e0cebca5f4642ed3f269217a09e"></a>
11261<div class="memitem">
11262<div class="memproto">
11263<table class="mlabels">
11264 <tr>
11265 <td class="mlabels-left">
11266 <table class="memname">
11267 <tr>
11268 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_shapes </td>
11269 <td>(</td>
11270 <td class="paramtype">const char *&#160;</td>
11271 <td class="paramname"><em>function</em>, </td>
11272 </tr>
11273 <tr>
11274 <td class="paramkey"></td>
11275 <td></td>
11276 <td class="paramtype">const char *&#160;</td>
11277 <td class="paramname"><em>file</em>, </td>
11278 </tr>
11279 <tr>
11280 <td class="paramkey"></td>
11281 <td></td>
11282 <td class="paramtype">const int&#160;</td>
11283 <td class="paramname"><em>line</em>, </td>
11284 </tr>
11285 <tr>
11286 <td class="paramkey"></td>
11287 <td></td>
11288 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
11289 <td class="paramname"><em>tensor_info_1</em>, </td>
11290 </tr>
11291 <tr>
11292 <td class="paramkey"></td>
11293 <td></td>
11294 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
11295 <td class="paramname"><em>tensor_info_2</em>, </td>
11296 </tr>
11297 <tr>
11298 <td class="paramkey"></td>
11299 <td></td>
11300 <td class="paramtype">Ts...&#160;</td>
11301 <td class="paramname"><em>tensor_infos</em>&#160;</td>
11302 </tr>
11303 <tr>
11304 <td></td>
11305 <td>)</td>
11306 <td></td><td></td>
11307 </tr>
11308 </table>
11309 </td>
11310 <td class="mlabels-right">
11311<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11312 </tr>
11313</table>
11314</div><div class="memdoc">
11315
11316<p>Return an error if the passed two tensor infos have different shapes from the given dimension. </p>
11317<dl class="params"><dt>Parameters</dt><dd>
11318 <table class="params">
11319 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11320 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11321 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11322 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_1</td><td>The first tensor info to be compared. </td></tr>
11323 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_2</td><td>The second tensor info to be compared. </td></tr>
11324 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_infos</td><td>(Optional) Further allowed tensor infos.</td></tr>
11325 </table>
11326 </dd>
11327</dl>
11328<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
11329
Anthony Barbier06ea0482018-02-22 15:45:35 +000011330<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00318">318</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011331
Anthony Barbierdbdab852017-06-23 15:42:00 +010011332<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011333
Anthony Barbier06ea0482018-02-22 15:45:35 +000011334<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00335">error_on_mismatching_shapes()</a>.</p>
11335<div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;{</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#afa04b5bdea84e0effab066e3b1324ec5">error_on_mismatching_shapes</a>(<span class="keyword">function</span>, file, line, 0U, tensor_info_1, tensor_info_2, std::forward&lt;Ts&gt;(tensor_infos)...);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_afa04b5bdea84e0effab066e3b1324ec5"><div class="ttname"><a href="namespacearm__compute.xhtml#afa04b5bdea84e0effab066e3b1324ec5">arm_compute::error_on_mismatching_shapes</a></div><div class="ttdeci">arm_compute::Status error_on_mismatching_shapes(const char *function, const char *file, const int line, unsigned int upper_dim, const ITensor *tensor_1, const ITensor *tensor_2, Ts...tensors)</div><div class="ttdoc">Return an error if the passed two tensors have different shapes from the given dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00381">Validate.h:381</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011336</div><!-- fragment -->
11337</div>
11338</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011339<a class="anchor" id="a41328dd4b943d34c1cc61410571fd6fa"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011340<div class="memitem">
11341<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011342<table class="mlabels">
11343 <tr>
11344 <td class="mlabels-left">
Anthony Barbierdbdab852017-06-23 15:42:00 +010011345 <table class="memname">
11346 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011347 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_shapes </td>
11348 <td>(</td>
11349 <td class="paramtype">const char *&#160;</td>
11350 <td class="paramname"><em>function</em>, </td>
11351 </tr>
11352 <tr>
11353 <td class="paramkey"></td>
11354 <td></td>
11355 <td class="paramtype">const char *&#160;</td>
11356 <td class="paramname"><em>file</em>, </td>
11357 </tr>
11358 <tr>
11359 <td class="paramkey"></td>
11360 <td></td>
11361 <td class="paramtype">const int&#160;</td>
11362 <td class="paramname"><em>line</em>, </td>
11363 </tr>
11364 <tr>
11365 <td class="paramkey"></td>
11366 <td></td>
11367 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
11368 <td class="paramname"><em>tensor_1</em>, </td>
11369 </tr>
11370 <tr>
11371 <td class="paramkey"></td>
11372 <td></td>
11373 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
11374 <td class="paramname"><em>tensor_2</em>, </td>
11375 </tr>
11376 <tr>
11377 <td class="paramkey"></td>
11378 <td></td>
11379 <td class="paramtype">Ts...&#160;</td>
11380 <td class="paramname"><em>tensors</em>&#160;</td>
11381 </tr>
11382 <tr>
11383 <td></td>
11384 <td>)</td>
11385 <td></td><td></td>
11386 </tr>
11387 </table>
11388 </td>
11389 <td class="mlabels-right">
11390<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11391 </tr>
11392</table>
11393</div><div class="memdoc">
11394
11395<p>Return an error if the passed two tensors have different shapes from the given dimension. </p>
11396<dl class="params"><dt>Parameters</dt><dd>
11397 <table class="params">
11398 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11399 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11400 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11401 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
11402 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
11403 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors.</td></tr>
11404 </table>
11405 </dd>
11406</dl>
11407<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
11408
Anthony Barbier06ea0482018-02-22 15:45:35 +000011409<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00335">335</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011410
Anthony Barbier06ea0482018-02-22 15:45:35 +000011411<p>References <a class="el" href="_validate_8h_source.xhtml#l00318">error_on_mismatching_shapes()</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>.</p>
11412<div class="fragment"><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;{</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#afa04b5bdea84e0effab066e3b1324ec5">error_on_mismatching_shapes</a>(<span class="keyword">function</span>, file, line, 0U, tensor_1, tensor_2, std::forward&lt;Ts&gt;(tensors)...);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_afa04b5bdea84e0effab066e3b1324ec5"><div class="ttname"><a href="namespacearm__compute.xhtml#afa04b5bdea84e0effab066e3b1324ec5">arm_compute::error_on_mismatching_shapes</a></div><div class="ttdeci">arm_compute::Status error_on_mismatching_shapes(const char *function, const char *file, const int line, unsigned int upper_dim, const ITensor *tensor_1, const ITensor *tensor_2, Ts...tensors)</div><div class="ttdoc">Return an error if the passed two tensors have different shapes from the given dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00381">Validate.h:381</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011413</div><!-- fragment -->
11414</div>
11415</div>
11416<a class="anchor" id="aac6150cce1c9c666600e4b320a0066e9"></a>
11417<div class="memitem">
11418<div class="memproto">
11419<table class="mlabels">
11420 <tr>
11421 <td class="mlabels-left">
11422 <table class="memname">
11423 <tr>
11424 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_shapes </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011425 <td>(</td>
11426 <td class="paramtype">const char *&#160;</td>
11427 <td class="paramname"><em>function</em>, </td>
11428 </tr>
11429 <tr>
11430 <td class="paramkey"></td>
11431 <td></td>
11432 <td class="paramtype">const char *&#160;</td>
11433 <td class="paramname"><em>file</em>, </td>
11434 </tr>
11435 <tr>
11436 <td class="paramkey"></td>
11437 <td></td>
11438 <td class="paramtype">const int&#160;</td>
11439 <td class="paramname"><em>line</em>, </td>
11440 </tr>
11441 <tr>
11442 <td class="paramkey"></td>
11443 <td></td>
11444 <td class="paramtype">unsigned int&#160;</td>
11445 <td class="paramname"><em>upper_dim</em>, </td>
11446 </tr>
11447 <tr>
11448 <td class="paramkey"></td>
11449 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011450 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
11451 <td class="paramname"><em>tensor_info_1</em>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011452 </tr>
11453 <tr>
11454 <td class="paramkey"></td>
11455 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011456 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
11457 <td class="paramname"><em>tensor_info_2</em>, </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011458 </tr>
11459 <tr>
11460 <td class="paramkey"></td>
11461 <td></td>
11462 <td class="paramtype">Ts...&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011463 <td class="paramname"><em>tensor_infos</em>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011464 </tr>
11465 <tr>
11466 <td></td>
11467 <td>)</td>
11468 <td></td><td></td>
11469 </tr>
11470 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011471 </td>
11472 <td class="mlabels-right">
11473<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11474 </tr>
11475</table>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011476</div><div class="memdoc">
11477
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011478<p>Return an error if the passed two tensors have different shapes from the given dimension. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011479<dl class="params"><dt>Parameters</dt><dd>
11480 <table class="params">
11481 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11482 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11483 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11484 <tr><td class="paramdir">[in]</td><td class="paramname">upper_dim</td><td>The dimension from which to check. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011485 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_1</td><td>The first tensor info to be compared. </td></tr>
11486 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info_2</td><td>The second tensor info to be compared. </td></tr>
11487 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_infos</td><td>(Optional) Further allowed tensor infos.</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011488 </table>
11489 </dd>
11490</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011491<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011492
Anthony Barbier06ea0482018-02-22 15:45:35 +000011493<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00353">353</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011494
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011495<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00134">error_on_nullptr()</a>, and <a class="el" href="_validate_8h_source.xhtml#l00051">arm_compute::detail::have_different_dimensions()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000011496<div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor_info_1 == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor_info_2 == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a>(<span class="keyword">function</span>, file, line, std::forward&lt;Ts&gt;(tensor_infos)...));</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">const</span> std::array &lt; <span class="keyword">const</span> ITensorInfo *, 2 + <span class="keyword">sizeof</span>...(Ts) &gt; tensors_info_array{ { tensor_info_1, tensor_info_2, std::forward&lt;Ts&gt;(tensor_infos)... } };</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(std::any_of(std::next(tensors_info_array.cbegin()), tensors_info_array.cend(), [&amp;](<span class="keyword">const</span> ITensorInfo * tensor_info)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1detail.xhtml#a45d610a8bc262f7007c934293361e888">detail::have_different_dimensions</a>((*tensors_info_array.cbegin())-&gt;tensor_shape(), tensor_info-&gt;tensor_shape(), upper_dim);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }),</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different shapes&quot;</span>);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_af4587cd36ddbf2e4dde217d1a1007940"><div class="ttname"><a href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a></div><div class="ttdeci">arm_compute::Status error_on_nullptr(const char *function, const char *file, const int line, Ts &amp;&amp;...pointers)</div><div class="ttdoc">Create an error if one of the pointers is a nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00134">Validate.h:134</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011497<div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
11498<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
11499<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011500<div class="ttc" id="namespacearm__compute_1_1detail_xhtml_a45d610a8bc262f7007c934293361e888"><div class="ttname"><a href="namespacearm__compute_1_1detail.xhtml#a45d610a8bc262f7007c934293361e888">arm_compute::detail::have_different_dimensions</a></div><div class="ttdeci">bool have_different_dimensions(const Dimensions&lt; T &gt; &amp;dim1, const Dimensions&lt; T &gt; &amp;dim2, unsigned int upper_dim)</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00051">Validate.h:51</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011501<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000011502</div><!-- fragment -->
11503</div>
11504</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011505<a class="anchor" id="afa04b5bdea84e0effab066e3b1324ec5"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000011506<div class="memitem">
11507<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011508<table class="mlabels">
11509 <tr>
11510 <td class="mlabels-left">
Anthony Barbier871448e2017-03-24 14:54:29 +000011511 <table class="memname">
11512 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011513 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_shapes </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011514 <td>(</td>
11515 <td class="paramtype">const char *&#160;</td>
11516 <td class="paramname"><em>function</em>, </td>
11517 </tr>
11518 <tr>
11519 <td class="paramkey"></td>
11520 <td></td>
11521 <td class="paramtype">const char *&#160;</td>
11522 <td class="paramname"><em>file</em>, </td>
11523 </tr>
11524 <tr>
11525 <td class="paramkey"></td>
11526 <td></td>
11527 <td class="paramtype">const int&#160;</td>
11528 <td class="paramname"><em>line</em>, </td>
11529 </tr>
11530 <tr>
11531 <td class="paramkey"></td>
11532 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011533 <td class="paramtype">unsigned int&#160;</td>
11534 <td class="paramname"><em>upper_dim</em>, </td>
11535 </tr>
11536 <tr>
11537 <td class="paramkey"></td>
11538 <td></td>
11539 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
11540 <td class="paramname"><em>tensor_1</em>, </td>
11541 </tr>
11542 <tr>
11543 <td class="paramkey"></td>
11544 <td></td>
11545 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
11546 <td class="paramname"><em>tensor_2</em>, </td>
11547 </tr>
11548 <tr>
11549 <td class="paramkey"></td>
11550 <td></td>
11551 <td class="paramtype">Ts...&#160;</td>
11552 <td class="paramname"><em>tensors</em>&#160;</td>
11553 </tr>
11554 <tr>
11555 <td></td>
11556 <td>)</td>
11557 <td></td><td></td>
11558 </tr>
11559 </table>
11560 </td>
11561 <td class="mlabels-right">
11562<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11563 </tr>
11564</table>
11565</div><div class="memdoc">
11566
11567<p>Return an error if the passed two tensors have different shapes from the given dimension. </p>
11568<dl class="params"><dt>Parameters</dt><dd>
11569 <table class="params">
11570 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11571 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11572 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11573 <tr><td class="paramdir">[in]</td><td class="paramname">upper_dim</td><td>The dimension from which to check. </td></tr>
11574 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
11575 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
11576 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors.</td></tr>
11577 </table>
11578 </dd>
11579</dl>
11580<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
11581
Anthony Barbier06ea0482018-02-22 15:45:35 +000011582<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00381">381</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011583
Anthony Barbier06ea0482018-02-22 15:45:35 +000011584<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00318">error_on_mismatching_shapes()</a>, <a class="el" href="_validate_8h_source.xhtml#l00134">error_on_nullptr()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
11585<div class="fragment"><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor_1 == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor_2 == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a>(<span class="keyword">function</span>, file, line, std::forward&lt;Ts&gt;(tensors)...));</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#aea117e0cebca5f4642ed3f269217a09e">arm_compute::error_on_mismatching_shapes</a>(<span class="keyword">function</span>, file, line, upper_dim, tensor_1-&gt;info(), tensor_2-&gt;info(),</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; detail::get_tensor_info_t&lt;ITensorInfo *&gt;()(tensors)...));</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_af4587cd36ddbf2e4dde217d1a1007940"><div class="ttname"><a href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a></div><div class="ttdeci">arm_compute::Status error_on_nullptr(const char *function, const char *file, const int line, Ts &amp;&amp;...pointers)</div><div class="ttdoc">Create an error if one of the pointers is a nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00134">Validate.h:134</a></div></div>
11586<div class="ttc" id="namespacearm__compute_xhtml_aea117e0cebca5f4642ed3f269217a09e"><div class="ttname"><a href="namespacearm__compute.xhtml#aea117e0cebca5f4642ed3f269217a09e">arm_compute::error_on_mismatching_shapes</a></div><div class="ttdeci">arm_compute::Status error_on_mismatching_shapes(const char *function, const char *file, const int line, const ITensorInfo *tensor_info_1, const ITensorInfo *tensor_info_2, Ts...tensor_infos)</div><div class="ttdoc">Return an error if the passed two tensor infos have different shapes from the given dimension...</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00318">Validate.h:318</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011587<div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
11588<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
11589<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
11590</div><!-- fragment -->
11591</div>
11592</div>
11593<a class="anchor" id="a75738bb24f735248ab9584cd24544234"></a>
11594<div class="memitem">
11595<div class="memproto">
11596 <table class="memname">
11597 <tr>
11598 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_mismatching_windows </td>
11599 <td>(</td>
11600 <td class="paramtype">const char *&#160;</td>
11601 <td class="paramname"><em>function</em>, </td>
11602 </tr>
11603 <tr>
11604 <td class="paramkey"></td>
11605 <td></td>
11606 <td class="paramtype">const char *&#160;</td>
11607 <td class="paramname"><em>file</em>, </td>
11608 </tr>
11609 <tr>
11610 <td class="paramkey"></td>
11611 <td></td>
11612 <td class="paramtype">const int&#160;</td>
11613 <td class="paramname"><em>line</em>, </td>
11614 </tr>
11615 <tr>
11616 <td class="paramkey"></td>
11617 <td></td>
11618 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011619 <td class="paramname"><em>full</em>, </td>
11620 </tr>
11621 <tr>
11622 <td class="paramkey"></td>
11623 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011624 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011625 <td class="paramname"><em>win</em>&#160;</td>
11626 </tr>
11627 <tr>
11628 <td></td>
11629 <td>)</td>
11630 <td></td><td></td>
11631 </tr>
11632 </table>
11633</div><div class="memdoc">
11634
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011635<p>Return an error if the passed window is invalid. </p>
11636<p>The subwindow is invalid if:</p><ul>
Anthony Barbier871448e2017-03-24 14:54:29 +000011637<li>It is not a valid window.</li>
11638<li>Its dimensions don't match the full window's ones</li>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011639<li>The step for each of its dimension is not identical to the corresponding one of the full window.</li>
11640</ul>
Anthony Barbier871448e2017-03-24 14:54:29 +000011641<dl class="params"><dt>Parameters</dt><dd>
11642 <table class="params">
11643 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11644 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11645 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11646 <tr><td class="paramdir">[in]</td><td class="paramname">full</td><td>Full size window </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011647 <tr><td class="paramdir">[in]</td><td class="paramname">win</td><td><a class="el" href="classarm__compute_1_1_window.xhtml" title="Describe a multidimensional execution window. ">Window</a> to validate.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000011648 </table>
11649 </dd>
11650</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011651<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000011652
11653</div>
11654</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011655<a class="anchor" id="af4587cd36ddbf2e4dde217d1a1007940"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011656<div class="memitem">
11657<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011658<table class="mlabels">
11659 <tr>
11660 <td class="mlabels-left">
Anthony Barbierdbdab852017-06-23 15:42:00 +010011661 <table class="memname">
11662 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011663 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_nullptr </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011664 <td>(</td>
11665 <td class="paramtype">const char *&#160;</td>
11666 <td class="paramname"><em>function</em>, </td>
11667 </tr>
11668 <tr>
11669 <td class="paramkey"></td>
11670 <td></td>
11671 <td class="paramtype">const char *&#160;</td>
11672 <td class="paramname"><em>file</em>, </td>
11673 </tr>
11674 <tr>
11675 <td class="paramkey"></td>
11676 <td></td>
11677 <td class="paramtype">const int&#160;</td>
11678 <td class="paramname"><em>line</em>, </td>
11679 </tr>
11680 <tr>
11681 <td class="paramkey"></td>
11682 <td></td>
11683 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
11684 <td class="paramname"><em>pointers</em>&#160;</td>
11685 </tr>
11686 <tr>
11687 <td></td>
11688 <td>)</td>
11689 <td></td><td></td>
11690 </tr>
11691 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011692 </td>
11693 <td class="mlabels-right">
11694<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11695 </tr>
11696</table>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011697</div><div class="memdoc">
11698
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011699<p>Create an error if one of the pointers is a nullptr. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011700<dl class="params"><dt>Parameters</dt><dd>
11701 <table class="params">
11702 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11703 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11704 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011705 <tr><td class="paramdir">[in]</td><td class="paramname">pointers</td><td>Pointers to check against nullptr.</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011706 </table>
11707 </dd>
11708</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011709<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011710
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011711<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00134">134</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011712
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011713<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>.</p>
11714
Anthony Barbier06ea0482018-02-22 15:45:35 +000011715<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00407">error_on_mismatching_data_types()</a>, <a class="el" href="_validate_8h_source.xhtml#l00353">error_on_mismatching_shapes()</a>, and <a class="el" href="_validate_8h_source.xhtml#l00286">error_on_tensors_not_even()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011716<div class="fragment"><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> std::array&lt;<span class="keyword">const</span> <span class="keywordtype">void</span> *, <span class="keyword">sizeof</span>...(Ts)&gt; pointers_array{ { std::forward&lt;Ts&gt;(pointers)... } };</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">bool</span> has_nullptr = std::any_of(pointers_array.begin(), pointers_array.end(), [&amp;](<span class="keyword">const</span> <span class="keywordtype">void</span> *ptr)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> (ptr == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; });</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(has_nullptr, <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Nullptr object!&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
11717<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011718</div><!-- fragment -->
11719</div>
11720</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011721<a class="anchor" id="a9f37a1ead28d12ce216e27209dae2a81"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000011722<div class="memitem">
11723<div class="memproto">
11724 <table class="memname">
11725 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011726 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_tensor_not_2d </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011727 <td>(</td>
11728 <td class="paramtype">const char *&#160;</td>
11729 <td class="paramname"><em>function</em>, </td>
11730 </tr>
11731 <tr>
11732 <td class="paramkey"></td>
11733 <td></td>
11734 <td class="paramtype">const char *&#160;</td>
11735 <td class="paramname"><em>file</em>, </td>
11736 </tr>
11737 <tr>
11738 <td class="paramkey"></td>
11739 <td></td>
11740 <td class="paramtype">const int&#160;</td>
11741 <td class="paramname"><em>line</em>, </td>
11742 </tr>
11743 <tr>
11744 <td class="paramkey"></td>
11745 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011746 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011747 <td class="paramname"><em>tensor</em>&#160;</td>
11748 </tr>
11749 <tr>
11750 <td></td>
11751 <td>)</td>
11752 <td></td><td></td>
11753 </tr>
11754 </table>
11755</div><div class="memdoc">
11756
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011757<p>Return an error if the tensor is not 2D. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011758<dl class="params"><dt>Parameters</dt><dd>
11759 <table class="params">
11760 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11761 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11762 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011763 <tr><td class="paramdir">[in]</td><td class="paramname">tensor</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> to validate.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000011764 </table>
11765 </dd>
11766</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011767<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000011768
11769</div>
11770</div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000011771<a class="anchor" id="a5bee409f8a6904df028626835b3a19be"></a>
11772<div class="memitem">
11773<div class="memproto">
11774 <table class="memname">
11775 <tr>
11776 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_tensors_not_even </td>
11777 <td>(</td>
11778 <td class="paramtype">const char *&#160;</td>
11779 <td class="paramname"><em>function</em>, </td>
11780 </tr>
11781 <tr>
11782 <td class="paramkey"></td>
11783 <td></td>
11784 <td class="paramtype">const char *&#160;</td>
11785 <td class="paramname"><em>file</em>, </td>
11786 </tr>
11787 <tr>
11788 <td class="paramkey"></td>
11789 <td></td>
11790 <td class="paramtype">int&#160;</td>
11791 <td class="paramname"><em>line</em>, </td>
11792 </tr>
11793 <tr>
11794 <td class="paramkey"></td>
11795 <td></td>
11796 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> &amp;&#160;</td>
11797 <td class="paramname"><em>format</em>, </td>
11798 </tr>
11799 <tr>
11800 <td class="paramkey"></td>
11801 <td></td>
11802 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
11803 <td class="paramname"><em>tensor1</em>, </td>
11804 </tr>
11805 <tr>
11806 <td class="paramkey"></td>
11807 <td></td>
11808 <td class="paramtype">Ts...&#160;</td>
11809 <td class="paramname"><em>tensors</em>&#160;</td>
11810 </tr>
11811 <tr>
11812 <td></td>
11813 <td>)</td>
11814 <td></td><td></td>
11815 </tr>
11816 </table>
11817</div><div class="memdoc">
11818
11819<p>Return an error if the passed tensor objects are not even. </p>
11820<dl class="params"><dt>Parameters</dt><dd>
11821 <table class="params">
11822 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11823 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11824 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11825 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Format to check if odd shape is allowed </td></tr>
11826 <tr><td class="paramdir">[in]</td><td class="paramname">tensor1</td><td>The first object to be compared for odd shape. </td></tr>
11827 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed objects.</td></tr>
11828 </table>
11829 </dd>
11830</dl>
11831<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
11832
11833<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00286">286</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
11834
11835<p>References <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00669">adjust_odd_shape()</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00134">error_on_nullptr()</a>, and <a class="el" href="_validate_8h_source.xhtml#l00051">arm_compute::detail::have_different_dimensions()</a>.</p>
11836<div class="fragment"><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;{</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor1 == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a>(<span class="keyword">function</span>, file, line, std::forward&lt;Ts&gt;(tensors)...));</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">const</span> std::array &lt; <span class="keyword">const</span> ITensor *, 1 + <span class="keyword">sizeof</span>...(Ts) &gt; tensors_info_array{ { tensor1, std::forward&lt;Ts&gt;(tensors)... } };</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(std::any_of(tensors_info_array.cbegin(), tensors_info_array.cend(), [&amp;](<span class="keyword">const</span> ITensor * tensor)</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">const</span> TensorShape correct_shape = <a class="code" href="namespacearm__compute.xhtml#add7f7487c235331a6518dd16ad1e3b38">adjust_odd_shape</a>(tensor-&gt;info()-&gt;tensor_shape(), format);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1detail.xhtml#a45d610a8bc262f7007c934293361e888">detail::have_different_dimensions</a>(tensor-&gt;info()-&gt;tensor_shape(), correct_shape, 2);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }),</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensor shape has odd dimensions&quot;</span>);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_af4587cd36ddbf2e4dde217d1a1007940"><div class="ttname"><a href="namespacearm__compute.xhtml#af4587cd36ddbf2e4dde217d1a1007940">arm_compute::error_on_nullptr</a></div><div class="ttdeci">arm_compute::Status error_on_nullptr(const char *function, const char *file, const int line, Ts &amp;&amp;...pointers)</div><div class="ttdoc">Create an error if one of the pointers is a nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00134">Validate.h:134</a></div></div>
11837<div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
11838<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
11839<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
11840<div class="ttc" id="namespacearm__compute_1_1detail_xhtml_a45d610a8bc262f7007c934293361e888"><div class="ttname"><a href="namespacearm__compute_1_1detail.xhtml#a45d610a8bc262f7007c934293361e888">arm_compute::detail::have_different_dimensions</a></div><div class="ttdeci">bool have_different_dimensions(const Dimensions&lt; T &gt; &amp;dim1, const Dimensions&lt; T &gt; &amp;dim2, unsigned int upper_dim)</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00051">Validate.h:51</a></div></div>
11841<div class="ttc" id="namespacearm__compute_xhtml_add7f7487c235331a6518dd16ad1e3b38"><div class="ttname"><a href="namespacearm__compute.xhtml#add7f7487c235331a6518dd16ad1e3b38">arm_compute::adjust_odd_shape</a></div><div class="ttdeci">TensorShape adjust_odd_shape(const TensorShape &amp;shape, Format format)</div><div class="ttdoc">Adjust tensor shape size if width or height are odd for a given multi-planar format. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l00669">Utils.h:669</a></div></div>
11842<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
11843</div><!-- fragment -->
11844</div>
11845</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011846<a class="anchor" id="a33278ff3c7798e50c453599576f58bd8"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000011847<div class="memitem">
11848<div class="memproto">
11849 <table class="memname">
11850 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011851 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_unconfigured_kernel </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011852 <td>(</td>
11853 <td class="paramtype">const char *&#160;</td>
11854 <td class="paramname"><em>function</em>, </td>
11855 </tr>
11856 <tr>
11857 <td class="paramkey"></td>
11858 <td></td>
11859 <td class="paramtype">const char *&#160;</td>
11860 <td class="paramname"><em>file</em>, </td>
11861 </tr>
11862 <tr>
11863 <td class="paramkey"></td>
11864 <td></td>
11865 <td class="paramtype">const int&#160;</td>
11866 <td class="paramname"><em>line</em>, </td>
11867 </tr>
11868 <tr>
11869 <td class="paramkey"></td>
11870 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011871 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_kernel.xhtml">IKernel</a> *&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011872 <td class="paramname"><em>kernel</em>&#160;</td>
11873 </tr>
11874 <tr>
11875 <td></td>
11876 <td>)</td>
11877 <td></td><td></td>
11878 </tr>
11879 </table>
11880</div><div class="memdoc">
11881
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011882<p>Return an error if the kernel is not configured. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011883<dl class="params"><dt>Parameters</dt><dd>
11884 <table class="params">
11885 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11886 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11887 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11888 <tr><td class="paramdir">[in]</td><td class="paramname">kernel</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> to validate. </td></tr>
11889 </table>
11890 </dd>
11891</dl>
11892
11893</div>
11894</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011895<a class="anchor" id="a902b2c73a1317fd91a167e9d4d3f211b"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011896<div class="memitem">
11897<div class="memproto">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011898<table class="mlabels">
11899 <tr>
11900 <td class="mlabels-left">
Anthony Barbierdbdab852017-06-23 15:42:00 +010011901 <table class="memname">
11902 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011903 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_value_not_representable_in_fixed_point </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011904 <td>(</td>
11905 <td class="paramtype">const char *&#160;</td>
11906 <td class="paramname"><em>function</em>, </td>
11907 </tr>
11908 <tr>
11909 <td class="paramkey"></td>
11910 <td></td>
11911 <td class="paramtype">const char *&#160;</td>
11912 <td class="paramname"><em>file</em>, </td>
11913 </tr>
11914 <tr>
11915 <td class="paramkey"></td>
11916 <td></td>
11917 <td class="paramtype">int&#160;</td>
11918 <td class="paramname"><em>line</em>, </td>
11919 </tr>
11920 <tr>
11921 <td class="paramkey"></td>
11922 <td></td>
11923 <td class="paramtype">float&#160;</td>
11924 <td class="paramname"><em>value</em>, </td>
11925 </tr>
11926 <tr>
11927 <td class="paramkey"></td>
11928 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011929 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td>
11930 <td class="paramname"><em>tensor_info</em>&#160;</td>
11931 </tr>
11932 <tr>
11933 <td></td>
11934 <td>)</td>
11935 <td></td><td></td>
11936 </tr>
11937 </table>
11938 </td>
11939 <td class="mlabels-right">
11940<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11941 </tr>
11942</table>
11943</div><div class="memdoc">
11944
11945<p>Return an error if the fixed-point value is not representable in the specified Q format. </p>
11946<dl class="params"><dt>Parameters</dt><dd>
11947 <table class="params">
11948 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
11949 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
11950 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
11951 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The floating point value to be checked. </td></tr>
11952 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_info</td><td>Input tensor info that has information on data type and fixed-point position.</td></tr>
11953 </table>
11954 </dd>
11955</dl>
11956<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
11957
Anthony Barbier06ea0482018-02-22 15:45:35 +000011958<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00897">897</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011959
11960<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00208">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00164">element_size_from_data_type()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ab21a362740e892b6e913bd8db03b0e67">ITensorInfo::fixed_point_position()</a>, and <a class="el" href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">string_from_data_type()</a>.</p>
11961
Anthony Barbier06ea0482018-02-22 15:45:35 +000011962<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00919">error_on_value_not_representable_in_fixed_point()</a>.</p>
11963<div class="fragment"><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;{</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> fixed_point_position = tensor_info-&gt;fixed_point_position();</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt = tensor_info-&gt;data_type();</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> q_max_range = 0xFFFFFFFFu &gt;&gt; (((<span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span> int) - <a class="code" href="namespacearm__compute.xhtml#a34b06c0cd94808a77b697e79880b84b0">element_size_from_data_type</a>(dt)) * 8) + 1);</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> max_range = q_max_range / (<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(1 &lt;&lt; fixed_point_position));</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <a class="code" href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a>(<a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a> &gt; max_range, <span class="keyword">function</span>, file, line,</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="stringliteral">&quot;Value %f is not representable in %s with fixed-point position %d&quot;</span>, <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, <a class="code" href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">string_from_data_type</a>(dt).c_str(), fixed_point_position);</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a34b06c0cd94808a77b697e79880b84b0"><div class="ttname"><a href="namespacearm__compute.xhtml#a34b06c0cd94808a77b697e79880b84b0">arm_compute::element_size_from_data_type</a></div><div class="ttdeci">size_t element_size_from_data_type(DataType dt)</div><div class="ttdoc">The size in bytes of the data type. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l00164">Utils.h:164</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011964<div class="ttc" id="namespacearm__compute_xhtml_aefa1d9648995e5eccc693c690e27aa88"><div class="ttname"><a href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">arm_compute::string_from_data_type</a></div><div class="ttdeci">const std::string &amp; string_from_data_type(DataType dt)</div><div class="ttdoc">Convert a data type identity into a string. </div></div>
11965<div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
11966<div class="ttc" id="core_2_error_8h_xhtml_ab4ebbfbeedd9d66614ddbfdb14199cbf"><div class="ttname"><a href="core_2_error_8h.xhtml#ab4ebbfbeedd9d66614ddbfdb14199cbf">ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC_MSG(cond, func, file, line,...)</div><div class="ttdoc">If the condition is true, an error is thrown. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00208">Error.h:208</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000011967<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#l00278">hwc.hpp:278</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000011968<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#l00072">Types.h:72</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000011969</div><!-- fragment -->
11970</div>
11971</div>
11972<a class="anchor" id="ad865b21069f578ddb1c65cb32f3fcaa0"></a>
11973<div class="memitem">
11974<div class="memproto">
11975<table class="mlabels">
11976 <tr>
11977 <td class="mlabels-left">
11978 <table class="memname">
11979 <tr>
11980 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_value_not_representable_in_fixed_point </td>
11981 <td>(</td>
11982 <td class="paramtype">const char *&#160;</td>
11983 <td class="paramname"><em>function</em>, </td>
11984 </tr>
11985 <tr>
11986 <td class="paramkey"></td>
11987 <td></td>
11988 <td class="paramtype">const char *&#160;</td>
11989 <td class="paramname"><em>file</em>, </td>
11990 </tr>
11991 <tr>
11992 <td class="paramkey"></td>
11993 <td></td>
11994 <td class="paramtype">int&#160;</td>
11995 <td class="paramname"><em>line</em>, </td>
11996 </tr>
11997 <tr>
11998 <td class="paramkey"></td>
11999 <td></td>
12000 <td class="paramtype">float&#160;</td>
12001 <td class="paramname"><em>value</em>, </td>
12002 </tr>
12003 <tr>
12004 <td class="paramkey"></td>
12005 <td></td>
12006 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012007 <td class="paramname"><em>tensor</em>&#160;</td>
12008 </tr>
12009 <tr>
12010 <td></td>
12011 <td>)</td>
12012 <td></td><td></td>
12013 </tr>
12014 </table>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012015 </td>
12016 <td class="mlabels-right">
12017<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12018 </tr>
12019</table>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012020</div><div class="memdoc">
12021
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012022<p>Return an error an error if the fixed-point value is not representable in the specified Q format. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012023<dl class="params"><dt>Parameters</dt><dd>
12024 <table class="params">
12025 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
12026 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
12027 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
12028 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The floating point value to be checked. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012029 <tr><td class="paramdir">[in]</td><td class="paramname">tensor</td><td>Input tensor that has information on data type and fixed-point position.</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012030 </table>
12031 </dd>
12032</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012033<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012034
Anthony Barbier06ea0482018-02-22 15:45:35 +000012035<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00919">919</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012036
Anthony Barbier06ea0482018-02-22 15:45:35 +000012037<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00231">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00170">ARM_COMPUTE_RETURN_ON_ERROR</a>, <a class="el" href="_validate_8h_source.xhtml#l00897">error_on_value_not_representable_in_fixed_point()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
12038<div class="fragment"><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;{</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a>(tensor == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a>(::<a class="code" href="namespacearm__compute.xhtml#a902b2c73a1317fd91a167e9d4d3f211b">arm_compute::error_on_value_not_representable_in_fixed_point</a>(<span class="keyword">function</span>, file, line, <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, tensor-&gt;info()));</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>{};</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_status_xhtml"><div class="ttname"><a href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a></div><div class="ttdoc">Status class. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00039">Error.h:39</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012039<div class="ttc" id="core_2_error_8h_xhtml_aab9171b209dda7cc9bb560486674c9f6"><div class="ttname"><a href="core_2_error_8h.xhtml#aab9171b209dda7cc9bb560486674c9f6">ARM_COMPUTE_RETURN_ERROR_ON_LOC</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON_LOC(cond, func, file, line)</div><div class="ttdoc">If the condition is true, an error is returned. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00231">Error.h:231</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000012040<div class="ttc" id="namespacearm__compute_xhtml_a902b2c73a1317fd91a167e9d4d3f211b"><div class="ttname"><a href="namespacearm__compute.xhtml#a902b2c73a1317fd91a167e9d4d3f211b">arm_compute::error_on_value_not_representable_in_fixed_point</a></div><div class="ttdeci">arm_compute::Status error_on_value_not_representable_in_fixed_point(const char *function, const char *file, int line, float value, const ITensorInfo *tensor_info)</div><div class="ttdoc">Return an error if the fixed-point value is not representable in the specified Q format. </div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00897">Validate.h:897</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012041<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#l00278">hwc.hpp:278</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012042<div class="ttc" id="core_2_error_8h_xhtml_a8a1e1c105f0bdaf37db408c7cfcb77a4"><div class="ttname"><a href="core_2_error_8h.xhtml#a8a1e1c105f0bdaf37db408c7cfcb77a4">ARM_COMPUTE_RETURN_ON_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ON_ERROR(status)</div><div class="ttdoc">Checks if a status contains an error and returns it. </div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00170">Error.h:170</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012043</div><!-- fragment -->
12044</div>
12045</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012046<a class="anchor" id="a1b1ebe735a15f66be7ebe8dccdbcee15"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000012047<div class="memitem">
12048<div class="memproto">
12049 <table class="memname">
12050 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012051 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_window_dimensions_gte </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012052 <td>(</td>
12053 <td class="paramtype">const char *&#160;</td>
12054 <td class="paramname"><em>function</em>, </td>
12055 </tr>
12056 <tr>
12057 <td class="paramkey"></td>
12058 <td></td>
12059 <td class="paramtype">const char *&#160;</td>
12060 <td class="paramname"><em>file</em>, </td>
12061 </tr>
12062 <tr>
12063 <td class="paramkey"></td>
12064 <td></td>
12065 <td class="paramtype">const int&#160;</td>
12066 <td class="paramname"><em>line</em>, </td>
12067 </tr>
12068 <tr>
12069 <td class="paramkey"></td>
12070 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012071 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012072 <td class="paramname"><em>win</em>, </td>
12073 </tr>
12074 <tr>
12075 <td class="paramkey"></td>
12076 <td></td>
12077 <td class="paramtype">unsigned int&#160;</td>
12078 <td class="paramname"><em>max_dim</em>&#160;</td>
12079 </tr>
12080 <tr>
12081 <td></td>
12082 <td>)</td>
12083 <td></td><td></td>
12084 </tr>
12085 </table>
12086</div><div class="memdoc">
12087
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012088<p>Return an error if the passed window has too many dimensions. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012089<p>The window has too many dimensions if any of the dimension greater or equal to max_dim is different from 0.</p>
12090<dl class="params"><dt>Parameters</dt><dd>
12091 <table class="params">
12092 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
12093 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
12094 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
12095 <tr><td class="paramdir">[in]</td><td class="paramname">win</td><td><a class="el" href="classarm__compute_1_1_window.xhtml" title="Describe a multidimensional execution window. ">Window</a> to validate </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012096 <tr><td class="paramdir">[in]</td><td class="paramname">max_dim</td><td>Maximum number of dimensions allowed.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000012097 </table>
12098 </dd>
12099</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012100<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000012101
12102</div>
12103</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012104<a class="anchor" id="a220627e9e23de1058191022aea58e1cf"></a>
Kaizen8938bd32017-09-28 14:38:23 +010012105<div class="memitem">
12106<div class="memproto">
12107 <table class="memname">
12108 <tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012109 <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> arm_compute::error_on_window_not_collapsable_at_dimension </td>
Kaizen8938bd32017-09-28 14:38:23 +010012110 <td>(</td>
12111 <td class="paramtype">const char *&#160;</td>
12112 <td class="paramname"><em>function</em>, </td>
12113 </tr>
12114 <tr>
12115 <td class="paramkey"></td>
12116 <td></td>
12117 <td class="paramtype">const char *&#160;</td>
12118 <td class="paramname"><em>file</em>, </td>
12119 </tr>
12120 <tr>
12121 <td class="paramkey"></td>
12122 <td></td>
12123 <td class="paramtype">const int&#160;</td>
12124 <td class="paramname"><em>line</em>, </td>
12125 </tr>
12126 <tr>
12127 <td class="paramkey"></td>
12128 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012129 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010012130 <td class="paramname"><em>full</em>, </td>
12131 </tr>
12132 <tr>
12133 <td class="paramkey"></td>
12134 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012135 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010012136 <td class="paramname"><em>window</em>, </td>
12137 </tr>
12138 <tr>
12139 <td class="paramkey"></td>
12140 <td></td>
12141 <td class="paramtype">const int&#160;</td>
12142 <td class="paramname"><em>dim</em>&#160;</td>
12143 </tr>
12144 <tr>
12145 <td></td>
12146 <td>)</td>
12147 <td></td><td></td>
12148 </tr>
12149 </table>
12150</div><div class="memdoc">
12151
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012152<p>Return an error if the window can't be collapsed at the given dimension. </p>
Kaizen8938bd32017-09-28 14:38:23 +010012153<p>The window cannot be collapsed if the given dimension not equal to the full window's dimension or not start from 0.</p>
12154<dl class="params"><dt>Parameters</dt><dd>
12155 <table class="params">
12156 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
12157 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
12158 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
12159 <tr><td class="paramdir">[in]</td><td class="paramname">full</td><td>Full size window </td></tr>
12160 <tr><td class="paramdir">[in]</td><td class="paramname">window</td><td><a class="el" href="classarm__compute_1_1_window.xhtml" title="Describe a multidimensional execution window. ">Window</a> to be collapsed. </td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012161 <tr><td class="paramdir">[in]</td><td class="paramname">dim</td><td>Dimension need to be checked.</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +010012162 </table>
12163 </dd>
12164</dl>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012165<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_status.xhtml" title="Status class. ">Status</a> </dd></dl>
Kaizen8938bd32017-09-28 14:38:23 +010012166
12167</div>
12168</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012169<a class="anchor" id="a6c0dcc38187027dcb89cd9724bc5a823"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000012170<div class="memitem">
12171<div class="memproto">
12172<table class="mlabels">
12173 <tr>
12174 <td class="mlabels-left">
12175 <table class="memname">
12176 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012177 <td class="memname">void execute_window_loop </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012178 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012179 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012180 <td class="paramname"><em>w</em>, </td>
12181 </tr>
12182 <tr>
12183 <td class="paramkey"></td>
12184 <td></td>
12185 <td class="paramtype">L &amp;&amp;&#160;</td>
12186 <td class="paramname"><em>lambda_function</em>, </td>
12187 </tr>
12188 <tr>
12189 <td class="paramkey"></td>
12190 <td></td>
12191 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
12192 <td class="paramname"><em>iterators</em>&#160;</td>
12193 </tr>
12194 <tr>
12195 <td></td>
12196 <td>)</td>
12197 <td></td><td></td>
12198 </tr>
12199 </table>
12200 </td>
12201 <td class="mlabels-right">
12202<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12203 </tr>
12204</table>
12205</div><div class="memdoc">
12206
12207<p>Iterate through the passed window, automatically adjusting the iterators and calling the lambda_functino for each element. </p>
12208<p>It passes the x and y positions to the lambda_function for each iteration</p>
12209<dl class="params"><dt>Parameters</dt><dd>
12210 <table class="params">
12211 <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td><a class="el" href="classarm__compute_1_1_window.xhtml" title="Describe a multidimensional execution window. ">Window</a> to iterate through. </td></tr>
12212 <tr><td class="paramdir">[in]</td><td class="paramname">lambda_function</td><td>The function of type void(function)( const <a class="el" href="classarm__compute_1_1_coordinates.xhtml" title="Coordinates of an item. ">Coordinates</a> &amp; id ) to call at each iteration. Where id represents the absolute coordinates of the item to process. </td></tr>
12213 <tr><td class="paramdir">[in,out]</td><td class="paramname">iterators</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> iterators which will be updated by this function before calling lambda_function. </td></tr>
12214 </table>
12215 </dd>
12216</dl>
12217
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012218<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00122">122</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012219
Anthony Barbier06ea0482018-02-22 15:45:35 +000012220<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="hwc_8hpp_source.xhtml#l00259">id</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00045">Dimensions&lt; int &gt;::num_max_dimensions</a>, and <a class="el" href="_window_8inl_source.xhtml#l00149">Window::validate()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012221
Anthony Barbier06ea0482018-02-22 15:45:35 +000012222<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00333">NumPyBinLoader::access_tensor()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00550">colorconvert_iyuv_to_nv12()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00445">colorconvert_iyuv_to_rgb()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00737">colorconvert_iyuv_to_yuv4()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00591">colorconvert_nv12_to_iyuv()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00389">colorconvert_nv12_to_rgb()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00686">colorconvert_nv12_to_yuv4()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00825">colorconvert_rgb_to_iyuv()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00789">colorconvert_rgb_to_nv12()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00303">colorconvert_rgb_to_rgbx()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00862">colorconvert_rgb_to_yuv4()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00327">colorconvert_rgbx_to_rgb()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00633">colorconvert_yuyv_to_iyuv()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00502">colorconvert_yuyv_to_nv12()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00351">colorconvert_yuyv_to_rgb()</a>, <a class="el" href="_assets_library_8h_source.xhtml#l00388">AssetsLibrary::fill_borders_with_garbage()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00312">PPMLoader::fill_image()</a>, <a class="el" href="_assets_library_8h_source.xhtml#l00688">AssetsLibrary::fill_layer_data()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00399">PPMLoader::fill_planar_tensor()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00855">arm_compute::utils::fill_random_tensor()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00561">NPYLoader::fill_tensor()</a>, <a class="el" href="_le_net5_network_8h_source.xhtml#l00161">LeNet5Network&lt; TensorType, arm_compute::test::Accessor, ActivationLayerFunction, ConvolutionLayerFunction, FullyConnectedLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::get_classifications()</a>, <a class="el" href="_mobile_net_network_8h_source.xhtml#l00170">MobileNetNetwork&lt; TensorType, arm_compute::test::Accessor, ActivationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, DepthwiseConvolutionLayerFunction, ReshapeFunction, PoolingLayerFunction &gt;::get_classifications()</a>, <a class="el" href="_mobile_net_v1_network_8h_source.xhtml#l00205">MobileNetV1Network&lt; TensorType, arm_compute::test::Accessor, ActivationLayerFunction, BatchNormalizationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, DepthwiseConvolutionFunction, ReshapeFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::get_classifications()</a>, <a class="el" href="_alex_net_network_8h_source.xhtml#l00422">AlexNetNetwork&lt; ITensorType, TensorType, SubTensorType, arm_compute::test::Accessor, ActivationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, FullyConnectedLayerFunction, NormalizationLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::get_classifications()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00808">arm_compute::utils::load_trained_data()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00062">CaffePreproccessor::preprocess()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00039">TFPreproccessor::preprocess()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00218">RandomAccessor::RandomAccessor()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00736">arm_compute::utils::save_to_npy()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00655">arm_compute::utils::save_to_ppm()</a>, and <a class="el" href="validation_2fixtures_2_dequantization_layer_fixture_8h_source.xhtml#l00050">DequantizationValidationFixedPointFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
12223<div class="fragment"><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; w.validate();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; Coordinates::num_max_dimensions; ++i)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(w[i].step() == 0);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; Coordinates <a class="code" href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; ForEachDimension&lt;Coordinates::num_max_dimensions&gt;::unroll(w, <span class="keywordtype">id</span>, std::forward&lt;L&gt;(lambda_function), std::forward&lt;Ts&gt;(iterators)...);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</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#l00259">hwc.hpp:259</a></div></div>
12224<div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012225</div><!-- fragment -->
12226</div>
12227</div>
12228<a class="anchor" id="a695a8105065167f7e4596d31f23a3573"></a>
12229<div class="memitem">
12230<div class="memproto">
12231 <table class="memname">
12232 <tr>
12233 <td class="memname">uint8x16_t arm_compute::finalize_quantization </td>
12234 <td>(</td>
12235 <td class="paramtype">int32x4x4_t &amp;&#160;</td>
12236 <td class="paramname"><em>in_s32</em>, </td>
12237 </tr>
12238 <tr>
12239 <td class="paramkey"></td>
12240 <td></td>
12241 <td class="paramtype">int&#160;</td>
12242 <td class="paramname"><em>result_fixedpoint_multiplier</em>, </td>
12243 </tr>
12244 <tr>
12245 <td class="paramkey"></td>
12246 <td></td>
12247 <td class="paramtype">int32_t&#160;</td>
12248 <td class="paramname"><em>result_shift</em>, </td>
12249 </tr>
12250 <tr>
12251 <td class="paramkey"></td>
12252 <td></td>
12253 <td class="paramtype">int32x4_t&#160;</td>
12254 <td class="paramname"><em>result_offset_after_shift_s32</em>, </td>
12255 </tr>
12256 <tr>
12257 <td class="paramkey"></td>
12258 <td></td>
12259 <td class="paramtype">uint8x16_t&#160;</td>
12260 <td class="paramname"><em>min_u8</em>, </td>
12261 </tr>
12262 <tr>
12263 <td class="paramkey"></td>
12264 <td></td>
12265 <td class="paramtype">uint8x16_t&#160;</td>
12266 <td class="paramname"><em>max_u8</em>&#160;</td>
12267 </tr>
12268 <tr>
12269 <td></td>
12270 <td>)</td>
12271 <td></td><td></td>
12272 </tr>
12273 </table>
12274</div><div class="memdoc">
12275
12276<p>Performs final quantization step on 16 elements. </p>
12277<dl class="tparams"><dt>Template Parameters</dt><dd>
12278 <table class="tparams">
12279 <tr><td class="paramname">is_bounded_relu</td><td>Specified if a fused bounded relu should be applied</td></tr>
12280 </table>
12281 </dd>
12282</dl>
12283<dl class="params"><dt>Parameters</dt><dd>
12284 <table class="params">
12285 <tr><td class="paramname">in_s32</td><td>Input to be quantized. </td></tr>
12286 <tr><td class="paramname">result_fixedpoint_multiplier</td><td>Result multiplier parameter </td></tr>
12287 <tr><td class="paramname">result_shift</td><td>Result shift parameter </td></tr>
12288 <tr><td class="paramname">result_offset_after_shift_s32</td><td>Result offset parameter </td></tr>
12289 <tr><td class="paramname">min_u8</td><td>Relu lower bound </td></tr>
12290 <tr><td class="paramname">max_u8</td><td>Relu upper bound</td></tr>
12291 </table>
12292 </dd>
12293</dl>
12294<dl class="section return"><dt>Returns</dt><dd>Quantized values </dd></dl>
12295
12296<p>Definition at line <a class="el" href="_n_e_asymm_8h_source.xhtml#l00074">74</a> of file <a class="el" href="_n_e_asymm_8h_source.xhtml">NEAsymm.h</a>.</p>
12297
12298<p>References <a class="el" href="_n_e_asymm_8inl_source.xhtml#l00026">rounding_divide_by_pow2()</a>.</p>
12299<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <span class="keyword">static</span> int32x4_t zero_s32 = vdupq_n_s32(0);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Fixed point multiplication with vector saturating rounding doubling multiply high with scalar</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; in_s32.val[0] = vqrdmulhq_n_s32(in_s32.val[0], result_fixedpoint_multiplier);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; in_s32.val[1] = vqrdmulhq_n_s32(in_s32.val[1], result_fixedpoint_multiplier);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; in_s32.val[2] = vqrdmulhq_n_s32(in_s32.val[2], result_fixedpoint_multiplier);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; in_s32.val[3] = vqrdmulhq_n_s32(in_s32.val[3], result_fixedpoint_multiplier);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// Round to the nearest division by a power-of-two using result_shift_s32</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; in_s32.val[0] = <a class="code" href="namespacearm__compute.xhtml#a5e28a3911204ac952601f512c82b48f1">rounding_divide_by_pow2</a>(in_s32.val[0], result_shift);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; in_s32.val[1] = <a class="code" href="namespacearm__compute.xhtml#a5e28a3911204ac952601f512c82b48f1">rounding_divide_by_pow2</a>(in_s32.val[1], result_shift);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; in_s32.val[2] = <a class="code" href="namespacearm__compute.xhtml#a5e28a3911204ac952601f512c82b48f1">rounding_divide_by_pow2</a>(in_s32.val[2], result_shift);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; in_s32.val[3] = <a class="code" href="namespacearm__compute.xhtml#a5e28a3911204ac952601f512c82b48f1">rounding_divide_by_pow2</a>(in_s32.val[3], result_shift);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Add the offset terms</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; in_s32.val[0] = vaddq_s32(in_s32.val[0], result_offset_after_shift_s32);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; in_s32.val[1] = vaddq_s32(in_s32.val[1], result_offset_after_shift_s32);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; in_s32.val[2] = vaddq_s32(in_s32.val[2], result_offset_after_shift_s32);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; in_s32.val[3] = vaddq_s32(in_s32.val[3], result_offset_after_shift_s32);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// Saturate negative values</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; in_s32.val[0] = vmaxq_s32(in_s32.val[0], zero_s32);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; in_s32.val[1] = vmaxq_s32(in_s32.val[1], zero_s32);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; in_s32.val[2] = vmaxq_s32(in_s32.val[2], zero_s32);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; in_s32.val[3] = vmaxq_s32(in_s32.val[3], zero_s32);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// Convert S32 to S16</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">const</span> int16x8x2_t in_s16 =</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; vcombine_s16(vqmovn_s32(in_s32.val[0]), vqmovn_s32(in_s32.val[1])),</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; vcombine_s16(vqmovn_s32(in_s32.val[2]), vqmovn_s32(in_s32.val[3]))</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Convert S16 to U8</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; uint8x16_t out_u8 = vcombine_u8(vqmovun_s16(in_s16.val[0]), vqmovun_s16(in_s16.val[1]));</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(is_bounded_relu)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; out_u8 = vmaxq_u8(out_u8, min_u8);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; out_u8 = vminq_u8(out_u8, max_u8);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> out_u8;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a5e28a3911204ac952601f512c82b48f1"><div class="ttname"><a href="namespacearm__compute.xhtml#a5e28a3911204ac952601f512c82b48f1">arm_compute::rounding_divide_by_pow2</a></div><div class="ttdeci">int32x4_t rounding_divide_by_pow2(int32x4_t x, int exponent)</div><div class="ttdoc">Round to the nearest division by a power-of-two using exponent. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_asymm_8inl_source.xhtml#l00026">NEAsymm.inl:26</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010012300</div><!-- fragment -->
12301</div>
12302</div>
12303<a class="anchor" id="a9cd394c15b73f79ca1d98f5328064be2"></a>
12304<div class="memitem">
12305<div class="memproto">
12306<table class="mlabels">
12307 <tr>
12308 <td class="mlabels-left">
12309 <table class="memname">
12310 <tr>
12311 <td class="memname">std::string arm_compute::float_to_string_with_full_precision </td>
12312 <td>(</td>
12313 <td class="paramtype">float&#160;</td>
12314 <td class="paramname"><em>val</em></td><td>)</td>
12315 <td></td>
12316 </tr>
12317 </table>
12318 </td>
12319 <td class="mlabels-right">
12320<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12321 </tr>
12322</table>
12323</div><div class="memdoc">
12324
12325<p>Create a string with the float in full precision. </p>
12326<dl class="params"><dt>Parameters</dt><dd>
12327 <table class="params">
12328 <tr><td class="paramname">val</td><td>Floating point value</td></tr>
12329 </table>
12330 </dd>
12331</dl>
12332<dl class="section return"><dt>Returns</dt><dd>String with the floating point value. </dd></dl>
12333
Anthony Barbier06ea0482018-02-22 15:45:35 +000012334<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01046">1046</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
12335<div class="fragment"><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;{</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; std::stringstream ss;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; ss.precision(std::numeric_limits&lt;float&gt;::digits10 + 1);</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; ss &lt;&lt; val;</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">return</span> ss.str();</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000012336</div>
12337</div>
12338<a class="anchor" id="a6959e681668a37a9242d2aae4e8b4375"></a>
12339<div class="memitem">
12340<div class="memproto">
12341<table class="mlabels">
12342 <tr>
12343 <td class="mlabels-left">
12344 <table class="memname">
12345 <tr>
12346 <td class="memname">auto arm_compute::floor_to_multiple </td>
12347 <td>(</td>
12348 <td class="paramtype">S&#160;</td>
12349 <td class="paramname"><em>value</em>, </td>
12350 </tr>
12351 <tr>
12352 <td class="paramkey"></td>
12353 <td></td>
12354 <td class="paramtype">T&#160;</td>
12355 <td class="paramname"><em>divisor</em>&#160;</td>
12356 </tr>
12357 <tr>
12358 <td></td>
12359 <td>)</td>
Kaizen8938bd32017-09-28 14:38:23 +010012360 <td></td><td> -&gt; decltype((<a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a> / divisor) * divisor)
Anthony Barbier871448e2017-03-24 14:54:29 +000012361</td>
12362 </tr>
12363 </table>
12364 </td>
12365 <td class="mlabels-right">
12366<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12367 </tr>
12368</table>
12369</div><div class="memdoc">
12370
12371<p>Computes the largest number smaller or equal to value that is a multiple of divisor. </p>
12372
Anthony Barbier06ea0482018-02-22 15:45:35 +000012373<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00060">60</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012374
Anthony Barbier06ea0482018-02-22 15:45:35 +000012375<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="namespacearm__compute.xhtml#a64c17a5a42d2499a1626222ff9753b4d">build_information()</a>, <a class="el" href="namespacearm__compute.xhtml#aefa4a4d3136d77b85cccfce344f9f37f">read_file()</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00278">value</a>.</p>
12376<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a> &lt; 0 || divisor &lt;= 0);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a> / divisor) * divisor;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012377<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#l00278">hwc.hpp:278</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012378</div><!-- fragment -->
12379</div>
12380</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012381<a class="anchor" id="a7f65c0c2b3ad21f427f6bb25f411e0ce"></a>
12382<div class="memitem">
12383<div class="memproto">
12384 <table class="memname">
12385 <tr>
12386 <td class="memname">bool arm_compute::fp16_support </td>
12387 <td>(</td>
12388 <td class="paramtype">const cl::Device &amp;&#160;</td>
12389 <td class="paramname"><em>device</em></td><td>)</td>
12390 <td></td>
12391 </tr>
12392 </table>
12393</div><div class="memdoc">
12394
12395<p>Helper function to check whether the cl_khr_fp16 extension is supported. </p>
12396<dl class="params"><dt>Parameters</dt><dd>
12397 <table class="params">
12398 <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>A CL device</td></tr>
12399 </table>
12400 </dd>
12401</dl>
12402<dl class="section return"><dt>Returns</dt><dd>True if the extension is supported </dd></dl>
12403
12404<p>Referenced by <a class="el" href="_c_l_helpers_8h_source.xhtml#l00100">create_kernel()</a>.</p>
12405
12406</div>
12407</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012408<a class="anchor" id="a4a351d5c39dec88af98a671da1c43fd6"></a>
12409<div class="memitem">
12410<div class="memproto">
12411 <table class="memname">
12412 <tr>
12413 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> arm_compute::get_arch_from_target </td>
12414 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012415 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012416 <td class="paramname"><em>target</em></td><td>)</td>
12417 <td></td>
12418 </tr>
12419 </table>
12420</div><div class="memdoc">
12421
12422<p>Helper function to get the GPU arch. </p>
12423<dl class="params"><dt>Parameters</dt><dd>
12424 <table class="params">
12425 <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>GPU target</td></tr>
12426 </table>
12427 </dd>
12428</dl>
12429<dl class="section return"><dt>Returns</dt><dd>the GPU target which shows the arch </dd></dl>
12430
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012431<p>Referenced by <a class="el" href="_c_l_helpers_8h_source.xhtml#l00100">create_kernel()</a>.</p>
12432
Anthony Barbierdbdab852017-06-23 15:42:00 +010012433</div>
12434</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000012435<a class="anchor" id="ab04905b0c6c0e4091160561eae870101"></a>
12436<div class="memitem">
12437<div class="memproto">
12438 <table class="memname">
12439 <tr>
12440 <td class="memname">std::string arm_compute::get_cl_type_from_data_type </td>
12441 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012442 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012443 <td class="paramname"><em>dt</em></td><td>)</td>
12444 <td></td>
12445 </tr>
12446 </table>
12447</div><div class="memdoc">
12448
12449<p>Translates a tensor data type to the appropriate OpenCL type. </p>
12450<dl class="params"><dt>Parameters</dt><dd>
12451 <table class="params">
12452 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> to be translated to OpenCL type.</td></tr>
12453 </table>
12454 </dd>
12455</dl>
12456<dl class="section return"><dt>Returns</dt><dd>The string specifying the OpenCL type to be used. </dd></dl>
12457
12458</div>
12459</div>
Kaizen8938bd32017-09-28 14:38:23 +010012460<a class="anchor" id="a54c9b94a266f8065b64f001c47815b68"></a>
12461<div class="memitem">
12462<div class="memproto">
12463 <table class="memname">
12464 <tr>
12465 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52e">CLVersion</a> arm_compute::get_cl_version </td>
12466 <td>(</td>
12467 <td class="paramtype">const cl::Device &amp;&#160;</td>
12468 <td class="paramname"><em>device</em></td><td>)</td>
12469 <td></td>
12470 </tr>
12471 </table>
12472</div><div class="memdoc">
12473
12474<p>Helper function to get the highest OpenCL version supported. </p>
12475<dl class="params"><dt>Parameters</dt><dd>
12476 <table class="params">
12477 <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>A CL device</td></tr>
12478 </table>
12479 </dd>
12480</dl>
12481<dl class="section return"><dt>Returns</dt><dd>the highest OpenCL version supported </dd></dl>
12482
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012483<p>Referenced by <a class="el" href="_c_l_helpers_8h_source.xhtml#l00100">create_kernel()</a>.</p>
12484
Kaizen8938bd32017-09-28 14:38:23 +010012485</div>
12486</div>
12487<a class="anchor" id="ae5f4dd9f672832f7dce02fc14487f544"></a>
12488<div class="memitem">
12489<div class="memproto">
12490 <table class="memname">
12491 <tr>
12492 <td class="memname">std::string arm_compute::get_data_size_from_data_type </td>
12493 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012494 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010012495 <td class="paramname"><em>dt</em></td><td>)</td>
12496 <td></td>
12497 </tr>
12498 </table>
12499</div><div class="memdoc">
12500
12501<p>Get the size of a data type in number of bits. </p>
12502<dl class="params"><dt>Parameters</dt><dd>
12503 <table class="params">
12504 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>.</td></tr>
12505 </table>
12506 </dd>
12507</dl>
12508<dl class="section return"><dt>Returns</dt><dd>Number of bits in the data type specified. </dd></dl>
12509
12510</div>
12511</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012512<a class="anchor" id="a5e4254e9c71fffafb79b99d972df8f81"></a>
12513<div class="memitem">
12514<div class="memproto">
12515<table class="mlabels">
12516 <tr>
12517 <td class="mlabels-left">
12518 <table class="memname">
12519 <tr>
12520 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> arm_compute::get_promoted_data_type </td>
12521 <td>(</td>
12522 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
12523 <td class="paramname"><em>dt</em></td><td>)</td>
12524 <td></td>
12525 </tr>
12526 </table>
12527 </td>
12528 <td class="mlabels-right">
12529<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12530 </tr>
12531</table>
12532</div><div class="memdoc">
12533
12534<p>Return the promoted data type of a given data type. </p>
12535<dl class="section note"><dt>Note</dt><dd>If promoted data type is not supported an error will be thrown</dd></dl>
12536<dl class="params"><dt>Parameters</dt><dd>
12537 <table class="params">
12538 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Data type to get the promoted type of.</td></tr>
12539 </table>
12540 </dd>
12541</dl>
12542<dl class="section return"><dt>Returns</dt><dd>Promoted data type </dd></dl>
12543
Anthony Barbier06ea0482018-02-22 15:45:35 +000012544<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00499">499</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012545
12546<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">QASYMM8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf">QS32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">S8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, and <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000012547<div class="fragment"><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;{</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">switch</span>(dt)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">case</span> DataType::U8:</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">return</span> DataType::U16;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">case</span> DataType::S8:</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">return</span> DataType::S16;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> DataType::QS16;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">case</span> DataType::U16:</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">return</span> DataType::U32;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">case</span> DataType::S16:</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">return</span> DataType::S32;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> DataType::QS32;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">case</span> DataType::QASYMM8:</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">case</span> DataType::U32:</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">case</span> DataType::S32:</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">case</span> DataType::QS32:</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Unsupported data type promotions!&quot;</span>);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Undefined data type!&quot;</span>);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">return</span> DataType::UNKNOWN;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012548</div><!-- fragment -->
12549</div>
12550</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012551<a class="anchor" id="a9d0143bdde8255313aae6ac020dd629c"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000012552<div class="memitem">
12553<div class="memproto">
Anthony Barbier871448e2017-03-24 14:54:29 +000012554 <table class="memname">
12555 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012556 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> arm_compute::get_target_from_device </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012557 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012558 <td class="paramtype">cl::Device &amp;&#160;</td>
12559 <td class="paramname"><em>device</em></td><td>)</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012560 <td></td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012561 </tr>
12562 </table>
Anthony Barbier871448e2017-03-24 14:54:29 +000012563</div><div class="memdoc">
12564
Anthony Barbierdbdab852017-06-23 15:42:00 +010012565<p>Helper function to get the GPU target from CL device. </p>
12566<dl class="params"><dt>Parameters</dt><dd>
12567 <table class="params">
12568 <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>A CL device</td></tr>
12569 </table>
12570 </dd>
12571</dl>
12572<dl class="section return"><dt>Returns</dt><dd>the GPU target </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000012573
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012574<p>Referenced by <a class="el" href="_c_l_helpers_8h_source.xhtml#l00100">create_kernel()</a>, and <a class="el" href="_c_l_scheduler_8h_source.xhtml#l00113">CLScheduler::init()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012575
Anthony Barbier871448e2017-03-24 14:54:29 +000012576</div>
12577</div>
Kaizen8938bd32017-09-28 14:38:23 +010012578<a class="anchor" id="afc95473636a442507fda7ad48f3414c0"></a>
12579<div class="memitem">
12580<div class="memproto">
12581 <table class="memname">
12582 <tr>
12583 <td class="memname">std::string arm_compute::get_underlying_cl_type_from_data_type </td>
12584 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012585 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010012586 <td class="paramname"><em>dt</em></td><td>)</td>
12587 <td></td>
12588 </tr>
12589 </table>
12590</div><div class="memdoc">
12591
12592<p>Translates fixed point tensor data type to the underlying OpenCL type. </p>
12593<dl class="params"><dt>Parameters</dt><dd>
12594 <table class="params">
12595 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> to be translated to OpenCL type.</td></tr>
12596 </table>
12597 </dd>
12598</dl>
12599<dl class="section return"><dt>Returns</dt><dd>The string specifying the underlying OpenCL type to be used. </dd></dl>
12600
12601</div>
12602</div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000012603<a class="anchor" id="aa2f22cc01532e0236e438324310fdb94"></a>
12604<div class="memitem">
12605<div class="memproto">
12606<table class="mlabels">
12607 <tr>
12608 <td class="mlabels-left">
12609 <table class="memname">
12610 <tr>
12611 <td class="memname">bool arm_compute::has_format_horizontal_subsampling </td>
12612 <td>(</td>
12613 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
12614 <td class="paramname"><em>format</em></td><td>)</td>
12615 <td></td>
12616 </tr>
12617 </table>
12618 </td>
12619 <td class="mlabels-right">
12620<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12621 </tr>
12622</table>
12623</div><div class="memdoc">
12624
12625<p>Return true if the given format has horizontal subsampling. </p>
12626<dl class="params"><dt>Parameters</dt><dd>
12627 <table class="params">
12628 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Format to determine subsampling.</td></tr>
12629 </table>
12630 </dd>
12631</dl>
12632<dl class="section return"><dt>Returns</dt><dd>True if the format can be subsampled horizontaly. </dd></dl>
12633
12634<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00534">534</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
12635
12636<p>References <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>.</p>
12637
12638<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00669">adjust_odd_shape()</a>, and <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00696">calculate_subsampled_shape()</a>.</p>
12639<div class="fragment"><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;{</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">return</span> (format == Format::YUYV422 || format == Format::UYVY422 || format == Format::NV12 || format == Format::NV21 || format == Format::IYUV || format == Format::UV88) ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;}</div></div><!-- fragment -->
12640</div>
12641</div>
12642<a class="anchor" id="a95358b677c5c17f5cc1e369e4a27e2c2"></a>
12643<div class="memitem">
12644<div class="memproto">
12645<table class="mlabels">
12646 <tr>
12647 <td class="mlabels-left">
12648 <table class="memname">
12649 <tr>
12650 <td class="memname">bool arm_compute::has_format_vertical_subsampling </td>
12651 <td>(</td>
12652 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
12653 <td class="paramname"><em>format</em></td><td>)</td>
12654 <td></td>
12655 </tr>
12656 </table>
12657 </td>
12658 <td class="mlabels-right">
12659<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12660 </tr>
12661</table>
12662</div><div class="memdoc">
12663
12664<p>Return true if the given format has vertical subsampling. </p>
12665<dl class="params"><dt>Parameters</dt><dd>
12666 <table class="params">
12667 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Format to determine subsampling.</td></tr>
12668 </table>
12669 </dd>
12670</dl>
12671<dl class="section return"><dt>Returns</dt><dd>True if the format can be subsampled verticaly. </dd></dl>
12672
12673<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00545">545</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
12674
12675<p>References <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>.</p>
12676
12677<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00669">adjust_odd_shape()</a>, and <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00696">calculate_subsampled_shape()</a>.</p>
12678<div class="fragment"><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;{</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">return</span> (format == Format::NV12 || format == Format::NV21 || format == Format::IYUV || format == Format::UV88) ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;}</div></div><!-- fragment -->
12679</div>
12680</div>
Kaizen8938bd32017-09-28 14:38:23 +010012681<a class="anchor" id="ad34f2150f1c9f8a3ecb7298162124e5d"></a>
12682<div class="memitem">
12683<div class="memproto">
12684<table class="mlabels">
12685 <tr>
12686 <td class="mlabels-left">
12687 <table class="memname">
12688 <tr>
12689 <td class="memname"><a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> index2coords </td>
12690 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012691 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010012692 <td class="paramname"><em>shape</em>, </td>
12693 </tr>
12694 <tr>
12695 <td class="paramkey"></td>
12696 <td></td>
12697 <td class="paramtype">int&#160;</td>
12698 <td class="paramname"><em>index</em>&#160;</td>
12699 </tr>
12700 <tr>
12701 <td></td>
12702 <td>)</td>
12703 <td></td><td></td>
12704 </tr>
12705 </table>
12706 </td>
12707 <td class="mlabels-right">
12708<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12709 </tr>
12710</table>
12711</div><div class="memdoc">
12712
12713<p>Convert a linear index into n-dimensional coordinates. </p>
12714<dl class="params"><dt>Parameters</dt><dd>
12715 <table class="params">
12716 <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>Shape of the n-dimensional tensor. </td></tr>
12717 <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Linear index specifying the i-th element.</td></tr>
12718 </table>
12719 </dd>
12720</dl>
12721<dl class="section return"><dt>Returns</dt><dd>n-dimensional coordinates. </dd></dl>
12722
Anthony Barbier06ea0482018-02-22 15:45:35 +000012723<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00324">324</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010012724
Anthony Barbier06ea0482018-02-22 15:45:35 +000012725<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00297">ARM_COMPUTE_ERROR_ON_MSG</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00077">TensorShape::set()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00153">TensorShape::total_size()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012726
Anthony Barbier06ea0482018-02-22 15:45:35 +000012727<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">permute()</a>.</p>
12728<div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">int</span> num_elements = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.total_size();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(index &lt; 0 || index &gt;= num_elements, <span class="stringliteral">&quot;Index has to be in [0, num_elements]!&quot;</span>);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(num_elements == 0, <span class="stringliteral">&quot;Cannot create coordinate from empty shape!&quot;</span>);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; Coordinates coord{ 0 };</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> d = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.num_dimensions() - 1; d &gt;= 0; --d)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; num_elements /= <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>[d];</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; coord.set(d, index / num_elements);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; index %= num_elements;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> coord;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012729<div class="ttc" id="core_2_error_8h_xhtml_a5bbdcf574d3f5e412fa6a1117911e67b"><div class="ttname"><a href="core_2_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond,...)</div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00297">Error.h:297</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010012730</div><!-- fragment -->
12731</div>
12732</div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012733<a class="anchor" id="a133621090cfb0f151340c6e04bd7bcc8"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000012734<div class="memitem">
12735<div class="memproto">
12736 <table class="memname">
12737 <tr>
12738 <td class="memname"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> arm_compute::intersect_valid_regions </td>
12739 <td>(</td>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012740 <td class="paramtype">const Ts &amp;...&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012741 <td class="paramname"><em>regions</em></td><td>)</td>
12742 <td></td>
12743 </tr>
12744 </table>
12745</div><div class="memdoc">
12746
12747<p>Intersect multiple valid regions. </p>
12748<dl class="params"><dt>Parameters</dt><dd>
12749 <table class="params">
12750 <tr><td class="paramdir">[in]</td><td class="paramname">regions</td><td>Valid regions.</td></tr>
12751 </table>
12752 </dd>
12753</dl>
12754<dl class="section return"><dt>Returns</dt><dd>Intersection of all regions. </dd></dl>
12755
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012756<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00442">442</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012757
Anthony Barbier06ea0482018-02-22 15:45:35 +000012758<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00216">ValidRegion::anchor</a>, <a class="el" href="utility_8h_source.xhtml#l00113">arm_compute::utility::foldl()</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="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00074">Dimensions&lt; T &gt;::set()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00077">TensorShape::set()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00217">ValidRegion::shape</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012759<div class="fragment"><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">auto</span> intersect = [](<span class="keyword">const</span> ValidRegion &amp; r1, <span class="keyword">const</span> ValidRegion &amp; r2) -&gt; ValidRegion</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; ValidRegion region;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> d = 0; d &lt; <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(r1.anchor.num_dimensions(), r2.anchor.num_dimensions()); ++d)</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; region.anchor.set(d, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(r1.anchor[d], r2.anchor[d]));</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> d = 0; d &lt; <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(r1.shape.num_dimensions(), r2.shape.num_dimensions()); ++d)</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; {</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; region.shape.set(d, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(r1.shape[d], r2.shape[d]));</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">return</span> region;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; };</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a043270c1f50c73bf9f91fcc4570ccf0c">utility::foldl</a>(intersect, regions...);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;}</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&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
Anthony Barbier06ea0482018-02-22 15:45:35 +000012760<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a043270c1f50c73bf9f91fcc4570ccf0c"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a043270c1f50c73bf9f91fcc4570ccf0c">arm_compute::utility::foldl</a></div><div class="ttdeci">T &amp;&amp; foldl(F &amp;&amp;, T &amp;&amp;value)</div><div class="ttdoc">Base case of foldl. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00113">utility.h:113</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010012761<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&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012762</div><!-- fragment -->
12763</div>
12764</div>
12765<a class="anchor" id="ab6bb62694ae8369d18a9c9687040975e"></a>
12766<div class="memitem">
12767<div class="memproto">
12768<table class="mlabels">
12769 <tr>
12770 <td class="mlabels-left">
12771 <table class="memname">
12772 <tr>
12773 <td class="memname">bool arm_compute::is_data_type_fixed_point </td>
12774 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012775 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012776 <td class="paramname"><em>dt</em></td><td>)</td>
12777 <td></td>
12778 </tr>
12779 </table>
12780 </td>
12781 <td class="mlabels-right">
12782<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12783 </tr>
12784</table>
12785</div><div class="memdoc">
12786
12787<p>Check if a given data type is of fixed point type. </p>
12788<dl class="params"><dt>Parameters</dt><dd>
12789 <table class="params">
12790 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Input data type.</td></tr>
12791 </table>
12792 </dd>
12793</dl>
12794<dl class="section return"><dt>Returns</dt><dd>True if data type is of fixed point type, else false. </dd></dl>
12795
Anthony Barbier06ea0482018-02-22 15:45:35 +000012796<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01010">1010</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012797
Kaizen8938bd32017-09-28 14:38:23 +010012798<p>References <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf">QS32</a>, and <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>.</p>
12799
Anthony Barbier06ea0482018-02-22 15:45:35 +000012800<p>Referenced by <a class="el" href="validation_2_c_l_2_activation_layer_8cpp_source.xhtml#l00114">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_validate_8h_source.xhtml#l00461">error_on_mismatching_fixed_point()</a>, <a class="el" href="validation_2_n_e_o_n_2_g_e_m_m_8cpp_source.xhtml#l00140">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>, <a class="el" href="benchmark_2fixtures_2_flatten_layer_fixture_8h_source.xhtml#l00044">FlattenLayerFixture&lt; TensorType, Function, Accessor &gt;::setup()</a>, and <a class="el" href="validation_2fixtures_2_flatten_layer_fixture_8h_source.xhtml#l00051">FlattenLayerValidationFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
12801<div class="fragment"><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;{</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordflow">switch</span>(dt)</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; {</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">case</span> DataType::QS32:</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000012802</div>
12803</div>
12804<a class="anchor" id="af5982a092e9eb743fce2d6392bdd8897"></a>
12805<div class="memitem">
12806<div class="memproto">
12807<table class="mlabels">
12808 <tr>
12809 <td class="mlabels-left">
12810 <table class="memname">
12811 <tr>
12812 <td class="memname">bool arm_compute::is_data_type_float </td>
12813 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012814 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012815 <td class="paramname"><em>dt</em></td><td>)</td>
12816 <td></td>
12817 </tr>
12818 </table>
12819 </td>
12820 <td class="mlabels-right">
12821<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12822 </tr>
12823</table>
12824</div><div class="memdoc">
12825
Anthony Barbierdbdab852017-06-23 15:42:00 +010012826<p>Check if a given data type is of floating point type. </p>
12827<dl class="params"><dt>Parameters</dt><dd>
12828 <table class="params">
12829 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Input data type.</td></tr>
12830 </table>
12831 </dd>
12832</dl>
12833<dl class="section return"><dt>Returns</dt><dd>True if data type is of floating point type, else false. </dd></dl>
12834
Anthony Barbier06ea0482018-02-22 15:45:35 +000012835<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00970">970</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012836
12837<p>References <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012838
Anthony Barbierf45d5a92018-01-24 16:23:15 +000012839<p>Referenced by <a class="el" href="validation_2fixtures_2_batch_normalization_layer_fixture_8h_source.xhtml#l00048">BatchNormalizationLayerValidationFixedPointFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="validation_2fixtures_2_normalize_planar_y_u_v_layer_fixture_8h_source.xhtml#l00048">NormalizePlanarYUVLayerValidationFixedPointFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="validation_2fixtures_2_activation_layer_fixture_8h_source.xhtml#l00050">ActivationValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, and <a class="el" href="validation_2fixtures_2_fully_connected_layer_fixture_8h_source.xhtml#l00056">FullyConnectedLayerValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T, run_interleave &gt;::setup()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000012840<div class="fragment"><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;{</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordflow">switch</span>(dt)</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; {</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; }</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012841</div>
12842</div>
12843<a class="anchor" id="a0bee325b210f81bb89fe1f9e15badf9c"></a>
12844<div class="memitem">
12845<div class="memproto">
12846<table class="mlabels">
12847 <tr>
12848 <td class="mlabels-left">
12849 <table class="memname">
12850 <tr>
12851 <td class="memname">bool arm_compute::is_data_type_quantized </td>
12852 <td>(</td>
12853 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
12854 <td class="paramname"><em>dt</em></td><td>)</td>
12855 <td></td>
12856 </tr>
12857 </table>
12858 </td>
12859 <td class="mlabels-right">
12860<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12861 </tr>
12862</table>
12863</div><div class="memdoc">
12864
12865<p>Check if a given data type is of quantized type. </p>
12866<dl class="section note"><dt>Note</dt><dd>Quantized is considered a super-set of fixed-point and asymmetric data types.</dd></dl>
12867<dl class="params"><dt>Parameters</dt><dd>
12868 <table class="params">
12869 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Input data type.</td></tr>
12870 </table>
12871 </dd>
12872</dl>
12873<dl class="section return"><dt>Returns</dt><dd>True if data type is of quantized type, else false. </dd></dl>
12874
Anthony Barbier06ea0482018-02-22 15:45:35 +000012875<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00990">990</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012876
12877<p>References <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">QASYMM8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ad5695915456312560039ee411667cdbf">QS32</a>, and <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>.</p>
12878
12879<p>Referenced by <a class="el" href="validation_2fixtures_2_pooling_layer_fixture_8h_source.xhtml#l00050">PoolingLayerValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, and <a class="el" href="validation_2fixtures_2_softmax_layer_fixture_8h_source.xhtml#l00050">SoftmaxValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000012880<div class="fragment"><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;{</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">switch</span>(dt)</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; {</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keywordflow">case</span> DataType::QASYMM8:</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">case</span> DataType::QS32:</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; }</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012881</div>
12882</div>
12883<a class="anchor" id="a14f46283f316e7f0fad301d5c1507e9f"></a>
12884<div class="memitem">
12885<div class="memproto">
12886<table class="mlabels">
12887 <tr>
12888 <td class="mlabels-left">
12889 <table class="memname">
12890 <tr>
12891 <td class="memname">bool arm_compute::is_data_type_quantized_asymmetric </td>
12892 <td>(</td>
12893 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
12894 <td class="paramname"><em>dt</em></td><td>)</td>
12895 <td></td>
12896 </tr>
12897 </table>
12898 </td>
12899 <td class="mlabels-right">
12900<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12901 </tr>
12902</table>
12903</div><div class="memdoc">
12904
12905<p>Check if a given data type is of asymmetric quantized type. </p>
12906<dl class="params"><dt>Parameters</dt><dd>
12907 <table class="params">
12908 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Input data type.</td></tr>
12909 </table>
12910 </dd>
12911</dl>
12912<dl class="section return"><dt>Returns</dt><dd>True if data type is of symmetric quantized type, else false. </dd></dl>
12913
Anthony Barbier06ea0482018-02-22 15:45:35 +000012914<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01029">1029</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012915
12916<p>References <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">QASYMM8</a>.</p>
12917
Anthony Barbier06ea0482018-02-22 15:45:35 +000012918<p>Referenced by <a class="el" href="validation_2_c_l_2_convolution_layer_8cpp_source.xhtml#l00119">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_validate_8h_source.xhtml#l00526">error_on_mismatching_quantization_info()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00280">set_quantization_info_if_empty()</a>, <a class="el" href="benchmark_2fixtures_2_convolution_layer_fixture_8h_source.xhtml#l00043">ConvolutionLayerFixture&lt; TensorType, Function, Accessor &gt;::setup()</a>, <a class="el" href="benchmark_2fixtures_2_depthwise_convolution_layer_fixture_8h_source.xhtml#l00043">DepthwiseConvolutionLayerFixture&lt; TensorType, Function, Accessor &gt;::setup()</a>, <a class="el" href="validation_2fixtures_2_softmax_layer_fixture_8h_source.xhtml#l00050">SoftmaxValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="validation_2fixtures_2_activation_layer_fixture_8h_source.xhtml#l00050">ActivationValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="validation_2fixtures_2_pooling_layer_fixture_8h_source.xhtml#l00050">PoolingLayerValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="_direct_convolution_layer_fixture_8h_source.xhtml#l00051">DirectConvolutionValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="_direct_convolution_layer_tensor_shift_fixture_8h_source.xhtml#l00052">DirectConvolutionValidationGenericTensorShiftFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="validation_2fixtures_2_depthwise_convolution_layer_fixture_8h_source.xhtml#l00055">DepthwiseConvolutionLayerValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, <a class="el" href="validation_2fixtures_2_fully_connected_layer_fixture_8h_source.xhtml#l00056">FullyConnectedLayerValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T, run_interleave &gt;::setup()</a>, and <a class="el" href="validation_2fixtures_2_convolution_layer_fixture_8h_source.xhtml#l00057">ConvolutionValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
12919<div class="fragment"><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;{</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">switch</span>(dt)</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; {</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">case</span> DataType::QASYMM8:</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; }</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000012920</div>
12921</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012922<a class="anchor" id="a532fb45c0261724a4c2e755cfd3a44e6"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000012923<div class="memitem">
12924<div class="memproto">
12925 <table class="memname">
12926 <tr>
12927 <td class="memname">std::string arm_compute::lower_string </td>
12928 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012929 <td class="paramtype">const std::string &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012930 <td class="paramname"><em>val</em></td><td>)</td>
12931 <td></td>
12932 </tr>
12933 </table>
12934</div><div class="memdoc">
12935
12936<p>Lower a given string. </p>
12937<dl class="params"><dt>Parameters</dt><dd>
12938 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010012939 <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Given string to lower.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000012940 </table>
12941 </dd>
12942</dl>
12943<dl class="section return"><dt>Returns</dt><dd>The lowered string </dd></dl>
12944
Anthony Barbier06ea0482018-02-22 15:45:35 +000012945<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012946
Anthony Barbier871448e2017-03-24 14:54:29 +000012947</div>
12948</div>
Anthony Barbiera4376382017-04-12 15:12:46 +010012949<a class="anchor" id="ac3f2de3a35ff8d9a47b5b793637784e7"></a>
12950<div class="memitem">
12951<div class="memproto">
12952 <table class="memname">
12953 <tr>
12954 <td class="memname">int arm_compute::max_consecutive_elements_display_width </td>
12955 <td>(</td>
12956 <td class="paramtype">std::ostream &amp;&#160;</td>
12957 <td class="paramname"><em>s</em>, </td>
12958 </tr>
12959 <tr>
12960 <td class="paramkey"></td>
12961 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012962 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
Anthony Barbiera4376382017-04-12 15:12:46 +010012963 <td class="paramname"><em>dt</em>, </td>
12964 </tr>
12965 <tr>
12966 <td class="paramkey"></td>
12967 <td></td>
12968 <td class="paramtype">const uint8_t *&#160;</td>
12969 <td class="paramname"><em>ptr</em>, </td>
12970 </tr>
12971 <tr>
12972 <td class="paramkey"></td>
12973 <td></td>
12974 <td class="paramtype">unsigned int&#160;</td>
12975 <td class="paramname"><em>n</em>&#160;</td>
12976 </tr>
12977 <tr>
12978 <td></td>
12979 <td>)</td>
12980 <td></td><td></td>
12981 </tr>
12982 </table>
12983</div><div class="memdoc">
12984
12985<p>Identify the maximum width of n consecutive elements. </p>
12986<dl class="params"><dt>Parameters</dt><dd>
12987 <table class="params">
12988 <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Output stream to print the elements to. </td></tr>
12989 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Data type of the elements </td></tr>
12990 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to print the elements from. </td></tr>
12991 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements to print.</td></tr>
12992 </table>
12993 </dd>
12994</dl>
12995<dl class="section return"><dt>Returns</dt><dd>The maximum width of the elements. </dd></dl>
12996
Anthony Barbier06ea0482018-02-22 15:45:35 +000012997<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01096">max_consecutive_elements_display_width_impl()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000012998
Anthony Barbiera4376382017-04-12 15:12:46 +010012999</div>
13000</div>
13001<a class="anchor" id="aaecee617b967dd96f27d2f36732fb68e"></a>
13002<div class="memitem">
13003<div class="memproto">
13004 <table class="memname">
13005 <tr>
13006 <td class="memname">int arm_compute::max_consecutive_elements_display_width_impl </td>
13007 <td>(</td>
13008 <td class="paramtype">std::ostream &amp;&#160;</td>
13009 <td class="paramname"><em>s</em>, </td>
13010 </tr>
13011 <tr>
13012 <td class="paramkey"></td>
13013 <td></td>
13014 <td class="paramtype">const T *&#160;</td>
13015 <td class="paramname"><em>ptr</em>, </td>
13016 </tr>
13017 <tr>
13018 <td class="paramkey"></td>
13019 <td></td>
13020 <td class="paramtype">unsigned int&#160;</td>
13021 <td class="paramname"><em>n</em>&#160;</td>
13022 </tr>
13023 <tr>
13024 <td></td>
13025 <td>)</td>
13026 <td></td><td></td>
13027 </tr>
13028 </table>
13029</div><div class="memdoc">
13030
13031<p>Identify the maximum width of n consecutive elements. </p>
13032<dl class="params"><dt>Parameters</dt><dd>
13033 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010013034 <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>The output stream which will be used to print the elements. Used to extract the stream format. </td></tr>
13035 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to the elements. </td></tr>
13036 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements.</td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +010013037 </table>
13038 </dd>
13039</dl>
13040<dl class="section return"><dt>Returns</dt><dd>The maximum width of the elements. </dd></dl>
13041
Anthony Barbier06ea0482018-02-22 15:45:35 +000013042<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01096">1096</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbiera4376382017-04-12 15:12:46 +010013043
Anthony Barbierf45d5a92018-01-24 16:23:15 +000013044<p>References <a class="el" href="namespacearm__compute.xhtml#ac3f2de3a35ff8d9a47b5b793637784e7">max_consecutive_elements_display_width()</a>, <a class="el" href="namespacearm__compute.xhtml#a51a0d2ae440bc8cab3fbbe84bfea8b1d">print_consecutive_elements()</a>, <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00278">value</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013045<div class="fragment"><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;{</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keyword">using</span> print_type = <span class="keyword">typename</span> <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">std::conditional&lt;std::is_floating_point&lt;T&gt;::value</a>, T, <span class="keywordtype">int</span>&gt;<a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">::type</a>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordtype">int</span> max_width = -1;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; n; ++i)</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; {</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; std::stringstream ss;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; ss.copyfmt(s);</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">if</span>(std::is_same&lt;<span class="keyword">typename</span> <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">std::decay&lt;T&gt;::type</a>, <a class="code" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>&gt;::<a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>)</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; {</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="comment">// We use T instead of print_type here is because the std::is_floating_point&lt;half&gt; returns false and then the print_type becomes int.</span></div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; ss &lt;&lt; static_cast&lt;T&gt;(ptr[i]);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; }</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; {</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; ss &lt;&lt; static_cast&lt;print_type&gt;(ptr[i]);</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; }</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; max_width = std::max&lt;int&gt;(max_width, ss.str().size());</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; }</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordflow">return</span> max_width;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a73e2825fd61d349c5ca2f5313e3c8ea1"><div class="ttname"><a href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">arm_compute::half</a></div><div class="ttdeci">half_float::half half</div><div class="ttdoc">16-bit floating point type </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00044">Types.h:44</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000013046<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#l00278">hwc.hpp:278</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013047<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010013048</div><!-- fragment -->
13049</div>
13050</div>
13051<a class="anchor" id="aa2499c7ccf5b1636360a9ac6cc52a67b"></a>
13052<div class="memitem">
13053<div class="memproto">
13054 <table class="memname">
13055 <tr>
13056 <td class="memname">bool arm_compute::non_uniform_workgroup_support </td>
13057 <td>(</td>
13058 <td class="paramtype">const cl::Device &amp;&#160;</td>
13059 <td class="paramname"><em>device</em></td><td>)</td>
13060 <td></td>
13061 </tr>
13062 </table>
13063</div><div class="memdoc">
13064
13065<p>Helper function to check whether the arm_non_uniform_work_group_size extension is supported. </p>
13066<dl class="params"><dt>Parameters</dt><dd>
13067 <table class="params">
13068 <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>A CL device</td></tr>
13069 </table>
13070 </dd>
13071</dl>
13072<dl class="section return"><dt>Returns</dt><dd>True if the extension is supported </dd></dl>
13073
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013074<p>Referenced by <a class="el" href="_c_l_helpers_8h_source.xhtml#l00100">create_kernel()</a>.</p>
13075
Anthony Barbiera4376382017-04-12 15:12:46 +010013076</div>
13077</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000013078<a class="anchor" id="ab14153fb809c18823af3c9c8bc4286cb"></a>
13079<div class="memitem">
13080<div class="memproto">
13081<table class="mlabels">
13082 <tr>
13083 <td class="mlabels-left">
13084 <table class="memname">
13085 <tr>
13086 <td class="memname">size_t arm_compute::num_channels_from_format </td>
13087 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013088 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000013089 <td class="paramname"><em>format</em></td><td>)</td>
13090 <td></td>
13091 </tr>
13092 </table>
13093 </td>
13094 <td class="mlabels-right">
13095<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13096 </tr>
13097</table>
13098</div><div class="memdoc">
13099
13100<p>Return the number of channels for a given single-planar pixel format. </p>
13101<dl class="params"><dt>Parameters</dt><dd>
13102 <table class="params">
13103 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format</td></tr>
13104 </table>
13105 </dd>
13106</dl>
13107<dl class="section return"><dt>Returns</dt><dd>The number of channels for a given image format. </dd></dl>
13108
Anthony Barbier06ea0482018-02-22 15:45:35 +000013109<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00458">458</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000013110
13111<p>References <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013112<div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">switch</span>(format)</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="comment">// Because the U and V channels are subsampled</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="comment">// these formats appear like having only 2 channels:</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">case</span> Format::UV88:</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">return</span> 3;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="comment">//Doesn&#39;t make sense for planar formats:</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000013113</div>
13114</div>
13115<a class="anchor" id="a2a71659def659c8b1c164023a99a25a9"></a>
13116<div class="memitem">
13117<div class="memproto">
13118<table class="mlabels">
13119 <tr>
13120 <td class="mlabels-left">
13121 <table class="memname">
13122 <tr>
13123 <td class="memname">size_t arm_compute::num_planes_from_format </td>
13124 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013125 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000013126 <td class="paramname"><em>format</em></td><td>)</td>
13127 <td></td>
13128 </tr>
13129 </table>
13130 </td>
13131 <td class="mlabels-right">
13132<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13133 </tr>
13134</table>
13135</div><div class="memdoc">
13136
13137<p>Return the number of planes for a given format. </p>
13138<dl class="params"><dt>Parameters</dt><dd>
13139 <table class="params">
13140 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format</td></tr>
13141 </table>
13142 </dd>
13143</dl>
13144<dl class="section return"><dt>Returns</dt><dd>The number of planes for a given image format. </dd></dl>
13145
Anthony Barbier06ea0482018-02-22 15:45:35 +000013146<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00424">424</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000013147
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013148<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013149
13150<p>Referenced by <a class="el" href="_channel_extract_fixture_8h_source.xhtml#l00048">ChannelExtractValidationFixture&lt; MultiImageType, TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
13151<div class="fragment"><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;{</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">switch</span>(format)</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">return</span> 3;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported format&quot;</span>);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000013152</div><!-- fragment -->
13153</div>
13154</div>
Anthony Barbier46d59272017-05-04 09:15:15 +010013155<a class="anchor" id="aa4f4d7a58287017588fc338965873f14"></a>
13156<div class="memitem">
13157<div class="memproto">
13158 <table class="memname">
13159 <tr>
13160 <td class="memname">bool arm_compute::opencl_is_available </td>
13161 <td>(</td>
13162 <td class="paramname"></td><td>)</td>
13163 <td></td>
13164 </tr>
13165 </table>
13166</div><div class="memdoc">
13167
Anthony Barbier06ea0482018-02-22 15:45:35 +000013168<p>Referenced by <a class="el" href="tests_2_utils_8h_source.xhtml#l00650">arm_compute::test::sync_if_necessary()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013169
Anthony Barbier46d59272017-05-04 09:15:15 +010013170</div>
13171</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013172<a class="anchor" id="a19c7b9bc5f36935ba40314907ffe54ce"></a>
13173<div class="memitem">
13174<div class="memproto">
13175 <table class="memname">
13176 <tr>
13177 <td class="memname">bool arm_compute::opengles31_is_available </td>
13178 <td>(</td>
13179 <td class="paramname"></td><td>)</td>
13180 <td></td>
13181 </tr>
13182 </table>
13183</div><div class="memdoc">
13184
13185<p>Check if the OpenGL ES 3.1 API is available at runtime. </p>
13186<dl class="section return"><dt>Returns</dt><dd>true if the OpenGL ES 3.1 API is available. </dd></dl>
13187
Anthony Barbier06ea0482018-02-22 15:45:35 +000013188<p>Referenced by <a class="el" href="_open_g_l_e_s_8h_source.xhtml#l00148">NDRange::get()</a>, and <a class="el" href="tests_2_utils_8h_source.xhtml#l00667">arm_compute::test::sync_tensor_if_necessary()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013189
13190</div>
13191</div>
13192<a class="anchor" id="a4e3ff85e1f6c648dfbe264f54c147451"></a>
13193<div class="memitem">
13194<div class="memproto">
13195<table class="mlabels">
13196 <tr>
13197 <td class="mlabels-left">
13198 <table class="memname">
13199 <tr>
13200 <td class="memname">bool arm_compute::operator!= </td>
13201 <td>(</td>
13202 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
13203 <td class="paramname"><em>lhs</em>, </td>
13204 </tr>
13205 <tr>
13206 <td class="paramkey"></td>
13207 <td></td>
13208 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
13209 <td class="paramname"><em>rhs</em>&#160;</td>
13210 </tr>
13211 <tr>
13212 <td></td>
13213 <td>)</td>
13214 <td></td><td></td>
13215 </tr>
13216 </table>
13217 </td>
13218 <td class="mlabels-right">
13219<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13220 </tr>
13221</table>
13222</div><div class="memdoc">
13223
Anthony Barbier06ea0482018-02-22 15:45:35 +000013224<p>Definition at line <a class="el" href="_dimensions_8h_source.xhtml#l00214">214</a> of file <a class="el" href="_dimensions_8h_source.xhtml">Dimensions.h</a>.</p>
13225<div class="fragment"><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;{</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> !(lhs == rhs);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013226</div>
13227</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013228<a class="anchor" id="adfe7525e3cd542da6c043a98f93a8d3c"></a>
13229<div class="memitem">
13230<div class="memproto">
13231 <table class="memname">
13232 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010013233 <td class="memname">std::enable_if&lt;<a class="el" href="structarm__compute_1_1enable__bitwise__ops.xhtml">enable_bitwise_ops</a>&lt;T&gt;::<a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>, T&gt;::type arm_compute::operator&amp; </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013234 <td>(</td>
13235 <td class="paramtype">T&#160;</td>
13236 <td class="paramname"><em>lhs</em>, </td>
13237 </tr>
13238 <tr>
13239 <td class="paramkey"></td>
13240 <td></td>
13241 <td class="paramtype">T&#160;</td>
13242 <td class="paramname"><em>rhs</em>&#160;</td>
13243 </tr>
13244 <tr>
13245 <td></td>
13246 <td>)</td>
13247 <td></td><td></td>
13248 </tr>
13249 </table>
13250</div><div class="memdoc">
13251
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013252<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00059">59</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013253
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013254<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>.</p>
13255<div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">using</span> underlying_type = <span class="keyword">typename</span> <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">std::underlying_type&lt;T&gt;::type</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(<span class="keyword">static_cast&lt;</span>underlying_type<span class="keyword">&gt;</span>(lhs) &amp; static_cast&lt;underlying_type&gt;(rhs));</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010013256</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010013257</div>
13258</div>
13259<a class="anchor" id="a18d43401e8f84ed020429b41ec4e99f5"></a>
13260<div class="memitem">
13261<div class="memproto">
13262 <table class="memname">
13263 <tr>
13264 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13265 <td>(</td>
13266 <td class="paramtype">::std::ostream &amp;&#160;</td>
13267 <td class="paramname"><em>os</em>, </td>
13268 </tr>
13269 <tr>
13270 <td class="paramkey"></td>
13271 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013272 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013273 <td class="paramname"><em>dimensions</em>&#160;</td>
13274 </tr>
13275 <tr>
13276 <td></td>
13277 <td>)</td>
13278 <td></td><td></td>
13279 </tr>
13280 </table>
13281</div><div class="memdoc">
13282
13283<p>Formatted output of the <a class="el" href="classarm__compute_1_1_dimensions.xhtml" title="Dimensions with dimensionality. ">Dimensions</a> type. </p>
13284
Anthony Barbier06ea0482018-02-22 15:45:35 +000013285<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00046">46</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
13286<div class="fragment"><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(dimensions.num_dimensions() &gt; 0)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; os &lt;&lt; dimensions[0];</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> d = 1; d &lt; dimensions.num_dimensions(); ++d)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; dimensions[d];</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010013287</div>
13288</div>
Kaizen8938bd32017-09-28 14:38:23 +010013289<a class="anchor" id="ae8c2a3451bcf739a75aa7438e7a78d45"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013290<div class="memitem">
13291<div class="memproto">
13292 <table class="memname">
13293 <tr>
13294 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13295 <td>(</td>
13296 <td class="paramtype">::std::ostream &amp;&#160;</td>
13297 <td class="paramname"><em>os</em>, </td>
13298 </tr>
13299 <tr>
13300 <td class="paramkey"></td>
13301 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013302 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013303 <td class="paramname"><em>function</em>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013304 </tr>
13305 <tr>
13306 <td></td>
13307 <td>)</td>
13308 <td></td><td></td>
13309 </tr>
13310 </table>
13311</div><div class="memdoc">
13312
Kaizen8938bd32017-09-28 14:38:23 +010013313<p>Formatted output of the NonLinearFilterFunction type. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013314
Anthony Barbier06ea0482018-02-22 15:45:35 +000013315<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00062">62</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013316
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013317<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">MAX</a>, <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a8ab0c3a037e882577dec378985477074">MEDIAN</a>, and <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653">MIN</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013318<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">switch</span>(<span class="keyword">function</span>)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">case</span> NonLinearFilterFunction::MAX:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;MAX&quot;</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">case</span> NonLinearFilterFunction::MEDIAN:</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;MEDIAN&quot;</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">case</span> NonLinearFilterFunction::MIN:</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;MIN&quot;</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013319</div><!-- fragment -->
13320</div>
13321</div>
Kaizen8938bd32017-09-28 14:38:23 +010013322<a class="anchor" id="acec416ec5af175a7aad47a518fefb770"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013323<div class="memitem">
13324<div class="memproto">
13325 <table class="memname">
13326 <tr>
13327 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13328 <td>(</td>
13329 <td class="paramtype">::std::ostream &amp;&#160;</td>
13330 <td class="paramname"><em>os</em>, </td>
13331 </tr>
13332 <tr>
13333 <td class="paramkey"></td>
13334 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013335 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013336 <td class="paramname"><em>pattern</em>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013337 </tr>
13338 <tr>
13339 <td></td>
13340 <td>)</td>
13341 <td></td><td></td>
13342 </tr>
13343 </table>
13344</div><div class="memdoc">
13345
Kaizen8938bd32017-09-28 14:38:23 +010013346<p>Formatted output of the MatrixPattern type. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013347
Anthony Barbier06ea0482018-02-22 15:45:35 +000013348<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00090">90</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013349
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013350<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02ae657cce1913c857166b0475f18668ef5">BOX</a>, <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a04dd53a8e6c2306e9bbf944c1d6047f2">CROSS</a>, <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a290d4b81f4e2b47d86fd1b0170e9aab7">DISK</a>, and <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb">OTHER</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013351<div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">switch</span>(pattern)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">case</span> MatrixPattern::BOX:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;BOX&quot;</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">case</span> MatrixPattern::CROSS:</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;CROSS&quot;</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">case</span> MatrixPattern::DISK:</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;DISK&quot;</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">case</span> MatrixPattern::OTHER:</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;OTHER&quot;</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013352</div><!-- fragment -->
13353</div>
13354</div>
13355<a class="anchor" id="a295edc9f8caf95838db2c5e251153514"></a>
13356<div class="memitem">
13357<div class="memproto">
13358 <table class="memname">
13359 <tr>
13360 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13361 <td>(</td>
13362 <td class="paramtype">::std::ostream &amp;&#160;</td>
13363 <td class="paramname"><em>os</em>, </td>
13364 </tr>
13365 <tr>
13366 <td class="paramkey"></td>
13367 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013368 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013369 <td class="paramname"><em>rounding_policy</em>&#160;</td>
13370 </tr>
13371 <tr>
13372 <td></td>
13373 <td>)</td>
13374 <td></td><td></td>
13375 </tr>
13376 </table>
13377</div><div class="memdoc">
13378
13379<p>Formatted output of the RoundingPolicy type. </p>
13380
Anthony Barbier06ea0482018-02-22 15:45:35 +000013381<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00121">121</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013382
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013383<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea02ff1fff1812f84c89547fcd6c176150">TO_NEAREST_EVEN</a>, <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95">TO_NEAREST_UP</a>, and <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea5631ad8e27788edfca7e13535d862c06">TO_ZERO</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013384<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">switch</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a60ad1078faeaf3f59266d69ad937339f">rounding_policy</a>)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">case</span> RoundingPolicy::TO_ZERO:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;TO_ZERO&quot;</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">case</span> RoundingPolicy::TO_NEAREST_UP:</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;TO_NEAREST_UP&quot;</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">case</span> RoundingPolicy::TO_NEAREST_EVEN:</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;TO_NEAREST_EVEN&quot;</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013385<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a60ad1078faeaf3f59266d69ad937339f"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a60ad1078faeaf3f59266d69ad937339f">arm_compute::test::validation::rounding_policy</a></div><div class="ttdeci">rounding_policy</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00176">PixelWiseMultiplication.cpp:176</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010013386</div><!-- fragment -->
13387</div>
13388</div>
13389<a class="anchor" id="a5972c7131d378f567af9c2961f088a0b"></a>
13390<div class="memitem">
13391<div class="memproto">
13392 <table class="memname">
13393 <tr>
13394 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13395 <td>(</td>
13396 <td class="paramtype">::std::ostream &amp;&#160;</td>
13397 <td class="paramname"><em>os</em>, </td>
13398 </tr>
13399 <tr>
13400 <td class="paramkey"></td>
13401 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013402 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_weights_info.xhtml">WeightsInfo</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013403 <td class="paramname"><em>weights_info</em>&#160;</td>
13404 </tr>
13405 <tr>
13406 <td></td>
13407 <td>)</td>
13408 <td></td><td></td>
13409 </tr>
13410 </table>
13411</div><div class="memdoc">
13412
13413<p>Formatted output of the <a class="el" href="classarm__compute_1_1_weights_info.xhtml" title="Convolution Layer Weights Information class. ">WeightsInfo</a> type. </p>
13414
Anthony Barbier06ea0482018-02-22 15:45:35 +000013415<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00142">142</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013416
Anthony Barbier06ea0482018-02-22 15:45:35 +000013417<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00848">WeightsInfo::are_reshaped()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00864">WeightsInfo::kernel_size()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00856">WeightsInfo::num_kernels()</a>.</p>
13418<div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; os &lt;&lt; weights_info.are_reshaped() &lt;&lt; <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; os &lt;&lt; weights_info.num_kernels() &lt;&lt; <span class="stringliteral">&quot;;&quot;</span> &lt;&lt; weights_info.kernel_size().first &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; weights_info.kernel_size().second;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010013419</div>
13420</div>
13421<a class="anchor" id="a352b805b77fde4f32f44af271580677b"></a>
13422<div class="memitem">
13423<div class="memproto">
13424 <table class="memname">
13425 <tr>
13426 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13427 <td>(</td>
13428 <td class="paramtype">::std::ostream &amp;&#160;</td>
13429 <td class="paramname"><em>os</em>, </td>
13430 </tr>
13431 <tr>
13432 <td class="paramkey"></td>
13433 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013434 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_r_o_i_pooling_layer_info.xhtml">ROIPoolingLayerInfo</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013435 <td class="paramname"><em>pool_info</em>&#160;</td>
13436 </tr>
13437 <tr>
13438 <td></td>
13439 <td>)</td>
13440 <td></td><td></td>
13441 </tr>
13442 </table>
13443</div><div class="memdoc">
13444
13445<p>Formatted output of the ROIPoolingInfo type. </p>
13446
Anthony Barbier06ea0482018-02-22 15:45:35 +000013447<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00151">151</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013448
Anthony Barbier06ea0482018-02-22 15:45:35 +000013449<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00685">ROIPoolingLayerInfo::pooled_height()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00681">ROIPoolingLayerInfo::pooled_width()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00689">ROIPoolingLayerInfo::spatial_scale()</a>.</p>
13450<div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; os &lt;&lt; pool_info.pooled_width() &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; pool_info.pooled_height() &lt;&lt; <span class="stringliteral">&quot;~&quot;</span> &lt;&lt; pool_info.spatial_scale();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013451</div>
13452</div>
13453<a class="anchor" id="a32a5556a927543fe57c0d7b82c20e9b4"></a>
13454<div class="memitem">
13455<div class="memproto">
13456 <table class="memname">
13457 <tr>
13458 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13459 <td>(</td>
13460 <td class="paramtype">::std::ostream &amp;&#160;</td>
13461 <td class="paramname"><em>os</em>, </td>
13462 </tr>
13463 <tr>
13464 <td class="paramkey"></td>
13465 <td></td>
13466 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> &amp;&#160;</td>
13467 <td class="paramname"><em>quantization_info</em>&#160;</td>
13468 </tr>
13469 <tr>
13470 <td></td>
13471 <td>)</td>
13472 <td></td><td></td>
13473 </tr>
13474 </table>
13475</div><div class="memdoc">
13476
13477<p>Formatted output of the <a class="el" href="structarm__compute_1_1_quantization_info.xhtml" title="Quantization settings (used for QASYMM8 data type) ">QuantizationInfo</a> type. </p>
13478
Anthony Barbier06ea0482018-02-22 15:45:35 +000013479<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00158">158</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013480
Anthony Barbier06ea0482018-02-22 15:45:35 +000013481<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00140">QuantizationInfo::offset</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00139">QuantizationInfo::scale</a>.</p>
13482<div class="fragment"><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;Scale:&quot;</span> &lt;&lt; quantization_info.scale &lt;&lt; <span class="stringliteral">&quot;~&quot;</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Offset:&quot;</span> &lt;&lt; quantization_info.offset;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div></div><!-- fragment -->
Kaizenbf8b01d2017-10-12 14:26:51 +010013483</div>
13484</div>
13485<a class="anchor" id="a2abb76fe917828983d666628badab08d"></a>
13486<div class="memitem">
13487<div class="memproto">
13488 <table class="memname">
13489 <tr>
13490 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13491 <td>(</td>
13492 <td class="paramtype">::std::ostream &amp;&#160;</td>
13493 <td class="paramname"><em>os</em>, </td>
13494 </tr>
13495 <tr>
13496 <td class="paramkey"></td>
13497 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013498 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a> &amp;&#160;</td>
Kaizenbf8b01d2017-10-12 14:26:51 +010013499 <td class="paramname"><em>op</em>&#160;</td>
13500 </tr>
13501 <tr>
13502 <td></td>
13503 <td>)</td>
13504 <td></td><td></td>
13505 </tr>
13506 </table>
13507</div><div class="memdoc">
13508
Anthony Barbier06ea0482018-02-22 15:45:35 +000013509<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00172">172</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizenbf8b01d2017-10-12 14:26:51 +010013510
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013511<p>References <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca9eeb52badb613229884838847294b90d">ADD</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7">EXP</a>, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b">INV_SQRT</a>, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3">LOG</a>, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca2cdf52a55876063ec93b7d18bc741f6c">MUL</a>, <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1">RECIPROCAL</a>, and <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca241dd841abade20fcb27b8a9f494e1eb">SUB</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013512<div class="fragment"><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">switch</span>(op)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> <a class="code" href="arithmetic__op_8cl.xhtml#af3b709fb668cf93ca09e2a46a2a031a8">FixedPointOp::ADD</a>:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;ADD&quot;</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> <a class="code" href="arithmetic__op_8cl.xhtml#aafc2c4f262a0686c07f86c7d2e1d8d14">FixedPointOp::SUB</a>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SUB&quot;</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">case</span> FixedPointOp::MUL:</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;MUL&quot;</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> FixedPointOp::EXP:</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;EXP&quot;</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> FixedPointOp::LOG:</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;LOG&quot;</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">case</span> FixedPointOp::INV_SQRT:</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;INV_SQRT&quot;</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">case</span> FixedPointOp::RECIPROCAL:</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;RECIPROCAL&quot;</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010013513<div class="ttc" id="arithmetic__op_8cl_xhtml_af3b709fb668cf93ca09e2a46a2a031a8"><div class="ttname"><a href="arithmetic__op_8cl.xhtml#af3b709fb668cf93ca09e2a46a2a031a8">ADD</a></div><div class="ttdeci">#define ADD(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="arithmetic__op_8cl_source.xhtml#l00034">arithmetic_op.cl:34</a></div></div>
13514<div class="ttc" id="arithmetic__op_8cl_xhtml_aafc2c4f262a0686c07f86c7d2e1d8d14"><div class="ttname"><a href="arithmetic__op_8cl.xhtml#aafc2c4f262a0686c07f86c7d2e1d8d14">SUB</a></div><div class="ttdeci">#define SUB(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="arithmetic__op_8cl_source.xhtml#l00035">arithmetic_op.cl:35</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010013515</div><!-- fragment -->
13516</div>
13517</div>
13518<a class="anchor" id="a9d79efe2673aeb3f9a9160b6a78de50c"></a>
13519<div class="memitem">
13520<div class="memproto">
13521 <table class="memname">
13522 <tr>
13523 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13524 <td>(</td>
13525 <td class="paramtype">::std::ostream &amp;&#160;</td>
13526 <td class="paramname"><em>os</em>, </td>
13527 </tr>
13528 <tr>
13529 <td class="paramkey"></td>
13530 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013531 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9ea">ActivationLayerInfo::ActivationFunction</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013532 <td class="paramname"><em>act_function</em>&#160;</td>
13533 </tr>
13534 <tr>
13535 <td></td>
13536 <td>)</td>
13537 <td></td><td></td>
13538 </tr>
13539 </table>
13540</div><div class="memdoc">
13541
13542<p>Formatted output of the activation function type. </p>
13543
Anthony Barbier06ea0482018-02-22 15:45:35 +000013544<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00212">212</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013545
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013546<p>References <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaa7d8a220d2262f9d6c658d549ee12cf2c">ActivationLayerInfo::ABS</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaacc516ab03b98f1c908ddf6ed4a7c45e9">ActivationLayerInfo::BOUNDED_RELU</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="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="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaad346bb4679d29be241279f15d7795c1c">ActivationLayerInfo::RELU</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>, and <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaa143c8c6f51b9bb893ce71e38702e3cc1">ActivationLayerInfo::TANH</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013547<div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">switch</span>(act_function)</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::ABS:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;ABS&quot;</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LINEAR:</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;LINEAR&quot;</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LOGISTIC:</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;LOGISTIC&quot;</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::RELU:</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;RELU&quot;</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::BOUNDED_RELU:</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;BOUNDED_RELU&quot;</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LEAKY_RELU:</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;LEAKY_RELU&quot;</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::SOFT_RELU:</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SOFT_RELU&quot;</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::SQRT:</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SQRT&quot;</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LU_BOUNDED_RELU:</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;LU_BOUNDED_RELU&quot;</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::SQUARE:</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SQUARE&quot;</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::TANH:</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;TANH&quot;</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010013548</div><!-- fragment -->
13549</div>
13550</div>
13551<a class="anchor" id="a2ab7370aab6e5698990c50c8871fa6fb"></a>
13552<div class="memitem">
13553<div class="memproto">
13554 <table class="memname">
13555 <tr>
13556 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13557 <td>(</td>
13558 <td class="paramtype">::std::ostream &amp;&#160;</td>
13559 <td class="paramname"><em>os</em>, </td>
13560 </tr>
13561 <tr>
13562 <td class="paramkey"></td>
13563 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013564 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013565 <td class="paramname"><em>norm_type</em>&#160;</td>
13566 </tr>
13567 <tr>
13568 <td></td>
13569 <td>)</td>
13570 <td></td><td></td>
13571 </tr>
13572 </table>
13573</div><div class="memdoc">
13574
13575<p>Formatted output of the NormType type. </p>
13576
Anthony Barbier06ea0482018-02-22 15:45:35 +000013577<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00271">271</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013578
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013579<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5">CROSS_MAP</a>, <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caaca2475ab7883ebb9f125241141896190">IN_MAP_1D</a>, and <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e">IN_MAP_2D</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013580<div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">switch</span>(norm_type)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">case</span> NormType::CROSS_MAP:</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;CROSS_MAP&quot;</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">case</span> NormType::IN_MAP_1D:</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;IN_MAP_1D&quot;</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">case</span> NormType::IN_MAP_2D:</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;IN_MAP_2D&quot;</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010013581</div><!-- fragment -->
13582</div>
13583</div>
Kaizenbf8b01d2017-10-12 14:26:51 +010013584<a class="anchor" id="a6e422c610c91f611590173cd595c94c5"></a>
13585<div class="memitem">
13586<div class="memproto">
13587 <table class="memname">
13588 <tr>
13589 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13590 <td>(</td>
13591 <td class="paramtype">::std::ostream &amp;&#160;</td>
13592 <td class="paramname"><em>os</em>, </td>
13593 </tr>
13594 <tr>
13595 <td class="paramkey"></td>
13596 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013597 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a> &amp;&#160;</td>
Kaizenbf8b01d2017-10-12 14:26:51 +010013598 <td class="paramname"><em>info</em>&#160;</td>
13599 </tr>
13600 <tr>
13601 <td></td>
13602 <td>)</td>
13603 <td></td><td></td>
13604 </tr>
13605 </table>
13606</div><div class="memdoc">
13607
13608<p>Formatted output of <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a>. </p>
13609
Anthony Barbier06ea0482018-02-22 15:45:35 +000013610<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00299">299</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizenbf8b01d2017-10-12 14:26:51 +010013611
Anthony Barbier06ea0482018-02-22 15:45:35 +000013612<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00778">NormalizationLayerInfo::norm_size()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00774">NormalizationLayerInfo::type()</a>.</p>
13613<div class="fragment"><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;{</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; os &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.type() &lt;&lt; <span class="stringliteral">&quot;:NormSize=&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.norm_size();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010013614</div><!-- fragment -->
13615</div>
13616</div>
Kaizen8938bd32017-09-28 14:38:23 +010013617<a class="anchor" id="a336cf1e870f467e44c184587a13feeec"></a>
13618<div class="memitem">
13619<div class="memproto">
13620 <table class="memname">
13621 <tr>
13622 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13623 <td>(</td>
13624 <td class="paramtype">::std::ostream &amp;&#160;</td>
13625 <td class="paramname"><em>os</em>, </td>
13626 </tr>
13627 <tr>
13628 <td class="paramkey"></td>
13629 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013630 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013631 <td class="paramname"><em>pool_type</em>&#160;</td>
13632 </tr>
13633 <tr>
13634 <td></td>
13635 <td>)</td>
13636 <td></td><td></td>
13637 </tr>
13638 </table>
13639</div><div class="memdoc">
13640
13641<p>Formatted output of the PoolingType type. </p>
13642
Anthony Barbier06ea0482018-02-22 15:45:35 +000013643<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00306">306</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013644
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013645<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a">AVG</a>, <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93a7e6aa2d53f6ee2b1a34b017fa403cb76">L2</a>, and <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">MAX</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013646<div class="fragment"><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;{</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">switch</span>(pool_type)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">case</span> PoolingType::AVG:</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;AVG&quot;</span>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">case</span> PoolingType::MAX:</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;MAX&quot;</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">case</span> PoolingType::L2:</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;L2&quot;</span>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010013647</div><!-- fragment -->
13648</div>
13649</div>
13650<a class="anchor" id="ae72a61a2ca5c962ab1d37065e5598060"></a>
13651<div class="memitem">
13652<div class="memproto">
13653 <table class="memname">
13654 <tr>
13655 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13656 <td>(</td>
13657 <td class="paramtype">::std::ostream &amp;&#160;</td>
13658 <td class="paramname"><em>os</em>, </td>
13659 </tr>
13660 <tr>
13661 <td class="paramkey"></td>
13662 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013663 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013664 <td class="paramname"><em>info</em>&#160;</td>
13665 </tr>
13666 <tr>
13667 <td></td>
13668 <td>)</td>
13669 <td></td><td></td>
13670 </tr>
13671 </table>
13672</div><div class="memdoc">
13673
13674<p>Formatted output of <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a>. </p>
13675
Anthony Barbier06ea0482018-02-22 15:45:35 +000013676<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00327">327</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013677
Anthony Barbier06ea0482018-02-22 15:45:35 +000013678<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00638">PoolingLayerInfo::pool_type()</a>.</p>
13679<div class="fragment"><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; os &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pool_type();</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013680</div><!-- fragment -->
13681</div>
13682</div>
13683<a class="anchor" id="a685af15532d70b8682bcc52f06f034f9"></a>
13684<div class="memitem">
13685<div class="memproto">
13686 <table class="memname">
13687 <tr>
13688 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13689 <td>(</td>
13690 <td class="paramtype">::std::ostream &amp;&#160;</td>
13691 <td class="paramname"><em>os</em>, </td>
13692 </tr>
13693 <tr>
13694 <td class="paramkey"></td>
13695 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013696 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013697 <td class="paramname"><em>data_type</em>&#160;</td>
13698 </tr>
13699 <tr>
13700 <td></td>
13701 <td>)</td>
13702 <td></td><td></td>
13703 </tr>
13704 </table>
13705</div><div class="memdoc">
13706
13707<p>Formatted output of the DataType type. </p>
13708
Anthony Barbier06ea0482018-02-22 15:45:35 +000013709<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00342">342</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013710
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013711<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">F64</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">QASYMM8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">S64</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">S8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">SIZET</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">U64</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, and <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013712<div class="fragment"><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;{</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">switch</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>)</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">case</span> DataType::UNKNOWN:</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UNKNOWN&quot;</span>;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">case</span> DataType::U8:</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U8&quot;</span>;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;QS8&quot;</span>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">case</span> DataType::QASYMM8:</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;QASYMM8&quot;</span>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">case</span> DataType::S8:</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S8&quot;</span>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">case</span> DataType::U16:</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U16&quot;</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">case</span> DataType::S16:</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S16&quot;</span>;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;QS16&quot;</span>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">case</span> DataType::U32:</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U32&quot;</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">case</span> DataType::S32:</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S32&quot;</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">case</span> DataType::U64:</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U64&quot;</span>;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">case</span> DataType::S64:</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S64&quot;</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F16&quot;</span>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F32&quot;</span>;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">case</span> DataType::F64:</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F64&quot;</span>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">case</span> DataType::SIZET:</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SIZET&quot;</span>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000013713<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013714</div><!-- fragment -->
13715</div>
13716</div>
13717<a class="anchor" id="a3b22e54b0ac0204c3b89aebcd695fa03"></a>
13718<div class="memitem">
13719<div class="memproto">
13720 <table class="memname">
13721 <tr>
13722 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13723 <td>(</td>
13724 <td class="paramtype">::std::ostream &amp;&#160;</td>
13725 <td class="paramname"><em>os</em>, </td>
13726 </tr>
13727 <tr>
13728 <td class="paramkey"></td>
13729 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013730 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013731 <td class="paramname"><em>format</em>&#160;</td>
13732 </tr>
13733 <tr>
13734 <td></td>
13735 <td>)</td>
13736 <td></td><td></td>
13737 </tr>
13738 </table>
13739</div><div class="memdoc">
13740
13741<p>Formatted output of the Format type. </p>
13742
Anthony Barbier06ea0482018-02-22 15:45:35 +000013743<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00409">409</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013744
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013745<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013746<div class="fragment"><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;{</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">switch</span>(format)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">case</span> Format::UNKNOWN:</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UNKNOWN&quot;</span>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U8&quot;</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S16&quot;</span>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U16&quot;</span>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S32&quot;</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U32&quot;</span>;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F16&quot;</span>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F32&quot;</span>;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">case</span> Format::UV88:</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UV88&quot;</span>;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;RGB888&quot;</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;RGBA8888&quot;</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;YUV444&quot;</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;YUYV422&quot;</span>;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;NV12&quot;</span>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;NV21&quot;</span>;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;IYUV&quot;</span>;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UYVY422&quot;</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013747</div><!-- fragment -->
13748</div>
13749</div>
13750<a class="anchor" id="aa66be15c012986ebd4c1934b97e08a36"></a>
13751<div class="memitem">
13752<div class="memproto">
13753 <table class="memname">
13754 <tr>
13755 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13756 <td>(</td>
13757 <td class="paramtype">::std::ostream &amp;&#160;</td>
13758 <td class="paramname"><em>os</em>, </td>
13759 </tr>
13760 <tr>
13761 <td class="paramkey"></td>
13762 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013763 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013764 <td class="paramname"><em>channel</em>&#160;</td>
13765 </tr>
13766 <tr>
13767 <td></td>
13768 <td>)</td>
13769 <td></td><td></td>
13770 </tr>
13771 </table>
13772</div><div class="memdoc">
13773
13774<p>Formatted output of the Channel type. </p>
13775
Anthony Barbier06ea0482018-02-22 15:45:35 +000013776<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00479">479</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013777
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013778<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9c5959e6f08f10d0edbadf5be1f33c53">C0</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa1a2ddc2db4693cfd16d534cde5572cc1">C1</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aaf1a543f5a2c5d49bc5dde298fcf716e4">C2</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa3abe124ecc82bf2c2e22e6058f38c50c">C3</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf">G</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6">R</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>, <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">Y</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013779<div class="fragment"><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">case</span> Channel::UNKNOWN:</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UNKNOWN&quot;</span>;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">case</span> Channel::C0:</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;C0&quot;</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">case</span> Channel::C1:</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;C1&quot;</span>;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">case</span> Channel::C2:</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;C2&quot;</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">case</span> Channel::C3:</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;C3&quot;</span>;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">case</span> Channel::R:</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;R&quot;</span>;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">case</span> Channel::G:</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;G&quot;</span>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">case</span> Channel::B:</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;B&quot;</span>;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">case</span> Channel::A:</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;A&quot;</span>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">case</span> Channel::Y:</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;Y&quot;</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U&quot;</span>;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;V&quot;</span>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010013780</div><!-- fragment -->
13781</div>
13782</div>
13783<a class="anchor" id="a7929032d41d5f23cd1778a70508d0219"></a>
13784<div class="memitem">
13785<div class="memproto">
13786 <table class="memname">
13787 <tr>
13788 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13789 <td>(</td>
13790 <td class="paramtype">::std::ostream &amp;&#160;</td>
13791 <td class="paramname"><em>os</em>, </td>
13792 </tr>
13793 <tr>
13794 <td class="paramkey"></td>
13795 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013796 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013797 <td class="paramname"><em>mode</em>&#160;</td>
13798 </tr>
13799 <tr>
13800 <td></td>
13801 <td>)</td>
13802 <td></td><td></td>
13803 </tr>
13804 </table>
13805</div><div class="memdoc">
13806
13807<p>Formatted output of the BorderMode type. </p>
13808
Anthony Barbier06ea0482018-02-22 15:45:35 +000013809<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00534">534</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013810
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013811<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">CONSTANT</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">REPLICATE</a>, and <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">UNDEFINED</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013812<div class="fragment"><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;{</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">switch</span>(mode)</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; {</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">case</span> BorderMode::UNDEFINED:</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UNDEFINED&quot;</span>;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">case</span> BorderMode::CONSTANT:</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;CONSTANT&quot;</span>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">case</span> BorderMode::REPLICATE:</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;REPLICATE&quot;</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; }</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013813</div><!-- fragment -->
13814</div>
13815</div>
13816<a class="anchor" id="af32c4c5cdd0efde09774eb803bc8a0bd"></a>
13817<div class="memitem">
13818<div class="memproto">
13819 <table class="memname">
13820 <tr>
13821 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13822 <td>(</td>
13823 <td class="paramtype">::std::ostream &amp;&#160;</td>
13824 <td class="paramname"><em>os</em>, </td>
13825 </tr>
13826 <tr>
13827 <td class="paramkey"></td>
13828 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013829 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013830 <td class="paramname"><em>border</em>&#160;</td>
13831 </tr>
13832 <tr>
13833 <td></td>
13834 <td>)</td>
13835 <td></td><td></td>
13836 </tr>
13837 </table>
13838</div><div class="memdoc">
13839
13840<p>Formatted output of the <a class="el" href="structarm__compute_1_1_border_size.xhtml" title="Container for 2D border size. ">BorderSize</a> type. </p>
13841
Anthony Barbier06ea0482018-02-22 15:45:35 +000013842<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00555">555</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013843
Anthony Barbier06ea0482018-02-22 15:45:35 +000013844<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00295">BorderSize::bottom</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00296">BorderSize::left</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00294">BorderSize::right</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00293">BorderSize::top</a>.</p>
13845<div class="fragment"><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;{</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; os &lt;&lt; border.top &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; &lt;&lt; border.right &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; &lt;&lt; border.bottom &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; &lt;&lt; border.left;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010013846</div>
13847</div>
13848<a class="anchor" id="a509047aefc691398f1bb60b1f967a98b"></a>
13849<div class="memitem">
13850<div class="memproto">
13851 <table class="memname">
13852 <tr>
13853 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13854 <td>(</td>
13855 <td class="paramtype">::std::ostream &amp;&#160;</td>
13856 <td class="paramname"><em>os</em>, </td>
13857 </tr>
13858 <tr>
13859 <td class="paramkey"></td>
13860 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013861 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013862 <td class="paramname"><em>policy</em>&#160;</td>
13863 </tr>
13864 <tr>
13865 <td></td>
13866 <td>)</td>
13867 <td></td><td></td>
13868 </tr>
13869 </table>
13870</div><div class="memdoc">
13871
13872<p>Formatted output of the InterpolationPolicy type. </p>
13873
Anthony Barbier06ea0482018-02-22 15:45:35 +000013874<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00566">566</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013875
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013876<p>References <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">AREA</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">BILINEAR</a>, and <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2">NEAREST_NEIGHBOR</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013877<div class="fragment"><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;{</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">switch</span>(policy)</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">case</span> InterpolationPolicy::NEAREST_NEIGHBOR:</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;NEAREST_NEIGHBOR&quot;</span>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">case</span> InterpolationPolicy::BILINEAR:</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;BILINEAR&quot;</span>;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">case</span> InterpolationPolicy::AREA:</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;AREA&quot;</span>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013878</div><!-- fragment -->
13879</div>
13880</div>
13881<a class="anchor" id="aab8eb6dc1ba89bb8a69f1c3845988a2b"></a>
13882<div class="memitem">
13883<div class="memproto">
13884 <table class="memname">
13885 <tr>
13886 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13887 <td>(</td>
13888 <td class="paramtype">::std::ostream &amp;&#160;</td>
13889 <td class="paramname"><em>os</em>, </td>
13890 </tr>
13891 <tr>
13892 <td class="paramkey"></td>
13893 <td></td>
13894 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7b">SamplingPolicy</a> &amp;&#160;</td>
13895 <td class="paramname"><em>policy</em>&#160;</td>
13896 </tr>
13897 <tr>
13898 <td></td>
13899 <td>)</td>
13900 <td></td><td></td>
13901 </tr>
13902 </table>
13903</div><div class="memdoc">
13904
13905<p>Formatted output of the SamplingPolicy type. </p>
13906
Anthony Barbier06ea0482018-02-22 15:45:35 +000013907<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00587">587</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013908
13909<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7bac397289ee45877be0cd49811fe245b4e">CENTER</a>, and <a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7ba747385047b85ae751f83adb36435a3c1">TOP_LEFT</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000013910<div class="fragment"><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;{</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">switch</span>(policy)</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">case</span> SamplingPolicy::CENTER:</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;CENTER&quot;</span>;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">case</span> SamplingPolicy::TOP_LEFT:</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;TOP_LEFT&quot;</span>;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010013911</div><!-- fragment -->
13912</div>
13913</div>
13914<a class="anchor" id="a17881750c427aedd95deba46a4366ace"></a>
13915<div class="memitem">
13916<div class="memproto">
13917 <table class="memname">
13918 <tr>
13919 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13920 <td>(</td>
13921 <td class="paramtype">::std::ostream &amp;&#160;</td>
13922 <td class="paramname"><em>os</em>, </td>
13923 </tr>
13924 <tr>
13925 <td class="paramkey"></td>
13926 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013927 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_rectangle.xhtml">Rectangle</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013928 <td class="paramname"><em>rect</em>&#160;</td>
13929 </tr>
13930 <tr>
13931 <td></td>
13932 <td>)</td>
13933 <td></td><td></td>
13934 </tr>
13935 </table>
13936</div><div class="memdoc">
13937
13938<p>Formatted output of the <a class="el" href="structarm__compute_1_1_rectangle.xhtml" title="Rectangle type. ">Rectangle</a> type. </p>
13939
Anthony Barbier06ea0482018-02-22 15:45:35 +000013940<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00647">647</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013941
Anthony Barbier06ea0482018-02-22 15:45:35 +000013942<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00375">Rectangle::height</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00374">Rectangle::width</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00372">Rectangle::x</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00373">Rectangle::y</a>.</p>
13943<div class="fragment"><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;{</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; os &lt;&lt; rect.width &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; rect.height;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;+&quot;</span> &lt;&lt; rect.x &lt;&lt; <span class="stringliteral">&quot;+&quot;</span> &lt;&lt; rect.y;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010013944</div>
13945</div>
13946<a class="anchor" id="a8af36ae3a3613112c3a95e57f606359a"></a>
13947<div class="memitem">
13948<div class="memproto">
13949 <table class="memname">
13950 <tr>
13951 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13952 <td>(</td>
13953 <td class="paramtype">::std::ostream &amp;&#160;</td>
13954 <td class="paramname"><em>os</em>, </td>
13955 </tr>
13956 <tr>
13957 <td class="paramkey"></td>
13958 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013959 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013960 <td class="paramname"><em>pad_stride_info</em>&#160;</td>
13961 </tr>
13962 <tr>
13963 <td></td>
13964 <td>)</td>
13965 <td></td><td></td>
13966 </tr>
13967 </table>
13968</div><div class="memdoc">
13969
13970<p>Formatted output of the PadStridInfo type. </p>
13971
Anthony Barbier06ea0482018-02-22 15:45:35 +000013972<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00656">656</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010013973
Anthony Barbier06ea0482018-02-22 15:45:35 +000013974<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00562">PadStrideInfo::pad_bottom()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00550">PadStrideInfo::pad_left()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00554">PadStrideInfo::pad_right()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00558">PadStrideInfo::pad_top()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00535">PadStrideInfo::stride()</a>.</p>
13975<div class="fragment"><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;{</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; os &lt;&lt; pad_stride_info.stride().first &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; pad_stride_info.stride().second;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; os &lt;&lt; pad_stride_info.pad_left() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; pad_stride_info.pad_right() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; &lt;&lt; pad_stride_info.pad_top() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; pad_stride_info.pad_bottom();</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010013976</div>
13977</div>
13978<a class="anchor" id="a4287c6842a60e5f6bf309e55f8813527"></a>
13979<div class="memitem">
13980<div class="memproto">
13981 <table class="memname">
13982 <tr>
13983 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
13984 <td>(</td>
13985 <td class="paramtype">::std::ostream &amp;&#160;</td>
13986 <td class="paramname"><em>os</em>, </td>
13987 </tr>
13988 <tr>
13989 <td class="paramkey"></td>
13990 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000013991 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010013992 <td class="paramname"><em>policy</em>&#160;</td>
13993 </tr>
13994 <tr>
13995 <td></td>
13996 <td>)</td>
13997 <td></td><td></td>
13998 </tr>
13999 </table>
14000</div><div class="memdoc">
14001
14002<p>Formatted output of the ConversionPolicy type. </p>
14003
Anthony Barbier06ea0482018-02-22 15:45:35 +000014004<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00702">702</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010014005
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014006<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86">SATURATE</a>, and <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0">WRAP</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000014007<div class="fragment"><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;{</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">switch</span>(policy)</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">case</span> ConvertPolicy::WRAP:</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;WRAP&quot;</span>;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">case</span> ConvertPolicy::SATURATE:</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SATURATE&quot;</span>;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010014008</div><!-- fragment -->
14009</div>
14010</div>
14011<a class="anchor" id="a292505a0ec686541cfe0dcfd1d651ec5"></a>
14012<div class="memitem">
14013<div class="memproto">
14014 <table class="memname">
14015 <tr>
14016 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14017 <td>(</td>
14018 <td class="paramtype">::std::ostream &amp;&#160;</td>
14019 <td class="paramname"><em>os</em>, </td>
14020 </tr>
14021 <tr>
14022 <td class="paramkey"></td>
14023 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014024 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45b">ReductionOperation</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010014025 <td class="paramname"><em>op</em>&#160;</td>
14026 </tr>
14027 <tr>
14028 <td></td>
14029 <td>)</td>
14030 <td></td><td></td>
14031 </tr>
14032 </table>
14033</div><div class="memdoc">
14034
14035<p>Formatted output of the Reduction Operations. </p>
14036
Anthony Barbier06ea0482018-02-22 15:45:35 +000014037<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00727">727</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010014038
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014039<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, and <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45ba2ce6e134b828b72fad160fa17c8d1b64">SUM_SQUARE</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000014040<div class="fragment"><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;{</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">switch</span>(op)</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; {</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">case</span> ReductionOperation::SUM_SQUARE:</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SUM_SQUARE&quot;</span>;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; }</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010014041</div><!-- fragment -->
14042</div>
14043</div>
14044<a class="anchor" id="a9a2e48a508dc85b7280f955876bb4462"></a>
14045<div class="memitem">
14046<div class="memproto">
14047 <table class="memname">
14048 <tr>
14049 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14050 <td>(</td>
14051 <td class="paramtype">::std::ostream &amp;&#160;</td>
14052 <td class="paramname"><em>os</em>, </td>
14053 </tr>
14054 <tr>
14055 <td class="paramkey"></td>
14056 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014057 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010014058 <td class="paramname"><em>point</em>&#160;</td>
14059 </tr>
14060 <tr>
14061 <td></td>
14062 <td>)</td>
14063 <td></td><td></td>
14064 </tr>
14065 </table>
14066</div><div class="memdoc">
14067
14068<p>Formatted output of the <a class="el" href="structarm__compute_1_1_key_point.xhtml" title="Keypoint type. ">KeyPoint</a> type. </p>
14069
Anthony Barbier06ea0482018-02-22 15:45:35 +000014070<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00778">778</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010014071
Anthony Barbier06ea0482018-02-22 15:45:35 +000014072<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00364">KeyPoint::error</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00362">KeyPoint::orientation</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00361">KeyPoint::scale</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00360">KeyPoint::strength</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00363">KeyPoint::tracking_status</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00358">KeyPoint::x</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00359">KeyPoint::y</a>.</p>
14073<div class="fragment"><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;{</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;{x=&quot;</span> &lt;&lt; point.x &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; &lt;&lt; <span class="stringliteral">&quot;y=&quot;</span> &lt;&lt; point.y &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; &lt;&lt; <span class="stringliteral">&quot;strength=&quot;</span> &lt;&lt; point.strength &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; &lt;&lt; <span class="stringliteral">&quot;scale=&quot;</span> &lt;&lt; point.scale &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; &lt;&lt; <span class="stringliteral">&quot;orientation=&quot;</span> &lt;&lt; point.orientation &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; &lt;&lt; <span class="stringliteral">&quot;tracking_status=&quot;</span> &lt;&lt; point.tracking_status &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; &lt;&lt; <span class="stringliteral">&quot;error=&quot;</span> &lt;&lt; point.error &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014074</div>
14075</div>
14076<a class="anchor" id="abe52a76af2aa88876d54ce8a5969e509"></a>
14077<div class="memitem">
14078<div class="memproto">
14079 <table class="memname">
14080 <tr>
14081 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14082 <td>(</td>
14083 <td class="paramtype">::std::ostream &amp;&#160;</td>
14084 <td class="paramname"><em>os</em>, </td>
14085 </tr>
14086 <tr>
14087 <td class="paramkey"></td>
14088 <td></td>
14089 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72">PhaseType</a> &amp;&#160;</td>
14090 <td class="paramname"><em>phase_type</em>&#160;</td>
14091 </tr>
14092 <tr>
14093 <td></td>
14094 <td>)</td>
14095 <td></td><td></td>
14096 </tr>
14097 </table>
14098</div><div class="memdoc">
14099
14100<p>Formatted output of the PhaseType type. </p>
14101
Anthony Barbier06ea0482018-02-22 15:45:35 +000014102<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00792">792</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014103
14104<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72a6898b46a1cde8a1572e2722c44c5ab07">SIGNED</a>, and <a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72aaf36b47f395cd01f48b8fc1013665054">UNSIGNED</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000014105<div class="fragment"><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;{</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordflow">switch</span>(phase_type)</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; {</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">case</span> PhaseType::SIGNED:</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SIGNED&quot;</span>;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">case</span> PhaseType::UNSIGNED:</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UNSIGNED&quot;</span>;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; }</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010014106</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010014107</div>
14108</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014109<a class="anchor" id="a530d86eec3dbd22cab6336ffdceb0d37"></a>
14110<div class="memitem">
14111<div class="memproto">
14112 <table class="memname">
14113 <tr>
14114 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14115 <td>(</td>
14116 <td class="paramtype">::std::ostream &amp;&#160;</td>
14117 <td class="paramname"><em>os</em>, </td>
14118 </tr>
14119 <tr>
14120 <td class="paramkey"></td>
14121 <td></td>
14122 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8a">MagnitudeType</a> &amp;&#160;</td>
14123 <td class="paramname"><em>magnitude_type</em>&#160;</td>
14124 </tr>
14125 <tr>
14126 <td></td>
14127 <td>)</td>
14128 <td></td><td></td>
14129 </tr>
14130 </table>
14131</div><div class="memdoc">
14132
14133<p>Formatted output of the MagnitudeType type. </p>
14134
Anthony Barbier06ea0482018-02-22 15:45:35 +000014135<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00817">817</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014136
14137<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aac2f1be73bf576190d1f42bdaf5162ae8">L1NORM</a>, and <a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aad927ac799e8b24f80fc80d89b2eb7131">L2NORM</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000014138<div class="fragment"><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;{</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">switch</span>(magnitude_type)</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; {</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">case</span> MagnitudeType::L1NORM:</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;L1NORM&quot;</span>;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">case</span> MagnitudeType::L2NORM:</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;L2NORM&quot;</span>;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; }</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014139</div><!-- fragment -->
14140</div>
14141</div>
14142<a class="anchor" id="af3985189d478b45014e7dead9d002e2a"></a>
14143<div class="memitem">
14144<div class="memproto">
14145 <table class="memname">
14146 <tr>
14147 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14148 <td>(</td>
14149 <td class="paramtype">::std::ostream &amp;&#160;</td>
14150 <td class="paramname"><em>os</em>, </td>
14151 </tr>
14152 <tr>
14153 <td class="paramkey"></td>
14154 <td></td>
14155 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7">GradientDimension</a> &amp;&#160;</td>
14156 <td class="paramname"><em>dim</em>&#160;</td>
14157 </tr>
14158 <tr>
14159 <td></td>
14160 <td>)</td>
14161 <td></td><td></td>
14162 </tr>
14163 </table>
14164</div><div class="memdoc">
14165
14166<p>Formatted output of the GradientDimension type. </p>
14167
Anthony Barbier06ea0482018-02-22 15:45:35 +000014168<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00842">842</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014169
14170<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, and <a class="el" href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7a5515a637eda61b978e97adaa5d7629cc">GRAD_XY</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000014171<div class="fragment"><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;{</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">switch</span>(dim)</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; {</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">case</span> GradientDimension::GRAD_X:</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;GRAD_X&quot;</span>;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">case</span> GradientDimension::GRAD_Y:</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;GRAD_Y&quot;</span>;</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">case</span> GradientDimension::GRAD_XY:</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;GRAD_XY&quot;</span>;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; }</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014172</div><!-- fragment -->
14173</div>
14174</div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014175<a class="anchor" id="a5e7a61df2b926347b42ecadf8bcc8969"></a>
14176<div class="memitem">
14177<div class="memproto">
14178 <table class="memname">
14179 <tr>
14180 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14181 <td>(</td>
14182 <td class="paramtype">::std::ostream &amp;&#160;</td>
14183 <td class="paramname"><em>os</em>, </td>
14184 </tr>
14185 <tr>
14186 <td class="paramkey"></td>
14187 <td></td>
14188 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3">HOGNormType</a> &amp;&#160;</td>
14189 <td class="paramname"><em>norm_type</em>&#160;</td>
14190 </tr>
14191 <tr>
14192 <td></td>
14193 <td>)</td>
14194 <td></td><td></td>
14195 </tr>
14196 </table>
14197</div><div class="memdoc">
14198
14199<p>Formatted output of the HOGNormType type. </p>
14200
Anthony Barbier06ea0482018-02-22 15:45:35 +000014201<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00870">870</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014202
14203<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a68616ae21712c00705b962f4eff06eaa">L1_NORM</a>, <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a80485e54c7a3c93a0f74637c6b918ce5">L2_NORM</a>, and <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3ac9e68c0594494ec85805b225a7acb9c2">L2HYS_NORM</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000014204<div class="fragment"><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;{</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordflow">switch</span>(norm_type)</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; {</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordflow">case</span> HOGNormType::L1_NORM:</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;L1_NORM&quot;</span>;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">case</span> HOGNormType::L2_NORM:</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;L2_NORM&quot;</span>;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">case</span> HOGNormType::L2HYS_NORM:</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;L2HYS_NORM&quot;</span>;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; }</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014205</div><!-- fragment -->
14206</div>
14207</div>
14208<a class="anchor" id="ab91d110e020f6ed987e05e82df3e350b"></a>
14209<div class="memitem">
14210<div class="memproto">
14211 <table class="memname">
14212 <tr>
14213 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14214 <td>(</td>
14215 <td class="paramtype">::std::ostream &amp;&#160;</td>
14216 <td class="paramname"><em>os</em>, </td>
14217 </tr>
14218 <tr>
14219 <td class="paramkey"></td>
14220 <td></td>
14221 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a> &amp;&#160;</td>
14222 <td class="paramname"><em>size</em>&#160;</td>
14223 </tr>
14224 <tr>
14225 <td></td>
14226 <td>)</td>
14227 <td></td><td></td>
14228 </tr>
14229 </table>
14230</div><div class="memdoc">
14231
14232<p>Formatted output of the <a class="el" href="classarm__compute_1_1_size2_d.xhtml" title="Class for specifying the size of an image or rectangle. ">Size2D</a> type. </p>
14233
Anthony Barbier06ea0482018-02-22 15:45:35 +000014234<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00898">898</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014235
Anthony Barbier06ea0482018-02-22 15:45:35 +000014236<p>References <a class="el" href="_size2_d_8h_source.xhtml#l00059">Size2D::height</a>, and <a class="el" href="_size2_d_8h_source.xhtml#l00058">Size2D::width</a>.</p>
14237<div class="fragment"><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;{</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; os &lt;&lt; <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>.width &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>.height;</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;}</div><div class="ttc" id="hwc_8hpp_xhtml_ab2c6b258f02add8fdf4cfc7c371dd772"><div class="ttname"><a href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a></div><div class="ttdeci">uint32_t size</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00286">hwc.hpp:286</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014238</div><!-- fragment -->
14239</div>
14240</div>
14241<a class="anchor" id="a4228b490e13b79a60737929d9d9e5957"></a>
14242<div class="memitem">
14243<div class="memproto">
14244 <table class="memname">
14245 <tr>
14246 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14247 <td>(</td>
14248 <td class="paramtype">::std::ostream &amp;&#160;</td>
14249 <td class="paramname"><em>os</em>, </td>
14250 </tr>
14251 <tr>
14252 <td class="paramkey"></td>
14253 <td></td>
14254 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml">HOGInfo</a> &amp;&#160;</td>
14255 <td class="paramname"><em>hog_info</em>&#160;</td>
14256 </tr>
14257 <tr>
14258 <td></td>
14259 <td>)</td>
14260 <td></td><td></td>
14261 </tr>
14262 </table>
14263</div><div class="memdoc">
14264
14265<p>Formatted output of the <a class="el" href="classarm__compute_1_1_size2_d.xhtml" title="Class for specifying the size of an image or rectangle. ">Size2D</a> type. </p>
14266
Anthony Barbier06ea0482018-02-22 15:45:35 +000014267<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00913">913</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014268
14269<p>References <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml#a13a9a6f5cfa21b3ab15b1e4315311aeb">HOGInfo::block_size()</a>, <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml#aa9a69eade27460f843fcfba5abb7ae52">HOGInfo::block_stride()</a>, <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml#a4b7434680a85c2ac14df737ac7cca91e">HOGInfo::cell_size()</a>, <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml#a0279e383beb758e477ce0673c5db8d57">HOGInfo::detection_window_size()</a>, <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml#a954d05635b1ff48daffdd70d8a1a6443">HOGInfo::l2_hyst_threshold()</a>, <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml#aed90de2ef57929727bb2159b66d04487">HOGInfo::normalization_type()</a>, <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml#ae3664b841732a09d7749953ca5b81373">HOGInfo::num_bins()</a>, and <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml#a96823b4d7dc642aa9f51a0077899d3f9">HOGInfo::phase_type()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000014270<div class="fragment"><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;{</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;{CellSize=&quot;</span> &lt;&lt; hog_info.cell_size() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; &lt;&lt; <span class="stringliteral">&quot;BlockSize=&quot;</span> &lt;&lt; hog_info.block_size() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; &lt;&lt; <span class="stringliteral">&quot;DetectionWindowSize=&quot;</span> &lt;&lt; hog_info.detection_window_size() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; &lt;&lt; <span class="stringliteral">&quot;BlockStride=&quot;</span> &lt;&lt; hog_info.block_stride() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; &lt;&lt; <span class="stringliteral">&quot;NumBins=&quot;</span> &lt;&lt; hog_info.num_bins() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; &lt;&lt; <span class="stringliteral">&quot;NormType=&quot;</span> &lt;&lt; hog_info.normalization_type() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; &lt;&lt; <span class="stringliteral">&quot;L2HystThreshold=&quot;</span> &lt;&lt; hog_info.l2_hyst_threshold() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; &lt;&lt; <span class="stringliteral">&quot;PhaseType=&quot;</span> &lt;&lt; hog_info.phase_type() &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;}</div></div><!-- fragment -->
14271</div>
14272</div>
14273<a class="anchor" id="abd35c1c3fb716078b1f4a25981defac4"></a>
14274<div class="memitem">
14275<div class="memproto">
14276 <table class="memname">
14277 <tr>
14278 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14279 <td>(</td>
14280 <td class="paramtype">::std::ostream &amp;&#160;</td>
14281 <td class="paramname"><em>os</em>, </td>
14282 </tr>
14283 <tr>
14284 <td class="paramkey"></td>
14285 <td></td>
14286 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517d">ConvolutionMethod</a> &amp;&#160;</td>
14287 <td class="paramname"><em>conv_method</em>&#160;</td>
14288 </tr>
14289 <tr>
14290 <td></td>
14291 <td>)</td>
14292 <td></td><td></td>
14293 </tr>
14294 </table>
14295</div><div class="memdoc">
14296
14297<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00935">935</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
14298
14299<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da4c5d06b02c97731aaa976179c62dcf76">DIRECT</a>, <a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da5174aac3927faa9ee34befb7fc87a9e3">GEMM</a>, and <a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517da9d024a5762b3a992dec7eb3c49d17ae8">WINOGRAD</a>.</p>
14300<div class="fragment"><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;{</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keywordflow">switch</span>(conv_method)</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; {</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordflow">case</span> ConvolutionMethod::GEMM:</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;GEMM&quot;</span>;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="keywordflow">case</span> ConvolutionMethod::DIRECT:</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;DIRECT&quot;</span>;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">case</span> ConvolutionMethod::WINOGRAD:</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;WINOGRAD&quot;</span>;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; }</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
14301</div><!-- fragment -->
14302</div>
14303</div>
14304<a class="anchor" id="a1f4d95d65a62a085e929ab0a1a77add2"></a>
14305<div class="memitem">
14306<div class="memproto">
14307 <table class="memname">
14308 <tr>
14309 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
14310 <td>(</td>
14311 <td class="paramtype">::std::ostream &amp;&#160;</td>
14312 <td class="paramname"><em>os</em>, </td>
14313 </tr>
14314 <tr>
14315 <td class="paramkey"></td>
14316 <td></td>
14317 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> &amp;&#160;</td>
14318 <td class="paramname"><em>gpu_target</em>&#160;</td>
14319 </tr>
14320 <tr>
14321 <td></td>
14322 <td>)</td>
14323 <td></td><td></td>
14324 </tr>
14325 </table>
14326</div><div class="memdoc">
14327
14328<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00962">962</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
14329
14330<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e">BIFROST</a>, <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298">G70</a>, <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a57a3b40730a5af7ea3e13eb4bba56d82">GPU_ARCH_MASK</a>, <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">MIDGARD</a>, <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">T600</a>, <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd">T700</a>, and <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">T800</a>.</p>
14331<div class="fragment"><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;{</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordflow">switch</span>(gpu_target)</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; {</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keywordflow">case</span> GPUTarget::GPU_ARCH_MASK:</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;GPU_ARCH_MASK&quot;</span>;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">case</span> GPUTarget::MIDGARD:</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;MIDGARD&quot;</span>;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordflow">case</span> GPUTarget::BIFROST:</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;BIFROST&quot;</span>;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">case</span> GPUTarget::T600:</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;T600&quot;</span>;</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">case</span> GPUTarget::T700:</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;T700&quot;</span>;</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">case</span> GPUTarget::T800:</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;T800&quot;</span>;</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">case</span> GPUTarget::G70:</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;G70&quot;</span>;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; }</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
14332</div><!-- fragment -->
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014333</div>
14334</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014335<a class="anchor" id="a096590f2456b9e9bcb8db98175720b60"></a>
14336<div class="memitem">
14337<div class="memproto">
14338<table class="mlabels">
14339 <tr>
14340 <td class="mlabels-left">
14341 <table class="memname">
14342 <tr>
14343 <td class="memname">bool arm_compute::operator== </td>
14344 <td>(</td>
14345 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
14346 <td class="paramname"><em>lhs</em>, </td>
14347 </tr>
14348 <tr>
14349 <td class="paramkey"></td>
14350 <td></td>
14351 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
14352 <td class="paramname"><em>rhs</em>&#160;</td>
14353 </tr>
14354 <tr>
14355 <td></td>
14356 <td>)</td>
14357 <td></td><td></td>
14358 </tr>
14359 </table>
14360 </td>
14361 <td class="mlabels-right">
14362<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14363 </tr>
14364</table>
14365</div><div class="memdoc">
14366
Anthony Barbier06ea0482018-02-22 15:45:35 +000014367<p>Definition at line <a class="el" href="_dimensions_8h_source.xhtml#l00209">209</a> of file <a class="el" href="_dimensions_8h_source.xhtml">Dimensions.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014368
Anthony Barbier06ea0482018-02-22 15:45:35 +000014369<p>References <a class="el" href="_dimensions_8h_source.xhtml#l00180">Dimensions&lt; T &gt;::cbegin()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00195">Dimensions&lt; T &gt;::cend()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>.</p>
14370<div class="fragment"><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> ((lhs.num_dimensions() == rhs.num_dimensions()) &amp;&amp; std::equal(lhs.cbegin(), lhs.cend(), rhs.cbegin()));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014371</div>
14372</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014373<a class="anchor" id="a1379e5f8a8b4640d7a52d901f0539ccd"></a>
14374<div class="memitem">
14375<div class="memproto">
14376 <table class="memname">
14377 <tr>
14378 <td class="memname">inline ::std::istream&amp; arm_compute::operator&gt;&gt; </td>
14379 <td>(</td>
14380 <td class="paramtype">::std::istream &amp;&#160;</td>
14381 <td class="paramname"><em>is</em>, </td>
14382 </tr>
14383 <tr>
14384 <td class="paramkey"></td>
14385 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014386 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014387 <td class="paramname"><em>mode</em>&#160;</td>
14388 </tr>
14389 <tr>
14390 <td></td>
14391 <td>)</td>
14392 <td></td><td></td>
14393 </tr>
14394 </table>
14395</div><div class="memdoc">
14396
14397<p>Formatted input of the BorderMode type. </p>
14398
14399<p>Definition at line <a class="el" href="_type_reader_8h_source.xhtml#l00036">36</a> of file <a class="el" href="_type_reader_8h_source.xhtml">TypeReader.h</a>.</p>
14400
Jenkinsc3f34a42018-03-02 12:38:09 +000014401<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">arm_compute::test::validation::c</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">CONSTANT</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">REPLICATE</a>, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">UNDEFINED</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00278">value</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014402<div class="fragment"><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::string <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; is &gt;&gt; <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; std::transform(value.begin(), value.end(), value.begin(), [](<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> std::toupper(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; });</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span>(value == <span class="stringliteral">&quot;UNDEFINED&quot;</span>)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; mode = BorderMode::UNDEFINED;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(value == <span class="stringliteral">&quot;CONSTANT&quot;</span>)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; mode = BorderMode::CONSTANT;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(value == <span class="stringliteral">&quot;REPLICATE&quot;</span>)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; mode = BorderMode::REPLICATE;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;Unsupported value &#39;&quot;</span> + value + <span class="stringliteral">&quot;&#39; for border mode&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> is;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</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#l00278">hwc.hpp:278</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000014403<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010014404</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010014405</div>
14406</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014407<a class="anchor" id="a21c3e11887f3acf9284ca763372c7da0"></a>
14408<div class="memitem">
14409<div class="memproto">
14410<table class="mlabels">
14411 <tr>
14412 <td class="mlabels-left">
14413 <table class="memname">
14414 <tr>
14415 <td class="memname">void arm_compute::permute </td>
14416 <td>(</td>
14417 <td class="paramtype"><a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
14418 <td class="paramname"><em>dimensions</em>, </td>
14419 </tr>
14420 <tr>
14421 <td class="paramkey"></td>
14422 <td></td>
14423 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a33e65be485104e2e9e69fca551d6f492">PermutationVector</a> &amp;&#160;</td>
14424 <td class="paramname"><em>perm</em>&#160;</td>
14425 </tr>
14426 <tr>
14427 <td></td>
14428 <td>)</td>
14429 <td></td><td></td>
14430 </tr>
14431 </table>
14432 </td>
14433 <td class="mlabels-right">
14434<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14435 </tr>
14436</table>
14437</div><div class="memdoc">
14438
14439<p>Permutes given <a class="el" href="classarm__compute_1_1_dimensions.xhtml" title="Dimensions with dimensionality. ">Dimensions</a> according to a permutation vector. </p>
14440<dl class="section warning"><dt>Warning</dt><dd>Validity of permutation is not checked</dd></dl>
14441<dl class="params"><dt>Parameters</dt><dd>
14442 <table class="params">
14443 <tr><td class="paramdir">[in,out]</td><td class="paramname">dimensions</td><td><a class="el" href="classarm__compute_1_1_dimensions.xhtml" title="Dimensions with dimensionality. ">Dimensions</a> to permute </td></tr>
14444 <tr><td class="paramdir">[in]</td><td class="paramname">perm</td><td>Permutation vector </td></tr>
14445 </table>
14446 </dd>
14447</dl>
14448
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014449<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00509">509</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014450
Anthony Barbier06ea0482018-02-22 15:45:35 +000014451<p>References <a class="el" href="_dimensions_8h_source.xhtml#l00170">Dimensions&lt; T &gt;::begin()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00185">Dimensions&lt; T &gt;::end()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00074">Dimensions&lt; T &gt;::set()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014452
Anthony Barbier06ea0482018-02-22 15:45:35 +000014453<p>Referenced by <a class="el" href="_shape_calculator_8h_source.xhtml#l00037">arm_compute::misc::shape_calculator::compute_permutation_output_shape()</a>, <a class="el" href="_c_l_2_permute_8cpp_source.xhtml#l00103">arm_compute::test::validation::DATA_TEST_CASE()</a>, and <a class="el" href="_permute_fixture_8h_source.xhtml#l00049">PermuteValidationFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
14454<div class="fragment"><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;{</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">auto</span> dimensions_copy = utility::make_array&lt;Dimensions&lt;T&gt;::num_max_dimensions&gt;(dimensions.begin(), dimensions.end());</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; perm.num_dimensions(); ++i)</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; {</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; T dimension_val = (perm[i] &lt; dimensions.num_dimensions()) ? dimensions_copy[perm[i]] : 0;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; dimensions.set(i, dimension_val);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; }</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;}</div></div><!-- fragment -->
14455</div>
14456</div>
14457<a class="anchor" id="a5045aaec85553032a782c44ab8d26341"></a>
14458<div class="memitem">
14459<div class="memproto">
14460<table class="mlabels">
14461 <tr>
14462 <td class="mlabels-left">
14463 <table class="memname">
14464 <tr>
14465 <td class="memname">void arm_compute::permute </td>
14466 <td>(</td>
14467 <td class="paramtype"><a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
14468 <td class="paramname"><em>shape</em>, </td>
14469 </tr>
14470 <tr>
14471 <td class="paramkey"></td>
14472 <td></td>
14473 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a33e65be485104e2e9e69fca551d6f492">PermutationVector</a> &amp;&#160;</td>
14474 <td class="paramname"><em>perm</em>&#160;</td>
14475 </tr>
14476 <tr>
14477 <td></td>
14478 <td>)</td>
14479 <td></td><td></td>
14480 </tr>
14481 </table>
14482 </td>
14483 <td class="mlabels-right">
14484<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14485 </tr>
14486</table>
14487</div><div class="memdoc">
14488
14489<p>Permutes given <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml" title="Shape of a tensor. ">TensorShape</a> according to a permutation vector. </p>
14490<dl class="section warning"><dt>Warning</dt><dd>Validity of permutation is not checked</dd></dl>
14491<dl class="params"><dt>Parameters</dt><dd>
14492 <table class="params">
14493 <tr><td class="paramdir">[in,out]</td><td class="paramname">shape</td><td>Shape to permute </td></tr>
14494 <tr><td class="paramdir">[in]</td><td class="paramname">perm</td><td>Permutation vector </td></tr>
14495 </table>
14496 </dd>
14497</dl>
14498
14499<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">526</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
14500
Jenkinsc3f34a42018-03-02 12:38:09 +000014501<p>References <a class="el" href="_helpers_8inl_source.xhtml#l00201">auto_init_if_empty()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00170">Dimensions&lt; T &gt;::begin()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00291">calculate_valid_region_scale()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00343">coords2index()</a>, <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">arm_compute::test::validation::data_type</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00185">Dimensions&lt; T &gt;::end()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00324">index2coords()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00077">TensorShape::set()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00258">set_data_type_if_unknown()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00269">set_fixed_point_position_if_zero()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00247">set_format_if_unknown()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00280">set_quantization_info_if_empty()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00236">set_shape_if_empty()</a>, and <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00133">arm_compute::test::validation::shape</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000014502<div class="fragment"><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;{</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">auto</span> shape_copy = utility::make_array&lt;TensorShape::num_max_dimensions&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.begin(), <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.end());</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; perm.num_dimensions(); ++i)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordtype">size_t</span> dimension_val = (perm[i] &lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.num_dimensions()) ? shape_copy[perm[i]] : 1;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.set(i, dimension_val);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; }</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
14503</div><!-- fragment -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014504</div>
14505</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014506<a class="anchor" id="ab7b3af731907e85fcaf72555c446176b"></a>
14507<div class="memitem">
14508<div class="memproto">
14509<table class="mlabels">
14510 <tr>
14511 <td class="mlabels-left">
14512 <table class="memname">
14513 <tr>
14514 <td class="memname">uint8_t pixel_area_c1u8_clamp </td>
14515 <td>(</td>
14516 <td class="paramtype">const uint8_t *&#160;</td>
14517 <td class="paramname"><em>first_pixel_ptr</em>, </td>
14518 </tr>
14519 <tr>
14520 <td class="paramkey"></td>
14521 <td></td>
14522 <td class="paramtype">size_t&#160;</td>
14523 <td class="paramname"><em>stride</em>, </td>
14524 </tr>
14525 <tr>
14526 <td class="paramkey"></td>
14527 <td></td>
14528 <td class="paramtype">size_t&#160;</td>
14529 <td class="paramname"><em>width</em>, </td>
14530 </tr>
14531 <tr>
14532 <td class="paramkey"></td>
14533 <td></td>
14534 <td class="paramtype">size_t&#160;</td>
14535 <td class="paramname"><em>height</em>, </td>
14536 </tr>
14537 <tr>
14538 <td class="paramkey"></td>
14539 <td></td>
14540 <td class="paramtype">float&#160;</td>
14541 <td class="paramname"><em>wr</em>, </td>
14542 </tr>
14543 <tr>
14544 <td class="paramkey"></td>
14545 <td></td>
14546 <td class="paramtype">float&#160;</td>
14547 <td class="paramname"><em>hr</em>, </td>
14548 </tr>
14549 <tr>
14550 <td class="paramkey"></td>
14551 <td></td>
14552 <td class="paramtype">int&#160;</td>
14553 <td class="paramname"><em>x</em>, </td>
14554 </tr>
14555 <tr>
14556 <td class="paramkey"></td>
14557 <td></td>
14558 <td class="paramtype">int&#160;</td>
14559 <td class="paramname"><em>y</em>&#160;</td>
14560 </tr>
14561 <tr>
14562 <td></td>
14563 <td>)</td>
14564 <td></td><td></td>
14565 </tr>
14566 </table>
14567 </td>
14568 <td class="mlabels-right">
14569<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14570 </tr>
14571</table>
14572</div><div class="memdoc">
14573
14574<p>Return the pixel at (x,y) using area interpolation by clamping when out of borders. </p>
14575<p>The image must be single channel U8</p>
14576<dl class="section note"><dt>Note</dt><dd>The interpolation area depends on the width and height ration of the input and output images </dd>
14577<dd>
14578Currently average of the contributing pixels is calculated</dd></dl>
14579<dl class="params"><dt>Parameters</dt><dd>
14580 <table class="params">
14581 <tr><td class="paramdir">[in]</td><td class="paramname">first_pixel_ptr</td><td>Pointer to the first pixel of a single channel U8 image. </td></tr>
14582 <tr><td class="paramdir">[in]</td><td class="paramname">stride</td><td>Stride in bytes of the image </td></tr>
14583 <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>Width of the image </td></tr>
14584 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Height of the image </td></tr>
14585 <tr><td class="paramdir">[in]</td><td class="paramname">wr</td><td>Width ratio among the input image width and output image width. </td></tr>
14586 <tr><td class="paramdir">[in]</td><td class="paramname">hr</td><td>Height ratio among the input image height and output image height. </td></tr>
14587 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X position of the wanted pixel </td></tr>
14588 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y position of the wanted pixel</td></tr>
14589 </table>
14590 </dd>
14591</dl>
14592<dl class="section return"><dt>Returns</dt><dd>The pixel at (x, y) using area interpolation. </dd></dl>
14593
Kaizen8938bd32017-09-28 14:38:23 +010014594<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00032">32</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014595
Anthony Barbier06ea0482018-02-22 15:45:35 +000014596<p>References <a class="el" href="accumulate_8cl_source.xhtml#l00041">accumulate()</a>, <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="utility_8h_source.xhtml#l00091">arm_compute::utility::for_each()</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="_window_8inl_source.xhtml#l00041">Window::set()</a>, and <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014597
14598<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00210">pixel_bilinear_c1_clamp()</a>.</p>
14599<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(first_pixel_ptr == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// Calculate sampling position</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">float</span> in_x = (x + 0.5f) * wr - 0.5f;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">float</span> in_y = (y + 0.5f) * hr - 0.5f;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// Get bounding box offsets</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">int</span> x_from = std::floor(x * wr - 0.5f - in_x);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">int</span> y_from = std::floor(y * hr - 0.5f - in_y);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">int</span> x_to = std::ceil((x + 1) * wr - 0.5f - in_x);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">int</span> y_to = std::ceil((y + 1) * hr - 0.5f - in_y);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// Clamp position to borders</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; in_x = <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>(in_x, static_cast&lt;float&gt;(width)));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; in_y = <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>(in_y, static_cast&lt;float&gt;(height)));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// Clamp bounding box offsets to borders</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; x_from = ((in_x + x_from) &lt; -1) ? -1 : x_from;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; y_from = ((in_y + y_from) &lt; -1) ? -1 : y_from;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; x_to = ((in_x + x_to) &gt; width) ? (width - in_x) : x_to;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; y_to = ((in_y + y_to) &gt; height) ? (height - in_y) : y_to;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// Get pixel index</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> xi = std::floor(in_x);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> yi = std::floor(in_y);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Bounding box elements in each dimension</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> x_elements = (x_to - x_from + 1);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> y_elements = (y_to - y_from + 1);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(x_elements == 0 || y_elements == 0);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">// Sum pixels in area</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">int</span> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = yi + y_from, je = yi + y_to; j &lt;= je; ++j)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">const</span> uint8_t *ptr = first_pixel_ptr + j * stride + xi + x_from;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; sum = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(ptr, ptr + x_elements, sum);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// Return average</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> sum / (x_elements * y_elements);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</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&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
14600<div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010014601<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>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014602<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>
Kaizen8938bd32017-09-28 14:38:23 +010014603<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&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014604</div><!-- fragment -->
14605</div>
14606</div>
Kaizen8938bd32017-09-28 14:38:23 +010014607<a class="anchor" id="a1c8d639ec2b3086a9506e72605a32333"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014608<div class="memitem">
14609<div class="memproto">
14610<table class="mlabels">
14611 <tr>
14612 <td class="mlabels-left">
14613 <table class="memname">
14614 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010014615 <td class="memname">T arm_compute::pixel_bilinear_c1 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014616 <td>(</td>
Kaizen8938bd32017-09-28 14:38:23 +010014617 <td class="paramtype">const T *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014618 <td class="paramname"><em>first_pixel_ptr</em>, </td>
14619 </tr>
14620 <tr>
14621 <td class="paramkey"></td>
14622 <td></td>
14623 <td class="paramtype">size_t&#160;</td>
14624 <td class="paramname"><em>stride</em>, </td>
14625 </tr>
14626 <tr>
14627 <td class="paramkey"></td>
14628 <td></td>
14629 <td class="paramtype">float&#160;</td>
14630 <td class="paramname"><em>x</em>, </td>
14631 </tr>
14632 <tr>
14633 <td class="paramkey"></td>
14634 <td></td>
14635 <td class="paramtype">float&#160;</td>
14636 <td class="paramname"><em>y</em>&#160;</td>
14637 </tr>
14638 <tr>
14639 <td></td>
14640 <td>)</td>
14641 <td></td><td></td>
14642 </tr>
14643 </table>
14644 </td>
14645 <td class="mlabels-right">
14646<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14647 </tr>
14648</table>
14649</div><div class="memdoc">
14650
14651<p>Return the pixel at (x,y) using bilinear interpolation. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014652<dl class="section warning"><dt>Warning</dt><dd>Only works if the iterator was created with an IImage</dd></dl>
14653<dl class="params"><dt>Parameters</dt><dd>
14654 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +010014655 <tr><td class="paramdir">[in]</td><td class="paramname">first_pixel_ptr</td><td>Pointer to the first pixel of a single channel input. </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014656 <tr><td class="paramdir">[in]</td><td class="paramname">stride</td><td>Stride in bytes of the image; </td></tr>
14657 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X position of the wanted pixel </td></tr>
14658 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y position of the wanted pixel</td></tr>
14659 </table>
14660 </dd>
14661</dl>
14662<dl class="section return"><dt>Returns</dt><dd>The pixel at (x, y) using bilinear interpolation. </dd></dl>
14663
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014664<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00183">183</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014665
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014666<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00100">delta_bilinear_c1()</a>.</p>
14667<div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(first_pixel_ptr == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">const</span> int32_t xi = std::floor(x);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">const</span> int32_t yi = std::floor(y);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dx = x - xi;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dy = y - yi;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#ad656a27ce8a507e31096ca45683ba9a5">delta_bilinear_c1</a>(first_pixel_ptr + xi + yi * stride, stride, dx, dy);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
14668<div class="ttc" id="namespacearm__compute_xhtml_ad656a27ce8a507e31096ca45683ba9a5"><div class="ttname"><a href="namespacearm__compute.xhtml#ad656a27ce8a507e31096ca45683ba9a5">arm_compute::delta_bilinear_c1</a></div><div class="ttdeci">T delta_bilinear_c1(const T *pixel_ptr, size_t stride, float dx, float dy)</div><div class="ttdoc">Computes bilinear interpolation using the pointer to the top-left pixel and the pixel&amp;#39;s distance betw...</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00100">Helpers.h:100</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014669</div><!-- fragment -->
14670</div>
14671</div>
Kaizen8938bd32017-09-28 14:38:23 +010014672<a class="anchor" id="afa55519774605e5b840fb031fdd7b196"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014673<div class="memitem">
14674<div class="memproto">
14675<table class="mlabels">
14676 <tr>
14677 <td class="mlabels-left">
14678 <table class="memname">
14679 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010014680 <td class="memname">uint8_t arm_compute::pixel_bilinear_c1_clamp </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014681 <td>(</td>
Kaizen8938bd32017-09-28 14:38:23 +010014682 <td class="paramtype">const T *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014683 <td class="paramname"><em>first_pixel_ptr</em>, </td>
14684 </tr>
14685 <tr>
14686 <td class="paramkey"></td>
14687 <td></td>
14688 <td class="paramtype">size_t&#160;</td>
14689 <td class="paramname"><em>stride</em>, </td>
14690 </tr>
14691 <tr>
14692 <td class="paramkey"></td>
14693 <td></td>
14694 <td class="paramtype">size_t&#160;</td>
14695 <td class="paramname"><em>width</em>, </td>
14696 </tr>
14697 <tr>
14698 <td class="paramkey"></td>
14699 <td></td>
14700 <td class="paramtype">size_t&#160;</td>
14701 <td class="paramname"><em>height</em>, </td>
14702 </tr>
14703 <tr>
14704 <td class="paramkey"></td>
14705 <td></td>
14706 <td class="paramtype">float&#160;</td>
14707 <td class="paramname"><em>x</em>, </td>
14708 </tr>
14709 <tr>
14710 <td class="paramkey"></td>
14711 <td></td>
14712 <td class="paramtype">float&#160;</td>
14713 <td class="paramname"><em>y</em>&#160;</td>
14714 </tr>
14715 <tr>
14716 <td></td>
14717 <td>)</td>
14718 <td></td><td></td>
14719 </tr>
14720 </table>
14721 </td>
14722 <td class="mlabels-right">
14723<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14724 </tr>
14725</table>
14726</div><div class="memdoc">
14727
14728<p>Return the pixel at (x,y) using bilinear interpolation by clamping when out of borders. </p>
Kaizen8938bd32017-09-28 14:38:23 +010014729<p>The image must be single channel input</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014730<dl class="section warning"><dt>Warning</dt><dd>Only works if the iterator was created with an IImage</dd></dl>
14731<dl class="params"><dt>Parameters</dt><dd>
14732 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +010014733 <tr><td class="paramdir">[in]</td><td class="paramname">first_pixel_ptr</td><td>Pointer to the first pixel of a single channel image. </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014734 <tr><td class="paramdir">[in]</td><td class="paramname">stride</td><td>Stride in bytes of the image </td></tr>
14735 <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>Width of the image </td></tr>
14736 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Height of the image </td></tr>
14737 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X position of the wanted pixel </td></tr>
14738 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y position of the wanted pixel</td></tr>
14739 </table>
14740 </dd>
14741</dl>
14742<dl class="section return"><dt>Returns</dt><dd>The pixel at (x, y) using bilinear interpolation. </dd></dl>
14743
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014744<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00210">210</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014745
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014746<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00306">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00100">delta_bilinear_c1()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00157">delta_linear_c1_x()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00132">delta_linear_c1_y()</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>, and <a class="el" href="_helpers_8inl_source.xhtml#l00032">pixel_area_c1u8_clamp()</a>.</p>
14747<div class="fragment"><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(first_pixel_ptr == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; x = <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, static_cast&lt;float&gt;(width)));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; y = <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, static_cast&lt;float&gt;(height)));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> xi = std::floor(x);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> yi = std::floor(y);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dx = x - xi;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dy = y - yi;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span>(dx == 0.0f)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span>(dy == 0.0f)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(first_pixel_ptr[<span class="keyword">static_cast&lt;</span>int32_t<span class="keyword">&gt;</span>(xi) + static_cast&lt;int32_t&gt;(yi) * stride]);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#ad5fa8bacf824e9538014bfb0dcdaab52">delta_linear_c1_y</a>(first_pixel_ptr + static_cast&lt;int32_t&gt;(xi) + static_cast&lt;int32_t&gt;(yi) * stride, stride, dy);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(dy == 0.0f)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a6174495b626531de015ae2b810859287">delta_linear_c1_x</a>(first_pixel_ptr + static_cast&lt;int32_t&gt;(xi) + static_cast&lt;int32_t&gt;(yi) * stride, dx);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#ad656a27ce8a507e31096ca45683ba9a5">delta_bilinear_c1</a>(first_pixel_ptr + static_cast&lt;int32_t&gt;(xi) + static_cast&lt;int32_t&gt;(yi) * stride, stride, dx, dy);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;}</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&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
14748<div class="ttc" id="namespacearm__compute_xhtml_a6174495b626531de015ae2b810859287"><div class="ttname"><a href="namespacearm__compute.xhtml#a6174495b626531de015ae2b810859287">arm_compute::delta_linear_c1_x</a></div><div class="ttdeci">T delta_linear_c1_x(const T *pixel_ptr, float dx)</div><div class="ttdoc">Computes linear interpolation using the pointer to the left pixel and the pixel&amp;#39;s distance between th...</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00157">Helpers.h:157</a></div></div>
14749<div class="ttc" id="core_2_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00306">Error.h:306</a></div></div>
14750<div class="ttc" id="namespacearm__compute_xhtml_ad5fa8bacf824e9538014bfb0dcdaab52"><div class="ttname"><a href="namespacearm__compute.xhtml#ad5fa8bacf824e9538014bfb0dcdaab52">arm_compute::delta_linear_c1_y</a></div><div class="ttdeci">T delta_linear_c1_y(const T *pixel_ptr, size_t stride, float dy)</div><div class="ttdoc">Computes linear interpolation using the pointer to the top pixel and the pixel&amp;#39;s distance between the...</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00132">Helpers.h:132</a></div></div>
14751<div class="ttc" id="namespacearm__compute_xhtml_ad656a27ce8a507e31096ca45683ba9a5"><div class="ttname"><a href="namespacearm__compute.xhtml#ad656a27ce8a507e31096ca45683ba9a5">arm_compute::delta_bilinear_c1</a></div><div class="ttdeci">T delta_bilinear_c1(const T *pixel_ptr, size_t stride, float dx, float dy)</div><div class="ttdoc">Computes bilinear interpolation using the pointer to the top-left pixel and the pixel&amp;#39;s distance betw...</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00100">Helpers.h:100</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010014752<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&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
Anthony Barbierdbdab852017-06-23 15:42:00 +010014753</div><!-- fragment -->
14754</div>
14755</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000014756<a class="anchor" id="a4823543d67a2520c98669e2a5608ef6a"></a>
14757<div class="memitem">
14758<div class="memproto">
14759<table class="mlabels">
14760 <tr>
14761 <td class="mlabels-left">
14762 <table class="memname">
14763 <tr>
14764 <td class="memname">size_t arm_compute::pixel_size_from_format </td>
14765 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014766 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000014767 <td class="paramname"><em>format</em></td><td>)</td>
14768 <td></td>
14769 </tr>
14770 </table>
14771 </td>
14772 <td class="mlabels-right">
14773<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14774 </tr>
14775</table>
14776</div><div class="memdoc">
14777
14778<p>The size in bytes of the pixel format. </p>
14779<dl class="params"><dt>Parameters</dt><dd>
14780 <table class="params">
14781 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format</td></tr>
14782 </table>
14783 </dd>
14784</dl>
14785<dl class="section return"><dt>Returns</dt><dd>The size in bytes of the pixel format </dd></dl>
14786
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014787<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00126">126</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000014788
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014789<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>.</p>
14790<div class="fragment"><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">switch</span>(format)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">case</span> Format::UV88:</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> 3;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">//Doesn&#39;t make sense for planar formats:</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Undefined pixel size for given format&quot;</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000014791</div><!-- fragment -->
14792</div>
14793</div>
14794<a class="anchor" id="a4f6fe18760340bcec02d095b7099e923"></a>
14795<div class="memitem">
14796<div class="memproto">
14797<table class="mlabels">
14798 <tr>
14799 <td class="mlabels-left">
14800 <table class="memname">
14801 <tr>
14802 <td class="memname">int arm_compute::plane_idx_from_channel </td>
14803 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014804 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000014805 <td class="paramname"><em>format</em>, </td>
14806 </tr>
14807 <tr>
14808 <td class="paramkey"></td>
14809 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014810 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000014811 <td class="paramname"><em>channel</em>&#160;</td>
14812 </tr>
14813 <tr>
14814 <td></td>
14815 <td>)</td>
14816 <td></td><td></td>
14817 </tr>
14818 </table>
14819 </td>
14820 <td class="mlabels-right">
14821<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14822 </tr>
14823</table>
14824</div><div class="memdoc">
14825
14826<p>Return the plane index of a given channel given an input format. </p>
14827<dl class="params"><dt>Parameters</dt><dd>
14828 <table class="params">
14829 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format </td></tr>
14830 <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Input channel</td></tr>
14831 </table>
14832 </dd>
14833</dl>
14834<dl class="section return"><dt>Returns</dt><dd>The plane index of the specific channel of the specific format </dd></dl>
14835
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014836<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00236">236</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000014837
Anthony Barbier06ea0482018-02-22 15:45:35 +000014838<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00238">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">Y</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>.</p>
14839
14840<p>Referenced by <a class="el" href="reference_2_channel_extract_8cpp_source.xhtml#l00039">arm_compute::test::validation::reference::channel_extract()</a>.</p>
14841<div class="fragment"><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;{</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">switch</span>(format)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// Single planar formats have a single plane</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">case</span> Format::UV88:</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="comment">// Multi planar formats</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// Channel U and V share the same plane of format UV88</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">case</span> Channel::Y:</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">case</span> Channel::Y:</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported format&quot;</span>);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;}</div><div class="ttc" id="core_2_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="core_2_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="core_2_error_8h_source.xhtml#l00238">Error.h:238</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000014842</div><!-- fragment -->
14843</div>
14844</div>
Anthony Barbiera4376382017-04-12 15:12:46 +010014845<a class="anchor" id="a51a0d2ae440bc8cab3fbbe84bfea8b1d"></a>
14846<div class="memitem">
14847<div class="memproto">
14848 <table class="memname">
14849 <tr>
14850 <td class="memname">void arm_compute::print_consecutive_elements </td>
14851 <td>(</td>
14852 <td class="paramtype">std::ostream &amp;&#160;</td>
14853 <td class="paramname"><em>s</em>, </td>
14854 </tr>
14855 <tr>
14856 <td class="paramkey"></td>
14857 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014858 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
Anthony Barbiera4376382017-04-12 15:12:46 +010014859 <td class="paramname"><em>dt</em>, </td>
14860 </tr>
14861 <tr>
14862 <td class="paramkey"></td>
14863 <td></td>
14864 <td class="paramtype">const uint8_t *&#160;</td>
14865 <td class="paramname"><em>ptr</em>, </td>
14866 </tr>
14867 <tr>
14868 <td class="paramkey"></td>
14869 <td></td>
14870 <td class="paramtype">unsigned int&#160;</td>
14871 <td class="paramname"><em>n</em>, </td>
14872 </tr>
14873 <tr>
14874 <td class="paramkey"></td>
14875 <td></td>
14876 <td class="paramtype">int&#160;</td>
14877 <td class="paramname"><em>stream_width</em>, </td>
14878 </tr>
14879 <tr>
14880 <td class="paramkey"></td>
14881 <td></td>
14882 <td class="paramtype">const std::string &amp;&#160;</td>
14883 <td class="paramname"><em>element_delim</em> = <code>&quot;&#160;&quot;</code>&#160;</td>
14884 </tr>
14885 <tr>
14886 <td></td>
14887 <td>)</td>
14888 <td></td><td></td>
14889 </tr>
14890 </table>
14891</div><div class="memdoc">
14892
14893<p>Print consecutive elements to an output stream. </p>
14894<dl class="params"><dt>Parameters</dt><dd>
14895 <table class="params">
14896 <tr><td class="paramdir">[out]</td><td class="paramname">s</td><td>Output stream to print the elements to. </td></tr>
14897 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Data type of the elements </td></tr>
14898 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to print the elements from. </td></tr>
14899 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements to print. </td></tr>
14900 <tr><td class="paramdir">[in]</td><td class="paramname">stream_width</td><td>(Optional) Width of the stream. If set to 0 the element's width is used. Defaults to 0. </td></tr>
14901 <tr><td class="paramdir">[in]</td><td class="paramname">element_delim</td><td>(Optional) Delimeter among the consecutive elements. Defaults to space delimeter </td></tr>
14902 </table>
14903 </dd>
14904</dl>
14905
Anthony Barbier06ea0482018-02-22 15:45:35 +000014906<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01096">max_consecutive_elements_display_width_impl()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014907
Anthony Barbiera4376382017-04-12 15:12:46 +010014908</div>
14909</div>
14910<a class="anchor" id="aa3a28b8acd21301990e06377c64e1276"></a>
14911<div class="memitem">
14912<div class="memproto">
14913 <table class="memname">
14914 <tr>
14915 <td class="memname">void arm_compute::print_consecutive_elements_impl </td>
14916 <td>(</td>
14917 <td class="paramtype">std::ostream &amp;&#160;</td>
14918 <td class="paramname"><em>s</em>, </td>
14919 </tr>
14920 <tr>
14921 <td class="paramkey"></td>
14922 <td></td>
14923 <td class="paramtype">const T *&#160;</td>
14924 <td class="paramname"><em>ptr</em>, </td>
14925 </tr>
14926 <tr>
14927 <td class="paramkey"></td>
14928 <td></td>
14929 <td class="paramtype">unsigned int&#160;</td>
14930 <td class="paramname"><em>n</em>, </td>
14931 </tr>
14932 <tr>
14933 <td class="paramkey"></td>
14934 <td></td>
14935 <td class="paramtype">int&#160;</td>
14936 <td class="paramname"><em>stream_width</em> = <code>0</code>, </td>
14937 </tr>
14938 <tr>
14939 <td class="paramkey"></td>
14940 <td></td>
14941 <td class="paramtype">const std::string &amp;&#160;</td>
14942 <td class="paramname"><em>element_delim</em> = <code>&quot;&#160;&quot;</code>&#160;</td>
14943 </tr>
14944 <tr>
14945 <td></td>
14946 <td>)</td>
14947 <td></td><td></td>
14948 </tr>
14949 </table>
14950</div><div class="memdoc">
14951
14952<p>Print consecutive elements to an output stream. </p>
14953<dl class="params"><dt>Parameters</dt><dd>
14954 <table class="params">
14955 <tr><td class="paramdir">[out]</td><td class="paramname">s</td><td>Output stream to print the elements to. </td></tr>
14956 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to print the elements from. </td></tr>
14957 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements to print. </td></tr>
14958 <tr><td class="paramdir">[in]</td><td class="paramname">stream_width</td><td>(Optional) Width of the stream. If set to 0 the element's width is used. Defaults to 0. </td></tr>
14959 <tr><td class="paramdir">[in]</td><td class="paramname">element_delim</td><td>(Optional) Delimeter among the consecutive elements. Defaults to space delimeter </td></tr>
14960 </table>
14961 </dd>
14962</dl>
14963
Anthony Barbier06ea0482018-02-22 15:45:35 +000014964<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01063">1063</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010014965
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014966<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00278">value</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000014967<div class="fragment"><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;{</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keyword">using</span> print_type = <span class="keyword">typename</span> <a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">std::conditional&lt;std::is_floating_point&lt;T&gt;::value</a>, T, <span class="keywordtype">int</span>&gt;<a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">::type</a>;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; n; ++i)</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; {</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="comment">// Set stream width as it is not a &quot;sticky&quot; stream manipulator</span></div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; <span class="keywordflow">if</span>(stream_width != 0)</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; {</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; s.width(stream_width);</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; }</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keywordflow">if</span>(std::is_same&lt;<span class="keyword">typename</span> <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">std::decay&lt;T&gt;::type</a>, <a class="code" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>&gt;::<a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>)</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; {</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="comment">// We use T instead of print_type here is because the std::is_floating_point&lt;half&gt; returns false and then the print_type becomes int.</span></div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; s &lt;&lt; std::right &lt;&lt; static_cast&lt;T&gt;(ptr[i]) &lt;&lt; element_delim;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; }</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; {</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; s &lt;&lt; std::right &lt;&lt; static_cast&lt;print_type&gt;(ptr[i]) &lt;&lt; element_delim;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; }</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; }</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a73e2825fd61d349c5ca2f5313e3c8ea1"><div class="ttname"><a href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">arm_compute::half</a></div><div class="ttdeci">half_float::half half</div><div class="ttdoc">16-bit floating point type </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00044">Types.h:44</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000014968<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#l00278">hwc.hpp:278</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000014969<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010014970</div><!-- fragment -->
Anthony Barbiera4376382017-04-12 15:12:46 +010014971</div>
14972</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000014973<a class="anchor" id="aefa4a4d3136d77b85cccfce344f9f37f"></a>
14974<div class="memitem">
14975<div class="memproto">
14976 <table class="memname">
14977 <tr>
14978 <td class="memname">std::string arm_compute::read_file </td>
14979 <td>(</td>
14980 <td class="paramtype">const std::string &amp;&#160;</td>
14981 <td class="paramname"><em>filename</em>, </td>
14982 </tr>
14983 <tr>
14984 <td class="paramkey"></td>
14985 <td></td>
14986 <td class="paramtype">bool&#160;</td>
14987 <td class="paramname"><em>binary</em>&#160;</td>
14988 </tr>
14989 <tr>
14990 <td></td>
14991 <td>)</td>
14992 <td></td><td></td>
14993 </tr>
14994 </table>
14995</div><div class="memdoc">
14996
14997<p>Load an entire file in memory. </p>
14998<dl class="params"><dt>Parameters</dt><dd>
14999 <table class="params">
15000 <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>Name of the file to read. </td></tr>
15001 <tr><td class="paramdir">[in]</td><td class="paramname">binary</td><td>Is it a binary file ?</td></tr>
15002 </table>
15003 </dd>
15004</dl>
15005<dl class="section return"><dt>Returns</dt><dd>The content of the file. </dd></dl>
15006
Anthony Barbier06ea0482018-02-22 15:45:35 +000015007<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00060">floor_to_multiple()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015008
15009</div>
15010</div>
15011<a class="anchor" id="a6452ac376d4adb94d93a93d678bb6757"></a>
15012<div class="memitem">
15013<div class="memproto">
15014 <table class="memname">
15015 <tr>
15016 <td class="memname">int arm_compute::round </td>
15017 <td>(</td>
15018 <td class="paramtype">float&#160;</td>
15019 <td class="paramname"><em>x</em>, </td>
15020 </tr>
15021 <tr>
15022 <td class="paramkey"></td>
15023 <td></td>
15024 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a>&#160;</td>
15025 <td class="paramname"><em>rounding_policy</em>&#160;</td>
15026 </tr>
15027 <tr>
15028 <td></td>
15029 <td>)</td>
15030 <td></td><td></td>
15031 </tr>
15032 </table>
15033</div><div class="memdoc">
15034
15035<p>Return a rounded value of x. </p>
15036<p>Rounding is done according to the rounding_policy.</p>
15037<dl class="params"><dt>Parameters</dt><dd>
15038 <table class="params">
15039 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Float value to be rounded. </td></tr>
15040 <tr><td class="paramdir">[in]</td><td class="paramname">rounding_policy</td><td>Policy determining how rounding is done.</td></tr>
15041 </table>
15042 </dd>
15043</dl>
15044<dl class="section return"><dt>Returns</dt><dd>Rounded value of the argument x. </dd></dl>
15045
Anthony Barbier06ea0482018-02-22 15:45:35 +000015046<p>Referenced by <a class="el" href="activation__layer__qa8_8cl_source.xhtml#l00076">activation_layer_qa8()</a>, <a class="el" href="tests_2validation_2_u_n_i_t_2_utils_8cpp_source.xhtml#l00063">DATA_TEST_CASE()</a>, <a class="el" href="optical__flow__pyramid__lk_8cl_source.xhtml#l00157">finalize()</a>, <a class="el" href="optical__flow__pyramid__lk_8cl_source.xhtml#l00207">lktracker_stage0()</a>, <a class="el" href="optical__flow__pyramid__lk_8cl_source.xhtml#l00358">lktracker_stage1()</a>, <a class="el" href="pooling__layer__quantized_8cl_source.xhtml#l00078">pooling_layer_MxN_quantized()</a>, <a class="el" href="roi__pooling__layer_8cl_source.xhtml#l00123">roi_pooling_layer()</a>, and <a class="el" href="_q_asymm8_8inl_source.xhtml#l00029">sqcvt_qasymm8_f32()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015047
15048</div>
15049</div>
15050<a class="anchor" id="a5e28a3911204ac952601f512c82b48f1"></a>
15051<div class="memitem">
15052<div class="memproto">
15053<table class="mlabels">
15054 <tr>
15055 <td class="mlabels-left">
15056 <table class="memname">
15057 <tr>
15058 <td class="memname">int32x4_t rounding_divide_by_pow2 </td>
15059 <td>(</td>
15060 <td class="paramtype">int32x4_t&#160;</td>
15061 <td class="paramname"><em>x</em>, </td>
15062 </tr>
15063 <tr>
15064 <td class="paramkey"></td>
15065 <td></td>
15066 <td class="paramtype">int&#160;</td>
15067 <td class="paramname"><em>exponent</em>&#160;</td>
15068 </tr>
15069 <tr>
15070 <td></td>
15071 <td>)</td>
15072 <td></td><td></td>
15073 </tr>
15074 </table>
15075 </td>
15076 <td class="mlabels-right">
15077<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15078 </tr>
15079</table>
15080</div><div class="memdoc">
15081
15082<p>Round to the nearest division by a power-of-two using exponent. </p>
15083<dl class="section note"><dt>Note</dt><dd>This function calculates the following expression: (x + 2^n -1 ) / 2^n where n = exponent</dd></dl>
15084<dl class="params"><dt>Parameters</dt><dd>
15085 <table class="params">
15086 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td><a class="el" href="struct_vector.xhtml" title="Structure to hold Vector information. ">Vector</a> of 4 elements </td></tr>
15087 <tr><td class="paramdir">[in]</td><td class="paramname">exponent</td><td>Integer value used to round to nearest division by a power-of-two</td></tr>
15088 </table>
15089 </dd>
15090</dl>
15091<dl class="section return"><dt>Returns</dt><dd>the nearest division by a power-of-two using exponent </dd></dl>
15092
15093<p>Definition at line <a class="el" href="_n_e_asymm_8inl_source.xhtml#l00026">26</a> of file <a class="el" href="_n_e_asymm_8inl_source.xhtml">NEAsymm.inl</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000015094
15095<p>Referenced by <a class="el" href="_n_e_asymm_8h_source.xhtml#l00074">finalize_quantization()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015096<div class="fragment"><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">const</span> int32x4_t shift_vec = vdupq_n_s32(-exponent);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">const</span> int32x4_t fixup = vshrq_n_s32(vandq_s32(x, shift_vec), 31);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">const</span> int32x4_t fixed_up_x = vqaddq_s32(x, fixup);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">return</span> vrshlq_s32(fixed_up_x, shift_vec);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010015097</div>
15098</div>
15099<a class="anchor" id="a5d49ea329c81268d6e12031f6f13f1eb"></a>
15100<div class="memitem">
15101<div class="memproto">
15102<table class="mlabels">
15103 <tr>
15104 <td class="mlabels-left">
15105 <table class="memname">
15106 <tr>
15107 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sabs_qs16 </td>
15108 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015109 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010015110 <td class="paramname"><em>a</em></td><td>)</td>
15111 <td></td>
15112 </tr>
15113 </table>
15114 </td>
15115 <td class="mlabels-right">
15116<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15117 </tr>
15118</table>
15119</div><div class="memdoc">
Anthony Barbier871448e2017-03-24 14:54:29 +000015120
Kaizen8938bd32017-09-28 14:38:23 +010015121<p>16 bit fixed point scalar absolute value </p>
15122<dl class="params"><dt>Parameters</dt><dd>
15123 <table class="params">
15124 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input</td></tr>
15125 </table>
15126 </dd>
15127</dl>
15128<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point absolute value </dd></dl>
15129
Anthony Barbier06ea0482018-02-22 15:45:35 +000015130<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00067">67</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010015131
Jenkinsc3f34a42018-03-02 12:38:09 +000015132<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, and <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010015133
Anthony Barbier06ea0482018-02-22 15:45:35 +000015134<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00284">sqexp_qs16()</a>.</p>
15135<div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt; 0) ? (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> == <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::numeric_limits&lt;int16_t&gt;::min</a>()) ? <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::numeric_limits&lt;int16_t&gt;::max</a>() : -<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> : <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</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&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
Jenkinsc3f34a42018-03-02 12:38:09 +000015136<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015137<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&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
15138</div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000015139</div>
15140</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015141<a class="anchor" id="a43315c66c4d00207f70143233b189085"></a>
15142<div class="memitem">
15143<div class="memproto">
15144<table class="mlabels">
15145 <tr>
15146 <td class="mlabels-left">
15147 <table class="memname">
15148 <tr>
15149 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sabs_qs8 </td>
15150 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015151 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015152 <td class="paramname"><em>a</em></td><td>)</td>
15153 <td></td>
15154 </tr>
15155 </table>
15156 </td>
15157 <td class="mlabels-right">
15158<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15159 </tr>
15160</table>
15161</div><div class="memdoc">
15162
15163<p>8 bit fixed point scalar absolute value </p>
15164<dl class="params"><dt>Parameters</dt><dd>
15165 <table class="params">
15166 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input</td></tr>
15167 </table>
15168 </dd>
15169</dl>
15170<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point absolute value </dd></dl>
15171
Anthony Barbier06ea0482018-02-22 15:45:35 +000015172<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00062">62</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015173
Jenkinsc3f34a42018-03-02 12:38:09 +000015174<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, and <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010015175
Anthony Barbier06ea0482018-02-22 15:45:35 +000015176<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00261">sqexp_qs8()</a>.</p>
15177<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt; 0) ? (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> == <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::numeric_limits&lt;int8_t&gt;::min</a>()) ? <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::numeric_limits&lt;int8_t&gt;::max</a>() : -<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> : <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</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&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
Jenkinsc3f34a42018-03-02 12:38:09 +000015178<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015179<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&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
15180</div><!-- fragment -->
15181</div>
15182</div>
15183<a class="anchor" id="ab30659aa2125bd5857547d424e601e34"></a>
15184<div class="memitem">
15185<div class="memproto">
15186<table class="mlabels">
15187 <tr>
15188 <td class="mlabels-left">
15189 <table class="memname">
15190 <tr>
15191 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sadd_qs16 </td>
15192 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015193 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010015194 <td class="paramname"><em>a</em>, </td>
15195 </tr>
15196 <tr>
15197 <td class="paramkey"></td>
15198 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015199 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010015200 <td class="paramname"><em>b</em>&#160;</td>
15201 </tr>
15202 <tr>
15203 <td></td>
15204 <td>)</td>
15205 <td></td><td></td>
15206 </tr>
15207 </table>
15208 </td>
15209 <td class="mlabels-right">
15210<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15211 </tr>
15212</table>
15213</div><div class="memdoc">
15214
15215<p>16 bit fixed point scalar add </p>
15216<dl class="params"><dt>Parameters</dt><dd>
15217 <table class="params">
15218 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
15219 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input</td></tr>
15220 </table>
15221 </dd>
15222</dl>
15223<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point addition </dd></dl>
15224
Anthony Barbier06ea0482018-02-22 15:45:35 +000015225<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00077">77</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010015226
Jenkinsc3f34a42018-03-02 12:38:09 +000015227<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">arm_compute::test::validation::b</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015228
Anthony Barbier06ea0482018-02-22 15:45:35 +000015229<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00340">slog_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000015230<div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> + <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
15231<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015232</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010015233</div>
15234</div>
15235<a class="anchor" id="aa8cee074ec68e2ae7830a9472efd8429"></a>
15236<div class="memitem">
15237<div class="memproto">
15238<table class="mlabels">
15239 <tr>
15240 <td class="mlabels-left">
15241 <table class="memname">
15242 <tr>
15243 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sadd_qs8 </td>
15244 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015245 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015246 <td class="paramname"><em>a</em>, </td>
15247 </tr>
15248 <tr>
15249 <td class="paramkey"></td>
15250 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015251 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015252 <td class="paramname"><em>b</em>&#160;</td>
15253 </tr>
15254 <tr>
15255 <td></td>
15256 <td>)</td>
15257 <td></td><td></td>
15258 </tr>
15259 </table>
15260 </td>
15261 <td class="mlabels-right">
15262<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15263 </tr>
15264</table>
15265</div><div class="memdoc">
15266
15267<p>8 bit fixed point scalar add </p>
15268<dl class="params"><dt>Parameters</dt><dd>
15269 <table class="params">
15270 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
15271 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input</td></tr>
15272 </table>
15273 </dd>
15274</dl>
15275<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point addition </dd></dl>
15276
Anthony Barbier06ea0482018-02-22 15:45:35 +000015277<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00072">72</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015278
Jenkinsc3f34a42018-03-02 12:38:09 +000015279<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">arm_compute::test::validation::b</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015280
Anthony Barbier06ea0482018-02-22 15:45:35 +000015281<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00307">slog_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000015282<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> + <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
15283<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015284</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010015285</div>
15286</div>
Kaizen8938bd32017-09-28 14:38:23 +010015287<a class="anchor" id="a3d3d8bf7b86db4d7d4ebfe5b332f41b3"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000015288<div class="memitem">
15289<div class="memproto">
15290 <table class="memname">
15291 <tr>
15292 <td class="memname">const std::pair&lt;unsigned int, unsigned int&gt; arm_compute::scaled_dimensions </td>
15293 <td>(</td>
15294 <td class="paramtype">unsigned int&#160;</td>
15295 <td class="paramname"><em>width</em>, </td>
15296 </tr>
15297 <tr>
15298 <td class="paramkey"></td>
15299 <td></td>
15300 <td class="paramtype">unsigned int&#160;</td>
15301 <td class="paramname"><em>height</em>, </td>
15302 </tr>
15303 <tr>
15304 <td class="paramkey"></td>
15305 <td></td>
15306 <td class="paramtype">unsigned int&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010015307 <td class="paramname"><em>kernel_width</em>, </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000015308 </tr>
15309 <tr>
15310 <td class="paramkey"></td>
15311 <td></td>
15312 <td class="paramtype">unsigned int&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010015313 <td class="paramname"><em>kernel_height</em>, </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000015314 </tr>
15315 <tr>
15316 <td class="paramkey"></td>
15317 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015318 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010015319 <td class="paramname"><em>pad_stride_info</em>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000015320 </tr>
15321 <tr>
15322 <td></td>
15323 <td>)</td>
15324 <td></td><td></td>
15325 </tr>
15326 </table>
15327</div><div class="memdoc">
15328
15329<p>Returns expected width and height of output scaled tensor depending on dimensions rounding mode. </p>
15330<dl class="params"><dt>Parameters</dt><dd>
15331 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010015332 <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>Width of input tensor (Number of columns) </td></tr>
15333 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Height of input tensor (Number of rows) </td></tr>
Kaizen8938bd32017-09-28 14:38:23 +010015334 <tr><td class="paramdir">[in]</td><td class="paramname">kernel_width</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> width. </td></tr>
15335 <tr><td class="paramdir">[in]</td><td class="paramname">kernel_height</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> height. </td></tr>
15336 <tr><td class="paramdir">[in]</td><td class="paramname">pad_stride_info</td><td>Pad and stride information.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000015337 </table>
15338 </dd>
15339</dl>
15340<dl class="section return"><dt>Returns</dt><dd>A pair with the new width in the first position and the new height in the second. </dd></dl>
15341
Anthony Barbier06ea0482018-02-22 15:45:35 +000015342<p>Referenced by <a class="el" href="_shape_calculator_8h_source.xhtml#l00133">arm_compute::misc::shape_calculator::compute_depthwise_convolution_shape()</a>, <a class="el" href="validation_2reference_2_convolution_layer_8cpp_source.xhtml#l00227">arm_compute::test::validation::reference::convolution_layer()</a>, <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>, <a class="el" href="_direct_convolution_layer_fixture_8h_source.xhtml#l00069">DirectConvolutionValidationGenericFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>, and <a class="el" href="_direct_convolution_layer_tensor_shift_fixture_8h_source.xhtml#l00070">DirectConvolutionValidationGenericTensorShiftFixture&lt; TensorType, AccessorType, FunctionType, T &gt;::setup()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015343
15344</div>
15345</div>
15346<a class="anchor" id="a69d3ceb714f7600f60cb2b3d4f3d86b1"></a>
15347<div class="memitem">
15348<div class="memproto">
15349<table class="mlabels">
15350 <tr>
15351 <td class="mlabels-left">
15352 <table class="memname">
15353 <tr>
15354 <td class="memname">float arm_compute::scvt_f32_qasymm8 </td>
15355 <td>(</td>
15356 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab8938bcb3ec0f5f8d93285eb3a28b701">qasymm8_t</a>&#160;</td>
15357 <td class="paramname"><em>value</em>, </td>
15358 </tr>
15359 <tr>
15360 <td class="paramkey"></td>
15361 <td></td>
15362 <td class="paramtype">float&#160;</td>
15363 <td class="paramname"><em>scale</em>, </td>
15364 </tr>
15365 <tr>
15366 <td class="paramkey"></td>
15367 <td></td>
15368 <td class="paramtype">int&#160;</td>
15369 <td class="paramname"><em>offset</em>&#160;</td>
15370 </tr>
15371 <tr>
15372 <td></td>
15373 <td>)</td>
15374 <td></td><td></td>
15375 </tr>
15376 </table>
15377 </td>
15378 <td class="mlabels-right">
15379<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15380 </tr>
15381</table>
15382</div><div class="memdoc">
15383
15384<p>Definition at line <a class="el" href="_q_asymm8_8inl_source.xhtml#l00036">36</a> of file <a class="el" href="_q_asymm8_8inl_source.xhtml">QAsymm8.inl</a>.</p>
15385
Anthony Barbierf45d5a92018-01-24 16:23:15 +000015386<p>References <a class="el" href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00176">arm_compute::test::validation::scale</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00278">value</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015387
Anthony Barbier06ea0482018-02-22 15:45:35 +000015388<p>Referenced by <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00150">QuantizationInfo::dequantize()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015389<div class="fragment"><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">float</span> dequantized = (<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>) - <a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">scale</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span> dequantized;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="ttc" id="helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00301">helpers.h:301</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000015390<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#l00278">hwc.hpp:278</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015391<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_acec6d8ad52a28972fa74e071c1a63b6a"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">arm_compute::test::validation::scale</a></div><div class="ttdeci">scale</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00176">PixelWiseMultiplication.cpp:176</a></div></div>
15392</div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000015393</div>
15394</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015395<a class="anchor" id="a55e8e161b9a16d750a6cff3fba6cd480"></a>
15396<div class="memitem">
15397<div class="memproto">
15398<table class="mlabels">
15399 <tr>
15400 <td class="mlabels-left">
15401 <table class="memname">
15402 <tr>
15403 <td class="memname">float scvt_f32_qs16 </td>
15404 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015405 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015406 <td class="paramname"><em>a</em>, </td>
15407 </tr>
15408 <tr>
15409 <td class="paramkey"></td>
15410 <td></td>
15411 <td class="paramtype">int&#160;</td>
15412 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15413 </tr>
15414 <tr>
15415 <td></td>
15416 <td>)</td>
15417 <td></td><td></td>
15418 </tr>
15419 </table>
15420 </td>
15421 <td class="mlabels-right">
15422<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15423 </tr>
15424</table>
15425</div><div class="memdoc">
15426
15427<p>Convert a 16 bit fixed point to float. </p>
15428<dl class="params"><dt>Parameters</dt><dd>
15429 <table class="params">
15430 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert </td></tr>
15431 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
15432 </table>
15433 </dd>
15434</dl>
15435<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 16 bit fixed point -&gt; float </dd></dl>
15436
Anthony Barbier06ea0482018-02-22 15:45:35 +000015437<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00384">384</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015438
Jenkinsc3f34a42018-03-02 12:38:09 +000015439<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>.</p>
15440<div class="fragment"><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;{</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) / (1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015441</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010015442</div>
15443</div>
15444<a class="anchor" id="a62232512d049619479b670c58a607924"></a>
15445<div class="memitem">
15446<div class="memproto">
15447<table class="mlabels">
15448 <tr>
15449 <td class="mlabels-left">
15450 <table class="memname">
15451 <tr>
15452 <td class="memname">float scvt_f32_qs8 </td>
15453 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015454 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015455 <td class="paramname"><em>a</em>, </td>
15456 </tr>
15457 <tr>
15458 <td class="paramkey"></td>
15459 <td></td>
15460 <td class="paramtype">int&#160;</td>
15461 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15462 </tr>
15463 <tr>
15464 <td></td>
15465 <td>)</td>
15466 <td></td><td></td>
15467 </tr>
15468 </table>
15469 </td>
15470 <td class="mlabels-right">
15471<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15472 </tr>
15473</table>
15474</div><div class="memdoc">
15475
15476<p>Convert an 8 bit fixed point to float. </p>
15477<dl class="params"><dt>Parameters</dt><dd>
15478 <table class="params">
15479 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert </td></tr>
15480 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
15481 </table>
15482 </dd>
15483</dl>
15484<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 8 bit fixed point -&gt; float </dd></dl>
15485
Anthony Barbier06ea0482018-02-22 15:45:35 +000015486<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00373">373</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015487
Jenkinsc3f34a42018-03-02 12:38:09 +000015488<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>.</p>
15489<div class="fragment"><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;{</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) / (1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015490</div><!-- fragment -->
15491</div>
15492</div>
Kaizen8938bd32017-09-28 14:38:23 +010015493<a class="anchor" id="a62b21ae2dd27770147d5b7c265fa534c"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015494<div class="memitem">
15495<div class="memproto">
15496<table class="mlabels">
15497 <tr>
15498 <td class="mlabels-left">
15499 <table class="memname">
15500 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010015501 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sdiv_qs16 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015502 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015503 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015504 <td class="paramname"><em>a</em>, </td>
15505 </tr>
15506 <tr>
15507 <td class="paramkey"></td>
15508 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015509 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010015510 <td class="paramname"><em>b</em>, </td>
15511 </tr>
15512 <tr>
15513 <td class="paramkey"></td>
15514 <td></td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015515 <td class="paramtype">int&#160;</td>
15516 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15517 </tr>
15518 <tr>
15519 <td></td>
15520 <td>)</td>
15521 <td></td><td></td>
15522 </tr>
15523 </table>
15524 </td>
15525 <td class="mlabels-right">
15526<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15527 </tr>
15528</table>
15529</div><div class="memdoc">
15530
Kaizen8938bd32017-09-28 14:38:23 +010015531<p>16 bit fixed point scalar division </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015532<dl class="params"><dt>Parameters</dt><dd>
15533 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +010015534 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
15535 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015536 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
15537 </table>
15538 </dd>
15539</dl>
Kaizen8938bd32017-09-28 14:38:23 +010015540<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point division. </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015541
Anthony Barbier06ea0482018-02-22 15:45:35 +000015542<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00255">255</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010015543
Jenkinsc3f34a42018-03-02 12:38:09 +000015544<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">arm_compute::test::validation::b</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015545
Anthony Barbier06ea0482018-02-22 15:45:35 +000015546<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00340">slog_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000015547<div class="fragment"><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> temp = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt;&lt; fixed_point_position;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a><span class="keyword">&gt;</span>(temp / <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015548<div class="ttc" id="namespacearm__compute_xhtml_aa06c95f9976f3729316d689b4419089f"><div class="ttname"><a href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">arm_compute::qint32_t</a></div><div class="ttdeci">int32_t qint32_t</div><div class="ttdoc">32 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00031">FixedPoint.h:31</a></div></div>
15549<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000015550<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015551</div><!-- fragment -->
15552</div>
15553</div>
15554<a class="anchor" id="ae39636f0e83dd3b854b89181a230216f"></a>
15555<div class="memitem">
15556<div class="memproto">
15557<table class="mlabels">
15558 <tr>
15559 <td class="mlabels-left">
15560 <table class="memname">
15561 <tr>
15562 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sdiv_qs8 </td>
15563 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015564 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015565 <td class="paramname"><em>a</em>, </td>
15566 </tr>
15567 <tr>
15568 <td class="paramkey"></td>
15569 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015570 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015571 <td class="paramname"><em>b</em>, </td>
15572 </tr>
15573 <tr>
15574 <td class="paramkey"></td>
15575 <td></td>
15576 <td class="paramtype">int&#160;</td>
15577 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15578 </tr>
15579 <tr>
15580 <td></td>
15581 <td>)</td>
15582 <td></td><td></td>
15583 </tr>
15584 </table>
15585 </td>
15586 <td class="mlabels-right">
15587<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15588 </tr>
15589</table>
15590</div><div class="memdoc">
15591
15592<p>8 bit fixed point scalar division </p>
15593<dl class="params"><dt>Parameters</dt><dd>
15594 <table class="params">
15595 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
15596 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input </td></tr>
15597 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
15598 </table>
15599 </dd>
15600</dl>
15601<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point division. </dd></dl>
15602
Anthony Barbier06ea0482018-02-22 15:45:35 +000015603<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00249">249</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015604
Jenkinsc3f34a42018-03-02 12:38:09 +000015605<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">arm_compute::test::validation::b</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015606
Anthony Barbier06ea0482018-02-22 15:45:35 +000015607<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00307">slog_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000015608<div class="fragment"><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> temp = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt;&lt; fixed_point_position;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a><span class="keyword">&gt;</span>(temp / <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015609<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015610<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000015611<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015612</div><!-- fragment -->
15613</div>
15614</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000015615<a class="anchor" id="a18ec57dffc5c26864be77318111dfb2a"></a>
15616<div class="memitem">
15617<div class="memproto">
15618<table class="mlabels">
15619 <tr>
15620 <td class="mlabels-left">
15621 <table class="memname">
15622 <tr>
15623 <td class="memname">bool arm_compute::separate_matrix </td>
15624 <td>(</td>
15625 <td class="paramtype">const int16_t *&#160;</td>
15626 <td class="paramname"><em>conv</em>, </td>
15627 </tr>
15628 <tr>
15629 <td class="paramkey"></td>
15630 <td></td>
15631 <td class="paramtype">int16_t *&#160;</td>
15632 <td class="paramname"><em>conv_col</em>, </td>
15633 </tr>
15634 <tr>
15635 <td class="paramkey"></td>
15636 <td></td>
15637 <td class="paramtype">int16_t *&#160;</td>
15638 <td class="paramname"><em>conv_row</em>, </td>
15639 </tr>
15640 <tr>
15641 <td class="paramkey"></td>
15642 <td></td>
15643 <td class="paramtype">uint8_t&#160;</td>
15644 <td class="paramname"><em>size</em>&#160;</td>
15645 </tr>
15646 <tr>
15647 <td></td>
15648 <td>)</td>
15649 <td></td><td></td>
15650 </tr>
15651 </table>
15652 </td>
15653 <td class="mlabels-right">
15654<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15655 </tr>
15656</table>
15657</div><div class="memdoc">
15658
15659<p>Separate a 2D convolution into two 1D convolutions. </p>
15660<dl class="params"><dt>Parameters</dt><dd>
15661 <table class="params">
15662 <tr><td class="paramdir">[in]</td><td class="paramname">conv</td><td>2D convolution </td></tr>
15663 <tr><td class="paramdir">[out]</td><td class="paramname">conv_col</td><td>1D vertical convolution </td></tr>
15664 <tr><td class="paramdir">[out]</td><td class="paramname">conv_row</td><td>1D horizontal convolution </td></tr>
15665 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of the 2D convolution</td></tr>
15666 </table>
15667 </dd>
15668</dl>
15669<dl class="section return"><dt>Returns</dt><dd>true if the separation was successful </dd></dl>
15670
Anthony Barbier06ea0482018-02-22 15:45:35 +000015671<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00559">559</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015672
Anthony Barbierf45d5a92018-01-24 16:23:15 +000015673<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00914">arm_compute::test::fixed_point_arithmetic::detail::abs()</a>, and <a class="el" href="hwc_8hpp_source.xhtml#l00286">size</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000015674<div class="fragment"><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;{</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; int32_t min_col = -1;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; int16_t min_col_val = -1;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">for</span>(int32_t i = 0; i &lt; <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>; ++i)</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>[i] != 0 &amp;&amp; (min_col &lt; 0 || <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ae115fc750a92fb6a5e094998b56fcc56">abs</a>(min_col_val) &gt; <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ae115fc750a92fb6a5e094998b56fcc56">abs</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>[i])))</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; {</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; min_col = i;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; min_col_val = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>[i];</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">if</span>(min_col &lt; 0)</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">for</span>(uint32_t j = 0; j &lt; <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>; ++j)</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; conv_col[j] = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>[min_col + j * <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>];</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">for</span>(uint32_t i = 0; i &lt; <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>; i++)</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; {</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">if</span>(static_cast&lt;int&gt;(i) == min_col)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; conv_row[i] = 1;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; }</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; int16_t coeff = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>[i] / <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>[min_col];</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">for</span>(uint32_t j = 1; j &lt; <a class="code" href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a>; ++j)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">conv</a>[i + j * size] != (conv_col[j] * coeff))</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; conv_row[i] = coeff;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; }</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; }</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_adf88bb8e946175c496fb362aa458128b"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#adf88bb8e946175c496fb362aa458128b">arm_compute::test::validation::conv</a></div><div class="ttdeci">int16_t conv[25]</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00140">Convolution.cpp:140</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000015675<div class="ttc" id="hwc_8hpp_xhtml_ab2c6b258f02add8fdf4cfc7c371dd772"><div class="ttname"><a href="hwc_8hpp.xhtml#ab2c6b258f02add8fdf4cfc7c371dd772">size</a></div><div class="ttdeci">uint32_t size</div><div class="ttdef"><b>Definition:</b> <a href="hwc_8hpp_source.xhtml#l00286">hwc.hpp:286</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015676<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&lt; T &gt; abs(fixed_point&lt; T &gt; 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>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015677</div><!-- fragment -->
15678</div>
15679</div>
15680<a class="anchor" id="ad19446be52c2c162fa678b9ae236f445"></a>
15681<div class="memitem">
15682<div class="memproto">
15683<table class="mlabels">
15684 <tr>
15685 <td class="mlabels-left">
15686 <table class="memname">
15687 <tr>
15688 <td class="memname">bool set_data_type_if_unknown </td>
15689 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015690 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015691 <td class="paramname"><em>info</em>, </td>
15692 </tr>
15693 <tr>
15694 <td class="paramkey"></td>
15695 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015696 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015697 <td class="paramname"><em>data_type</em>&#160;</td>
15698 </tr>
15699 <tr>
15700 <td></td>
15701 <td>)</td>
15702 <td></td><td></td>
15703 </tr>
15704 </table>
15705 </td>
15706 <td class="mlabels-right">
15707<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15708 </tr>
15709</table>
15710</div><div class="memdoc">
15711
Anthony Barbier06ea0482018-02-22 15:45:35 +000015712<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00258">258</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015713
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015714<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a9ebcdce876b4cd07736afa47d50154de">ITensorInfo::set_data_type()</a>, and <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
15715
Anthony Barbier06ea0482018-02-22 15:45:35 +000015716<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">permute()</a>.</p>
15717<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;{</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.data_type() == DataType::UNKNOWN)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_data_type(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000015718<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015719</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010015720</div>
15721</div>
15722<a class="anchor" id="a0894ed18ca6f55d6053882676cc2c95c"></a>
15723<div class="memitem">
15724<div class="memproto">
15725<table class="mlabels">
15726 <tr>
15727 <td class="mlabels-left">
15728 <table class="memname">
15729 <tr>
15730 <td class="memname">bool set_fixed_point_position_if_zero </td>
15731 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015732 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015733 <td class="paramname"><em>info</em>, </td>
15734 </tr>
15735 <tr>
15736 <td class="paramkey"></td>
15737 <td></td>
15738 <td class="paramtype">int&#160;</td>
15739 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15740 </tr>
15741 <tr>
15742 <td></td>
15743 <td>)</td>
15744 <td></td><td></td>
15745 </tr>
15746 </table>
15747 </td>
15748 <td class="mlabels-right">
15749<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15750 </tr>
15751</table>
15752</div><div class="memdoc">
15753
Anthony Barbier06ea0482018-02-22 15:45:35 +000015754<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00269">269</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015755
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015756<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ab21a362740e892b6e913bd8db03b0e67">ITensorInfo::fixed_point_position()</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a8d9488caf817e12132f0ca2a4c30deba">ITensorInfo::set_fixed_point_position()</a>.</p>
15757
Anthony Barbier06ea0482018-02-22 15:45:35 +000015758<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">permute()</a>.</p>
15759<div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.fixed_point_position() == 0 &amp;&amp; (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.data_type() == DataType::QS8 || <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.data_type() == DataType::QS16))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_fixed_point_position(fixed_point_position);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015760</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010015761</div>
15762</div>
15763<a class="anchor" id="a8076ba239b6681067b6cfea7f773a39f"></a>
15764<div class="memitem">
15765<div class="memproto">
15766<table class="mlabels">
15767 <tr>
15768 <td class="mlabels-left">
15769 <table class="memname">
15770 <tr>
15771 <td class="memname">bool set_format_if_unknown </td>
15772 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015773 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015774 <td class="paramname"><em>info</em>, </td>
15775 </tr>
15776 <tr>
15777 <td class="paramkey"></td>
15778 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015779 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015780 <td class="paramname"><em>format</em>&#160;</td>
15781 </tr>
15782 <tr>
15783 <td></td>
15784 <td>)</td>
15785 <td></td><td></td>
15786 </tr>
15787 </table>
15788 </td>
15789 <td class="mlabels-right">
15790<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15791 </tr>
15792</table>
15793</div><div class="memdoc">
15794
Anthony Barbier06ea0482018-02-22 15:45:35 +000015795<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00247">247</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015796
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015797<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a17394f0f7aea22d9b2d4c6f33bfa69ca">ITensorInfo::set_format()</a>, and <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52ea696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
15798
Anthony Barbier06ea0482018-02-22 15:45:35 +000015799<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">permute()</a>.</p>
15800<div class="fragment"><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.data_type() == DataType::UNKNOWN)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_format(format);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015801</div><!-- fragment -->
15802</div>
15803</div>
15804<a class="anchor" id="a75509469ec2689ec143f4a37bbcb4437"></a>
15805<div class="memitem">
15806<div class="memproto">
15807<table class="mlabels">
15808 <tr>
15809 <td class="mlabels-left">
15810 <table class="memname">
15811 <tr>
15812 <td class="memname">bool set_quantization_info_if_empty </td>
15813 <td>(</td>
15814 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
15815 <td class="paramname"><em>info</em>, </td>
15816 </tr>
15817 <tr>
15818 <td class="paramkey"></td>
15819 <td></td>
15820 <td class="paramtype"><a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a>&#160;</td>
15821 <td class="paramname"><em>quantization_info</em>&#160;</td>
15822 </tr>
15823 <tr>
15824 <td></td>
15825 <td>)</td>
15826 <td></td><td></td>
15827 </tr>
15828 </table>
15829 </td>
15830 <td class="mlabels-right">
15831<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15832 </tr>
15833</table>
15834</div><div class="memdoc">
15835
Anthony Barbier06ea0482018-02-22 15:45:35 +000015836<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00280">280</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015837
Anthony Barbier06ea0482018-02-22 15:45:35 +000015838<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00157">QuantizationInfo::empty()</a>, <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l01029">is_data_type_quantized_asymmetric()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a3f3e1a3200223e6a304a533b1016e749">ITensorInfo::quantization_info()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a575d37eaf8a905c8ca3c0250757c2b81">ITensorInfo::set_quantization_info()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015839
Anthony Barbier06ea0482018-02-22 15:45:35 +000015840<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">permute()</a>.</p>
15841<div class="fragment"><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;{</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.quantization_info().empty() &amp;&amp; (<a class="code" href="namespacearm__compute.xhtml#a14f46283f316e7f0fad301d5c1507e9f">is_data_type_quantized_asymmetric</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.data_type())))</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_quantization_info(quantization_info);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
15842<div class="ttc" id="namespacearm__compute_xhtml_a14f46283f316e7f0fad301d5c1507e9f"><div class="ttname"><a href="namespacearm__compute.xhtml#a14f46283f316e7f0fad301d5c1507e9f">arm_compute::is_data_type_quantized_asymmetric</a></div><div class="ttdeci">bool is_data_type_quantized_asymmetric(DataType dt)</div><div class="ttdoc">Check if a given data type is of asymmetric quantized type. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l01029">Utils.h:1029</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015843</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010015844</div>
15845</div>
15846<a class="anchor" id="a9d1a839c51134b2ae171a2264c541b6f"></a>
15847<div class="memitem">
15848<div class="memproto">
15849<table class="mlabels">
15850 <tr>
15851 <td class="mlabels-left">
15852 <table class="memname">
15853 <tr>
15854 <td class="memname">bool set_shape_if_empty </td>
15855 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015856 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015857 <td class="paramname"><em>info</em>, </td>
15858 </tr>
15859 <tr>
15860 <td class="paramkey"></td>
15861 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015862 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015863 <td class="paramname"><em>shape</em>&#160;</td>
15864 </tr>
15865 <tr>
15866 <td></td>
15867 <td>)</td>
15868 <td></td><td></td>
15869 </tr>
15870 </table>
15871 </td>
15872 <td class="mlabels-right">
15873<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15874 </tr>
15875</table>
15876</div><div class="memdoc">
15877
Anthony Barbier06ea0482018-02-22 15:45:35 +000015878<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00236">236</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015879
Anthony Barbier06ea0482018-02-22 15:45:35 +000015880<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a12a4f1190952613e36b44846962e26bb">ITensorInfo::set_tensor_shape()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7c66505457d00ece3aa4b34cab80757d">ITensorInfo::tensor_shape()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00153">TensorShape::total_size()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015881
Anthony Barbier06ea0482018-02-22 15:45:35 +000015882<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00526">permute()</a>.</p>
15883<div class="fragment"><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;{</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.tensor_shape().total_size() == 0)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_tensor_shape(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015884<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() -&gt; set_format(Format::S16)</div></div>
15885</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010015886</div>
15887</div>
Kaizen8938bd32017-09-28 14:38:23 +010015888<a class="anchor" id="acc38b787d0451ec4a3e632ed919ac298"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015889<div class="memitem">
15890<div class="memproto">
15891 <table class="memname">
15892 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010015893 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> arm_compute::sexp_qs16 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015894 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015895 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015896 <td class="paramname"><em>a</em>, </td>
15897 </tr>
15898 <tr>
15899 <td class="paramkey"></td>
15900 <td></td>
15901 <td class="paramtype">int&#160;</td>
15902 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15903 </tr>
15904 <tr>
15905 <td></td>
15906 <td>)</td>
15907 <td></td><td></td>
15908 </tr>
15909 </table>
15910</div><div class="memdoc">
15911
Kaizen8938bd32017-09-28 14:38:23 +010015912<p>16 bit fixed point scalar exponential </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015913<dl class="params"><dt>Parameters</dt><dd>
15914 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +010015915 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015916 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
15917 </table>
15918 </dd>
15919</dl>
Kaizen8938bd32017-09-28 14:38:23 +010015920<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point exponential. </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015921
15922</div>
15923</div>
Kaizen8938bd32017-09-28 14:38:23 +010015924<a class="anchor" id="a162390097e05ddc016310bad881c461c"></a>
15925<div class="memitem">
15926<div class="memproto">
15927<table class="mlabels">
15928 <tr>
15929 <td class="mlabels-left">
15930 <table class="memname">
15931 <tr>
15932 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sinvsqrt_qs16 </td>
15933 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015934 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010015935 <td class="paramname"><em>a</em>, </td>
15936 </tr>
15937 <tr>
15938 <td class="paramkey"></td>
15939 <td></td>
15940 <td class="paramtype">int&#160;</td>
15941 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15942 </tr>
15943 <tr>
15944 <td></td>
15945 <td>)</td>
15946 <td></td><td></td>
15947 </tr>
15948 </table>
15949 </td>
15950 <td class="mlabels-right">
15951<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15952 </tr>
15953</table>
15954</div><div class="memdoc">
15955
15956<p>16 bit fixed point scalar inverse square root </p>
15957<dl class="params"><dt>Parameters</dt><dd>
15958 <table class="params">
15959 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input </td></tr>
15960 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
15961 </table>
15962 </dd>
15963</dl>
15964<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point inverse square root. </dd></dl>
15965
Anthony Barbier06ea0482018-02-22 15:45:35 +000015966<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00229">229</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010015967
Anthony Barbier06ea0482018-02-22 15:45:35 +000015968<p>References <a class="el" href="_fixed_point_8inl_source.xhtml#l00149">smul_qs16()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00114">ssub_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000015969<div class="fragment"><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;{</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> shift = 16 - (fixed_point_position + (__builtin_clz(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) - 16));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> const_three = (3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> temp = shift &lt; 0 ? (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt;&lt; -shift) : (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &gt;&gt; shift);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> x2 = temp;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// We need three iterations to find the result</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; ++i)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> three_minus_dx = <a class="code" href="namespacearm__compute.xhtml#a70476eda2d46c943d572362fe2fc9d14">ssub_qs16</a>(const_three, <a class="code" href="namespacearm__compute.xhtml#a7e6eff2c8b93f18002c06059b7e5b79a">smul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a7e6eff2c8b93f18002c06059b7e5b79a">smul_qs16</a>(x2, x2, fixed_point_position), fixed_point_position));</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; x2 = <a class="code" href="namespacearm__compute.xhtml#a7e6eff2c8b93f18002c06059b7e5b79a">smul_qs16</a>(x2, three_minus_dx, fixed_point_position) &gt;&gt; 1;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; temp = shift &lt; 0 ? (x2 &lt;&lt; ((-shift) &gt;&gt; 1)) : (x2 &gt;&gt; (shift &gt;&gt; 1));</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> temp;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000015970<div class="ttc" id="namespacearm__compute_xhtml_a7e6eff2c8b93f18002c06059b7e5b79a"><div class="ttname"><a href="namespacearm__compute.xhtml#a7e6eff2c8b93f18002c06059b7e5b79a">arm_compute::smul_qs16</a></div><div class="ttdeci">qint16_t smul_qs16(qint16_t a, qint16_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point scalar multiply </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00149">FixedPoint.inl:149</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015971<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000015972<div class="ttc" id="namespacearm__compute_xhtml_a70476eda2d46c943d572362fe2fc9d14"><div class="ttname"><a href="namespacearm__compute.xhtml#a70476eda2d46c943d572362fe2fc9d14">arm_compute::ssub_qs16</a></div><div class="ttdeci">qint16_t ssub_qs16(qint16_t a, qint16_t b)</div><div class="ttdoc">16 bit fixed point scalar subtraction </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00114">FixedPoint.inl:114</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010015973</div><!-- fragment -->
15974</div>
15975</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015976<a class="anchor" id="ab768d7001612a149c0bf695b773d659b"></a>
15977<div class="memitem">
15978<div class="memproto">
15979<table class="mlabels">
15980 <tr>
15981 <td class="mlabels-left">
15982 <table class="memname">
15983 <tr>
15984 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sinvsqrt_qs8 </td>
15985 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000015986 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015987 <td class="paramname"><em>a</em>, </td>
15988 </tr>
15989 <tr>
15990 <td class="paramkey"></td>
15991 <td></td>
15992 <td class="paramtype">int&#160;</td>
15993 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15994 </tr>
15995 <tr>
15996 <td></td>
15997 <td>)</td>
15998 <td></td><td></td>
15999 </tr>
16000 </table>
16001 </td>
16002 <td class="mlabels-right">
16003<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16004 </tr>
16005</table>
16006</div><div class="memdoc">
16007
16008<p>8 bit fixed point scalar inverse square root </p>
16009<dl class="params"><dt>Parameters</dt><dd>
16010 <table class="params">
16011 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input </td></tr>
16012 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16013 </table>
16014 </dd>
16015</dl>
16016<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point inverse square root. </dd></dl>
16017
Anthony Barbier06ea0482018-02-22 15:45:35 +000016018<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00209">209</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016019
Anthony Barbier06ea0482018-02-22 15:45:35 +000016020<p>References <a class="el" href="_fixed_point_8inl_source.xhtml#l00137">smul_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00109">ssub_qs8()</a>.</p>
16021<div class="fragment"><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> shift = 8 - (fixed_point_position + (__builtin_clz(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) - 24));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> const_three = (3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> temp = shift &lt; 0 ? (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt;&lt; -shift) : (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &gt;&gt; shift);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> x2 = temp;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// We need three iterations to find the result</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; ++i)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> three_minus_dx = <a class="code" href="namespacearm__compute.xhtml#ab97841950d268532e51f28a208ddafd4">ssub_qs8</a>(const_three, <a class="code" href="namespacearm__compute.xhtml#aec48f137adc904d648dd7eba0d828fab">smul_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#aec48f137adc904d648dd7eba0d828fab">smul_qs8</a>(x2, x2, fixed_point_position), fixed_point_position));</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; x2 = (<a class="code" href="namespacearm__compute.xhtml#aec48f137adc904d648dd7eba0d828fab">smul_qs8</a>(x2, three_minus_dx, fixed_point_position) &gt;&gt; 1);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; temp = shift &lt; 0 ? (x2 &lt;&lt; (-shift &gt;&gt; 1)) : (x2 &gt;&gt; (shift &gt;&gt; 1));</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> temp;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_aec48f137adc904d648dd7eba0d828fab"><div class="ttname"><a href="namespacearm__compute.xhtml#aec48f137adc904d648dd7eba0d828fab">arm_compute::smul_qs8</a></div><div class="ttdeci">qint8_t smul_qs8(qint8_t a, qint8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point scalar multiply </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00137">FixedPoint.inl:137</a></div></div>
16022<div class="ttc" id="namespacearm__compute_xhtml_ab97841950d268532e51f28a208ddafd4"><div class="ttname"><a href="namespacearm__compute.xhtml#ab97841950d268532e51f28a208ddafd4">arm_compute::ssub_qs8</a></div><div class="ttdeci">qint8_t ssub_qs8(qint8_t a, qint8_t b)</div><div class="ttdoc">8 bit fixed point scalar subtraction </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00109">FixedPoint.inl:109</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016023<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016024<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
16025</div><!-- fragment -->
16026</div>
16027</div>
Kaizen8938bd32017-09-28 14:38:23 +010016028<a class="anchor" id="ad45601a3c0f1d9f6210041651f4e2f4b"></a>
16029<div class="memitem">
16030<div class="memproto">
16031<table class="mlabels">
16032 <tr>
16033 <td class="mlabels-left">
16034 <table class="memname">
16035 <tr>
16036 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> slog_qs16 </td>
16037 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016038 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016039 <td class="paramname"><em>a</em>, </td>
16040 </tr>
16041 <tr>
16042 <td class="paramkey"></td>
16043 <td></td>
16044 <td class="paramtype">int&#160;</td>
16045 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16046 </tr>
16047 <tr>
16048 <td></td>
16049 <td>)</td>
16050 <td></td><td></td>
16051 </tr>
16052 </table>
16053 </td>
16054 <td class="mlabels-right">
16055<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16056 </tr>
16057</table>
16058</div><div class="memdoc">
16059
16060<p>16 bit fixed point scalar logarithm </p>
16061<dl class="params"><dt>Parameters</dt><dd>
16062 <table class="params">
16063 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input </td></tr>
16064 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16065 </table>
16066 </dd>
16067</dl>
16068<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point logarithm. </dd></dl>
16069
Anthony Barbier06ea0482018-02-22 15:45:35 +000016070<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00340">340</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010016071
Anthony Barbier06ea0482018-02-22 15:45:35 +000016072<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00077">sadd_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00255">sdiv_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00149">smul_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00091">sqadd_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00173">sqmul_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00114">ssub_qs16()</a>, and <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>.</p>
16073<div class="fragment"><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;{</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="comment">// Constants</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> const_one = (1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> ln2 = (0x58B9 &gt;&gt; (7 - fixed_point_position));</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = (0x5C0F &gt;&gt; (7 - fixed_point_position - 1));</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = -(0x56AE &gt;&gt; (7 - fixed_point_position));</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> C = (0x2933 &gt;&gt; (7 - fixed_point_position));</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> D = -(0x0AA7 &gt;&gt; (7 - fixed_point_position));</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>((const_one == <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) || (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt; 0))</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt; const_one)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> -<a class="code" href="namespacearm__compute.xhtml#ad45601a3c0f1d9f6210041651f4e2f4b">slog_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a62b21ae2dd27770147d5b7c265fa534c">sdiv_qs16</a>(const_one, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="comment">// Remove even powers of 2</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> shift_val = 31 - __builtin_clz(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &gt;&gt;= shift_val;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> = <a class="code" href="namespacearm__compute.xhtml#a70476eda2d46c943d572362fe2fc9d14">ssub_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_one);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="comment">// Polynomial expansion</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = <a class="code" href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">sqadd_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">sqadd_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, sum, fixed_point_position), B);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">sqadd_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, sum, fixed_point_position), A);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, sum, fixed_point_position);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a7e6eff2c8b93f18002c06059b7e5b79a">smul_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#ab30659aa2125bd5857547d424e601e34">sadd_qs16</a>(sum, shift_val &lt;&lt; fixed_point_position), ln2, fixed_point_position);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016074<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016075<div class="ttc" id="namespacearm__compute_xhtml_a62b21ae2dd27770147d5b7c265fa534c"><div class="ttname"><a href="namespacearm__compute.xhtml#a62b21ae2dd27770147d5b7c265fa534c">arm_compute::sdiv_qs16</a></div><div class="ttdeci">qint16_t sdiv_qs16(qint16_t a, qint16_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point scalar division </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00255">FixedPoint.inl:255</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016076<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
16077<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016078<div class="ttc" id="namespacearm__compute_xhtml_ad45601a3c0f1d9f6210041651f4e2f4b"><div class="ttname"><a href="namespacearm__compute.xhtml#ad45601a3c0f1d9f6210041651f4e2f4b">arm_compute::slog_qs16</a></div><div class="ttdeci">qint16_t slog_qs16(qint16_t a, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point scalar logarithm </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00340">FixedPoint.inl:340</a></div></div>
16079<div class="ttc" id="namespacearm__compute_xhtml_a7e6eff2c8b93f18002c06059b7e5b79a"><div class="ttname"><a href="namespacearm__compute.xhtml#a7e6eff2c8b93f18002c06059b7e5b79a">arm_compute::smul_qs16</a></div><div class="ttdeci">qint16_t smul_qs16(qint16_t a, qint16_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point scalar multiply </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00149">FixedPoint.inl:149</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016080<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016081<div class="ttc" id="namespacearm__compute_xhtml_a45669fcc0f31fce521179510e85dcb62"><div class="ttname"><a href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">arm_compute::sqadd_qs16</a></div><div class="ttdeci">qint16_t sqadd_qs16(qint16_t a, qint16_t b)</div><div class="ttdoc">16 bit fixed point scalar saturating add </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00091">FixedPoint.inl:91</a></div></div>
16082<div class="ttc" id="namespacearm__compute_xhtml_a70476eda2d46c943d572362fe2fc9d14"><div class="ttname"><a href="namespacearm__compute.xhtml#a70476eda2d46c943d572362fe2fc9d14">arm_compute::ssub_qs16</a></div><div class="ttdeci">qint16_t ssub_qs16(qint16_t a, qint16_t b)</div><div class="ttdoc">16 bit fixed point scalar subtraction </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00114">FixedPoint.inl:114</a></div></div>
16083<div class="ttc" id="namespacearm__compute_xhtml_ab30659aa2125bd5857547d424e601e34"><div class="ttname"><a href="namespacearm__compute.xhtml#ab30659aa2125bd5857547d424e601e34">arm_compute::sadd_qs16</a></div><div class="ttdeci">qint16_t sadd_qs16(qint16_t a, qint16_t b)</div><div class="ttdoc">16 bit fixed point scalar add </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00077">FixedPoint.inl:77</a></div></div>
16084<div class="ttc" id="namespacearm__compute_xhtml_a55c8a365b4242664f8c0f19e91bcee92"><div class="ttname"><a href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">arm_compute::sqmul_qs16</a></div><div class="ttdeci">qint16_t sqmul_qs16(qint16_t a, qint16_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point scalar saturating multiply </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00173">FixedPoint.inl:173</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016085</div><!-- fragment -->
16086</div>
16087</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016088<a class="anchor" id="a596a7e3c63f80e67ea7cb713e8fc9992"></a>
16089<div class="memitem">
16090<div class="memproto">
16091<table class="mlabels">
16092 <tr>
16093 <td class="mlabels-left">
16094 <table class="memname">
16095 <tr>
16096 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> slog_qs8 </td>
16097 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016098 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016099 <td class="paramname"><em>a</em>, </td>
16100 </tr>
16101 <tr>
16102 <td class="paramkey"></td>
16103 <td></td>
16104 <td class="paramtype">int&#160;</td>
16105 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16106 </tr>
16107 <tr>
16108 <td></td>
16109 <td>)</td>
16110 <td></td><td></td>
16111 </tr>
16112 </table>
16113 </td>
16114 <td class="mlabels-right">
16115<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16116 </tr>
16117</table>
16118</div><div class="memdoc">
16119
16120<p>8 bit fixed point scalar logarithm </p>
16121<dl class="params"><dt>Parameters</dt><dd>
16122 <table class="params">
16123 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input </td></tr>
16124 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16125 </table>
16126 </dd>
16127</dl>
16128<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point logarithm. </dd></dl>
16129
Anthony Barbier06ea0482018-02-22 15:45:35 +000016130<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00307">307</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016131
Anthony Barbier06ea0482018-02-22 15:45:35 +000016132<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00072">sadd_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00249">sdiv_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00137">smul_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00082">sqadd_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00161">sqmul_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00109">ssub_qs8()</a>, and <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>.</p>
16133<div class="fragment"><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;{</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// Constants</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> const_one = (1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> ln2 = (0x58 &gt;&gt; (7 - fixed_point_position));</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = (0x5C &gt;&gt; (7 - fixed_point_position - 1));</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = -(0x56 &gt;&gt; (7 - fixed_point_position));</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> C = (0x29 &gt;&gt; (7 - fixed_point_position));</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> D = -(0x0A &gt;&gt; (7 - fixed_point_position));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">if</span>((const_one == <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) || (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt; 0))</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &lt; const_one)</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> -<a class="code" href="namespacearm__compute.xhtml#a596a7e3c63f80e67ea7cb713e8fc9992">slog_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#ae39636f0e83dd3b854b89181a230216f">sdiv_qs8</a>(const_one, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="comment">// Remove even powers of 2</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> shift_val = 31 - __builtin_clz(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &gt;&gt;= shift_val;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> = <a class="code" href="namespacearm__compute.xhtml#ab97841950d268532e51f28a208ddafd4">ssub_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_one);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">// Polynomial expansion</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, sum, fixed_point_position), B);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, sum, fixed_point_position), A);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, sum, fixed_point_position);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#aec48f137adc904d648dd7eba0d828fab">smul_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#aa8cee074ec68e2ae7830a9472efd8429">sadd_qs8</a>(sum, shift_val &lt;&lt; fixed_point_position), ln2, fixed_point_position);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
16134<div class="ttc" id="namespacearm__compute_xhtml_aec48f137adc904d648dd7eba0d828fab"><div class="ttname"><a href="namespacearm__compute.xhtml#aec48f137adc904d648dd7eba0d828fab">arm_compute::smul_qs8</a></div><div class="ttdeci">qint8_t smul_qs8(qint8_t a, qint8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point scalar multiply </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00137">FixedPoint.inl:137</a></div></div>
16135<div class="ttc" id="namespacearm__compute_xhtml_ab97841950d268532e51f28a208ddafd4"><div class="ttname"><a href="namespacearm__compute.xhtml#ab97841950d268532e51f28a208ddafd4">arm_compute::ssub_qs8</a></div><div class="ttdeci">qint8_t ssub_qs8(qint8_t a, qint8_t b)</div><div class="ttdoc">8 bit fixed point scalar subtraction </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00109">FixedPoint.inl:109</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016136<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016137<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016138<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016139<div class="ttc" id="namespacearm__compute_xhtml_aa8cee074ec68e2ae7830a9472efd8429"><div class="ttname"><a href="namespacearm__compute.xhtml#aa8cee074ec68e2ae7830a9472efd8429">arm_compute::sadd_qs8</a></div><div class="ttdeci">qint8_t sadd_qs8(qint8_t a, qint8_t b)</div><div class="ttdoc">8 bit fixed point scalar add </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00072">FixedPoint.inl:72</a></div></div>
16140<div class="ttc" id="namespacearm__compute_xhtml_ae39636f0e83dd3b854b89181a230216f"><div class="ttname"><a href="namespacearm__compute.xhtml#ae39636f0e83dd3b854b89181a230216f">arm_compute::sdiv_qs8</a></div><div class="ttdeci">qint8_t sdiv_qs8(qint8_t a, qint8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point scalar division </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00249">FixedPoint.inl:249</a></div></div>
16141<div class="ttc" id="namespacearm__compute_xhtml_af0b73b0c4980a551d7cd4edec43ffd92"><div class="ttname"><a href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">arm_compute::sqmul_qs8</a></div><div class="ttdeci">qint8_t sqmul_qs8(qint8_t a, qint8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point scalar saturating multiply </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00161">FixedPoint.inl:161</a></div></div>
16142<div class="ttc" id="namespacearm__compute_xhtml_a596a7e3c63f80e67ea7cb713e8fc9992"><div class="ttname"><a href="namespacearm__compute.xhtml#a596a7e3c63f80e67ea7cb713e8fc9992">arm_compute::slog_qs8</a></div><div class="ttdeci">qint8_t slog_qs8(qint8_t a, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point scalar logarithm </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00307">FixedPoint.inl:307</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016143<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016144<div class="ttc" id="namespacearm__compute_xhtml_a532d90e007d0cb6f3d43107229c40c32"><div class="ttname"><a href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">arm_compute::sqadd_qs8</a></div><div class="ttdeci">qint8_t sqadd_qs8(qint8_t a, qint8_t b)</div><div class="ttdoc">8 bit fixed point scalar saturating add </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00082">FixedPoint.inl:82</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016145</div><!-- fragment -->
16146</div>
16147</div>
16148<a class="anchor" id="a7e6eff2c8b93f18002c06059b7e5b79a"></a>
16149<div class="memitem">
16150<div class="memproto">
16151<table class="mlabels">
16152 <tr>
16153 <td class="mlabels-left">
16154 <table class="memname">
16155 <tr>
16156 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> smul_qs16 </td>
16157 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016158 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016159 <td class="paramname"><em>a</em>, </td>
16160 </tr>
16161 <tr>
16162 <td class="paramkey"></td>
16163 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016164 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016165 <td class="paramname"><em>b</em>, </td>
16166 </tr>
16167 <tr>
16168 <td class="paramkey"></td>
16169 <td></td>
16170 <td class="paramtype">int&#160;</td>
16171 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16172 </tr>
16173 <tr>
16174 <td></td>
16175 <td>)</td>
16176 <td></td><td></td>
16177 </tr>
16178 </table>
16179 </td>
16180 <td class="mlabels-right">
16181<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16182 </tr>
16183</table>
16184</div><div class="memdoc">
16185
16186<p>16 bit fixed point scalar multiply </p>
16187<dl class="params"><dt>Parameters</dt><dd>
16188 <table class="params">
16189 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
16190 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input </td></tr>
16191 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16192 </table>
16193 </dd>
16194</dl>
16195<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point multiplication. </dd></dl>
16196
Anthony Barbier06ea0482018-02-22 15:45:35 +000016197<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00149">149</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010016198
Jenkinsc3f34a42018-03-02 12:38:09 +000016199<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016200
Anthony Barbier06ea0482018-02-22 15:45:35 +000016201<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00229">sinvsqrt_qs16()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00340">slog_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000016202<div class="fragment"><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> round_up_const = (1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) * static_cast&lt;qint32_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// Rounding up</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; tmp += round_up_const;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a><span class="keyword">&gt;</span>(tmp &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016203<div class="ttc" id="namespacearm__compute_xhtml_aa06c95f9976f3729316d689b4419089f"><div class="ttname"><a href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">arm_compute::qint32_t</a></div><div class="ttdeci">int32_t qint32_t</div><div class="ttdoc">32 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00031">FixedPoint.h:31</a></div></div>
16204<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016205<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016206</div><!-- fragment -->
16207</div>
16208</div>
16209<a class="anchor" id="aec48f137adc904d648dd7eba0d828fab"></a>
16210<div class="memitem">
16211<div class="memproto">
16212<table class="mlabels">
16213 <tr>
16214 <td class="mlabels-left">
16215 <table class="memname">
16216 <tr>
16217 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> smul_qs8 </td>
16218 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016219 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016220 <td class="paramname"><em>a</em>, </td>
16221 </tr>
16222 <tr>
16223 <td class="paramkey"></td>
16224 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016225 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016226 <td class="paramname"><em>b</em>, </td>
16227 </tr>
16228 <tr>
16229 <td class="paramkey"></td>
16230 <td></td>
16231 <td class="paramtype">int&#160;</td>
16232 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16233 </tr>
16234 <tr>
16235 <td></td>
16236 <td>)</td>
16237 <td></td><td></td>
16238 </tr>
16239 </table>
16240 </td>
16241 <td class="mlabels-right">
16242<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16243 </tr>
16244</table>
16245</div><div class="memdoc">
16246
16247<p>8 bit fixed point scalar multiply </p>
16248<dl class="params"><dt>Parameters</dt><dd>
16249 <table class="params">
16250 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
16251 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input </td></tr>
16252 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16253 </table>
16254 </dd>
16255</dl>
16256<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point multiplication. </dd></dl>
16257
Anthony Barbier06ea0482018-02-22 15:45:35 +000016258<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00137">137</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016259
Jenkinsc3f34a42018-03-02 12:38:09 +000016260<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016261
Anthony Barbier06ea0482018-02-22 15:45:35 +000016262<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00209">sinvsqrt_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00307">slog_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000016263<div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> round_up_const = (1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) * static_cast&lt;qint16_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// Rounding up</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; tmp += round_up_const;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a><span class="keyword">&gt;</span>(tmp &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016264<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016265<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016266<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016267</div><!-- fragment -->
16268</div>
16269</div>
16270<a class="anchor" id="a45669fcc0f31fce521179510e85dcb62"></a>
16271<div class="memitem">
16272<div class="memproto">
16273<table class="mlabels">
16274 <tr>
16275 <td class="mlabels-left">
16276 <table class="memname">
16277 <tr>
16278 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqadd_qs16 </td>
16279 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016280 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016281 <td class="paramname"><em>a</em>, </td>
16282 </tr>
16283 <tr>
16284 <td class="paramkey"></td>
16285 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016286 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016287 <td class="paramname"><em>b</em>&#160;</td>
16288 </tr>
16289 <tr>
16290 <td></td>
16291 <td>)</td>
16292 <td></td><td></td>
16293 </tr>
16294 </table>
16295 </td>
16296 <td class="mlabels-right">
16297<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16298 </tr>
16299</table>
16300</div><div class="memdoc">
16301
16302<p>16 bit fixed point scalar saturating add </p>
16303<dl class="params"><dt>Parameters</dt><dd>
16304 <table class="params">
16305 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
16306 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input</td></tr>
16307 </table>
16308 </dd>
16309</dl>
16310<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point addition. The result is saturated in case of overflow </dd></dl>
16311
Anthony Barbier06ea0482018-02-22 15:45:35 +000016312<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00091">91</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010016313
Jenkinsc3f34a42018-03-02 12:38:09 +000016314<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016315
Anthony Barbier06ea0482018-02-22 15:45:35 +000016316<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00340">slog_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00284">sqexp_qs16()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00055">sshr_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000016317<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// We need to store the temporary result in qint32_t otherwise we cannot evaluate the overflow</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> tmp = (<span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) + static_cast&lt;qint32_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint16_t</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&gt;(tmp);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016318<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016319<div class="ttc" id="namespacearm__compute_xhtml_aa06c95f9976f3729316d689b4419089f"><div class="ttname"><a href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">arm_compute::qint32_t</a></div><div class="ttdeci">int32_t qint32_t</div><div class="ttdoc">32 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00031">FixedPoint.h:31</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016320<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016321<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016322</div><!-- fragment -->
16323</div>
16324</div>
16325<a class="anchor" id="af1a4a8b0eeee4d2d1c14774e2417f3de"></a>
16326<div class="memitem">
16327<div class="memproto">
16328<table class="mlabels">
16329 <tr>
16330 <td class="mlabels-left">
16331 <table class="memname">
16332 <tr>
16333 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> sqadd_qs32 </td>
16334 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016335 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016336 <td class="paramname"><em>a</em>, </td>
16337 </tr>
16338 <tr>
16339 <td class="paramkey"></td>
16340 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016341 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016342 <td class="paramname"><em>b</em>&#160;</td>
16343 </tr>
16344 <tr>
16345 <td></td>
16346 <td>)</td>
16347 <td></td><td></td>
16348 </tr>
16349 </table>
16350 </td>
16351 <td class="mlabels-right">
16352<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16353 </tr>
16354</table>
16355</div><div class="memdoc">
16356
16357<p>32 bit fixed point scalar saturating add </p>
16358<dl class="params"><dt>Parameters</dt><dd>
16359 <table class="params">
16360 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 32 bit fixed point input </td></tr>
16361 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 32 bit fixed point input</td></tr>
16362 </table>
16363 </dd>
16364</dl>
16365<dl class="section return"><dt>Returns</dt><dd>The result of the 32 bit fixed point addition. The result is saturated in case of overflow </dd></dl>
16366
Anthony Barbier06ea0482018-02-22 15:45:35 +000016367<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00100">100</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016368
Jenkinsc3f34a42018-03-02 12:38:09 +000016369<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016370<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// We need to store the temporary result in qint64_t otherwise we cannot evaluate the overflow</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="namespacearm__compute.xhtml#adc3be0bc3741b081217b2609abcf0333">qint64_t</a> tmp = (<span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#adc3be0bc3741b081217b2609abcf0333">qint64_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) + static_cast&lt;qint64_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint32_t</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a>&gt;(tmp);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_adc3be0bc3741b081217b2609abcf0333"><div class="ttname"><a href="namespacearm__compute.xhtml#adc3be0bc3741b081217b2609abcf0333">arm_compute::qint64_t</a></div><div class="ttdeci">int64_t qint64_t</div><div class="ttdoc">64 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00032">FixedPoint.h:32</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016371<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016372<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
16373<div class="ttc" id="namespacearm__compute_xhtml_aa06c95f9976f3729316d689b4419089f"><div class="ttname"><a href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">arm_compute::qint32_t</a></div><div class="ttdeci">int32_t qint32_t</div><div class="ttdoc">32 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00031">FixedPoint.h:31</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016374<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016375</div><!-- fragment -->
16376</div>
16377</div>
16378<a class="anchor" id="a532d90e007d0cb6f3d43107229c40c32"></a>
16379<div class="memitem">
16380<div class="memproto">
16381<table class="mlabels">
16382 <tr>
16383 <td class="mlabels-left">
16384 <table class="memname">
16385 <tr>
16386 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqadd_qs8 </td>
16387 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016388 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016389 <td class="paramname"><em>a</em>, </td>
16390 </tr>
16391 <tr>
16392 <td class="paramkey"></td>
16393 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016394 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016395 <td class="paramname"><em>b</em>&#160;</td>
16396 </tr>
16397 <tr>
16398 <td></td>
16399 <td>)</td>
16400 <td></td><td></td>
16401 </tr>
16402 </table>
16403 </td>
16404 <td class="mlabels-right">
16405<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16406 </tr>
16407</table>
16408</div><div class="memdoc">
16409
16410<p>8 bit fixed point scalar saturating add </p>
16411<dl class="params"><dt>Parameters</dt><dd>
16412 <table class="params">
16413 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
16414 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input</td></tr>
16415 </table>
16416 </dd>
16417</dl>
16418<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point addition. The result is saturated in case of overflow </dd></dl>
16419
Anthony Barbier06ea0482018-02-22 15:45:35 +000016420<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00082">82</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016421
Jenkinsc3f34a42018-03-02 12:38:09 +000016422<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016423
Anthony Barbier06ea0482018-02-22 15:45:35 +000016424<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00307">slog_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00261">sqexp_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00048">sshr_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000016425<div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// We need to store the temporary result in qint16_t otherwise we cannot evaluate the overflow</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> tmp = (<span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) + static_cast&lt;qint16_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint8_t</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&gt;(tmp);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016426<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016427<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016428<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016429<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016430</div><!-- fragment -->
16431</div>
16432</div>
16433<a class="anchor" id="af58ed9dce099d48202110cd40e793dca"></a>
16434<div class="memitem">
16435<div class="memproto">
16436<table class="mlabels">
16437 <tr>
16438 <td class="mlabels-left">
16439 <table class="memname">
16440 <tr>
16441 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#ab8938bcb3ec0f5f8d93285eb3a28b701">qasymm8_t</a> arm_compute::sqcvt_qasymm8_f32 </td>
16442 <td>(</td>
16443 <td class="paramtype">float&#160;</td>
16444 <td class="paramname"><em>value</em>, </td>
16445 </tr>
16446 <tr>
16447 <td class="paramkey"></td>
16448 <td></td>
16449 <td class="paramtype">float&#160;</td>
16450 <td class="paramname"><em>scale</em>, </td>
16451 </tr>
16452 <tr>
16453 <td class="paramkey"></td>
16454 <td></td>
16455 <td class="paramtype">int&#160;</td>
16456 <td class="paramname"><em>offset</em>, </td>
16457 </tr>
16458 <tr>
16459 <td class="paramkey"></td>
16460 <td></td>
16461 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a>&#160;</td>
16462 <td class="paramname"><em>rounding_policy</em> = <code><a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95">RoundingPolicy::TO_NEAREST_UP</a></code>&#160;</td>
16463 </tr>
16464 <tr>
16465 <td></td>
16466 <td>)</td>
16467 <td></td><td></td>
16468 </tr>
16469 </table>
16470 </td>
16471 <td class="mlabels-right">
16472<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16473 </tr>
16474</table>
16475</div><div class="memdoc">
16476
16477<p>Definition at line <a class="el" href="_q_asymm8_8inl_source.xhtml#l00029">29</a> of file <a class="el" href="_q_asymm8_8inl_source.xhtml">QAsymm8.inl</a>.</p>
16478
16479<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="helpers_8h_source.xhtml#l00301">offset()</a>, <a class="el" href="namespacearm__compute.xhtml#a6452ac376d4adb94d93a93d678bb6757">round()</a>, and <a class="el" href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00176">arm_compute::test::validation::rounding_policy</a>.</p>
16480
Anthony Barbier06ea0482018-02-22 15:45:35 +000016481<p>Referenced by <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00143">QuantizationInfo::quantize()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016482<div class="fragment"><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">int</span> quantized = <a class="code" href="namespacearm__compute.xhtml#a6452ac376d4adb94d93a93d678bb6757">arm_compute::round</a>(<a class="code" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a> / <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">scale</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a60ad1078faeaf3f59266d69ad937339f">rounding_policy</a>) + <a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; quantized = <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>(quantized, 255));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> quantized;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</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&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
16483<div class="ttc" id="helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00301">helpers.h:301</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000016484<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#l00278">hwc.hpp:278</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016485<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_acec6d8ad52a28972fa74e071c1a63b6a"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">arm_compute::test::validation::scale</a></div><div class="ttdeci">scale</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00176">PixelWiseMultiplication.cpp:176</a></div></div>
16486<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a60ad1078faeaf3f59266d69ad937339f"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a60ad1078faeaf3f59266d69ad937339f">arm_compute::test::validation::rounding_policy</a></div><div class="ttdeci">rounding_policy</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00176">PixelWiseMultiplication.cpp:176</a></div></div>
16487<div class="ttc" id="namespacearm__compute_xhtml_a6452ac376d4adb94d93a93d678bb6757"><div class="ttname"><a href="namespacearm__compute.xhtml#a6452ac376d4adb94d93a93d678bb6757">arm_compute::round</a></div><div class="ttdeci">int round(float x, RoundingPolicy rounding_policy)</div><div class="ttdoc">Return a rounded value of x. </div></div>
16488<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&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016489</div><!-- fragment -->
16490</div>
16491</div>
Kaizen8938bd32017-09-28 14:38:23 +010016492<a class="anchor" id="a790df824287a4f498e648dbbb481906b"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016493<div class="memitem">
16494<div class="memproto">
16495<table class="mlabels">
16496 <tr>
16497 <td class="mlabels-left">
16498 <table class="memname">
16499 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010016500 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqcvt_qs16_f32 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016501 <td>(</td>
Kaizen8938bd32017-09-28 14:38:23 +010016502 <td class="paramtype">float&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016503 <td class="paramname"><em>a</em>, </td>
16504 </tr>
16505 <tr>
16506 <td class="paramkey"></td>
16507 <td></td>
16508 <td class="paramtype">int&#160;</td>
16509 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16510 </tr>
16511 <tr>
16512 <td></td>
16513 <td>)</td>
16514 <td></td><td></td>
16515 </tr>
16516 </table>
16517 </td>
16518 <td class="mlabels-right">
16519<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16520 </tr>
16521</table>
16522</div><div class="memdoc">
16523
Kaizen8938bd32017-09-28 14:38:23 +010016524<p>Convert a float to 16 bit fixed point. </p>
16525<dl class="params"><dt>Parameters</dt><dd>
16526 <table class="params">
16527 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert </td></tr>
16528 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16529 </table>
16530 </dd>
16531</dl>
16532<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 16 bit fixed point </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016533
Anthony Barbier06ea0482018-02-22 15:45:35 +000016534<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00389">389</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
16535
16536<p>References <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000016537<div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;{</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="comment">// round_nearest_integer(a * 2^(fixed_point_position))</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> * (1 &lt;&lt; fixed_point_position) + ((<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &gt;= 0) ? 0.5 : -0.5));</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016538<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
16539<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016540</div><!-- fragment -->
16541</div>
16542</div>
16543<a class="anchor" id="a4f425447c1efb8d2b48cb50b110f4739"></a>
16544<div class="memitem">
16545<div class="memproto">
16546<table class="mlabels">
16547 <tr>
16548 <td class="mlabels-left">
16549 <table class="memname">
16550 <tr>
16551 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqcvt_qs8_f32 </td>
16552 <td>(</td>
16553 <td class="paramtype">float&#160;</td>
16554 <td class="paramname"><em>a</em>, </td>
16555 </tr>
16556 <tr>
16557 <td class="paramkey"></td>
16558 <td></td>
16559 <td class="paramtype">int&#160;</td>
16560 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16561 </tr>
16562 <tr>
16563 <td></td>
16564 <td>)</td>
16565 <td></td><td></td>
16566 </tr>
16567 </table>
16568 </td>
16569 <td class="mlabels-right">
16570<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16571 </tr>
16572</table>
16573</div><div class="memdoc">
16574
16575<p>Convert a float to 8 bit fixed point. </p>
16576<dl class="params"><dt>Parameters</dt><dd>
16577 <table class="params">
16578 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert </td></tr>
16579 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16580 </table>
16581 </dd>
16582</dl>
16583<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 8 bit fixed point </dd></dl>
16584
Anthony Barbier06ea0482018-02-22 15:45:35 +000016585<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00378">378</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
16586
16587<p>References <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000016588<div class="fragment"><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;{</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="comment">// round_nearest_integer(a * 2^(fixed_point_position))</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> * (1 &lt;&lt; fixed_point_position) + ((<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> &gt;= 0) ? 0.5 : -0.5));</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016589<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
16590<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016591</div><!-- fragment -->
16592</div>
16593</div>
16594<a class="anchor" id="aba5b39758733711eaf3015d17839feb5"></a>
16595<div class="memitem">
16596<div class="memproto">
16597<table class="mlabels">
16598 <tr>
16599 <td class="mlabels-left">
16600 <table class="memname">
16601 <tr>
16602 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqexp_qs16 </td>
16603 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016604 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016605 <td class="paramname"><em>a</em>, </td>
16606 </tr>
16607 <tr>
16608 <td class="paramkey"></td>
16609 <td></td>
16610 <td class="paramtype">int&#160;</td>
16611 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16612 </tr>
16613 <tr>
16614 <td></td>
16615 <td>)</td>
16616 <td></td><td></td>
16617 </tr>
16618 </table>
16619 </td>
16620 <td class="mlabels-right">
16621<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16622 </tr>
16623</table>
16624</div><div class="memdoc">
16625
16626<p>16 bit fixed point scalar exponential </p>
16627<dl class="params"><dt>Parameters</dt><dd>
16628 <table class="params">
16629 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input </td></tr>
16630 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16631 </table>
16632 </dd>
16633</dl>
16634<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point exponential. </dd></dl>
16635
Anthony Barbier06ea0482018-02-22 15:45:35 +000016636<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00284">284</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010016637
Jenkinsc3f34a42018-03-02 12:38:09 +000016638<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00067">sabs_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00091">sqadd_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00173">sqmul_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00040">sqshl_qs16()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00128">sqsub_qs16()</a>, and <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016639<div class="fragment"><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">// Constants</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> const_one = (1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> ln2 = ((0x58B9 &gt;&gt; (14 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> inv_ln2 = (((0x38AA &gt;&gt; (14 - fixed_point_position)) + 1) &gt;&gt; 1) | const_one;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = ((0x7FBA &gt;&gt; (14 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = ((0x3FE9 &gt;&gt; (14 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> C = ((0x1693 &gt;&gt; (14 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> D = ((0x0592 &gt;&gt; (14 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// Polynomial expansion</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dec_a = (<a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, inv_ln2, fixed_point_position) &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a> = <a class="code" href="namespacearm__compute.xhtml#a5d49ea329c81268d6e12031f6f13f1eb">sabs_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a217e5c603560d6f73971983c6d1572a1">sqsub_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(ln2, <a class="code" href="namespacearm__compute.xhtml#a383b9d12f86c35ceed6dd5922439aa4c">sqshl_qs16</a>(dec_a, fixed_point_position), fixed_point_position)));</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = <a class="code" href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">sqadd_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(alpha, D, fixed_point_position), C);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">sqadd_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(alpha, sum, fixed_point_position), B);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">sqadd_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(alpha, sum, fixed_point_position), A);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">sqmul_qs16</a>(alpha, sum, fixed_point_position);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">sqadd_qs16</a>(sum, const_one);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> (dec_a &lt; 0) ? (sum &gt;&gt; -dec_a) : <a class="code" href="namespacearm__compute.xhtml#a383b9d12f86c35ceed6dd5922439aa4c">sqshl_qs16</a>(sum, dec_a);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
16640<div class="ttc" id="namespacearm__compute_xhtml_a5d49ea329c81268d6e12031f6f13f1eb"><div class="ttname"><a href="namespacearm__compute.xhtml#a5d49ea329c81268d6e12031f6f13f1eb">arm_compute::sabs_qs16</a></div><div class="ttdeci">qint16_t sabs_qs16(qint16_t a)</div><div class="ttdoc">16 bit fixed point scalar absolute value </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00067">FixedPoint.inl:67</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016641<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016642<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016643<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016644<div class="ttc" id="namespacearm__compute_xhtml_a383b9d12f86c35ceed6dd5922439aa4c"><div class="ttname"><a href="namespacearm__compute.xhtml#a383b9d12f86c35ceed6dd5922439aa4c">arm_compute::sqshl_qs16</a></div><div class="ttdeci">qint16_t sqshl_qs16(qint16_t a, int shift)</div><div class="ttdoc">16 bit fixed point scalar saturating shift left </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00040">FixedPoint.inl:40</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016645<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016646<div class="ttc" id="namespacearm__compute_xhtml_a45669fcc0f31fce521179510e85dcb62"><div class="ttname"><a href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">arm_compute::sqadd_qs16</a></div><div class="ttdeci">qint16_t sqadd_qs16(qint16_t a, qint16_t b)</div><div class="ttdoc">16 bit fixed point scalar saturating add </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00091">FixedPoint.inl:91</a></div></div>
16647<div class="ttc" id="namespacearm__compute_xhtml_a217e5c603560d6f73971983c6d1572a1"><div class="ttname"><a href="namespacearm__compute.xhtml#a217e5c603560d6f73971983c6d1572a1">arm_compute::sqsub_qs16</a></div><div class="ttdeci">qint16_t sqsub_qs16(qint16_t a, qint16_t b)</div><div class="ttdoc">16 bit fixed point scalar saturating subtraction </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00128">FixedPoint.inl:128</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016648<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016649<div class="ttc" id="namespacearm__compute_xhtml_a55c8a365b4242664f8c0f19e91bcee92"><div class="ttname"><a href="namespacearm__compute.xhtml#a55c8a365b4242664f8c0f19e91bcee92">arm_compute::sqmul_qs16</a></div><div class="ttdeci">qint16_t sqmul_qs16(qint16_t a, qint16_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point scalar saturating multiply </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00173">FixedPoint.inl:173</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016650</div><!-- fragment -->
16651</div>
16652</div>
16653<a class="anchor" id="a20724c7cb556b1ff4fd9d01c7020d762"></a>
16654<div class="memitem">
16655<div class="memproto">
16656<table class="mlabels">
16657 <tr>
16658 <td class="mlabels-left">
16659 <table class="memname">
16660 <tr>
16661 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqexp_qs8 </td>
16662 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016663 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016664 <td class="paramname"><em>a</em>, </td>
16665 </tr>
16666 <tr>
16667 <td class="paramkey"></td>
16668 <td></td>
16669 <td class="paramtype">int&#160;</td>
16670 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16671 </tr>
16672 <tr>
16673 <td></td>
16674 <td>)</td>
16675 <td></td><td></td>
16676 </tr>
16677 </table>
16678 </td>
16679 <td class="mlabels-right">
16680<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16681 </tr>
16682</table>
16683</div><div class="memdoc">
16684
16685<p>8 bit fixed point scalar exponential </p>
16686<dl class="params"><dt>Parameters</dt><dd>
16687 <table class="params">
16688 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input </td></tr>
16689 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16690 </table>
16691 </dd>
16692</dl>
16693<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point exponential. </dd></dl>
16694
Anthony Barbier06ea0482018-02-22 15:45:35 +000016695<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00261">261</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010016696
Jenkinsc3f34a42018-03-02 12:38:09 +000016697<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00062">sabs_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00082">sqadd_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00161">sqmul_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00032">sqshl_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00119">sqsub_qs8()</a>, and <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016698<div class="fragment"><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;{</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// Constants</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> const_one = (1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> ln2 = ((0x58 &gt;&gt; (6 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> inv_ln2 = (((0x38 &gt;&gt; (6 - fixed_point_position)) + 1) &gt;&gt; 1) | const_one;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = ((0x7F &gt;&gt; (6 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = ((0x3F &gt;&gt; (6 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> C = ((0x16 &gt;&gt; (6 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> D = ((0x05 &gt;&gt; (6 - fixed_point_position)) + 1) &gt;&gt; 1;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// Polynomial expansion</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dec_a = (<a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, inv_ln2, fixed_point_position) &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a> = <a class="code" href="namespacearm__compute.xhtml#a43315c66c4d00207f70143233b189085">sabs_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#ae74bbb6e25cc1b774428722b2faad00c">sqsub_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(ln2, <a class="code" href="namespacearm__compute.xhtml#a203882febb616f5468d1b63b60ffb331">sqshl_qs8</a>(dec_a, fixed_point_position), fixed_point_position)));</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(alpha, D, fixed_point_position), C);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(alpha, sum, fixed_point_position), B);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(alpha, sum, fixed_point_position), A);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(alpha, sum, fixed_point_position);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(sum, const_one);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> (dec_a &lt; 0) ? (sum &gt;&gt; -dec_a) : <a class="code" href="namespacearm__compute.xhtml#a203882febb616f5468d1b63b60ffb331">sqshl_qs8</a>(sum, dec_a);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016699<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016700<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
16701<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016702<div class="ttc" id="namespacearm__compute_xhtml_a203882febb616f5468d1b63b60ffb331"><div class="ttname"><a href="namespacearm__compute.xhtml#a203882febb616f5468d1b63b60ffb331">arm_compute::sqshl_qs8</a></div><div class="ttdeci">qint8_t sqshl_qs8(qint8_t a, int shift)</div><div class="ttdoc">8 bit fixed point scalar saturating shift left </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00032">FixedPoint.inl:32</a></div></div>
16703<div class="ttc" id="namespacearm__compute_xhtml_ae74bbb6e25cc1b774428722b2faad00c"><div class="ttname"><a href="namespacearm__compute.xhtml#ae74bbb6e25cc1b774428722b2faad00c">arm_compute::sqsub_qs8</a></div><div class="ttdeci">qint8_t sqsub_qs8(qint8_t a, qint8_t b)</div><div class="ttdoc">8 bit fixed point scalar saturating subtraction </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00119">FixedPoint.inl:119</a></div></div>
16704<div class="ttc" id="namespacearm__compute_xhtml_af0b73b0c4980a551d7cd4edec43ffd92"><div class="ttname"><a href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">arm_compute::sqmul_qs8</a></div><div class="ttdeci">qint8_t sqmul_qs8(qint8_t a, qint8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point scalar saturating multiply </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00161">FixedPoint.inl:161</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016705<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016706<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016707<div class="ttc" id="namespacearm__compute_xhtml_a43315c66c4d00207f70143233b189085"><div class="ttname"><a href="namespacearm__compute.xhtml#a43315c66c4d00207f70143233b189085">arm_compute::sabs_qs8</a></div><div class="ttdeci">qint8_t sabs_qs8(qint8_t a)</div><div class="ttdoc">8 bit fixed point scalar absolute value </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00062">FixedPoint.inl:62</a></div></div>
16708<div class="ttc" id="namespacearm__compute_xhtml_a532d90e007d0cb6f3d43107229c40c32"><div class="ttname"><a href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">arm_compute::sqadd_qs8</a></div><div class="ttdeci">qint8_t sqadd_qs8(qint8_t a, qint8_t b)</div><div class="ttdoc">8 bit fixed point scalar saturating add </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00082">FixedPoint.inl:82</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016709</div><!-- fragment -->
16710</div>
16711</div>
16712<a class="anchor" id="ad555b251940cba2ca1c6eb168f0bbea4"></a>
16713<div class="memitem">
16714<div class="memproto">
16715<table class="mlabels">
16716 <tr>
16717 <td class="mlabels-left">
16718 <table class="memname">
16719 <tr>
16720 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqmovn_qs16 </td>
16721 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016722 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016723 <td class="paramname"><em>a</em></td><td>)</td>
16724 <td></td>
16725 </tr>
16726 </table>
16727 </td>
16728 <td class="mlabels-right">
16729<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16730 </tr>
16731</table>
16732</div><div class="memdoc">
16733
16734<p>Scalar saturating move and narrow. </p>
16735<dl class="params"><dt>Parameters</dt><dd>
16736 <table class="params">
16737 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert to 8 bit fixed point</td></tr>
16738 </table>
16739 </dd>
16740</dl>
16741<dl class="section return"><dt>Returns</dt><dd>The narrowing conversion to 8 bit </dd></dl>
16742
Anthony Barbier06ea0482018-02-22 15:45:35 +000016743<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00395">395</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016744
Jenkinsc3f34a42018-03-02 12:38:09 +000016745<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
16746<div class="fragment"><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;{</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint8_t</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016747<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
16748<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016749</div><!-- fragment -->
16750</div>
16751</div>
16752<a class="anchor" id="a4a4859f4f212d3824e70a36aed901b5b"></a>
16753<div class="memitem">
16754<div class="memproto">
16755<table class="mlabels">
16756 <tr>
16757 <td class="mlabels-left">
16758 <table class="memname">
16759 <tr>
16760 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqmovn_qs32 </td>
16761 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016762 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016763 <td class="paramname"><em>a</em></td><td>)</td>
16764 <td></td>
16765 </tr>
16766 </table>
16767 </td>
16768 <td class="mlabels-right">
16769<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16770 </tr>
16771</table>
16772</div><div class="memdoc">
16773
16774<p>Scalar saturating move and narrow. </p>
16775<dl class="params"><dt>Parameters</dt><dd>
16776 <table class="params">
16777 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert to 16 bit fixed point</td></tr>
16778 </table>
16779 </dd>
16780</dl>
16781<dl class="section return"><dt>Returns</dt><dd>The narrowing conversion to 16 bit </dd></dl>
16782
Anthony Barbier06ea0482018-02-22 15:45:35 +000016783<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00401">401</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016784
Jenkinsc3f34a42018-03-02 12:38:09 +000016785<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
16786<div class="fragment"><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;{</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint16_t</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016787<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
16788<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016789</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010016790</div>
16791</div>
16792<a class="anchor" id="a55c8a365b4242664f8c0f19e91bcee92"></a>
16793<div class="memitem">
16794<div class="memproto">
16795<table class="mlabels">
16796 <tr>
16797 <td class="mlabels-left">
16798 <table class="memname">
16799 <tr>
16800 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqmul_qs16 </td>
16801 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016802 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016803 <td class="paramname"><em>a</em>, </td>
16804 </tr>
16805 <tr>
16806 <td class="paramkey"></td>
16807 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016808 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016809 <td class="paramname"><em>b</em>, </td>
16810 </tr>
16811 <tr>
16812 <td class="paramkey"></td>
16813 <td></td>
16814 <td class="paramtype">int&#160;</td>
16815 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16816 </tr>
16817 <tr>
16818 <td></td>
16819 <td>)</td>
16820 <td></td><td></td>
16821 </tr>
16822 </table>
16823 </td>
16824 <td class="mlabels-right">
16825<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16826 </tr>
16827</table>
16828</div><div class="memdoc">
16829
16830<p>16 bit fixed point scalar saturating multiply </p>
16831<dl class="params"><dt>Parameters</dt><dd>
16832 <table class="params">
16833 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
16834 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input </td></tr>
16835 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16836 </table>
16837 </dd>
16838</dl>
16839<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point multiplication. The result is saturated in case of overflow </dd></dl>
16840
Anthony Barbier06ea0482018-02-22 15:45:35 +000016841<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00173">173</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010016842
Jenkinsc3f34a42018-03-02 12:38:09 +000016843<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016844
Anthony Barbier06ea0482018-02-22 15:45:35 +000016845<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00340">slog_qs16()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00284">sqexp_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000016846<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> round_up_const = (1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) * static_cast&lt;qint32_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// Rounding up</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; tmp += round_up_const;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&gt;(tmp &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016847<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016848<div class="ttc" id="namespacearm__compute_xhtml_aa06c95f9976f3729316d689b4419089f"><div class="ttname"><a href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">arm_compute::qint32_t</a></div><div class="ttdeci">int32_t qint32_t</div><div class="ttdoc">32 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00031">FixedPoint.h:31</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016849<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016850<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016851</div><!-- fragment -->
16852</div>
16853</div>
16854<a class="anchor" id="af0b73b0c4980a551d7cd4edec43ffd92"></a>
16855<div class="memitem">
16856<div class="memproto">
16857<table class="mlabels">
16858 <tr>
16859 <td class="mlabels-left">
16860 <table class="memname">
16861 <tr>
16862 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqmul_qs8 </td>
16863 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016864 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016865 <td class="paramname"><em>a</em>, </td>
16866 </tr>
16867 <tr>
16868 <td class="paramkey"></td>
16869 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016870 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016871 <td class="paramname"><em>b</em>, </td>
16872 </tr>
16873 <tr>
16874 <td class="paramkey"></td>
16875 <td></td>
16876 <td class="paramtype">int&#160;</td>
16877 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16878 </tr>
16879 <tr>
16880 <td></td>
16881 <td>)</td>
16882 <td></td><td></td>
16883 </tr>
16884 </table>
16885 </td>
16886 <td class="mlabels-right">
16887<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16888 </tr>
16889</table>
16890</div><div class="memdoc">
16891
16892<p>8 bit fixed point scalar saturating multiply </p>
16893<dl class="params"><dt>Parameters</dt><dd>
16894 <table class="params">
16895 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
16896 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input </td></tr>
16897 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16898 </table>
16899 </dd>
16900</dl>
16901<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point multiplication. The result is saturated in case of overflow </dd></dl>
16902
Anthony Barbier06ea0482018-02-22 15:45:35 +000016903<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00161">161</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016904
Jenkinsc3f34a42018-03-02 12:38:09 +000016905<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016906
Anthony Barbier06ea0482018-02-22 15:45:35 +000016907<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00307">slog_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00261">sqexp_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000016908<div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;{</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> round_up_const = (1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) * static_cast&lt;qint16_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// Rounding up</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; tmp += round_up_const;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&gt;(tmp &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016909<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016910<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000016911<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016912<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016913</div><!-- fragment -->
16914</div>
16915</div>
16916<a class="anchor" id="a7f9fcf8e60c300e602327f8ff67800cb"></a>
16917<div class="memitem">
16918<div class="memproto">
16919<table class="mlabels">
16920 <tr>
16921 <td class="mlabels-left">
16922 <table class="memname">
16923 <tr>
16924 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> sqmull_qs16 </td>
16925 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016926 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016927 <td class="paramname"><em>a</em>, </td>
16928 </tr>
16929 <tr>
16930 <td class="paramkey"></td>
16931 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016932 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010016933 <td class="paramname"><em>b</em>, </td>
16934 </tr>
16935 <tr>
16936 <td class="paramkey"></td>
16937 <td></td>
16938 <td class="paramtype">int&#160;</td>
16939 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16940 </tr>
16941 <tr>
16942 <td></td>
16943 <td>)</td>
16944 <td></td><td></td>
16945 </tr>
16946 </table>
16947 </td>
16948 <td class="mlabels-right">
16949<span class="mlabels"><span class="mlabel">inline</span></span> </td>
16950 </tr>
16951</table>
16952</div><div class="memdoc">
16953
16954<p>16 bit fixed point scalar multiply long </p>
16955<dl class="params"><dt>Parameters</dt><dd>
16956 <table class="params">
16957 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
16958 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input </td></tr>
16959 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
16960 </table>
16961 </dd>
16962</dl>
16963<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point multiplication long. The result is saturated in case of overflow </dd></dl>
16964
Anthony Barbier06ea0482018-02-22 15:45:35 +000016965<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00197">197</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016966
Jenkinsc3f34a42018-03-02 12:38:09 +000016967<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>.</p>
16968<div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> round_up_const = (1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) * static_cast&lt;qint32_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// Rounding up</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; tmp += round_up_const;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> tmp &gt;&gt; fixed_point_position;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010016969<div class="ttc" id="namespacearm__compute_xhtml_aa06c95f9976f3729316d689b4419089f"><div class="ttname"><a href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">arm_compute::qint32_t</a></div><div class="ttdeci">int32_t qint32_t</div><div class="ttdoc">32 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00031">FixedPoint.h:31</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000016970<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016971</div><!-- fragment -->
16972</div>
16973</div>
16974<a class="anchor" id="a0721e062e6d7a90f07fd08aeda5e7eda"></a>
16975<div class="memitem">
16976<div class="memproto">
16977<table class="mlabels">
16978 <tr>
16979 <td class="mlabels-left">
16980 <table class="memname">
16981 <tr>
16982 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqmull_qs8 </td>
16983 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016984 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016985 <td class="paramname"><em>a</em>, </td>
16986 </tr>
16987 <tr>
16988 <td class="paramkey"></td>
16989 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000016990 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010016991 <td class="paramname"><em>b</em>, </td>
16992 </tr>
16993 <tr>
16994 <td class="paramkey"></td>
16995 <td></td>
16996 <td class="paramtype">int&#160;</td>
16997 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
16998 </tr>
16999 <tr>
17000 <td></td>
17001 <td>)</td>
17002 <td></td><td></td>
17003 </tr>
17004 </table>
17005 </td>
17006 <td class="mlabels-right">
17007<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17008 </tr>
17009</table>
17010</div><div class="memdoc">
17011
17012<p>8 bit fixed point scalar multiply long </p>
17013<dl class="params"><dt>Parameters</dt><dd>
17014 <table class="params">
17015 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
17016 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input </td></tr>
17017 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
17018 </table>
17019 </dd>
17020</dl>
17021<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point multiplication long. The result is saturated in case of overflow </dd></dl>
17022
Anthony Barbier06ea0482018-02-22 15:45:35 +000017023<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00185">185</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017024
Jenkinsc3f34a42018-03-02 12:38:09 +000017025<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>.</p>
17026<div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> round_up_const = (1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) * static_cast&lt;qint16_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// Rounding up</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; tmp += round_up_const;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> tmp &gt;&gt; fixed_point_position;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017027<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000017028<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017029</div><!-- fragment -->
17030</div>
17031</div>
17032<a class="anchor" id="a383b9d12f86c35ceed6dd5922439aa4c"></a>
17033<div class="memitem">
17034<div class="memproto">
17035<table class="mlabels">
17036 <tr>
17037 <td class="mlabels-left">
17038 <table class="memname">
17039 <tr>
17040 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqshl_qs16 </td>
17041 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017042 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017043 <td class="paramname"><em>a</em>, </td>
17044 </tr>
17045 <tr>
17046 <td class="paramkey"></td>
17047 <td></td>
17048 <td class="paramtype">int&#160;</td>
17049 <td class="paramname"><em>shift</em>&#160;</td>
17050 </tr>
17051 <tr>
17052 <td></td>
17053 <td>)</td>
17054 <td></td><td></td>
17055 </tr>
17056 </table>
17057 </td>
17058 <td class="mlabels-right">
17059<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17060 </tr>
17061</table>
17062</div><div class="memdoc">
17063
17064<p>16 bit fixed point scalar saturating shift left </p>
17065<dl class="params"><dt>Parameters</dt><dd>
17066 <table class="params">
17067 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
17068 <tr><td class="paramdir">[in]</td><td class="paramname">shift</td><td>Shift amount (positive only values)</td></tr>
17069 </table>
17070 </dd>
17071</dl>
17072<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point shift. The result is saturated in case of overflow </dd></dl>
17073
Anthony Barbier06ea0482018-02-22 15:45:35 +000017074<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00040">40</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010017075
Jenkinsc3f34a42018-03-02 12:38:09 +000017076<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017077
Anthony Barbier06ea0482018-02-22 15:45:35 +000017078<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00284">sqexp_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000017079<div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) &lt;&lt; shift;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint16_t</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&gt;(tmp);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017080<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017081<div class="ttc" id="namespacearm__compute_xhtml_aa06c95f9976f3729316d689b4419089f"><div class="ttname"><a href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">arm_compute::qint32_t</a></div><div class="ttdeci">int32_t qint32_t</div><div class="ttdoc">32 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00031">FixedPoint.h:31</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017082<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017083</div><!-- fragment -->
17084</div>
17085</div>
17086<a class="anchor" id="a203882febb616f5468d1b63b60ffb331"></a>
17087<div class="memitem">
17088<div class="memproto">
17089<table class="mlabels">
17090 <tr>
17091 <td class="mlabels-left">
17092 <table class="memname">
17093 <tr>
17094 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqshl_qs8 </td>
17095 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017096 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017097 <td class="paramname"><em>a</em>, </td>
17098 </tr>
17099 <tr>
17100 <td class="paramkey"></td>
17101 <td></td>
17102 <td class="paramtype">int&#160;</td>
17103 <td class="paramname"><em>shift</em>&#160;</td>
17104 </tr>
17105 <tr>
17106 <td></td>
17107 <td>)</td>
17108 <td></td><td></td>
17109 </tr>
17110 </table>
17111 </td>
17112 <td class="mlabels-right">
17113<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17114 </tr>
17115</table>
17116</div><div class="memdoc">
17117
17118<p>8 bit fixed point scalar saturating shift left </p>
17119<dl class="params"><dt>Parameters</dt><dd>
17120 <table class="params">
17121 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
Kaizen8938bd32017-09-28 14:38:23 +010017122 <tr><td class="paramdir">[in]</td><td class="paramname">shift</td><td>Shift amount (positive only values)</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017123 </table>
17124 </dd>
17125</dl>
17126<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point shift. The result is saturated in case of overflow </dd></dl>
17127
Anthony Barbier06ea0482018-02-22 15:45:35 +000017128<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00032">32</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017129
Jenkinsc3f34a42018-03-02 12:38:09 +000017130<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017131
Anthony Barbier06ea0482018-02-22 15:45:35 +000017132<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00261">sqexp_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000017133<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) &lt;&lt; shift;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint8_t</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&gt;(tmp);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017134<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017135<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017136<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017137</div><!-- fragment -->
17138</div>
17139</div>
17140<a class="anchor" id="a217e5c603560d6f73971983c6d1572a1"></a>
17141<div class="memitem">
17142<div class="memproto">
17143<table class="mlabels">
17144 <tr>
17145 <td class="mlabels-left">
17146 <table class="memname">
17147 <tr>
17148 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqsub_qs16 </td>
17149 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017150 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017151 <td class="paramname"><em>a</em>, </td>
17152 </tr>
17153 <tr>
17154 <td class="paramkey"></td>
17155 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017156 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017157 <td class="paramname"><em>b</em>&#160;</td>
17158 </tr>
17159 <tr>
17160 <td></td>
17161 <td>)</td>
17162 <td></td><td></td>
17163 </tr>
17164 </table>
17165 </td>
17166 <td class="mlabels-right">
17167<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17168 </tr>
17169</table>
17170</div><div class="memdoc">
17171
17172<p>16 bit fixed point scalar saturating subtraction </p>
17173<dl class="params"><dt>Parameters</dt><dd>
17174 <table class="params">
17175 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
17176 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input</td></tr>
17177 </table>
17178 </dd>
17179</dl>
17180<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point subtraction. The result is saturated in case of overflow </dd></dl>
17181
Anthony Barbier06ea0482018-02-22 15:45:35 +000017182<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00128">128</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010017183
Jenkinsc3f34a42018-03-02 12:38:09 +000017184<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017185
Anthony Barbier06ea0482018-02-22 15:45:35 +000017186<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00284">sqexp_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000017187<div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// We need to store the temporary result in qint32_t otherwise we cannot evaluate the overflow</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) - static_cast&lt;qint32_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint16_t</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&gt;(tmp);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017188<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017189<div class="ttc" id="namespacearm__compute_xhtml_aa06c95f9976f3729316d689b4419089f"><div class="ttname"><a href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">arm_compute::qint32_t</a></div><div class="ttdeci">int32_t qint32_t</div><div class="ttdoc">32 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00031">FixedPoint.h:31</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017190<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000017191<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017192</div><!-- fragment -->
17193</div>
17194</div>
17195<a class="anchor" id="ae74bbb6e25cc1b774428722b2faad00c"></a>
17196<div class="memitem">
17197<div class="memproto">
17198<table class="mlabels">
17199 <tr>
17200 <td class="mlabels-left">
17201 <table class="memname">
17202 <tr>
17203 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqsub_qs8 </td>
17204 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017205 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017206 <td class="paramname"><em>a</em>, </td>
17207 </tr>
17208 <tr>
17209 <td class="paramkey"></td>
17210 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017211 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017212 <td class="paramname"><em>b</em>&#160;</td>
17213 </tr>
17214 <tr>
17215 <td></td>
17216 <td>)</td>
17217 <td></td><td></td>
17218 </tr>
17219 </table>
17220 </td>
17221 <td class="mlabels-right">
17222<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17223 </tr>
17224</table>
17225</div><div class="memdoc">
17226
17227<p>8 bit fixed point scalar saturating subtraction </p>
17228<dl class="params"><dt>Parameters</dt><dd>
17229 <table class="params">
17230 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
17231 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input</td></tr>
17232 </table>
17233 </dd>
17234</dl>
17235<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point subtraction. The result is saturated in case of overflow </dd></dl>
17236
Anthony Barbier06ea0482018-02-22 15:45:35 +000017237<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00119">119</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017238
Jenkinsc3f34a42018-03-02 12:38:09 +000017239<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">arm_compute::test::validation::a</a>, and <a class="el" href="utility_8h_source.xhtml#l00140">arm_compute::utility::saturate_cast()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017240
Anthony Barbier06ea0482018-02-22 15:45:35 +000017241<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00261">sqexp_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000017242<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// We need to store the temporary result in uint16_t otherwise we cannot evaluate the overflow</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> tmp = <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) - static_cast&lt;qint16_t&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint8_t</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">utility::saturate_cast</a>&lt;<a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&gt;(tmp);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017243<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a26bf8243169fc3fd2299024c25b0aa0d"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a26bf8243169fc3fd2299024c25b0aa0d">arm_compute::utility::saturate_cast</a></div><div class="ttdeci">T saturate_cast(U val)</div><div class="ttdoc">Type cast with saturation. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00140">utility.h:140</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017244<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017245<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000017246<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017247</div><!-- fragment -->
17248</div>
17249</div>
17250<a class="anchor" id="a1dfcf4fd912cbd9853c0f7ddfcf3a163"></a>
17251<div class="memitem">
17252<div class="memproto">
17253<table class="mlabels">
17254 <tr>
17255 <td class="mlabels-left">
17256 <table class="memname">
17257 <tr>
17258 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sshr_qs16 </td>
17259 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017260 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017261 <td class="paramname"><em>a</em>, </td>
17262 </tr>
17263 <tr>
17264 <td class="paramkey"></td>
17265 <td></td>
17266 <td class="paramtype">int&#160;</td>
17267 <td class="paramname"><em>shift</em>&#160;</td>
17268 </tr>
17269 <tr>
17270 <td></td>
17271 <td>)</td>
17272 <td></td><td></td>
17273 </tr>
17274 </table>
17275 </td>
17276 <td class="mlabels-right">
17277<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17278 </tr>
17279</table>
17280</div><div class="memdoc">
17281
17282<p>16 bit fixed point scalar shift right </p>
17283<dl class="params"><dt>Parameters</dt><dd>
17284 <table class="params">
17285 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
17286 <tr><td class="paramdir">[in]</td><td class="paramname">shift</td><td>Shift amount (positive only values)</td></tr>
17287 </table>
17288 </dd>
17289</dl>
17290<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point shift </dd></dl>
17291
Anthony Barbier06ea0482018-02-22 15:45:35 +000017292<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00055">55</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010017293
Anthony Barbier06ea0482018-02-22 15:45:35 +000017294<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00297">ARM_COMPUTE_ERROR_ON_MSG</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00091">sqadd_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000017295<div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(shift == 0, <span class="stringliteral">&quot;Shift should not be zero&quot;</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> round_val = 1 &lt;&lt; (shift - 1);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">sqadd_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, round_val) &gt;&gt; shift;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017296<div class="ttc" id="namespacearm__compute_xhtml_a1521eea74b97de8f2df9304e44179400"><div class="ttname"><a href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">arm_compute::qint16_t</a></div><div class="ttdeci">int16_t qint16_t</div><div class="ttdoc">16 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00030">FixedPoint.h:30</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017297<div class="ttc" id="namespacearm__compute_xhtml_a45669fcc0f31fce521179510e85dcb62"><div class="ttname"><a href="namespacearm__compute.xhtml#a45669fcc0f31fce521179510e85dcb62">arm_compute::sqadd_qs16</a></div><div class="ttdeci">qint16_t sqadd_qs16(qint16_t a, qint16_t b)</div><div class="ttdoc">16 bit fixed point scalar saturating add </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00091">FixedPoint.inl:91</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017298<div class="ttc" id="core_2_error_8h_xhtml_a5bbdcf574d3f5e412fa6a1117911e67b"><div class="ttname"><a href="core_2_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond,...)</div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00297">Error.h:297</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017299</div><!-- fragment -->
17300</div>
17301</div>
17302<a class="anchor" id="a3e4f9ff20167e78399975ec02c009c95"></a>
17303<div class="memitem">
17304<div class="memproto">
17305<table class="mlabels">
17306 <tr>
17307 <td class="mlabels-left">
17308 <table class="memname">
17309 <tr>
17310 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sshr_qs8 </td>
17311 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017312 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017313 <td class="paramname"><em>a</em>, </td>
17314 </tr>
17315 <tr>
17316 <td class="paramkey"></td>
17317 <td></td>
17318 <td class="paramtype">int&#160;</td>
17319 <td class="paramname"><em>shift</em>&#160;</td>
17320 </tr>
17321 <tr>
17322 <td></td>
17323 <td>)</td>
17324 <td></td><td></td>
17325 </tr>
17326 </table>
17327 </td>
17328 <td class="mlabels-right">
17329<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17330 </tr>
17331</table>
17332</div><div class="memdoc">
17333
17334<p>8 bit fixed point scalar shift right </p>
17335<dl class="params"><dt>Parameters</dt><dd>
17336 <table class="params">
17337 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
17338 <tr><td class="paramdir">[in]</td><td class="paramname">shift</td><td>Shift amount (positive only values)</td></tr>
17339 </table>
17340 </dd>
17341</dl>
17342<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point shift </dd></dl>
17343
Anthony Barbier06ea0482018-02-22 15:45:35 +000017344<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00048">48</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010017345
Anthony Barbier06ea0482018-02-22 15:45:35 +000017346<p>References <a class="el" href="core_2_error_8h_source.xhtml#l00297">ARM_COMPUTE_ERROR_ON_MSG</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00082">sqadd_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000017347<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="core_2_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(shift == 0, <span class="stringliteral">&quot;Shift should not be zero&quot;</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> round_val = 1 &lt;&lt; (shift - 1);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, round_val) &gt;&gt; shift;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017348<div class="ttc" id="namespacearm__compute_xhtml_a4c3f681c30c9398c45bc3cd5dc4f038a"><div class="ttname"><a href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">arm_compute::qint8_t</a></div><div class="ttdeci">int8_t qint8_t</div><div class="ttdoc">8 bit fixed point scalar value </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_fixed_point_8h_source.xhtml#l00029">FixedPoint.h:29</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017349<div class="ttc" id="core_2_error_8h_xhtml_a5bbdcf574d3f5e412fa6a1117911e67b"><div class="ttname"><a href="core_2_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond,...)</div><div class="ttdef"><b>Definition:</b> <a href="core_2_error_8h_source.xhtml#l00297">Error.h:297</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017350<div class="ttc" id="namespacearm__compute_xhtml_a532d90e007d0cb6f3d43107229c40c32"><div class="ttname"><a href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">arm_compute::sqadd_qs8</a></div><div class="ttdeci">qint8_t sqadd_qs8(qint8_t a, qint8_t b)</div><div class="ttdoc">8 bit fixed point scalar saturating add </div><div class="ttdef"><b>Definition:</b> <a href="_fixed_point_8inl_source.xhtml#l00082">FixedPoint.inl:82</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017351</div><!-- fragment -->
17352</div>
17353</div>
17354<a class="anchor" id="a70476eda2d46c943d572362fe2fc9d14"></a>
17355<div class="memitem">
17356<div class="memproto">
17357<table class="mlabels">
17358 <tr>
17359 <td class="mlabels-left">
17360 <table class="memname">
17361 <tr>
17362 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> ssub_qs16 </td>
17363 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017364 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017365 <td class="paramname"><em>a</em>, </td>
17366 </tr>
17367 <tr>
17368 <td class="paramkey"></td>
17369 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017370 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017371 <td class="paramname"><em>b</em>&#160;</td>
17372 </tr>
17373 <tr>
17374 <td></td>
17375 <td>)</td>
17376 <td></td><td></td>
17377 </tr>
17378 </table>
17379 </td>
17380 <td class="mlabels-right">
17381<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17382 </tr>
17383</table>
17384</div><div class="memdoc">
17385
17386<p>16 bit fixed point scalar subtraction </p>
17387<dl class="params"><dt>Parameters</dt><dd>
17388 <table class="params">
17389 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
17390 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input</td></tr>
17391 </table>
17392 </dd>
17393</dl>
17394<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point subtraction </dd></dl>
17395
Anthony Barbier06ea0482018-02-22 15:45:35 +000017396<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00114">114</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010017397
Jenkinsc3f34a42018-03-02 12:38:09 +000017398<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">arm_compute::test::validation::b</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017399
Anthony Barbier06ea0482018-02-22 15:45:35 +000017400<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00229">sinvsqrt_qs16()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00340">slog_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000017401<div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> - <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
17402<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017403</div><!-- fragment -->
17404</div>
17405</div>
17406<a class="anchor" id="ab97841950d268532e51f28a208ddafd4"></a>
17407<div class="memitem">
17408<div class="memproto">
17409<table class="mlabels">
17410 <tr>
17411 <td class="mlabels-left">
17412 <table class="memname">
17413 <tr>
17414 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> ssub_qs8 </td>
17415 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017416 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017417 <td class="paramname"><em>a</em>, </td>
17418 </tr>
17419 <tr>
17420 <td class="paramkey"></td>
17421 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017422 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017423 <td class="paramname"><em>b</em>&#160;</td>
17424 </tr>
17425 <tr>
17426 <td></td>
17427 <td>)</td>
17428 <td></td><td></td>
17429 </tr>
17430 </table>
17431 </td>
17432 <td class="mlabels-right">
17433<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17434 </tr>
17435</table>
17436</div><div class="memdoc">
17437
17438<p>8 bit fixed point scalar subtraction </p>
17439<dl class="params"><dt>Parameters</dt><dd>
17440 <table class="params">
17441 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
17442 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input</td></tr>
17443 </table>
17444 </dd>
17445</dl>
17446<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point subtraction </dd></dl>
17447
Anthony Barbier06ea0482018-02-22 15:45:35 +000017448<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00109">109</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017449
Jenkinsc3f34a42018-03-02 12:38:09 +000017450<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">arm_compute::test::validation::b</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017451
Anthony Barbier06ea0482018-02-22 15:45:35 +000017452<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00209">sinvsqrt_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00307">slog_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000017453<div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> - <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
17454<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017455</div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000017456</div>
17457</div>
17458<a class="anchor" id="ac955c978e18cc9bf6daea31f13076fba"></a>
17459<div class="memitem">
17460<div class="memproto">
17461 <table class="memname">
17462 <tr>
17463 <td class="memname">const std::string&amp; arm_compute::string_from_activation_func </td>
17464 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017465 <td class="paramtype"><a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9ea">ActivationLayerInfo::ActivationFunction</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000017466 <td class="paramname"><em>act</em></td><td>)</td>
17467 <td></td>
17468 </tr>
17469 </table>
17470</div><div class="memdoc">
17471
17472<p>Translates a given activation function to a string. </p>
17473<dl class="params"><dt>Parameters</dt><dd>
17474 <table class="params">
17475 <tr><td class="paramdir">[in]</td><td class="paramname">act</td><td><a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9ea">ActivationLayerInfo::ActivationFunction</a> to be translated to string.</td></tr>
17476 </table>
17477 </dd>
17478</dl>
17479<dl class="section return"><dt>Returns</dt><dd>The string describing the activation function. </dd></dl>
17480
Anthony Barbier06ea0482018-02-22 15:45:35 +000017481<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017482
Anthony Barbier871448e2017-03-24 14:54:29 +000017483</div>
17484</div>
17485<a class="anchor" id="abd15add5c6c7de5c8205ce236875aadd"></a>
17486<div class="memitem">
17487<div class="memproto">
17488 <table class="memname">
17489 <tr>
17490 <td class="memname">const std::string&amp; arm_compute::string_from_border_mode </td>
17491 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017492 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000017493 <td class="paramname"><em>border_mode</em></td><td>)</td>
17494 <td></td>
17495 </tr>
17496 </table>
17497</div><div class="memdoc">
17498
17499<p>Translates a given border mode policy to a string. </p>
17500<dl class="params"><dt>Parameters</dt><dd>
17501 <table class="params">
17502 <tr><td class="paramdir">[in]</td><td class="paramname">border_mode</td><td><a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> to be translated to string.</td></tr>
17503 </table>
17504 </dd>
17505</dl>
17506<dl class="section return"><dt>Returns</dt><dd>The string describing the border mode. </dd></dl>
17507
Anthony Barbier06ea0482018-02-22 15:45:35 +000017508<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017509
Anthony Barbier871448e2017-03-24 14:54:29 +000017510</div>
17511</div>
17512<a class="anchor" id="a106c203dd6af234d38452ea0ee7b2ddc"></a>
17513<div class="memitem">
17514<div class="memproto">
17515 <table class="memname">
17516 <tr>
17517 <td class="memname">const std::string&amp; arm_compute::string_from_channel </td>
17518 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017519 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000017520 <td class="paramname"><em>channel</em></td><td>)</td>
17521 <td></td>
17522 </tr>
17523 </table>
17524</div><div class="memdoc">
17525
17526<p>Convert a channel identity into a string. </p>
17527<dl class="params"><dt>Parameters</dt><dd>
17528 <table class="params">
17529 <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> to be translated to string.</td></tr>
17530 </table>
17531 </dd>
17532</dl>
17533<dl class="section return"><dt>Returns</dt><dd>The string describing the channel. </dd></dl>
17534
Anthony Barbier06ea0482018-02-22 15:45:35 +000017535<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017536
Anthony Barbier871448e2017-03-24 14:54:29 +000017537</div>
17538</div>
17539<a class="anchor" id="aefa1d9648995e5eccc693c690e27aa88"></a>
17540<div class="memitem">
17541<div class="memproto">
17542 <table class="memname">
17543 <tr>
17544 <td class="memname">const std::string&amp; arm_compute::string_from_data_type </td>
17545 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017546 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000017547 <td class="paramname"><em>dt</em></td><td>)</td>
17548 <td></td>
17549 </tr>
17550 </table>
17551</div><div class="memdoc">
17552
17553<p>Convert a data type identity into a string. </p>
17554<dl class="params"><dt>Parameters</dt><dd>
17555 <table class="params">
17556 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> to be translated to string.</td></tr>
17557 </table>
17558 </dd>
17559</dl>
17560<dl class="section return"><dt>Returns</dt><dd>The string describing the data type. </dd></dl>
17561
Anthony Barbier06ea0482018-02-22 15:45:35 +000017562<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>, <a class="el" href="_validate_8h_source.xhtml#l00620">error_on_data_type_not_in()</a>, and <a class="el" href="_validate_8h_source.xhtml#l00897">error_on_value_not_representable_in_fixed_point()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000017563
17564</div>
17565</div>
17566<a class="anchor" id="a9c92c867fc64454545668d87b20979eb"></a>
17567<div class="memitem">
17568<div class="memproto">
17569 <table class="memname">
17570 <tr>
17571 <td class="memname">const std::string&amp; arm_compute::string_from_format </td>
17572 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017573 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000017574 <td class="paramname"><em>format</em></td><td>)</td>
17575 <td></td>
17576 </tr>
17577 </table>
17578</div><div class="memdoc">
17579
17580<p>Convert a tensor format into a string. </p>
17581<dl class="params"><dt>Parameters</dt><dd>
17582 <table class="params">
17583 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> to be translated to string.</td></tr>
17584 </table>
17585 </dd>
17586</dl>
17587<dl class="section return"><dt>Returns</dt><dd>The string describing the format. </dd></dl>
17588
Anthony Barbier06ea0482018-02-22 15:45:35 +000017589<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>, and <a class="el" href="_validate_8h_source.xhtml#l00587">error_on_format_not_in()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000017590
17591</div>
17592</div>
17593<a class="anchor" id="ade34f5e72f050fd3665f3294dfb15850"></a>
17594<div class="memitem">
17595<div class="memproto">
17596 <table class="memname">
17597 <tr>
17598 <td class="memname">const std::string&amp; arm_compute::string_from_interpolation_policy </td>
17599 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017600 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000017601 <td class="paramname"><em>policy</em></td><td>)</td>
17602 <td></td>
17603 </tr>
17604 </table>
17605</div><div class="memdoc">
17606
17607<p>Translates a given interpolation policy to a string. </p>
17608<dl class="params"><dt>Parameters</dt><dd>
17609 <table class="params">
17610 <tr><td class="paramdir">[in]</td><td class="paramname">policy</td><td><a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> to be translated to string.</td></tr>
17611 </table>
17612 </dd>
17613</dl>
17614<dl class="section return"><dt>Returns</dt><dd>The string describing the interpolation policy. </dd></dl>
17615
Anthony Barbier06ea0482018-02-22 15:45:35 +000017616<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017617
Anthony Barbier871448e2017-03-24 14:54:29 +000017618</div>
17619</div>
17620<a class="anchor" id="a018795ab2489d17309e158ff5c060ab1"></a>
17621<div class="memitem">
17622<div class="memproto">
17623 <table class="memname">
17624 <tr>
17625 <td class="memname">const std::string&amp; arm_compute::string_from_matrix_pattern </td>
17626 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017627 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000017628 <td class="paramname"><em>pattern</em></td><td>)</td>
17629 <td></td>
17630 </tr>
17631 </table>
17632</div><div class="memdoc">
17633
17634<p>Convert a matrix pattern into a string. </p>
17635<dl class="params"><dt>Parameters</dt><dd>
17636 <table class="params">
17637 <tr><td class="paramdir">[in]</td><td class="paramname">pattern</td><td><a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a> to be translated to string.</td></tr>
17638 </table>
17639 </dd>
17640</dl>
17641<dl class="section return"><dt>Returns</dt><dd>The string describing the matrix pattern. </dd></dl>
17642
Anthony Barbier06ea0482018-02-22 15:45:35 +000017643<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017644
Anthony Barbier871448e2017-03-24 14:54:29 +000017645</div>
17646</div>
17647<a class="anchor" id="a14831547f57ecf5f0deef888ad41ad30"></a>
17648<div class="memitem">
17649<div class="memproto">
17650 <table class="memname">
17651 <tr>
17652 <td class="memname">const std::string&amp; arm_compute::string_from_non_linear_filter_function </td>
17653 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017654 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000017655 <td class="paramname"><em>function</em></td><td>)</td>
17656 <td></td>
17657 </tr>
17658 </table>
17659</div><div class="memdoc">
17660
17661<p>Translates a given non linear function to a string. </p>
17662<dl class="params"><dt>Parameters</dt><dd>
17663 <table class="params">
17664 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td><a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> to be translated to string.</td></tr>
17665 </table>
17666 </dd>
17667</dl>
17668<dl class="section return"><dt>Returns</dt><dd>The string describing the non linear function. </dd></dl>
17669
Anthony Barbier06ea0482018-02-22 15:45:35 +000017670<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017671
Anthony Barbierdbdab852017-06-23 15:42:00 +010017672</div>
17673</div>
17674<a class="anchor" id="afb5698af5404d5d11e3516c87b6e7041"></a>
17675<div class="memitem">
17676<div class="memproto">
17677 <table class="memname">
17678 <tr>
17679 <td class="memname">const std::string&amp; arm_compute::string_from_norm_type </td>
17680 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017681 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017682 <td class="paramname"><em>type</em></td><td>)</td>
17683 <td></td>
17684 </tr>
17685 </table>
17686</div><div class="memdoc">
17687
17688<p>Translates a given normalization type to a string. </p>
17689<dl class="params"><dt>Parameters</dt><dd>
17690 <table class="params">
17691 <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td><a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a> to be translated to string.</td></tr>
17692 </table>
17693 </dd>
17694</dl>
17695<dl class="section return"><dt>Returns</dt><dd>The string describing the normalization type. </dd></dl>
17696
Anthony Barbier06ea0482018-02-22 15:45:35 +000017697<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017698
Kaizen8938bd32017-09-28 14:38:23 +010017699</div>
17700</div>
17701<a class="anchor" id="a84a03e85d2c40bf54ec8cdd5e3715c58"></a>
17702<div class="memitem">
17703<div class="memproto">
17704 <table class="memname">
17705 <tr>
17706 <td class="memname">const std::string&amp; arm_compute::string_from_pooling_type </td>
17707 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017708 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017709 <td class="paramname"><em>type</em></td><td>)</td>
17710 <td></td>
17711 </tr>
17712 </table>
17713</div><div class="memdoc">
17714
17715<p>Translates a given pooling type to a string. </p>
17716<dl class="params"><dt>Parameters</dt><dd>
17717 <table class="params">
17718 <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td><a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a> to be translated to string.</td></tr>
17719 </table>
17720 </dd>
17721</dl>
17722<dl class="section return"><dt>Returns</dt><dd>The string describing the pooling type. </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017723
Anthony Barbier06ea0482018-02-22 15:45:35 +000017724<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00784">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017725
Anthony Barbierdbdab852017-06-23 15:42:00 +010017726</div>
17727</div>
17728<a class="anchor" id="aa5191117dc677a74552769b87131b1b6"></a>
17729<div class="memitem">
17730<div class="memproto">
17731 <table class="memname">
17732 <tr>
17733 <td class="memname">const std::string&amp; arm_compute::string_from_scheduler_type </td>
17734 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017735 <td class="paramtype"><a class="el" href="classarm__compute_1_1_scheduler.xhtml#a1d1cfd8ffb84e947f82999c682b666a7">Scheduler::Type</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017736 <td class="paramname"><em>t</em></td><td>)</td>
17737 <td></td>
17738 </tr>
17739 </table>
17740</div><div class="memdoc">
17741
17742<p>Convert a <a class="el" href="classarm__compute_1_1_scheduler.xhtml#a1d1cfd8ffb84e947f82999c682b666a7">Scheduler::Type</a> into a string. </p>
17743<dl class="params"><dt>Parameters</dt><dd>
17744 <table class="params">
17745 <tr><td class="paramdir">[in]</td><td class="paramname">t</td><td><a class="el" href="classarm__compute_1_1_scheduler.xhtml#a1d1cfd8ffb84e947f82999c682b666a7">Scheduler::Type</a> to be translated to string.</td></tr>
17746 </table>
17747 </dd>
17748</dl>
17749<dl class="section return"><dt>Returns</dt><dd>The string describing the scheduler type. </dd></dl>
17750
17751</div>
17752</div>
17753<a class="anchor" id="afab814721e78cbfc34e7e7fe2874fa56"></a>
17754<div class="memitem">
17755<div class="memproto">
17756 <table class="memname">
17757 <tr>
17758 <td class="memname">const std::string&amp; arm_compute::string_from_target </td>
17759 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017760 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010017761 <td class="paramname"><em>target</em></td><td>)</td>
17762 <td></td>
17763 </tr>
17764 </table>
17765</div><div class="memdoc">
17766
17767<p>Translates a given gpu device target to string. </p>
17768<dl class="params"><dt>Parameters</dt><dd>
17769 <table class="params">
17770 <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>Given gpu target.</td></tr>
17771 </table>
17772 </dd>
17773</dl>
17774<dl class="section return"><dt>Returns</dt><dd>The string describing the target. </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000017775
17776</div>
17777</div>
Kaizen8938bd32017-09-28 14:38:23 +010017778<a class="anchor" id="aabe16be22edb41656e66ed9eae3b69e6"></a>
17779<div class="memitem">
17780<div class="memproto">
17781<table class="mlabels">
17782 <tr>
17783 <td class="mlabels-left">
17784 <table class="memname">
17785 <tr>
17786 <td class="memname">std::string arm_compute::to_string </td>
17787 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017788 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017789 <td class="paramname"><em>function</em></td><td>)</td>
17790 <td></td>
17791 </tr>
17792 </table>
17793 </td>
17794 <td class="mlabels-right">
17795<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17796 </tr>
17797</table>
17798</div><div class="memdoc">
17799
Anthony Barbier06ea0482018-02-22 15:45:35 +000017800<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00082">82</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010017801
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017802<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
17803
Anthony Barbierf45d5a92018-01-24 16:23:15 +000017804<p>Referenced by <a class="el" href="_u_n_i_t_2_fixed_point_8cpp_source.xhtml#l00067">arm_compute::test::validation::DATA_TEST_CASE()</a>, and <a class="el" href="main_8cpp_source.xhtml#l00063">main()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017805<div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; str &lt;&lt; <span class="keyword">function</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017806</div><!-- fragment -->
17807</div>
17808</div>
17809<a class="anchor" id="a27f0ebddef1b83e0ac31c7a7a23a8d36"></a>
17810<div class="memitem">
17811<div class="memproto">
17812<table class="mlabels">
17813 <tr>
17814 <td class="mlabels-left">
17815 <table class="memname">
17816 <tr>
17817 <td class="memname">std::string arm_compute::to_string </td>
17818 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017819 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010017820 <td class="paramname"><em>pattern</em></td><td>)</td>
17821 <td></td>
17822 </tr>
17823 </table>
17824 </td>
17825 <td class="mlabels-right">
17826<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17827 </tr>
17828</table>
17829</div><div class="memdoc">
17830
Anthony Barbier06ea0482018-02-22 15:45:35 +000017831<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00113">113</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017832
17833<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017834<div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; str &lt;&lt; pattern;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017835</div><!-- fragment -->
17836</div>
17837</div>
17838<a class="anchor" id="ad9fd48b3c01116b217a684aaeaf8b24f"></a>
17839<div class="memitem">
17840<div class="memproto">
17841<table class="mlabels">
17842 <tr>
17843 <td class="mlabels-left">
17844 <table class="memname">
17845 <tr>
17846 <td class="memname">std::string arm_compute::to_string </td>
17847 <td>(</td>
17848 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> &amp;&#160;</td>
17849 <td class="paramname"><em>quantization_info</em></td><td>)</td>
17850 <td></td>
17851 </tr>
17852 </table>
17853 </td>
17854 <td class="mlabels-right">
17855<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17856 </tr>
17857</table>
17858</div><div class="memdoc">
17859
Anthony Barbier06ea0482018-02-22 15:45:35 +000017860<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00165">165</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017861
17862<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017863<div class="fragment"><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; str &lt;&lt; quantization_info;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010017864</div><!-- fragment -->
17865</div>
17866</div>
17867<a class="anchor" id="a3d4684c886b4d13ce004cd6d7fcea9b1"></a>
17868<div class="memitem">
17869<div class="memproto">
17870<table class="mlabels">
17871 <tr>
17872 <td class="mlabels-left">
17873 <table class="memname">
17874 <tr>
17875 <td class="memname">std::string arm_compute::to_string </td>
17876 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017877 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a> &amp;&#160;</td>
Kaizenbf8b01d2017-10-12 14:26:51 +010017878 <td class="paramname"><em>op</em></td><td>)</td>
17879 <td></td>
17880 </tr>
17881 </table>
17882 </td>
17883 <td class="mlabels-right">
17884<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17885 </tr>
17886</table>
17887</div><div class="memdoc">
17888
Anthony Barbier06ea0482018-02-22 15:45:35 +000017889<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00204">204</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017890
17891<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017892<div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;{</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; str &lt;&lt; op;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017893</div><!-- fragment -->
17894</div>
17895</div>
17896<a class="anchor" id="a72626d2cca3922127c41526e37e9e623"></a>
17897<div class="memitem">
17898<div class="memproto">
17899<table class="mlabels">
17900 <tr>
17901 <td class="mlabels-left">
17902 <table class="memname">
17903 <tr>
17904 <td class="memname">std::string arm_compute::to_string </td>
17905 <td>(</td>
17906 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml">arm_compute::ActivationLayerInfo</a> &amp;&#160;</td>
17907 <td class="paramname"><em>info</em></td><td>)</td>
17908 <td></td>
17909 </tr>
17910 </table>
17911 </td>
17912 <td class="mlabels-right">
17913<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17914 </tr>
17915</table>
17916</div><div class="memdoc">
17917
Anthony Barbier06ea0482018-02-22 15:45:35 +000017918<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00256">256</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010017919
Anthony Barbier06ea0482018-02-22 15:45:35 +000017920<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00732">ActivationLayerInfo::activation()</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
17921<div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;{</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; str &lt;&lt; info.<a class="code" href="classarm__compute_1_1_activation_layer_info.xhtml#a63e05ce4946dd9807c005c1619fa337a">activation</a>();</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_activation_layer_info_xhtml_a63e05ce4946dd9807c005c1619fa337a"><div class="ttname"><a href="classarm__compute_1_1_activation_layer_info.xhtml#a63e05ce4946dd9807c005c1619fa337a">arm_compute::ActivationLayerInfo::activation</a></div><div class="ttdeci">ActivationFunction activation() const </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00732">Types.h:732</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017922<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017923</div><!-- fragment -->
17924</div>
17925</div>
17926<a class="anchor" id="a8a18c453150ab547c1add44b3ed3bc56"></a>
17927<div class="memitem">
17928<div class="memproto">
17929<table class="mlabels">
17930 <tr>
17931 <td class="mlabels-left">
17932 <table class="memname">
17933 <tr>
17934 <td class="memname">std::string arm_compute::to_string </td>
17935 <td>(</td>
17936 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9ea">arm_compute::ActivationLayerInfo::ActivationFunction</a> &amp;&#160;</td>
17937 <td class="paramname"><em>function</em></td><td>)</td>
17938 <td></td>
17939 </tr>
17940 </table>
17941 </td>
17942 <td class="mlabels-right">
17943<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17944 </tr>
17945</table>
17946</div><div class="memdoc">
17947
Anthony Barbier06ea0482018-02-22 15:45:35 +000017948<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00263">263</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017949
17950<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000017951<div class="fragment"><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; str &lt;&lt; <span class="keyword">function</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010017952</div><!-- fragment -->
17953</div>
17954</div>
17955<a class="anchor" id="a45dd771bdecbafb975fd267c2ae320a7"></a>
17956<div class="memitem">
17957<div class="memproto">
17958<table class="mlabels">
17959 <tr>
17960 <td class="mlabels-left">
17961 <table class="memname">
17962 <tr>
17963 <td class="memname">std::string arm_compute::to_string </td>
17964 <td>(</td>
17965 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_normalization_layer_info.xhtml">arm_compute::NormalizationLayerInfo</a> &amp;&#160;</td>
17966 <td class="paramname"><em>info</em></td><td>)</td>
17967 <td></td>
17968 </tr>
17969 </table>
17970 </td>
17971 <td class="mlabels-right">
17972<span class="mlabels"><span class="mlabel">inline</span></span> </td>
17973 </tr>
17974</table>
17975</div><div class="memdoc">
17976
Anthony Barbier06ea0482018-02-22 15:45:35 +000017977<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00291">291</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010017978
Anthony Barbier06ea0482018-02-22 15:45:35 +000017979<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00778">NormalizationLayerInfo::norm_size()</a>, <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00774">NormalizationLayerInfo::type()</a>.</p>
17980<div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; str &lt;&lt; info.<a class="code" href="classarm__compute_1_1_normalization_layer_info.xhtml#a39f6445d0b790034f0d8fac36f2eb7f5">type</a>() &lt;&lt; <span class="stringliteral">&quot;:NormSize=&quot;</span> &lt;&lt; info.<a class="code" href="classarm__compute_1_1_normalization_layer_info.xhtml#a0549be3702c05e6ec1ada69a6d08e349">norm_size</a>();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_normalization_layer_info_xhtml_a39f6445d0b790034f0d8fac36f2eb7f5"><div class="ttname"><a href="classarm__compute_1_1_normalization_layer_info.xhtml#a39f6445d0b790034f0d8fac36f2eb7f5">arm_compute::NormalizationLayerInfo::type</a></div><div class="ttdeci">NormType type() const </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00774">Types.h:774</a></div></div>
17981<div class="ttc" id="classarm__compute_1_1_normalization_layer_info_xhtml_a0549be3702c05e6ec1ada69a6d08e349"><div class="ttname"><a href="classarm__compute_1_1_normalization_layer_info.xhtml#a0549be3702c05e6ec1ada69a6d08e349">arm_compute::NormalizationLayerInfo::norm_size</a></div><div class="ttdeci">uint32_t norm_size() const </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00778">Types.h:778</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000017982<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
17983</div><!-- fragment -->
17984</div>
17985</div>
17986<a class="anchor" id="a25dac68b6321b9e53027e79222a0eb7f"></a>
17987<div class="memitem">
17988<div class="memproto">
17989<table class="mlabels">
17990 <tr>
17991 <td class="mlabels-left">
17992 <table class="memname">
17993 <tr>
17994 <td class="memname">std::string arm_compute::to_string </td>
17995 <td>(</td>
17996 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a> &amp;&#160;</td>
17997 <td class="paramname"><em>rounding_policy</em></td><td>)</td>
17998 <td></td>
17999 </tr>
18000 </table>
18001 </td>
18002 <td class="mlabels-right">
18003<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18004 </tr>
18005</table>
18006</div><div class="memdoc">
18007
Anthony Barbier06ea0482018-02-22 15:45:35 +000018008<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00334">334</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018009
18010<p>References <a class="el" href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00176">arm_compute::test::validation::rounding_policy</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018011<div class="fragment"><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;{</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; str &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a60ad1078faeaf3f59266d69ad937339f">rounding_policy</a>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018012<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a60ad1078faeaf3f59266d69ad937339f"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a60ad1078faeaf3f59266d69ad937339f">arm_compute::test::validation::rounding_policy</a></div><div class="ttdeci">rounding_policy</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00176">PixelWiseMultiplication.cpp:176</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018013</div><!-- fragment -->
18014</div>
18015</div>
18016<a class="anchor" id="a96b47511b549b48d2ead05b5c757ccc9"></a>
18017<div class="memitem">
18018<div class="memproto">
18019<table class="mlabels">
18020 <tr>
18021 <td class="mlabels-left">
18022 <table class="memname">
18023 <tr>
18024 <td class="memname">std::string arm_compute::to_string </td>
18025 <td>(</td>
18026 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">arm_compute::DataType</a> &amp;&#160;</td>
18027 <td class="paramname"><em>data_type</em></td><td>)</td>
18028 <td></td>
18029 </tr>
18030 </table>
18031 </td>
18032 <td class="mlabels-right">
18033<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18034 </tr>
18035</table>
18036</div><div class="memdoc">
18037
Anthony Barbier06ea0482018-02-22 15:45:35 +000018038<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00401">401</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010018039
Jenkinsc3f34a42018-03-02 12:38:09 +000018040<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">arm_compute::test::validation::data_type</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
18041<div class="fragment"><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;{</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; str &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018042<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018043</div><!-- fragment -->
18044</div>
18045</div>
18046<a class="anchor" id="ab0e6381843dc9901bb59285ec846dc5d"></a>
18047<div class="memitem">
18048<div class="memproto">
18049<table class="mlabels">
18050 <tr>
18051 <td class="mlabels-left">
18052 <table class="memname">
18053 <tr>
18054 <td class="memname">std::string arm_compute::to_string </td>
18055 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018056 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018057 <td class="paramname"><em>format</em></td><td>)</td>
18058 <td></td>
18059 </tr>
18060 </table>
18061 </td>
18062 <td class="mlabels-right">
18063<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18064 </tr>
18065</table>
18066</div><div class="memdoc">
18067
Anthony Barbier06ea0482018-02-22 15:45:35 +000018068<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00471">471</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018069
18070<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018071<div class="fragment"><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;{</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; str &lt;&lt; format;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
18072</div><!-- fragment -->
18073</div>
18074</div>
18075<a class="anchor" id="a813e71cd70c2bbcbf0743fa83a3608b9"></a>
18076<div class="memitem">
18077<div class="memproto">
18078<table class="mlabels">
18079 <tr>
18080 <td class="mlabels-left">
18081 <table class="memname">
18082 <tr>
18083 <td class="memname">std::string arm_compute::to_string </td>
18084 <td>(</td>
18085 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> &amp;&#160;</td>
18086 <td class="paramname"><em>channel</em></td><td>)</td>
18087 <td></td>
18088 </tr>
18089 </table>
18090 </td>
18091 <td class="mlabels-right">
18092<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18093 </tr>
18094</table>
18095</div><div class="memdoc">
18096
18097<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00526">526</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
18098
18099<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
18100<div class="fragment"><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;{</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; str &lt;&lt; channel;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018101</div><!-- fragment -->
18102</div>
18103</div>
18104<a class="anchor" id="a48fd5e28bdb4975c141841f0b96f8707"></a>
18105<div class="memitem">
18106<div class="memproto">
18107<table class="mlabels">
18108 <tr>
18109 <td class="mlabels-left">
18110 <table class="memname">
18111 <tr>
18112 <td class="memname">std::string arm_compute::to_string </td>
18113 <td>(</td>
18114 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a> &amp;&#160;</td>
18115 <td class="paramname"><em>info</em></td><td>)</td>
18116 <td></td>
18117 </tr>
18118 </table>
18119 </td>
18120 <td class="mlabels-right">
18121<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18122 </tr>
18123</table>
18124</div><div class="memdoc">
18125
18126<p>Formatted output of the <a class="el" href="classarm__compute_1_1_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">TensorInfo</a> type. </p>
18127
Anthony Barbier06ea0482018-02-22 15:45:35 +000018128<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00605">605</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018129
18130<p>References <a class="el" href="_tensor_info_8h_source.xhtml#l00259">TensorInfo::data_type()</a>, <a class="el" href="_tensor_info_8h_source.xhtml#l00239">TensorInfo::fixed_point_position()</a>, <a class="el" href="_tensor_info_8h_source.xhtml#l00251">TensorInfo::num_channels()</a>, <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="_tensor_info_8h_source.xhtml#l00255">TensorInfo::tensor_shape()</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018131<div class="fragment"><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;{</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; str &lt;&lt; <span class="stringliteral">&quot;{Shape=&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.tensor_shape() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Type=&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.data_type() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Channels=&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.num_channels() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; &lt;&lt; <span class="stringliteral">&quot;FixedPointPos=&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.fixed_point_position() &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018132<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018133</div><!-- fragment -->
18134</div>
18135</div>
18136<a class="anchor" id="aa32488ee1dd78e0464ed23e8cc2b6e49"></a>
18137<div class="memitem">
18138<div class="memproto">
18139<table class="mlabels">
18140 <tr>
18141 <td class="mlabels-left">
18142 <table class="memname">
18143 <tr>
18144 <td class="memname">std::string arm_compute::to_string </td>
18145 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018146 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018147 <td class="paramname"><em>dimensions</em></td><td>)</td>
18148 <td></td>
18149 </tr>
18150 </table>
18151 </td>
18152 <td class="mlabels-right">
18153<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18154 </tr>
18155</table>
18156</div><div class="memdoc">
18157
Anthony Barbier06ea0482018-02-22 15:45:35 +000018158<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00616">616</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018159
18160<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018161<div class="fragment"><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;{</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; str &lt;&lt; dimensions;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010018162</div><!-- fragment -->
18163</div>
18164</div>
18165<a class="anchor" id="a1c4486f45128be7156e38e6dea345a16"></a>
18166<div class="memitem">
18167<div class="memproto">
18168<table class="mlabels">
18169 <tr>
18170 <td class="mlabels-left">
18171 <table class="memname">
18172 <tr>
18173 <td class="memname">std::string arm_compute::to_string </td>
18174 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018175 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a> &amp;&#160;</td>
Kaizenbf8b01d2017-10-12 14:26:51 +010018176 <td class="paramname"><em>stride</em></td><td>)</td>
18177 <td></td>
18178 </tr>
18179 </table>
18180 </td>
18181 <td class="mlabels-right">
18182<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18183 </tr>
18184</table>
18185</div><div class="memdoc">
18186
Anthony Barbier06ea0482018-02-22 15:45:35 +000018187<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00623">623</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018188
18189<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018190<div class="fragment"><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;{</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; str &lt;&lt; stride;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018191</div><!-- fragment -->
18192</div>
18193</div>
18194<a class="anchor" id="a9d9b56d1b106b79fc5c5411372222d0f"></a>
18195<div class="memitem">
18196<div class="memproto">
18197<table class="mlabels">
18198 <tr>
18199 <td class="mlabels-left">
18200 <table class="memname">
18201 <tr>
18202 <td class="memname">std::string arm_compute::to_string </td>
18203 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018204 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018205 <td class="paramname"><em>shape</em></td><td>)</td>
18206 <td></td>
18207 </tr>
18208 </table>
18209 </td>
18210 <td class="mlabels-right">
18211<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18212 </tr>
18213</table>
18214</div><div class="memdoc">
18215
18216<p>Formatted output of the <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml" title="Shape of a tensor. ">TensorShape</a> type. </p>
18217
Anthony Barbier06ea0482018-02-22 15:45:35 +000018218<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00631">631</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010018219
Anthony Barbier06ea0482018-02-22 15:45:35 +000018220<p>References <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00133">arm_compute::test::validation::shape</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
18221<div class="fragment"><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;{</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; str &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018222<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018223</div><!-- fragment -->
18224</div>
18225</div>
Kaizenbf8b01d2017-10-12 14:26:51 +010018226<a class="anchor" id="a805a74997e303d29108845956a674387"></a>
18227<div class="memitem">
18228<div class="memproto">
18229<table class="mlabels">
18230 <tr>
18231 <td class="mlabels-left">
18232 <table class="memname">
18233 <tr>
18234 <td class="memname">std::string arm_compute::to_string </td>
18235 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018236 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;&#160;</td>
Kaizenbf8b01d2017-10-12 14:26:51 +010018237 <td class="paramname"><em>coord</em></td><td>)</td>
18238 <td></td>
18239 </tr>
18240 </table>
18241 </td>
18242 <td class="mlabels-right">
18243<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18244 </tr>
18245</table>
18246</div><div class="memdoc">
18247
18248<p>Formatted output of the <a class="el" href="classarm__compute_1_1_coordinates.xhtml" title="Coordinates of an item. ">Coordinates</a> type. </p>
18249
Anthony Barbier06ea0482018-02-22 15:45:35 +000018250<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00639">639</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018251
18252<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018253<div class="fragment"><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;{</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; str &lt;&lt; coord;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010018254</div><!-- fragment -->
18255</div>
18256</div>
Kaizen8938bd32017-09-28 14:38:23 +010018257<a class="anchor" id="a2c0e6c1c4cf10da25e7a7362ba151ba2"></a>
18258<div class="memitem">
18259<div class="memproto">
18260<table class="mlabels">
18261 <tr>
18262 <td class="mlabels-left">
18263 <table class="memname">
18264 <tr>
18265 <td class="memname">std::string arm_compute::to_string </td>
18266 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018267 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018268 <td class="paramname"><em>pad_stride_info</em></td><td>)</td>
18269 <td></td>
18270 </tr>
18271 </table>
18272 </td>
18273 <td class="mlabels-right">
18274<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18275 </tr>
18276</table>
18277</div><div class="memdoc">
18278
Anthony Barbier06ea0482018-02-22 15:45:35 +000018279<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00666">666</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018280
18281<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018282<div class="fragment"><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;{</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; str &lt;&lt; pad_stride_info;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018283</div><!-- fragment -->
18284</div>
18285</div>
18286<a class="anchor" id="a0604106dd269acd58152a81ba87cc265"></a>
18287<div class="memitem">
18288<div class="memproto">
18289<table class="mlabels">
18290 <tr>
18291 <td class="mlabels-left">
18292 <table class="memname">
18293 <tr>
18294 <td class="memname">std::string arm_compute::to_string </td>
18295 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018296 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018297 <td class="paramname"><em>mode</em></td><td>)</td>
18298 <td></td>
18299 </tr>
18300 </table>
18301 </td>
18302 <td class="mlabels-right">
18303<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18304 </tr>
18305</table>
18306</div><div class="memdoc">
18307
Anthony Barbier06ea0482018-02-22 15:45:35 +000018308<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00673">673</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018309
18310<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018311<div class="fragment"><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;{</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; str &lt;&lt; mode;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010018312</div><!-- fragment -->
18313</div>
18314</div>
18315<a class="anchor" id="a5c9cde9144eaeceaf086377b9bc5a5be"></a>
18316<div class="memitem">
18317<div class="memproto">
18318<table class="mlabels">
18319 <tr>
18320 <td class="mlabels-left">
18321 <table class="memname">
18322 <tr>
18323 <td class="memname">std::string arm_compute::to_string </td>
18324 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018325 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> &amp;&#160;</td>
Kaizenbf8b01d2017-10-12 14:26:51 +010018326 <td class="paramname"><em>border</em></td><td>)</td>
18327 <td></td>
18328 </tr>
18329 </table>
18330 </td>
18331 <td class="mlabels-right">
18332<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18333 </tr>
18334</table>
18335</div><div class="memdoc">
18336
Anthony Barbier06ea0482018-02-22 15:45:35 +000018337<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00680">680</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018338
18339<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018340<div class="fragment"><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;{</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; str &lt;&lt; border;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018341</div><!-- fragment -->
18342</div>
18343</div>
18344<a class="anchor" id="a94bd78942b683c05cba85048537d3ee7"></a>
18345<div class="memitem">
18346<div class="memproto">
18347<table class="mlabels">
18348 <tr>
18349 <td class="mlabels-left">
18350 <table class="memname">
18351 <tr>
18352 <td class="memname">std::string arm_compute::to_string </td>
18353 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018354 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018355 <td class="paramname"><em>policy</em></td><td>)</td>
18356 <td></td>
18357 </tr>
18358 </table>
18359 </td>
18360 <td class="mlabels-right">
18361<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18362 </tr>
18363</table>
18364</div><div class="memdoc">
18365
Anthony Barbier06ea0482018-02-22 15:45:35 +000018366<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00687">687</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018367
18368<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018369<div class="fragment"><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;{</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; str &lt;&lt; policy;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018370</div><!-- fragment -->
18371</div>
18372</div>
18373<a class="anchor" id="a5b8e815072ae54278cb1c91e254be4d3"></a>
18374<div class="memitem">
18375<div class="memproto">
18376<table class="mlabels">
18377 <tr>
18378 <td class="mlabels-left">
18379 <table class="memname">
18380 <tr>
18381 <td class="memname">std::string arm_compute::to_string </td>
18382 <td>(</td>
18383 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a16a59381d4d74d17d86d69eb4d286d7b">SamplingPolicy</a> &amp;&#160;</td>
18384 <td class="paramname"><em>policy</em></td><td>)</td>
18385 <td></td>
18386 </tr>
18387 </table>
18388 </td>
18389 <td class="mlabels-right">
18390<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18391 </tr>
18392</table>
18393</div><div class="memdoc">
18394
Anthony Barbier06ea0482018-02-22 15:45:35 +000018395<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00694">694</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018396
18397<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018398<div class="fragment"><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;{</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; str &lt;&lt; policy;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018399</div><!-- fragment -->
18400</div>
18401</div>
18402<a class="anchor" id="adcc7e107e7dbd2ffac02189089c33e4f"></a>
18403<div class="memitem">
18404<div class="memproto">
18405<table class="mlabels">
18406 <tr>
18407 <td class="mlabels-left">
18408 <table class="memname">
18409 <tr>
18410 <td class="memname">std::string arm_compute::to_string </td>
18411 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018412 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018413 <td class="paramname"><em>policy</em></td><td>)</td>
18414 <td></td>
18415 </tr>
18416 </table>
18417 </td>
18418 <td class="mlabels-right">
18419<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18420 </tr>
18421</table>
18422</div><div class="memdoc">
18423
Anthony Barbier06ea0482018-02-22 15:45:35 +000018424<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00719">719</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018425
18426<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018427<div class="fragment"><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;{</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; str &lt;&lt; policy;</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018428</div><!-- fragment -->
18429</div>
18430</div>
18431<a class="anchor" id="aae534105c7ea67999ccbb34a0ed567cd"></a>
18432<div class="memitem">
18433<div class="memproto">
18434<table class="mlabels">
18435 <tr>
18436 <td class="mlabels-left">
18437 <table class="memname">
18438 <tr>
18439 <td class="memname">std::string arm_compute::to_string </td>
18440 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018441 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a5827eb9cb394e74af87f74bd354fb45b">ReductionOperation</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018442 <td class="paramname"><em>op</em></td><td>)</td>
18443 <td></td>
18444 </tr>
18445 </table>
18446 </td>
18447 <td class="mlabels-right">
18448<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18449 </tr>
18450</table>
18451</div><div class="memdoc">
18452
Anthony Barbier06ea0482018-02-22 15:45:35 +000018453<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00741">741</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018454
18455<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018456<div class="fragment"><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;{</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; str &lt;&lt; op;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018457</div><!-- fragment -->
18458</div>
18459</div>
18460<a class="anchor" id="ad8b676c38d9b8d9d9bde7caec5720bd9"></a>
18461<div class="memitem">
18462<div class="memproto">
18463<table class="mlabels">
18464 <tr>
18465 <td class="mlabels-left">
18466 <table class="memname">
18467 <tr>
18468 <td class="memname">std::string arm_compute::to_string </td>
18469 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018470 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018471 <td class="paramname"><em>type</em></td><td>)</td>
18472 <td></td>
18473 </tr>
18474 </table>
18475 </td>
18476 <td class="mlabels-right">
18477<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18478 </tr>
18479</table>
18480</div><div class="memdoc">
18481
Anthony Barbier06ea0482018-02-22 15:45:35 +000018482<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00748">748</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010018483
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018484<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018485<div class="fragment"><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;{</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; str &lt;&lt; <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018486<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018487</div><!-- fragment -->
18488</div>
18489</div>
18490<a class="anchor" id="a2872d19dd10dc3117813d291c08e0383"></a>
18491<div class="memitem">
18492<div class="memproto">
18493<table class="mlabels">
18494 <tr>
18495 <td class="mlabels-left">
18496 <table class="memname">
18497 <tr>
18498 <td class="memname">std::string arm_compute::to_string </td>
18499 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018500 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018501 <td class="paramname"><em>type</em></td><td>)</td>
18502 <td></td>
18503 </tr>
18504 </table>
18505 </td>
18506 <td class="mlabels-right">
18507<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18508 </tr>
18509</table>
18510</div><div class="memdoc">
18511
Anthony Barbier06ea0482018-02-22 15:45:35 +000018512<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00755">755</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010018513
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018514<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018515<div class="fragment"><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;{</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; str &lt;&lt; <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018516<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018517</div><!-- fragment -->
18518</div>
18519</div>
18520<a class="anchor" id="acef515348c5f7f73c89aa4b8a47a02bc"></a>
18521<div class="memitem">
18522<div class="memproto">
18523<table class="mlabels">
18524 <tr>
18525 <td class="mlabels-left">
18526 <table class="memname">
18527 <tr>
18528 <td class="memname">std::string arm_compute::to_string </td>
18529 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018530 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a> &amp;&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018531 <td class="paramname"><em>info</em></td><td>)</td>
18532 <td></td>
18533 </tr>
18534 </table>
18535 </td>
18536 <td class="mlabels-right">
18537<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18538 </tr>
18539</table>
18540</div><div class="memdoc">
18541
Anthony Barbier06ea0482018-02-22 15:45:35 +000018542<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00762">762</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010018543
Anthony Barbier06ea0482018-02-22 15:45:35 +000018544<p>References <a class="el" href="_size2_d_8h_source.xhtml#l00059">Size2D::height</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00654">PoolingLayerInfo::is_global_pooling()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00646">PoolingLayerInfo::pad_stride_info()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00642">PoolingLayerInfo::pool_size()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00638">PoolingLayerInfo::pool_type()</a>, <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="_size2_d_8h_source.xhtml#l00058">Size2D::width</a>.</p>
18545<div class="fragment"><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;{</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; str &lt;&lt; <span class="stringliteral">&quot;{Type=&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pool_type() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; &lt;&lt; <span class="stringliteral">&quot;IsGlobalPooling=&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.is_global_pooling();</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.is_global_pooling())</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; {</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; str &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; &lt;&lt; <span class="stringliteral">&quot;PoolSize=&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pool_size().width &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pool_size().height &lt;&lt; <span class="stringliteral">&quot;,&quot;</span></div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; &lt;&lt; <span class="stringliteral">&quot;PadStride=&quot;</span> &lt;&lt; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.pad_stride_info();</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; }</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; str &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;}</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() -&gt; set_format(Format::S16)</div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018546<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
18547</div><!-- fragment -->
18548</div>
18549</div>
18550<a class="anchor" id="ae4ead564f3c96ea5f1ec7fe035b941f3"></a>
18551<div class="memitem">
18552<div class="memproto">
18553<table class="mlabels">
18554 <tr>
18555 <td class="mlabels-left">
18556 <table class="memname">
18557 <tr>
18558 <td class="memname">std::string arm_compute::to_string </td>
18559 <td>(</td>
18560 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72">arm_compute::PhaseType</a> &amp;&#160;</td>
18561 <td class="paramname"><em>type</em></td><td>)</td>
18562 <td></td>
18563 </tr>
18564 </table>
18565 </td>
18566 <td class="mlabels-right">
18567<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18568 </tr>
18569</table>
18570</div><div class="memdoc">
18571
Anthony Barbier06ea0482018-02-22 15:45:35 +000018572<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00809">809</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018573
18574<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018575<div class="fragment"><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;{</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; str &lt;&lt; <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018576<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
18577</div><!-- fragment -->
18578</div>
18579</div>
18580<a class="anchor" id="a42e6f8761f01b5846f56c3b8025c8c0a"></a>
18581<div class="memitem">
18582<div class="memproto">
18583<table class="mlabels">
18584 <tr>
18585 <td class="mlabels-left">
18586 <table class="memname">
18587 <tr>
18588 <td class="memname">std::string arm_compute::to_string </td>
18589 <td>(</td>
18590 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8a">arm_compute::MagnitudeType</a> &amp;&#160;</td>
18591 <td class="paramname"><em>type</em></td><td>)</td>
18592 <td></td>
18593 </tr>
18594 </table>
18595 </td>
18596 <td class="mlabels-right">
18597<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18598 </tr>
18599</table>
18600</div><div class="memdoc">
18601
Anthony Barbier06ea0482018-02-22 15:45:35 +000018602<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00834">834</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018603
18604<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018605<div class="fragment"><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;{</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; str &lt;&lt; <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018606<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
18607</div><!-- fragment -->
18608</div>
18609</div>
18610<a class="anchor" id="ab75d8ff29ba9b398d5740b3efd156e71"></a>
18611<div class="memitem">
18612<div class="memproto">
18613<table class="mlabels">
18614 <tr>
18615 <td class="mlabels-left">
18616 <table class="memname">
18617 <tr>
18618 <td class="memname">std::string arm_compute::to_string </td>
18619 <td>(</td>
18620 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ae46abc5ecac309cbece5c06cb80daaf7">arm_compute::GradientDimension</a> &amp;&#160;</td>
18621 <td class="paramname"><em>type</em></td><td>)</td>
18622 <td></td>
18623 </tr>
18624 </table>
18625 </td>
18626 <td class="mlabels-right">
18627<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18628 </tr>
18629</table>
18630</div><div class="memdoc">
18631
Anthony Barbier06ea0482018-02-22 15:45:35 +000018632<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00862">862</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018633
18634<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018635<div class="fragment"><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;{</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; str &lt;&lt; <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000018636<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
18637</div><!-- fragment -->
18638</div>
18639</div>
18640<a class="anchor" id="a950ba288e8136db4bf52f7c51dea20eb"></a>
18641<div class="memitem">
18642<div class="memproto">
18643<table class="mlabels">
18644 <tr>
18645 <td class="mlabels-left">
18646 <table class="memname">
18647 <tr>
18648 <td class="memname">std::string arm_compute::to_string </td>
18649 <td>(</td>
18650 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3">HOGNormType</a> &amp;&#160;</td>
18651 <td class="paramname"><em>type</em></td><td>)</td>
18652 <td></td>
18653 </tr>
18654 </table>
18655 </td>
18656 <td class="mlabels-right">
18657<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18658 </tr>
18659</table>
18660</div><div class="memdoc">
18661
Anthony Barbier06ea0482018-02-22 15:45:35 +000018662<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00890">890</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000018663
18664<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018665<div class="fragment"><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;{</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; str &lt;&lt; <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000018666<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
18667</div><!-- fragment -->
18668</div>
18669</div>
18670<a class="anchor" id="aee88a2c259879eb9dc18cb5965e87c29"></a>
18671<div class="memitem">
18672<div class="memproto">
18673<table class="mlabels">
18674 <tr>
18675 <td class="mlabels-left">
18676 <table class="memname">
18677 <tr>
18678 <td class="memname">std::string arm_compute::to_string </td>
18679 <td>(</td>
18680 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_size2_d.xhtml">Size2D</a> &amp;&#160;</td>
18681 <td class="paramname"><em>type</em></td><td>)</td>
18682 <td></td>
18683 </tr>
18684 </table>
18685 </td>
18686 <td class="mlabels-right">
18687<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18688 </tr>
18689</table>
18690</div><div class="memdoc">
18691
Anthony Barbier06ea0482018-02-22 15:45:35 +000018692<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00905">905</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000018693
18694<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018695<div class="fragment"><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;{</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; str &lt;&lt; <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>;</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000018696<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
18697</div><!-- fragment -->
18698</div>
18699</div>
18700<a class="anchor" id="a3cf43a216912b361eaffc3c71452a31e"></a>
18701<div class="memitem">
18702<div class="memproto">
18703<table class="mlabels">
18704 <tr>
18705 <td class="mlabels-left">
18706 <table class="memname">
18707 <tr>
18708 <td class="memname">std::string arm_compute::to_string </td>
18709 <td>(</td>
18710 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml">HOGInfo</a> &amp;&#160;</td>
18711 <td class="paramname"><em>type</em></td><td>)</td>
18712 <td></td>
18713 </tr>
18714 </table>
18715 </td>
18716 <td class="mlabels-right">
18717<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18718 </tr>
18719</table>
18720</div><div class="memdoc">
18721
18722<p>Formatted output of the <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml" title="Store the HOG&#39;s metadata. ">HOGInfo</a> type. </p>
18723
Anthony Barbier06ea0482018-02-22 15:45:35 +000018724<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00928">928</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
Anthony Barbierf45d5a92018-01-24 16:23:15 +000018725
18726<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>, and <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::type</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018727<div class="fragment"><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;{</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; str &lt;&lt; <a class="code" href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>;</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018728<div class="ttc" id="namespacecaffe__data__extractor_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">caffe_data_extractor.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018729</div><!-- fragment -->
18730</div>
18731</div>
Anthony Barbier06ea0482018-02-22 15:45:35 +000018732<a class="anchor" id="a853d44a32a328fb4455f6200a11c4785"></a>
18733<div class="memitem">
18734<div class="memproto">
18735<table class="mlabels">
18736 <tr>
18737 <td class="mlabels-left">
18738 <table class="memname">
18739 <tr>
18740 <td class="memname">std::string arm_compute::to_string </td>
18741 <td>(</td>
18742 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a683661ae75dcb7aef16b9c9bde31517d">ConvolutionMethod</a> &amp;&#160;</td>
18743 <td class="paramname"><em>conv_method</em></td><td>)</td>
18744 <td></td>
18745 </tr>
18746 </table>
18747 </td>
18748 <td class="mlabels-right">
18749<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18750 </tr>
18751</table>
18752</div><div class="memdoc">
18753
18754<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00955">955</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
18755
18756<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
18757<div class="fragment"><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;{</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; str &lt;&lt; conv_method;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
18758</div><!-- fragment -->
18759</div>
18760</div>
18761<a class="anchor" id="aee29ccfc095313663fc954f581ddf40a"></a>
18762<div class="memitem">
18763<div class="memproto">
18764<table class="mlabels">
18765 <tr>
18766 <td class="mlabels-left">
18767 <table class="memname">
18768 <tr>
18769 <td class="memname">std::string arm_compute::to_string </td>
18770 <td>(</td>
18771 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> &amp;&#160;</td>
18772 <td class="paramname"><em>gpu_target</em></td><td>)</td>
18773 <td></td>
18774 </tr>
18775 </table>
18776 </td>
18777 <td class="mlabels-right">
18778<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18779 </tr>
18780</table>
18781</div><div class="memdoc">
18782
18783<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00994">994</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
18784
18785<p>References <a class="el" href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor::str</a>.</p>
18786<div class="fragment"><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;{</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; std::stringstream <a class="code" href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">str</a>;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; str &lt;&lt; gpu_target;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;}</div><div class="ttc" id="namespacecaffe__data__extractor_xhtml_a4b99ff73a8a869319570237b5c57ab03"><div class="ttname"><a href="namespacecaffe__data__extractor.xhtml#a4b99ff73a8a869319570237b5c57ab03">caffe_data_extractor.str</a></div><div class="ttdeci">str</div><div class="ttdef"><b>Definition:</b> <a href="caffe__data__extractor_8py_source.xhtml#l00019">caffe_data_extractor.py:19</a></div></div>
18787</div><!-- fragment -->
18788</div>
18789</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000018790<a class="anchor" id="ac2a92cae51d2734a65676052adb33c22"></a>
18791<div class="memitem">
18792<div class="memproto">
18793 <table class="memname">
18794 <tr>
18795 <td class="memname">bool arm_compute::update_window_and_padding </td>
18796 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018797 <td class="paramtype"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000018798 <td class="paramname"><em>win</em>, </td>
18799 </tr>
18800 <tr>
18801 <td class="paramkey"></td>
18802 <td></td>
18803 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
18804 <td class="paramname"><em>patterns</em>&#160;</td>
18805 </tr>
18806 <tr>
18807 <td></td>
18808 <td>)</td>
18809 <td></td><td></td>
18810 </tr>
18811 </table>
18812</div><div class="memdoc">
18813
18814<p>Update window and padding size for each of the access patterns. </p>
18815<p>First the window size is reduced based on all access patterns that are not allowed to modify the padding of the underlying tensor. Then the padding of the remaining tensors is increased to match the window.</p>
18816<dl class="params"><dt>Parameters</dt><dd>
18817 <table class="params">
18818 <tr><td class="paramdir">[in]</td><td class="paramname">win</td><td><a class="el" href="classarm__compute_1_1_window.xhtml" title="Describe a multidimensional execution window. ">Window</a> that is used by the kernel. </td></tr>
18819 <tr><td class="paramdir">[in]</td><td class="paramname">patterns</td><td>Access patterns used to calculate the final window and padding.</td></tr>
18820 </table>
18821 </dd>
18822</dl>
18823<dl class="section return"><dt>Returns</dt><dd>True if the window has been changed. Changes to the padding do not influence the returned value. </dd></dl>
18824
Anthony Barbierf45d5a92018-01-24 16:23:15 +000018825<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00341">341</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000018826
Anthony Barbier06ea0482018-02-22 15:45:35 +000018827<p>References <a class="el" href="namespacearm__compute.xhtml#a1c28e5916fd54b778da115bfe646f588">calculate_max_window()</a>, <a class="el" href="utility_8h_source.xhtml#l00091">arm_compute::utility::for_each()</a>, <a class="el" href="classarm__compute_1_1_i_access_window.xhtml#a5a5f3d4d4461121db2e4e3b4d3ee587f">IAccessWindow::update_padding_if_needed()</a>, and <a class="el" href="classarm__compute_1_1_i_access_window.xhtml#a5b6940395e0168f3f00da892ded537aa">IAccessWindow::update_window_if_needed()</a>.</p>
18828<div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;{</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordtype">bool</span> window_changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="namespacearm__compute_1_1utility.xhtml#a067ebd28103d827b6ec17032e2344064">utility::for_each</a>([&amp;](<span class="keyword">const</span> IAccessWindow &amp; w)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; window_changed |= w.update_window_if_needed(win);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; },</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; patterns...);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordtype">bool</span> padding_changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="namespacearm__compute_1_1utility.xhtml#a067ebd28103d827b6ec17032e2344064">utility::for_each</a>([&amp;](IAccessWindow &amp; w)</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; padding_changed |= w.update_padding_if_needed(win);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; },</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; patterns...);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> window_changed;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a067ebd28103d827b6ec17032e2344064"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a067ebd28103d827b6ec17032e2344064">arm_compute::utility::for_each</a></div><div class="ttdeci">void for_each(F &amp;&amp;)</div><div class="ttdoc">Base case of for_each. </div><div class="ttdef"><b>Definition:</b> <a href="utility_8h_source.xhtml#l00091">utility.h:91</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018829</div><!-- fragment -->
18830</div>
18831</div>
18832<a class="anchor" id="a5344249fe56e2a6cf0b7336c069cb846"></a>
18833<div class="memitem">
18834<div class="memproto">
18835<table class="mlabels">
18836 <tr>
18837 <td class="mlabels-left">
18838 <table class="memname">
18839 <tr>
18840 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vabs_qs16 </td>
18841 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018842 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018843 <td class="paramname"><em>a</em></td><td>)</td>
18844 <td></td>
18845 </tr>
18846 </table>
18847 </td>
18848 <td class="mlabels-right">
18849<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18850 </tr>
18851</table>
18852</div><div class="memdoc">
18853
18854<p>Absolute value of 16 bit fixed point vector (4 elements) </p>
18855<dl class="params"><dt>Parameters</dt><dd>
18856 <table class="params">
18857 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector</td></tr>
18858 </table>
18859 </dd>
18860</dl>
18861<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector absolute value </dd></dl>
18862
Kaizenbf8b01d2017-10-12 14:26:51 +010018863<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00289">289</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000018864<div class="fragment"><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;{</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> vabs_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010018865</div><!-- fragment -->
18866</div>
18867</div>
18868<a class="anchor" id="ab62f4e080614df358423180767cffefd"></a>
18869<div class="memitem">
18870<div class="memproto">
18871<table class="mlabels">
18872 <tr>
18873 <td class="mlabels-left">
18874 <table class="memname">
18875 <tr>
18876 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vabs_qs8 </td>
18877 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018878 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010018879 <td class="paramname"><em>a</em></td><td>)</td>
18880 <td></td>
18881 </tr>
18882 </table>
18883 </td>
18884 <td class="mlabels-right">
18885<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18886 </tr>
18887</table>
18888</div><div class="memdoc">
18889
18890<p>Absolute value of 8 bit fixed point vector (8 elements) </p>
18891<dl class="params"><dt>Parameters</dt><dd>
18892 <table class="params">
18893 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
18894 </table>
18895 </dd>
18896</dl>
18897<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector absolute value </dd></dl>
18898
Kaizenbf8b01d2017-10-12 14:26:51 +010018899<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00284">284</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000018900<div class="fragment"><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> vabs_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018901</div><!-- fragment -->
18902</div>
18903</div>
18904<a class="anchor" id="a15cf61eaeb7d9b008f262936f6f4cca8"></a>
18905<div class="memitem">
18906<div class="memproto">
18907<table class="mlabels">
18908 <tr>
18909 <td class="mlabels-left">
18910 <table class="memname">
18911 <tr>
18912 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vabsq_qs16 </td>
18913 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018914 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018915 <td class="paramname"><em>a</em></td><td>)</td>
18916 <td></td>
18917 </tr>
18918 </table>
18919 </td>
18920 <td class="mlabels-right">
18921<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18922 </tr>
18923</table>
18924</div><div class="memdoc">
18925
18926<p>Absolute value of 16 bit fixed point vector (8 elements) </p>
18927<dl class="params"><dt>Parameters</dt><dd>
18928 <table class="params">
18929 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector</td></tr>
18930 </table>
18931 </dd>
18932</dl>
18933<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector absolute value </dd></dl>
18934
Kaizenbf8b01d2017-10-12 14:26:51 +010018935<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00299">299</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000018936<div class="fragment"><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;{</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> vabsq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018937</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010018938</div>
18939</div>
18940<a class="anchor" id="a3e4c45da2bef323158955d7c3b9d148d"></a>
18941<div class="memitem">
18942<div class="memproto">
18943<table class="mlabels">
18944 <tr>
18945 <td class="mlabels-left">
18946 <table class="memname">
18947 <tr>
18948 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vabsq_qs8 </td>
18949 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018950 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010018951 <td class="paramname"><em>a</em></td><td>)</td>
18952 <td></td>
18953 </tr>
18954 </table>
18955 </td>
18956 <td class="mlabels-right">
18957<span class="mlabels"><span class="mlabel">inline</span></span> </td>
18958 </tr>
18959</table>
18960</div><div class="memdoc">
18961
18962<p>Absolute value of 8 bit fixed point vector (16 elements) </p>
18963<dl class="params"><dt>Parameters</dt><dd>
18964 <table class="params">
18965 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
18966 </table>
18967 </dd>
18968</dl>
18969<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector absolute value </dd></dl>
18970
Kaizenbf8b01d2017-10-12 14:26:51 +010018971<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00294">294</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000018972<div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> vabsq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010018973</div><!-- fragment -->
18974</div>
18975</div>
18976<a class="anchor" id="ac28c9ffea6f2c962ec87f69d377faaeb"></a>
18977<div class="memitem">
18978<div class="memproto">
18979<table class="mlabels">
18980 <tr>
18981 <td class="mlabels-left">
18982 <table class="memname">
18983 <tr>
18984 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vadd_qs16 </td>
18985 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018986 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018987 <td class="paramname"><em>a</em>, </td>
18988 </tr>
18989 <tr>
18990 <td class="paramkey"></td>
18991 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000018992 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010018993 <td class="paramname"><em>b</em>&#160;</td>
18994 </tr>
18995 <tr>
18996 <td></td>
18997 <td>)</td>
18998 <td></td><td></td>
18999 </tr>
19000 </table>
19001 </td>
19002 <td class="mlabels-right">
19003<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19004 </tr>
19005</table>
19006</div><div class="memdoc">
19007
19008<p>16 bit fixed point vector add (4 elements) </p>
19009<dl class="params"><dt>Parameters</dt><dd>
19010 <table class="params">
19011 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
19012 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
19013 </table>
19014 </dd>
19015</dl>
19016<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector addition </dd></dl>
19017
Kaizenbf8b01d2017-10-12 14:26:51 +010019018<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00389">389</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019019<div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;{</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> vadd_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
19020<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019021</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010019022</div>
19023</div>
19024<a class="anchor" id="ad91fc981c1b7b04a1975de3aefc6a4f7"></a>
19025<div class="memitem">
19026<div class="memproto">
19027<table class="mlabels">
19028 <tr>
19029 <td class="mlabels-left">
19030 <table class="memname">
19031 <tr>
19032 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vadd_qs8 </td>
19033 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019034 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019035 <td class="paramname"><em>a</em>, </td>
19036 </tr>
19037 <tr>
19038 <td class="paramkey"></td>
19039 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019040 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019041 <td class="paramname"><em>b</em>&#160;</td>
19042 </tr>
19043 <tr>
19044 <td></td>
19045 <td>)</td>
19046 <td></td><td></td>
19047 </tr>
19048 </table>
19049 </td>
19050 <td class="mlabels-right">
19051<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19052 </tr>
19053</table>
19054</div><div class="memdoc">
19055
19056<p>8 bit fixed point vector add (8 elements) </p>
19057<dl class="params"><dt>Parameters</dt><dd>
19058 <table class="params">
19059 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
19060 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
19061 </table>
19062 </dd>
19063</dl>
19064<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector addition </dd></dl>
19065
Kaizenbf8b01d2017-10-12 14:26:51 +010019066<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00384">384</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019067<div class="fragment"><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;{</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> vadd_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
19068<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019069</div><!-- fragment -->
19070</div>
19071</div>
19072<a class="anchor" id="a2a84234e327a554d7ce7f97f269b6efc"></a>
19073<div class="memitem">
19074<div class="memproto">
19075<table class="mlabels">
19076 <tr>
19077 <td class="mlabels-left">
19078 <table class="memname">
19079 <tr>
19080 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vaddq_qs16 </td>
19081 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019082 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019083 <td class="paramname"><em>a</em>, </td>
19084 </tr>
19085 <tr>
19086 <td class="paramkey"></td>
19087 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019088 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019089 <td class="paramname"><em>b</em>&#160;</td>
19090 </tr>
19091 <tr>
19092 <td></td>
19093 <td>)</td>
19094 <td></td><td></td>
19095 </tr>
19096 </table>
19097 </td>
19098 <td class="mlabels-right">
19099<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19100 </tr>
19101</table>
19102</div><div class="memdoc">
19103
19104<p>16 bit fixed point vector add (8 elements) </p>
19105<dl class="params"><dt>Parameters</dt><dd>
19106 <table class="params">
19107 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
19108 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
19109 </table>
19110 </dd>
19111</dl>
19112<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector addition </dd></dl>
19113
Kaizenbf8b01d2017-10-12 14:26:51 +010019114<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00399">399</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019115<div class="fragment"><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;{</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">return</span> vaddq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
19116<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019117</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010019118</div>
19119</div>
19120<a class="anchor" id="a30eeb53208a2f67d4b0cf73a81b09467"></a>
19121<div class="memitem">
19122<div class="memproto">
19123<table class="mlabels">
19124 <tr>
19125 <td class="mlabels-left">
19126 <table class="memname">
19127 <tr>
19128 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vaddq_qs8 </td>
19129 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019130 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019131 <td class="paramname"><em>a</em>, </td>
19132 </tr>
19133 <tr>
19134 <td class="paramkey"></td>
19135 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019136 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019137 <td class="paramname"><em>b</em>&#160;</td>
19138 </tr>
19139 <tr>
19140 <td></td>
19141 <td>)</td>
19142 <td></td><td></td>
19143 </tr>
19144 </table>
19145 </td>
19146 <td class="mlabels-right">
19147<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19148 </tr>
19149</table>
19150</div><div class="memdoc">
19151
19152<p>8 bit fixed point vector add (16 elements) </p>
19153<dl class="params"><dt>Parameters</dt><dd>
19154 <table class="params">
19155 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
19156 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
19157 </table>
19158 </dd>
19159</dl>
19160<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector addition </dd></dl>
19161
Kaizenbf8b01d2017-10-12 14:26:51 +010019162<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00394">394</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019163<div class="fragment"><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;{</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> vaddq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
19164<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019165</div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000019166</div>
19167</div>
Kaizen8938bd32017-09-28 14:38:23 +010019168<a class="anchor" id="a771203a3bf0d0df11dbf90f492525656"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000019169<div class="memitem">
19170<div class="memproto">
Kaizen8938bd32017-09-28 14:38:23 +010019171<table class="mlabels">
19172 <tr>
19173 <td class="mlabels-left">
Anthony Barbier871448e2017-03-24 14:54:29 +000019174 <table class="memname">
19175 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010019176 <td class="memname">float32x4_t vcvt_f32_qs16 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000019177 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019178 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019179 <td class="paramname"><em>a</em>, </td>
19180 </tr>
19181 <tr>
19182 <td class="paramkey"></td>
Anthony Barbier871448e2017-03-24 14:54:29 +000019183 <td></td>
Kaizen8938bd32017-09-28 14:38:23 +010019184 <td class="paramtype">int&#160;</td>
19185 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19186 </tr>
19187 <tr>
19188 <td></td>
19189 <td>)</td>
19190 <td></td><td></td>
Anthony Barbier871448e2017-03-24 14:54:29 +000019191 </tr>
19192 </table>
Kaizen8938bd32017-09-28 14:38:23 +010019193 </td>
19194 <td class="mlabels-right">
19195<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19196 </tr>
19197</table>
Anthony Barbier871448e2017-03-24 14:54:29 +000019198</div><div class="memdoc">
19199
Kaizen8938bd32017-09-28 14:38:23 +010019200<p>Convert a 16 bit fixed point vector with 4 elements to a float vector with 4 elements. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +000019201<dl class="params"><dt>Parameters</dt><dd>
19202 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +010019203 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
19204 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000019205 </table>
19206 </dd>
19207</dl>
Kaizen8938bd32017-09-28 14:38:23 +010019208<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 16 bit fixed point -&gt; float32x2 </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000019209
Kaizenbf8b01d2017-10-12 14:26:51 +010019210<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01003">1003</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019211<div class="fragment"><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;{</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <span class="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(1.0f / (1 &lt;&lt; fixed_point_position));</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keyword">const</span> float32x4_t res_f32 = vcvtq_f32_s32(vmovl_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>));</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keywordflow">return</span> vmulq_f32(res_f32, pow2);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019212</div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000019213</div>
19214</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019215<a class="anchor" id="a14a78befffd5c48b43554fdc28d654ff"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000019216<div class="memitem">
19217<div class="memproto">
19218<table class="mlabels">
19219 <tr>
19220 <td class="mlabels-left">
19221 <table class="memname">
19222 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019223 <td class="memname">float32x4x2_t vcvt_f32_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000019224 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019225 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019226 <td class="paramname"><em>a</em>, </td>
19227 </tr>
19228 <tr>
19229 <td class="paramkey"></td>
19230 <td></td>
19231 <td class="paramtype">int&#160;</td>
19232 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19233 </tr>
19234 <tr>
19235 <td></td>
19236 <td>)</td>
19237 <td></td><td></td>
19238 </tr>
19239 </table>
19240 </td>
19241 <td class="mlabels-right">
19242<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19243 </tr>
19244</table>
19245</div><div class="memdoc">
19246
19247<p>Convert a 8 bit fixed point vector with 8 elements to a float vector with 4x2 elements. </p>
19248<dl class="params"><dt>Parameters</dt><dd>
19249 <table class="params">
19250 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector </td></tr>
19251 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
19252 </table>
19253 </dd>
19254</dl>
19255<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 8 bit fixed point -&gt; float32x2x4 </dd></dl>
19256
Kaizenbf8b01d2017-10-12 14:26:51 +010019257<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00975">975</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010019258
Kaizenbf8b01d2017-10-12 14:26:51 +010019259<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00148">vget_high_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00138">vget_low_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019260<div class="fragment"><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;{</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(1.0f / (1 &lt;&lt; fixed_point_position));</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keyword">const</span> int16x8_t res_s16 = vmovl_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keyword">const</span> int32x4x2_t res_s32 =</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; {</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; vmovl_s16(<a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(res_s16)),</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; vmovl_s16(<a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(res_s16))</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; }</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; };</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; float32x4x2_t res_f32 =</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; {</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; {</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; vcvtq_f32_s32(res_s32.val[0]),</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; vcvtq_f32_s32(res_s32.val[1])</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; }</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; };</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; res_f32.val[0] = vmulq_f32(res_f32.val[0], pow2);</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; res_f32.val[1] = vmulq_f32(res_f32.val[1], pow2);</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keywordflow">return</span> res_f32;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019261<div class="ttc" id="namespacearm__compute_xhtml_ac2edef8bf07bce91b37aa02b952b8ed6"><div class="ttname"><a href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">arm_compute::vget_high_qs16</a></div><div class="ttdeci">qint16x4_t vget_high_qs16(qint16x8_t a)</div><div class="ttdoc">Get the higher half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00148">NEFixedPoint.inl:148</a></div></div>
19262<div class="ttc" id="namespacearm__compute_xhtml_ae895c5b470fcf069afd626bb36c63e3d"><div class="ttname"><a href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">arm_compute::vget_low_qs16</a></div><div class="ttdeci">qint16x4_t vget_low_qs16(qint16x8_t a)</div><div class="ttdoc">Get the lower half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00138">NEFixedPoint.inl:138</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019263</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010019264</div>
19265</div>
Kaizen8938bd32017-09-28 14:38:23 +010019266<a class="anchor" id="a81653ad507d968c3f760564c7949a86e"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019267<div class="memitem">
19268<div class="memproto">
19269<table class="mlabels">
19270 <tr>
19271 <td class="mlabels-left">
19272 <table class="memname">
19273 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010019274 <td class="memname">float32x4x2_t arm_compute::vcvtq_f32_qs16 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019275 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019276 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019277 <td class="paramname"><em>a</em>, </td>
19278 </tr>
19279 <tr>
19280 <td class="paramkey"></td>
19281 <td></td>
19282 <td class="paramtype">int&#160;</td>
19283 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19284 </tr>
19285 <tr>
19286 <td></td>
19287 <td>)</td>
19288 <td></td><td></td>
19289 </tr>
19290 </table>
19291 </td>
19292 <td class="mlabels-right">
19293<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19294 </tr>
19295</table>
19296</div><div class="memdoc">
19297
Kaizenbf8b01d2017-10-12 14:26:51 +010019298<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01051">1051</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019299
Kaizenbf8b01d2017-10-12 14:26:51 +010019300<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00148">vget_high_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00138">vget_low_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019301<div class="fragment"><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;{</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <span class="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(1.0f / (1 &lt;&lt; fixed_point_position));</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keyword">const</span> int32x4x2_t res_s32 =</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; {</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; {</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; vmovl_s16(<a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>)),</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; vmovl_s16(<a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>))</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; }</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; };</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; float32x4x2_t res_f32 =</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; {</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; vcvtq_f32_s32(res_s32.val[0]),</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; vcvtq_f32_s32(res_s32.val[1])</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; }</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; };</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; res_f32.val[0] = vmulq_f32(res_f32.val[0], pow2);</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; res_f32.val[1] = vmulq_f32(res_f32.val[1], pow2);</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">return</span> res_f32;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019302<div class="ttc" id="namespacearm__compute_xhtml_ac2edef8bf07bce91b37aa02b952b8ed6"><div class="ttname"><a href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">arm_compute::vget_high_qs16</a></div><div class="ttdeci">qint16x4_t vget_high_qs16(qint16x8_t a)</div><div class="ttdoc">Get the higher half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00148">NEFixedPoint.inl:148</a></div></div>
19303<div class="ttc" id="namespacearm__compute_xhtml_ae895c5b470fcf069afd626bb36c63e3d"><div class="ttname"><a href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">arm_compute::vget_low_qs16</a></div><div class="ttdeci">qint16x4_t vget_low_qs16(qint16x8_t a)</div><div class="ttdoc">Get the lower half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00138">NEFixedPoint.inl:138</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019304</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010019305</div>
19306</div>
19307<a class="anchor" id="ac18aedae4207e681f6f833281d2395a0"></a>
19308<div class="memitem">
19309<div class="memproto">
19310<table class="mlabels">
19311 <tr>
19312 <td class="mlabels-left">
19313 <table class="memname">
19314 <tr>
19315 <td class="memname">float32x4x4_t arm_compute::vcvtq_f32_qs8 </td>
19316 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019317 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019318 <td class="paramname"><em>a</em>, </td>
19319 </tr>
19320 <tr>
19321 <td class="paramkey"></td>
19322 <td></td>
19323 <td class="paramtype">int&#160;</td>
19324 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19325 </tr>
19326 <tr>
19327 <td></td>
19328 <td>)</td>
19329 <td></td><td></td>
19330 </tr>
19331 </table>
19332 </td>
19333 <td class="mlabels-right">
19334<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19335 </tr>
19336</table>
19337</div><div class="memdoc">
19338
Kaizenbf8b01d2017-10-12 14:26:51 +010019339<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01011">1011</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010019340
Kaizenbf8b01d2017-10-12 14:26:51 +010019341<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00148">vget_high_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00138">vget_low_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019342<div class="fragment"><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;{</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(1.0f / (1 &lt;&lt; fixed_point_position));</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keyword">const</span> int16x8x2_t res_s16 =</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; {</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; vmovl_s8(vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>)),</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; vmovl_s8(vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>)),</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; };</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keyword">const</span> int32x4x4_t res_s32 =</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; {</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; {</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; vmovl_s16(<a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(res_s16.val[0])),</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; vmovl_s16(<a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(res_s16.val[0])),</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; vmovl_s16(<a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(res_s16.val[1])),</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; vmovl_s16(<a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(res_s16.val[1])),</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; }</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; };</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; float32x4x4_t res_f32 =</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; {</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; vcvtq_f32_s32(res_s32.val[0]),</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; vcvtq_f32_s32(res_s32.val[1]),</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; vcvtq_f32_s32(res_s32.val[2]),</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; vcvtq_f32_s32(res_s32.val[3])</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; }</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; };</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; res_f32.val[0] = vmulq_f32(res_f32.val[0], pow2);</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; res_f32.val[1] = vmulq_f32(res_f32.val[1], pow2);</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; res_f32.val[2] = vmulq_f32(res_f32.val[2], pow2);</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; res_f32.val[3] = vmulq_f32(res_f32.val[3], pow2);</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keywordflow">return</span> res_f32;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019343<div class="ttc" id="namespacearm__compute_xhtml_ac2edef8bf07bce91b37aa02b952b8ed6"><div class="ttname"><a href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">arm_compute::vget_high_qs16</a></div><div class="ttdeci">qint16x4_t vget_high_qs16(qint16x8_t a)</div><div class="ttdoc">Get the higher half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00148">NEFixedPoint.inl:148</a></div></div>
19344<div class="ttc" id="namespacearm__compute_xhtml_ae895c5b470fcf069afd626bb36c63e3d"><div class="ttname"><a href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">arm_compute::vget_low_qs16</a></div><div class="ttdeci">qint16x4_t vget_low_qs16(qint16x8_t a)</div><div class="ttdoc">Get the lower half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00138">NEFixedPoint.inl:138</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019345</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010019346</div>
19347</div>
Kaizen8938bd32017-09-28 14:38:23 +010019348<a class="anchor" id="a943abeff66faa34d1c2aeeab4ebfabdf"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019349<div class="memitem">
19350<div class="memproto">
Anthony Barbierdbdab852017-06-23 15:42:00 +010019351 <table class="memname">
19352 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010019353 <td class="memname">float32x4x2_t arm_compute::vcvtq_qs16_f32 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019354 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019355 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019356 <td class="paramname"><em>a</em>, </td>
19357 </tr>
19358 <tr>
19359 <td class="paramkey"></td>
19360 <td></td>
19361 <td class="paramtype">int&#160;</td>
19362 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19363 </tr>
19364 <tr>
19365 <td></td>
19366 <td>)</td>
19367 <td></td><td></td>
19368 </tr>
19369 </table>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019370</div><div class="memdoc">
19371
Kaizen8938bd32017-09-28 14:38:23 +010019372<p>Convert a 16 bit fixed point vector with 8 elements to a float vector with 4x2 elements. </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019373<dl class="params"><dt>Parameters</dt><dd>
19374 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +010019375 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019376 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
19377 </table>
19378 </dd>
19379</dl>
Kaizen8938bd32017-09-28 14:38:23 +010019380<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 16 bit fixed point -&gt; float32x4x2 </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019381
Anthony Barbierdbdab852017-06-23 15:42:00 +010019382</div>
19383</div>
19384<a class="anchor" id="a19e68f6a298ae587a491df52d6859350"></a>
19385<div class="memitem">
19386<div class="memproto">
19387 <table class="memname">
19388 <tr>
19389 <td class="memname">float32x4x4_t arm_compute::vcvtq_qs8_f32 </td>
19390 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019391 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019392 <td class="paramname"><em>a</em>, </td>
19393 </tr>
19394 <tr>
19395 <td class="paramkey"></td>
19396 <td></td>
19397 <td class="paramtype">int&#160;</td>
19398 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19399 </tr>
19400 <tr>
19401 <td></td>
19402 <td>)</td>
19403 <td></td><td></td>
19404 </tr>
19405 </table>
19406</div><div class="memdoc">
19407
19408<p>Convert a 8 bit fixed point vector with 16 elements to a float vector with 4x4 elements. </p>
19409<dl class="params"><dt>Parameters</dt><dd>
19410 <table class="params">
19411 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector </td></tr>
19412 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
19413 </table>
19414 </dd>
19415</dl>
19416<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 8 bit fixed point -&gt; float32x4x4 </dd></dl>
19417
19418</div>
19419</div>
Kaizen8938bd32017-09-28 14:38:23 +010019420<a class="anchor" id="aa65479f6532283c215e398735d0b3c22"></a>
19421<div class="memitem">
19422<div class="memproto">
19423<table class="mlabels">
19424 <tr>
19425 <td class="mlabels-left">
19426 <table class="memname">
19427 <tr>
19428 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vdiv_qs16 </td>
19429 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019430 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019431 <td class="paramname"><em>a</em>, </td>
19432 </tr>
19433 <tr>
19434 <td class="paramkey"></td>
19435 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019436 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019437 <td class="paramname"><em>b</em>, </td>
19438 </tr>
19439 <tr>
19440 <td class="paramkey"></td>
19441 <td></td>
19442 <td class="paramtype">int&#160;</td>
19443 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19444 </tr>
19445 <tr>
19446 <td></td>
19447 <td>)</td>
19448 <td></td><td></td>
19449 </tr>
19450 </table>
19451 </td>
19452 <td class="mlabels-right">
19453<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19454 </tr>
19455</table>
19456</div><div class="memdoc">
19457
19458<p>Division fixed point 16 bit (4 elements) </p>
19459<dl class="params"><dt>Parameters</dt><dd>
19460 <table class="params">
19461 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
19462 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
19463 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
19464 </table>
19465 </dd>
19466</dl>
19467<dl class="section return"><dt>Returns</dt><dd>The quotient and remainder number in fixed point format. </dd></dl>
19468
Kaizenbf8b01d2017-10-12 14:26:51 +010019469<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01299">1299</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010019470
Kaizenbf8b01d2017-10-12 14:26:51 +010019471<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00496">vmul_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01103">vrecip_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019472<div class="fragment"><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;{</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute.xhtml#a8e14017f1276f4a4e14078d93ed692bd">vrecip_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019473<div class="ttc" id="namespacearm__compute_xhtml_ac1b67e3283a1cae4d57b7f64137f5f5c"><div class="ttname"><a href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">arm_compute::vmul_qs16</a></div><div class="ttdeci">qint16x4_t vmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00496">NEFixedPoint.inl:496</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000019474<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019475<div class="ttc" id="namespacearm__compute_xhtml_a8e14017f1276f4a4e14078d93ed692bd"><div class="ttname"><a href="namespacearm__compute.xhtml#a8e14017f1276f4a4e14078d93ed692bd">arm_compute::vrecip_qs16</a></div><div class="ttdeci">qint16x4_t vrecip_qs16(qint16x4_t a, int fixed_point_position)</div><div class="ttdoc">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01103">NEFixedPoint.inl:1103</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019476</div><!-- fragment -->
19477</div>
19478</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019479<a class="anchor" id="aeab4c6963804a85c9ea6c319f4e95a0b"></a>
19480<div class="memitem">
19481<div class="memproto">
19482<table class="mlabels">
19483 <tr>
19484 <td class="mlabels-left">
19485 <table class="memname">
19486 <tr>
19487 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vdiv_qs8 </td>
19488 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019489 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019490 <td class="paramname"><em>a</em>, </td>
19491 </tr>
19492 <tr>
19493 <td class="paramkey"></td>
19494 <td></td>
19495 <td class="paramtype">int8x8_t&#160;</td>
19496 <td class="paramname"><em>b</em>, </td>
19497 </tr>
19498 <tr>
19499 <td class="paramkey"></td>
19500 <td></td>
19501 <td class="paramtype">int&#160;</td>
19502 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19503 </tr>
19504 <tr>
19505 <td></td>
19506 <td>)</td>
19507 <td></td><td></td>
19508 </tr>
19509 </table>
19510 </td>
19511 <td class="mlabels-right">
19512<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19513 </tr>
19514</table>
19515</div><div class="memdoc">
19516
19517<p>Division fixed point 8bit (8 elements) </p>
19518<dl class="params"><dt>Parameters</dt><dd>
19519 <table class="params">
19520 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8bit fixed point input vector </td></tr>
19521 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8bit fixed point input vector </td></tr>
19522 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
19523 </table>
19524 </dd>
19525</dl>
19526<dl class="section return"><dt>Returns</dt><dd>The quotient and remainder number in fixed point format. </dd></dl>
19527
Kaizenbf8b01d2017-10-12 14:26:51 +010019528<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01294">1294</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019529
Kaizenbf8b01d2017-10-12 14:26:51 +010019530<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00479">vmul_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01077">vrecip_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019531<div class="fragment"><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;{</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute.xhtml#aa24b270b0193ad8983dfecd6105c4936">vrecip_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019532<div class="ttc" id="namespacearm__compute_xhtml_afccf1305c480f2338af8925bba6b54cd"><div class="ttname"><a href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">arm_compute::vmul_qs8</a></div><div class="ttdeci">qint8x8_t vmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00479">NEFixedPoint.inl:479</a></div></div>
19533<div class="ttc" id="namespacearm__compute_xhtml_aa24b270b0193ad8983dfecd6105c4936"><div class="ttname"><a href="namespacearm__compute.xhtml#aa24b270b0193ad8983dfecd6105c4936">arm_compute::vrecip_qs8</a></div><div class="ttdeci">qint8x8_t vrecip_qs8(qint8x8_t a, int fixed_point_position)</div><div class="ttdoc">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01077">NEFixedPoint.inl:1077</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000019534<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019535</div><!-- fragment -->
19536</div>
19537</div>
Kaizen8938bd32017-09-28 14:38:23 +010019538<a class="anchor" id="a2c21a21a9004609887c0a6f5304faa2a"></a>
19539<div class="memitem">
19540<div class="memproto">
19541<table class="mlabels">
19542 <tr>
19543 <td class="mlabels-left">
19544 <table class="memname">
19545 <tr>
19546 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vdivq_qs16 </td>
19547 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019548 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019549 <td class="paramname"><em>a</em>, </td>
19550 </tr>
19551 <tr>
19552 <td class="paramkey"></td>
19553 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019554 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019555 <td class="paramname"><em>b</em>, </td>
19556 </tr>
19557 <tr>
19558 <td class="paramkey"></td>
19559 <td></td>
19560 <td class="paramtype">int&#160;</td>
19561 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19562 </tr>
19563 <tr>
19564 <td></td>
19565 <td>)</td>
19566 <td></td><td></td>
19567 </tr>
19568 </table>
19569 </td>
19570 <td class="mlabels-right">
19571<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19572 </tr>
19573</table>
19574</div><div class="memdoc">
19575
19576<p>Division fixed point 16 bit (8 elements) </p>
19577<dl class="params"><dt>Parameters</dt><dd>
19578 <table class="params">
19579 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
19580 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
19581 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
19582 </table>
19583 </dd>
19584</dl>
19585<dl class="section return"><dt>Returns</dt><dd>The quotient and remainder number in 16 bit fixed point format. </dd></dl>
19586
Kaizenbf8b01d2017-10-12 14:26:51 +010019587<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01309">1309</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010019588
Kaizenbf8b01d2017-10-12 14:26:51 +010019589<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00533">vmulq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01210">vrecipq_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019590<div class="fragment"><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;{</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute.xhtml#aea1b943c0452ea124c9f8ac0d1315bed">vrecipq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_aea1b943c0452ea124c9f8ac0d1315bed"><div class="ttname"><a href="namespacearm__compute.xhtml#aea1b943c0452ea124c9f8ac0d1315bed">arm_compute::vrecipq_qs16</a></div><div class="ttdeci">qint16x8_t vrecipq_qs16(qint16x8_t a, int fixed_point_position)</div><div class="ttdoc">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01210">NEFixedPoint.inl:1210</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000019591<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
19592<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019593<div class="ttc" id="namespacearm__compute_xhtml_a74ea79cda0ff6a819b2e5176fe0fc622"><div class="ttname"><a href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">arm_compute::vmulq_qs16</a></div><div class="ttdeci">qint16x8_t vmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00533">NEFixedPoint.inl:533</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019594</div><!-- fragment -->
19595</div>
19596</div>
19597<a class="anchor" id="ae589b6f4ada9d9cb81f70897d7991cd1"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019598<div class="memitem">
19599<div class="memproto">
19600<table class="mlabels">
19601 <tr>
19602 <td class="mlabels-left">
19603 <table class="memname">
19604 <tr>
19605 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vdivq_qs8 </td>
19606 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019607 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019608 <td class="paramname"><em>a</em>, </td>
19609 </tr>
19610 <tr>
19611 <td class="paramkey"></td>
19612 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019613 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019614 <td class="paramname"><em>b</em>, </td>
19615 </tr>
19616 <tr>
19617 <td class="paramkey"></td>
19618 <td></td>
19619 <td class="paramtype">int&#160;</td>
19620 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19621 </tr>
19622 <tr>
19623 <td></td>
19624 <td>)</td>
19625 <td></td><td></td>
19626 </tr>
19627 </table>
19628 </td>
19629 <td class="mlabels-right">
19630<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19631 </tr>
19632</table>
19633</div><div class="memdoc">
19634
19635<p>Division fixed point 8bit (16 elements) </p>
19636<dl class="params"><dt>Parameters</dt><dd>
19637 <table class="params">
19638 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8bit fixed point input vector </td></tr>
19639 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8bit fixed point input vector </td></tr>
19640 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
19641 </table>
19642 </dd>
19643</dl>
19644<dl class="section return"><dt>Returns</dt><dd>The quotient and remainder number in 8bit fixed point format. </dd></dl>
19645
Kaizenbf8b01d2017-10-12 14:26:51 +010019646<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01304">1304</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019647
Kaizenbf8b01d2017-10-12 14:26:51 +010019648<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00513">vmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01183">vrecipq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019649<div class="fragment"><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;{</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute.xhtml#abbeb1dc4834fb4e97cf94d702d0e0f91">vrecipq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019650<div class="ttc" id="namespacearm__compute_xhtml_a031b17d4102856aa4d6bf7ebf83bf0ab"><div class="ttname"><a href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">arm_compute::vmulq_qs8</a></div><div class="ttdeci">qint8x16_t vmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00513">NEFixedPoint.inl:513</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000019651<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019652<div class="ttc" id="namespacearm__compute_xhtml_abbeb1dc4834fb4e97cf94d702d0e0f91"><div class="ttname"><a href="namespacearm__compute.xhtml#abbeb1dc4834fb4e97cf94d702d0e0f91">arm_compute::vrecipq_qs8</a></div><div class="ttdeci">qint8x16_t vrecipq_qs8(qint8x16_t a, int fixed_point_position)</div><div class="ttdoc">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01183">NEFixedPoint.inl:1183</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019653</div><!-- fragment -->
19654</div>
19655</div>
19656<a class="anchor" id="a1f6c3965dec29d8ac84ff84a164e9d8e"></a>
19657<div class="memitem">
19658<div class="memproto">
19659<table class="mlabels">
19660 <tr>
19661 <td class="mlabels-left">
19662 <table class="memname">
19663 <tr>
19664 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vdup_n_qs16 </td>
19665 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019666 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019667 <td class="paramname"><em>a</em></td><td>)</td>
19668 <td></td>
19669 </tr>
19670 </table>
19671 </td>
19672 <td class="mlabels-right">
19673<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19674 </tr>
19675</table>
19676</div><div class="memdoc">
19677
19678<p>16 bit fixed point vector duplicate (4 elements) </p>
19679<dl class="params"><dt>Parameters</dt><dd>
19680 <table class="params">
19681 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point to duplicate</td></tr>
19682 </table>
19683 </dd>
19684</dl>
19685<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
19686
Kaizenbf8b01d2017-10-12 14:26:51 +010019687<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00238">238</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010019688
Kaizenbf8b01d2017-10-12 14:26:51 +010019689<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01729">vinvsqrt_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01785">vqinvsqrt_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019690<div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;{</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> vdup_n_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019691</div><!-- fragment -->
19692</div>
19693</div>
19694<a class="anchor" id="a1a226812e3cfdf3494adbdd92d4a1cb3"></a>
19695<div class="memitem">
19696<div class="memproto">
19697<table class="mlabels">
19698 <tr>
19699 <td class="mlabels-left">
19700 <table class="memname">
19701 <tr>
19702 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vdup_n_qs8 </td>
19703 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019704 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019705 <td class="paramname"><em>a</em></td><td>)</td>
19706 <td></td>
19707 </tr>
19708 </table>
19709 </td>
19710 <td class="mlabels-right">
19711<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19712 </tr>
19713</table>
19714</div><div class="memdoc">
19715
19716<p>8 bit fixed point vector duplicate (8 elements) </p>
19717<dl class="params"><dt>Parameters</dt><dd>
19718 <table class="params">
19719 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point to duplicate</td></tr>
19720 </table>
19721 </dd>
19722</dl>
19723<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
19724
Kaizenbf8b01d2017-10-12 14:26:51 +010019725<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00233">233</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019726
Kaizenbf8b01d2017-10-12 14:26:51 +010019727<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01702">vinvsqrt_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01758">vqinvsqrt_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019728<div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> vdup_n_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019729</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010019730</div>
19731</div>
19732<a class="anchor" id="a740436aed8843612da747f40ff926875"></a>
19733<div class="memitem">
19734<div class="memproto">
19735 <table class="memname">
19736 <tr>
19737 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> arm_compute::vdupq_n_qs16 </td>
19738 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019739 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019740 <td class="paramname"><em>a</em></td><td>)</td>
19741 <td></td>
19742 </tr>
19743 </table>
19744</div><div class="memdoc">
19745
19746<p>16 bit fixed point vector duplicate (8 elements) </p>
19747<dl class="params"><dt>Parameters</dt><dd>
19748 <table class="params">
19749 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point to duplicate</td></tr>
19750 </table>
19751 </dd>
19752</dl>
19753<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
19754
Kaizenbf8b01d2017-10-12 14:26:51 +010019755<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01841">vinvsqrtq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01897">vqinvsqrtq_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010019756
19757</div>
19758</div>
19759<a class="anchor" id="aed2fc8d1b9642b7625379a930ef4914a"></a>
19760<div class="memitem">
19761<div class="memproto">
19762<table class="mlabels">
19763 <tr>
19764 <td class="mlabels-left">
19765 <table class="memname">
19766 <tr>
19767 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> arm_compute::vdupq_n_qs16 </td>
19768 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019769 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019770 <td class="paramname"><em>a</em></td><td>)</td>
19771 <td></td>
19772 </tr>
19773 </table>
19774 </td>
19775 <td class="mlabels-right">
19776<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19777 </tr>
19778</table>
19779</div><div class="memdoc">
19780
Kaizenbf8b01d2017-10-12 14:26:51 +010019781<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00274">274</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019782<div class="fragment"><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;{</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> vdupq_n_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019783</div><!-- fragment -->
19784</div>
19785</div>
19786<a class="anchor" id="a2b3337b650277502ad64d8ba55f9b8b2"></a>
19787<div class="memitem">
19788<div class="memproto">
19789<table class="mlabels">
19790 <tr>
19791 <td class="mlabels-left">
19792 <table class="memname">
19793 <tr>
19794 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vdupq_n_qs16_f32 </td>
19795 <td>(</td>
19796 <td class="paramtype">float&#160;</td>
19797 <td class="paramname"><em>a</em>, </td>
19798 </tr>
19799 <tr>
19800 <td class="paramkey"></td>
19801 <td></td>
19802 <td class="paramtype">int&#160;</td>
19803 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19804 </tr>
19805 <tr>
19806 <td></td>
19807 <td>)</td>
19808 <td></td><td></td>
19809 </tr>
19810 </table>
19811 </td>
19812 <td class="mlabels-right">
19813<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19814 </tr>
19815</table>
19816</div><div class="memdoc">
19817
19818<p>Duplicate a float and convert it to 16 bit fixed point vector (8 elements) </p>
19819<dl class="params"><dt>Parameters</dt><dd>
19820 <table class="params">
19821 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>floating point value to convert and duplicate </td></tr>
19822 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
19823 </table>
19824 </dd>
19825</dl>
19826<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
19827
Kaizenbf8b01d2017-10-12 14:26:51 +010019828<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00262">262</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010019829
Kaizenbf8b01d2017-10-12 14:26:51 +010019830<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00949">vqcvtq_qs16_f32()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019831<div class="fragment"><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; float32x4x2_t res =</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; vdupq_n_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>),</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; vdupq_n_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>),</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; };</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#afe99b690ec0046061f66f699fa055b47">vqcvtq_qs16_f32</a>(res, fixed_point_position);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019832<div class="ttc" id="namespacearm__compute_xhtml_afe99b690ec0046061f66f699fa055b47"><div class="ttname"><a href="namespacearm__compute.xhtml#afe99b690ec0046061f66f699fa055b47">arm_compute::vqcvtq_qs16_f32</a></div><div class="ttdeci">qint16x8_t vqcvtq_qs16_f32(const float32x4x2_t &amp;a, int fixed_point_position)</div><div class="ttdoc">Convert a float vector with 4x2 elements to 16 bit fixed point vector with 8 elements. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00949">NEFixedPoint.inl:949</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019833</div><!-- fragment -->
19834</div>
19835</div>
19836<a class="anchor" id="ada6db431017d7911b0647cfb7a8711de"></a>
19837<div class="memitem">
19838<div class="memproto">
19839<table class="mlabels">
19840 <tr>
19841 <td class="mlabels-left">
19842 <table class="memname">
19843 <tr>
19844 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> arm_compute::vdupq_n_qs32 </td>
19845 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019846 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010019847 <td class="paramname"><em>a</em></td><td>)</td>
19848 <td></td>
19849 </tr>
19850 </table>
19851 </td>
19852 <td class="mlabels-right">
19853<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19854 </tr>
19855</table>
19856</div><div class="memdoc">
19857
Kaizenbf8b01d2017-10-12 14:26:51 +010019858<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00279">279</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019859<div class="fragment"><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;{</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> vdupq_n_s32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019860</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010019861</div>
19862</div>
19863<a class="anchor" id="adbd4df93ed00fcda54f91e669ea2be04"></a>
19864<div class="memitem">
19865<div class="memproto">
19866<table class="mlabels">
19867 <tr>
19868 <td class="mlabels-left">
19869 <table class="memname">
19870 <tr>
19871 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vdupq_n_qs8 </td>
19872 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019873 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019874 <td class="paramname"><em>a</em></td><td>)</td>
19875 <td></td>
19876 </tr>
19877 </table>
19878 </td>
19879 <td class="mlabels-right">
19880<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19881 </tr>
19882</table>
19883</div><div class="memdoc">
19884
19885<p>8 bit fixed point vector duplicate (16 elements) </p>
19886<dl class="params"><dt>Parameters</dt><dd>
19887 <table class="params">
19888 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point to duplicate</td></tr>
19889 </table>
19890 </dd>
19891</dl>
19892<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
19893
Kaizenbf8b01d2017-10-12 14:26:51 +010019894<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00243">243</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019895
Kaizenbf8b01d2017-10-12 14:26:51 +010019896<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01814">vinvsqrtq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01870">vqinvsqrtq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019897<div class="fragment"><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;{</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> vdupq_n_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019898</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010019899</div>
19900</div>
19901<a class="anchor" id="ab20e66231de6c259952534de39214784"></a>
19902<div class="memitem">
19903<div class="memproto">
19904<table class="mlabels">
19905 <tr>
19906 <td class="mlabels-left">
19907 <table class="memname">
19908 <tr>
19909 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vdupq_n_qs8_f32 </td>
19910 <td>(</td>
19911 <td class="paramtype">float&#160;</td>
19912 <td class="paramname"><em>a</em>, </td>
19913 </tr>
19914 <tr>
19915 <td class="paramkey"></td>
19916 <td></td>
19917 <td class="paramtype">int&#160;</td>
19918 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
19919 </tr>
19920 <tr>
19921 <td></td>
19922 <td>)</td>
19923 <td></td><td></td>
19924 </tr>
19925 </table>
19926 </td>
19927 <td class="mlabels-right">
19928<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19929 </tr>
19930</table>
19931</div><div class="memdoc">
19932
19933<p>Duplicate a float and convert it to 8 bit fixed point vector (16 elements) </p>
19934<dl class="params"><dt>Parameters</dt><dd>
19935 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +010019936 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>floating point value to convert and duplicate </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019937 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
19938 </table>
19939 </dd>
19940</dl>
19941<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
19942
Kaizenbf8b01d2017-10-12 14:26:51 +010019943<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00248">248</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019944
Kaizenbf8b01d2017-10-12 14:26:51 +010019945<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00909">vqcvtq_qs8_f32()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000019946<div class="fragment"><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;{</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; float32x4x4_t res =</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; vdupq_n_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>),</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; vdupq_n_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>),</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; vdupq_n_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>),</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; vdupq_n_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>),</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; };</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#ad7eb7d308bb87e94eb693bc13eda5adc">vqcvtq_qs8_f32</a>(res, fixed_point_position);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010019947<div class="ttc" id="namespacearm__compute_xhtml_ad7eb7d308bb87e94eb693bc13eda5adc"><div class="ttname"><a href="namespacearm__compute.xhtml#ad7eb7d308bb87e94eb693bc13eda5adc">arm_compute::vqcvtq_qs8_f32</a></div><div class="ttdeci">qint8x16_t vqcvtq_qs8_f32(const float32x4x4_t &amp;a, int fixed_point_position)</div><div class="ttdoc">Convert a float vector with 4x4 elements to 8 bit fixed point vector with 16 elements. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00909">NEFixedPoint.inl:909</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019948</div><!-- fragment -->
19949</div>
19950</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010019951<a class="anchor" id="ade3ef16de304661943c900ac9a47d28f"></a>
19952<div class="memitem">
19953<div class="memproto">
19954<table class="mlabels">
19955 <tr>
19956 <td class="mlabels-left">
19957 <table class="memname">
19958 <tr>
19959 <td class="memname">float32x4_t vexpq_f32 </td>
19960 <td>(</td>
19961 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000019962 <td class="paramname"><em>x</em></td><td>)</td>
19963 <td></td>
19964 </tr>
19965 </table>
19966 </td>
19967 <td class="mlabels-right">
19968<span class="mlabels"><span class="mlabel">inline</span></span> </td>
19969 </tr>
19970</table>
19971</div><div class="memdoc">
19972
19973<p>Calculate exponential. </p>
19974<dl class="params"><dt>Parameters</dt><dd>
19975 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010019976 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input vector value in F32 format.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000019977 </table>
19978 </dd>
19979</dl>
19980<dl class="section return"><dt>Returns</dt><dd>The calculated exponent. </dd></dl>
19981
Kaizen8938bd32017-09-28 14:38:23 +010019982<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00113">113</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000019983
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019984<p>References <a class="el" href="_n_e_math_8inl_source.xhtml#l00101">vtaylor_polyq_f32()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000019985
Kaizen8938bd32017-09-28 14:38:23 +010019986<p>Referenced by <a class="el" href="_n_e_math_8inl_source.xhtml#l00167">vpowq_f32()</a>, and <a class="el" href="_n_e_math_8inl_source.xhtml#l00152">vtanhq_f32()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019987<div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> float32x4_t CONST_LN2 = vdupq_n_f32(0.6931471805f); <span class="comment">// ln(2)</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> float32x4_t CONST_INV_LN2 = vdupq_n_f32(1.4426950408f); <span class="comment">// 1/ln(2)</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> float32x4_t CONST_0 = vdupq_n_f32(0.f);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> int32x4_t CONST_NEGATIVE_126 = vdupq_n_s32(-126);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// Perform range reduction [-log(2),log(2)]</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; int32x4_t m = vcvtq_s32_f32(vmulq_f32(x, CONST_INV_LN2));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; float32x4_t val = vmlsq_f32(x, vcvtq_f32_s32(m), CONST_LN2);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; float32x4_t poly = <a class="code" href="namespacearm__compute.xhtml#a4fa76a98dce5ed1b655ff840f2ce6e57">vtaylor_polyq_f32</a>(val, <a class="code" href="namespacearm__compute.xhtml#a869945609357fa552d94eb16f7aad4e9">exp_tab</a>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; poly = vreinterpretq_f32_s32(vqaddq_s32(vreinterpretq_s32_f32(poly), vqshlq_n_s32(m, 23)));</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; poly = vbslq_f32(vcltq_s32(m, CONST_NEGATIVE_126), CONST_0, poly);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a869945609357fa552d94eb16f7aad4e9"><div class="ttname"><a href="namespacearm__compute.xhtml#a869945609357fa552d94eb16f7aad4e9">arm_compute::exp_tab</a></div><div class="ttdeci">const std::array&lt; float32x4_t, 8 &gt; exp_tab</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_math_8inl_source.xhtml#l00028">NEMath.inl:28</a></div></div>
19988<div class="ttc" id="namespacearm__compute_xhtml_a4fa76a98dce5ed1b655ff840f2ce6e57"><div class="ttname"><a href="namespacearm__compute.xhtml#a4fa76a98dce5ed1b655ff840f2ce6e57">arm_compute::vtaylor_polyq_f32</a></div><div class="ttdeci">float32x4_t vtaylor_polyq_f32(float32x4_t x, const std::array&lt; float32x4_t, 8 &gt; &amp;coeffs)</div><div class="ttdoc">Perform a 7th degree polynomial approximation using Estrin&amp;#39;s method. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_math_8inl_source.xhtml#l00101">NEMath.inl:101</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010019989</div><!-- fragment -->
19990</div>
19991</div>
19992<a class="anchor" id="adb7ad6f2d80bafc0a8fb0c920909b9fb"></a>
19993<div class="memitem">
19994<div class="memproto">
19995<table class="mlabels">
19996 <tr>
19997 <td class="mlabels-left">
19998 <table class="memname">
19999 <tr>
20000 <td class="memname">float32x4_t vfloorq_f32 </td>
20001 <td>(</td>
20002 <td class="paramtype">float32x4_t&#160;</td>
20003 <td class="paramname"><em>val</em></td><td>)</td>
20004 <td></td>
20005 </tr>
20006 </table>
20007 </td>
20008 <td class="mlabels-right">
20009<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20010 </tr>
20011</table>
20012</div><div class="memdoc">
20013
20014<p>Calculate floor of a vector. </p>
20015<dl class="params"><dt>Parameters</dt><dd>
20016 <table class="params">
20017 <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Input vector value in F32 format.</td></tr>
20018 </table>
20019 </dd>
20020</dl>
20021<dl class="section return"><dt>Returns</dt><dd>The calculated floor vector. </dd></dl>
20022
20023<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00057">57</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020024<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> float32x4_t CONST_1 = vdupq_n_f32(1.f);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">const</span> int32x4_t z = vcvtq_s32_f32(val);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">const</span> float32x4_t r = vcvtq_f32_s32(z);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> vbslq_f32(vcgtq_f32(r, val), vsubq_f32(r, CONST_1), r);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010020025</div>
20026</div>
20027<a class="anchor" id="ac2edef8bf07bce91b37aa02b952b8ed6"></a>
20028<div class="memitem">
20029<div class="memproto">
20030<table class="mlabels">
20031 <tr>
20032 <td class="mlabels-left">
20033 <table class="memname">
20034 <tr>
20035 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vget_high_qs16 </td>
20036 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020037 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010020038 <td class="paramname"><em>a</em></td><td>)</td>
20039 <td></td>
20040 </tr>
20041 </table>
20042 </td>
20043 <td class="mlabels-right">
20044<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20045 </tr>
20046</table>
20047</div><div class="memdoc">
20048
20049<p>Get the higher half of a 16 elements vector. </p>
20050<dl class="params"><dt>Parameters</dt><dd>
20051 <table class="params">
20052 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>vector of 8 elements</td></tr>
20053 </table>
20054 </dd>
20055</dl>
20056<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vector (4 elements) </dd></dl>
20057
Kaizenbf8b01d2017-10-12 14:26:51 +010020058<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00148">148</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010020059
Kaizenbf8b01d2017-10-12 14:26:51 +010020060<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00975">vcvt_f32_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01051">vcvtq_f32_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01011">vcvtq_f32_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00704">vmlaq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00533">vmulq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00779">vqmlaq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00607">vqmulq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020061<div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> vget_high_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000020062</div><!-- fragment -->
20063</div>
20064</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020065<a class="anchor" id="ab93c92d0f3228809b6a4bfaa24eb4924"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000020066<div class="memitem">
20067<div class="memproto">
20068<table class="mlabels">
20069 <tr>
20070 <td class="mlabels-left">
20071 <table class="memname">
20072 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020073 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vget_high_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000020074 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020075 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020076 <td class="paramname"><em>a</em></td><td>)</td>
20077 <td></td>
20078 </tr>
20079 </table>
20080 </td>
20081 <td class="mlabels-right">
20082<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20083 </tr>
20084</table>
20085</div><div class="memdoc">
20086
20087<p>Get the higher half of a 16 elements vector. </p>
20088<dl class="params"><dt>Parameters</dt><dd>
20089 <table class="params">
20090 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>vector of 16 elements</td></tr>
20091 </table>
20092 </dd>
20093</dl>
20094<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (8 elements) </dd></dl>
20095
Kaizenbf8b01d2017-10-12 14:26:51 +010020096<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00143">143</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020097<div class="fragment"><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020098</div><!-- fragment -->
20099</div>
20100</div>
20101<a class="anchor" id="ae895c5b470fcf069afd626bb36c63e3d"></a>
20102<div class="memitem">
20103<div class="memproto">
20104<table class="mlabels">
20105 <tr>
20106 <td class="mlabels-left">
20107 <table class="memname">
20108 <tr>
20109 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vget_low_qs16 </td>
20110 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020111 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010020112 <td class="paramname"><em>a</em></td><td>)</td>
20113 <td></td>
20114 </tr>
20115 </table>
20116 </td>
20117 <td class="mlabels-right">
20118<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20119 </tr>
20120</table>
20121</div><div class="memdoc">
20122
20123<p>Get the lower half of a 16 elements vector. </p>
20124<dl class="params"><dt>Parameters</dt><dd>
20125 <table class="params">
20126 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>vector of 8 elements</td></tr>
20127 </table>
20128 </dd>
20129</dl>
20130<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vector (4 elements) </dd></dl>
20131
Kaizenbf8b01d2017-10-12 14:26:51 +010020132<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00138">138</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010020133
Kaizenbf8b01d2017-10-12 14:26:51 +010020134<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00975">vcvt_f32_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01051">vcvtq_f32_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01011">vcvtq_f32_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00704">vmlaq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00533">vmulq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00779">vqmlaq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00607">vqmulq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020135<div class="fragment"><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> vget_low_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020136</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010020137</div>
20138</div>
20139<a class="anchor" id="a85ff7d135f7aa13359bd575139ba14dd"></a>
20140<div class="memitem">
20141<div class="memproto">
20142<table class="mlabels">
20143 <tr>
20144 <td class="mlabels-left">
20145 <table class="memname">
20146 <tr>
20147 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vget_low_qs8 </td>
20148 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020149 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020150 <td class="paramname"><em>a</em></td><td>)</td>
20151 <td></td>
20152 </tr>
20153 </table>
20154 </td>
20155 <td class="mlabels-right">
20156<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20157 </tr>
20158</table>
20159</div><div class="memdoc">
20160
20161<p>Get the lower half of a 16 elements vector. </p>
20162<dl class="params"><dt>Parameters</dt><dd>
20163 <table class="params">
20164 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>vector of 16 elements</td></tr>
20165 </table>
20166 </dd>
20167</dl>
20168<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (8 elements) </dd></dl>
20169
Kaizenbf8b01d2017-10-12 14:26:51 +010020170<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00133">133</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020171<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020172</div><!-- fragment -->
20173</div>
20174</div>
20175<a class="anchor" id="a7bb067c606cdc07805181688b9bee569"></a>
20176<div class="memitem">
20177<div class="memproto">
20178<table class="mlabels">
20179 <tr>
20180 <td class="mlabels-left">
20181 <table class="memname">
20182 <tr>
20183 <td class="memname">float32x2_t vinv_f32 </td>
20184 <td>(</td>
20185 <td class="paramtype">float32x2_t&#160;</td>
20186 <td class="paramname"><em>x</em></td><td>)</td>
20187 <td></td>
20188 </tr>
20189 </table>
20190 </td>
20191 <td class="mlabels-right">
20192<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20193 </tr>
20194</table>
20195</div><div class="memdoc">
20196
20197<p>Calculate reciprocal. </p>
20198<dl class="params"><dt>Parameters</dt><dd>
20199 <table class="params">
20200 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input value.</td></tr>
20201 </table>
20202 </dd>
20203</dl>
20204<dl class="section return"><dt>Returns</dt><dd>The calculated reciprocal. </dd></dl>
20205
20206<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00085">85</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020207<div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; float32x2_t recip = vrecpe_f32(x);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; recip = vmul_f32(vrecps_f32(x, recip), recip);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; recip = vmul_f32(vrecps_f32(x, recip), recip);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> recip;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010020208</div>
20209</div>
20210<a class="anchor" id="ac8f459d5899b79c00fb4042a5b3470fb"></a>
20211<div class="memitem">
20212<div class="memproto">
20213<table class="mlabels">
20214 <tr>
20215 <td class="mlabels-left">
20216 <table class="memname">
20217 <tr>
20218 <td class="memname">float32x4_t vinvq_f32 </td>
20219 <td>(</td>
20220 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000020221 <td class="paramname"><em>x</em></td><td>)</td>
20222 <td></td>
20223 </tr>
20224 </table>
20225 </td>
20226 <td class="mlabels-right">
20227<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20228 </tr>
20229</table>
20230</div><div class="memdoc">
20231
20232<p>Calculate reciprocal. </p>
20233<dl class="params"><dt>Parameters</dt><dd>
20234 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010020235 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input value.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000020236 </table>
20237 </dd>
20238</dl>
20239<dl class="section return"><dt>Returns</dt><dd>The calculated reciprocal. </dd></dl>
20240
Kaizen8938bd32017-09-28 14:38:23 +010020241<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00093">93</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000020242
Kaizen8938bd32017-09-28 14:38:23 +010020243<p>Referenced by <a class="el" href="_n_e_math_8inl_source.xhtml#l00152">vtanhq_f32()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020244<div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; float32x4_t recip = vrecpeq_f32(x);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; recip = vmulq_f32(vrecpsq_f32(x, recip), recip);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; recip = vmulq_f32(vrecpsq_f32(x, recip), recip);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> recip;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010020245</div>
20246</div>
20247<a class="anchor" id="a902d274ff1dbe2052b0f2364a98d2b41"></a>
20248<div class="memitem">
20249<div class="memproto">
20250<table class="mlabels">
20251 <tr>
20252 <td class="mlabels-left">
20253 <table class="memname">
20254 <tr>
20255 <td class="memname">float32x2_t vinvsqrt_f32 </td>
20256 <td>(</td>
20257 <td class="paramtype">float32x2_t&#160;</td>
20258 <td class="paramname"><em>x</em></td><td>)</td>
20259 <td></td>
20260 </tr>
20261 </table>
20262 </td>
20263 <td class="mlabels-right">
20264<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20265 </tr>
20266</table>
20267</div><div class="memdoc">
20268
20269<p>Calculate inverse square root. </p>
20270<dl class="params"><dt>Parameters</dt><dd>
20271 <table class="params">
20272 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input value.</td></tr>
20273 </table>
20274 </dd>
20275</dl>
20276<dl class="section return"><dt>Returns</dt><dd>The calculated inverse square root. </dd></dl>
20277
20278<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00067">67</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020279<div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; float32x2_t sqrt_reciprocal = vrsqrte_f32(x);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; sqrt_reciprocal = vmul_f32(vrsqrts_f32(vmul_f32(x, sqrt_reciprocal), sqrt_reciprocal), sqrt_reciprocal);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; sqrt_reciprocal = vmul_f32(vrsqrts_f32(vmul_f32(x, sqrt_reciprocal), sqrt_reciprocal), sqrt_reciprocal);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> sqrt_reciprocal;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010020280</div>
20281</div>
20282<a class="anchor" id="aed1eb26d2b6435ae9dba79558611b415"></a>
20283<div class="memitem">
20284<div class="memproto">
20285<table class="mlabels">
20286 <tr>
20287 <td class="mlabels-left">
20288 <table class="memname">
20289 <tr>
20290 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vinvsqrt_qs16 </td>
20291 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020292 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010020293 <td class="paramname"><em>a</em>, </td>
20294 </tr>
20295 <tr>
20296 <td class="paramkey"></td>
20297 <td></td>
20298 <td class="paramtype">int&#160;</td>
20299 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
20300 </tr>
20301 <tr>
20302 <td></td>
20303 <td>)</td>
20304 <td></td><td></td>
20305 </tr>
20306 </table>
20307 </td>
20308 <td class="mlabels-right">
20309<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20310 </tr>
20311</table>
20312</div><div class="memdoc">
20313
20314<p>Calculate inverse square root for fixed point 16 bit using Newton-Raphosn method (4 elements) </p>
20315<dl class="params"><dt>Parameters</dt><dd>
20316 <table class="params">
20317 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
20318 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
20319 </table>
20320 </dd>
20321</dl>
20322<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit inverse sqrt. </dd></dl>
20323
Kaizenbf8b01d2017-10-12 14:26:51 +010020324<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01729">1729</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010020325
Kaizenbf8b01d2017-10-12 14:26:51 +010020326<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00238">vdup_n_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00496">vmul_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020327<div class="fragment"><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;{</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_three = vdup_n_s16(3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value = vneg_s16(vsub_s16(vdup_n_s16(16), vadd_s16(vclz_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s16(fixed_point_position))));</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; <span class="comment">// Add one when the shift value is negative in order to get the correct result when we shift right with 1</span></div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> temp = vsub_s16(vdup_n_s16(16), vadd_s16(vclz_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s16(fixed_point_position)));</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; uint16x4_t temp_ltz = vclt_s16(temp, <a class="code" href="namespacearm__compute.xhtml#a1f6c3965dec29d8ac84ff84a164e9d8e">vdup_n_qs16</a>(0));</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; temp = vbsl_s16(temp_ltz, vadd_s16(temp, vdup_n_s16(1)), temp);</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value2 = vneg_s16(vshr_n_s16(temp, 1));</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160; temp = vshl_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x = temp;</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; <span class="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160; <span class="comment">// After five iterations we have the result for 8 bit</span></div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, vsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, vsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, vsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, vsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, vsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; <span class="keywordflow">return</span> vshl_s16(x, shift_value2);</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010020328<div class="ttc" id="namespacearm__compute_xhtml_a1f6c3965dec29d8ac84ff84a164e9d8e"><div class="ttname"><a href="namespacearm__compute.xhtml#a1f6c3965dec29d8ac84ff84a164e9d8e">arm_compute::vdup_n_qs16</a></div><div class="ttdeci">qint16x4_t vdup_n_qs16(qint16_t a)</div><div class="ttdoc">16 bit fixed point vector duplicate (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00238">NEFixedPoint.inl:238</a></div></div>
20329<div class="ttc" id="namespacearm__compute_xhtml_ac1b67e3283a1cae4d57b7f64137f5f5c"><div class="ttname"><a href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">arm_compute::vmul_qs16</a></div><div class="ttdeci">qint16x4_t vmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00496">NEFixedPoint.inl:496</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020330<div class="ttc" id="namespacearm__compute_xhtml_a82c56f0856f56d430393e6a00baee983"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">arm_compute::qint16x4_t</a></div><div class="ttdeci">int16x4_t qint16x4_t</div><div class="ttdoc">16 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00041">NEFixedPoint.h:41</a></div></div>
20331</div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000020332</div>
20333</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020334<a class="anchor" id="ab7fbbbe8d980de582a73b5546b303b1f"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000020335<div class="memitem">
20336<div class="memproto">
20337<table class="mlabels">
20338 <tr>
20339 <td class="mlabels-left">
20340 <table class="memname">
20341 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020342 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vinvsqrt_qs8 </td>
20343 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020344 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020345 <td class="paramname"><em>a</em>, </td>
20346 </tr>
20347 <tr>
20348 <td class="paramkey"></td>
20349 <td></td>
20350 <td class="paramtype">int&#160;</td>
20351 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
20352 </tr>
20353 <tr>
20354 <td></td>
20355 <td>)</td>
20356 <td></td><td></td>
20357 </tr>
20358 </table>
20359 </td>
20360 <td class="mlabels-right">
20361<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20362 </tr>
20363</table>
20364</div><div class="memdoc">
20365
20366<p>Calculate inverse square root for fixed point 8bit using Newton-Raphosn method (8 elements) </p>
20367<dl class="params"><dt>Parameters</dt><dd>
20368 <table class="params">
20369 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
20370 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
20371 </table>
20372 </dd>
20373</dl>
20374<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit inverse sqrt. </dd></dl>
20375
Kaizenbf8b01d2017-10-12 14:26:51 +010020376<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01702">1702</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020377
Kaizenbf8b01d2017-10-12 14:26:51 +010020378<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00233">vdup_n_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00479">vmul_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020379<div class="fragment"><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;{</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_three = vdup_n_s8(3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value = vneg_s8(vsub_s8(vdup_n_s8(8), vadd_s8(vclz_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s8(fixed_point_position))));</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; <span class="comment">// Add one when the shift value is negative in order to get the correct result when we shift right with 1</span></div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> temp = vsub_s8(vdup_n_s8(8), vadd_s8(vclz_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s8(fixed_point_position)));</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; uint8x8_t temp_ltz = vclt_s8(temp, <a class="code" href="namespacearm__compute.xhtml#a1a226812e3cfdf3494adbdd92d4a1cb3">vdup_n_qs8</a>(0));</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; temp = vbsl_s8(temp_ltz, vadd_s8(temp, vdup_n_s8(1)), temp);</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value2 = vneg_s8(vshr_n_s8(temp, 1));</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; temp = vshl_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x = temp;</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; <span class="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; <span class="comment">// After three iterations we have the result for 8 bit</span></div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; x = vshr_n_s8(<a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, vsub_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; x = vshr_n_s8(<a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, vsub_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; x = vshr_n_s8(<a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, vsub_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160; <span class="keywordflow">return</span> vshl_s8(x, shift_value2);</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010020380<div class="ttc" id="namespacearm__compute_xhtml_a1a226812e3cfdf3494adbdd92d4a1cb3"><div class="ttname"><a href="namespacearm__compute.xhtml#a1a226812e3cfdf3494adbdd92d4a1cb3">arm_compute::vdup_n_qs8</a></div><div class="ttdeci">qint8x8_t vdup_n_qs8(qint8_t a)</div><div class="ttdoc">8 bit fixed point vector duplicate (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00233">NEFixedPoint.inl:233</a></div></div>
20381<div class="ttc" id="namespacearm__compute_xhtml_afccf1305c480f2338af8925bba6b54cd"><div class="ttname"><a href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">arm_compute::vmul_qs8</a></div><div class="ttdeci">qint8x8_t vmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00479">NEFixedPoint.inl:479</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020382<div class="ttc" id="namespacearm__compute_xhtml_a16a1bee14f1db073f75caa76dacf5078"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">arm_compute::qint8x8_t</a></div><div class="ttdeci">int8x8_t qint8x8_t</div><div class="ttdoc">8 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00033">NEFixedPoint.h:33</a></div></div>
20383</div><!-- fragment -->
20384</div>
20385</div>
20386<a class="anchor" id="a2e27db6b9692c4c2013653e276af654d"></a>
20387<div class="memitem">
20388<div class="memproto">
20389<table class="mlabels">
20390 <tr>
20391 <td class="mlabels-left">
20392 <table class="memname">
20393 <tr>
20394 <td class="memname">float32x4_t vinvsqrtq_f32 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000020395 <td>(</td>
20396 <td class="paramtype">float32x4_t&#160;</td>
20397 <td class="paramname"><em>x</em></td><td>)</td>
20398 <td></td>
20399 </tr>
20400 </table>
20401 </td>
20402 <td class="mlabels-right">
20403<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20404 </tr>
20405</table>
20406</div><div class="memdoc">
20407
20408<p>Calculate inverse square root. </p>
20409<dl class="params"><dt>Parameters</dt><dd>
20410 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010020411 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input value.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000020412 </table>
20413 </dd>
20414</dl>
20415<dl class="section return"><dt>Returns</dt><dd>The calculated inverse square root. </dd></dl>
20416
Kaizen8938bd32017-09-28 14:38:23 +010020417<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00076">76</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020418<div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; float32x4_t sqrt_reciprocal = vrsqrteq_f32(x);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; sqrt_reciprocal = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x, sqrt_reciprocal), sqrt_reciprocal), sqrt_reciprocal);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; sqrt_reciprocal = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x, sqrt_reciprocal), sqrt_reciprocal), sqrt_reciprocal);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> sqrt_reciprocal;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010020419</div>
20420</div>
20421<a class="anchor" id="a7ddffc87df07ac9782f4e498865c66d4"></a>
20422<div class="memitem">
20423<div class="memproto">
20424<table class="mlabels">
20425 <tr>
20426 <td class="mlabels-left">
20427 <table class="memname">
20428 <tr>
20429 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vinvsqrtq_qs16 </td>
20430 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020431 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010020432 <td class="paramname"><em>a</em>, </td>
20433 </tr>
20434 <tr>
20435 <td class="paramkey"></td>
20436 <td></td>
20437 <td class="paramtype">int&#160;</td>
20438 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
20439 </tr>
20440 <tr>
20441 <td></td>
20442 <td>)</td>
20443 <td></td><td></td>
20444 </tr>
20445 </table>
20446 </td>
20447 <td class="mlabels-right">
20448<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20449 </tr>
20450</table>
20451</div><div class="memdoc">
20452
20453<p>Calculate inverse square root for fixed point 8bit using Newton-Raphosn method (8 elements) </p>
20454<dl class="params"><dt>Parameters</dt><dd>
20455 <table class="params">
20456 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
20457 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
20458 </table>
20459 </dd>
20460</dl>
20461<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit inverse sqrt. </dd></dl>
20462
Kaizenbf8b01d2017-10-12 14:26:51 +010020463<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01841">1841</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010020464
Kaizenbf8b01d2017-10-12 14:26:51 +010020465<p>References <a class="el" href="namespacearm__compute.xhtml#a740436aed8843612da747f40ff926875">vdupq_n_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00533">vmulq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020466<div class="fragment"><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;{</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_three = vdupq_n_s16(3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value = vnegq_s16(vsubq_s16(vdupq_n_s16(16), vaddq_s16(vclzq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s16(fixed_point_position))));</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160; <span class="comment">// Add one when the shift value is negative in order to get the correct result when we shift right with 1</span></div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> temp = vsubq_s16(vdupq_n_s16(16), vaddq_s16(vclzq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s16(fixed_point_position)));</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160; uint16x8_t temp_ltz = vcltq_s16(temp, <a class="code" href="namespacearm__compute.xhtml#aed2fc8d1b9642b7625379a930ef4914a">vdupq_n_qs16</a>(0));</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; temp = vbslq_s16(temp_ltz, vaddq_s16(temp, vdupq_n_s16(1)), temp);</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value2 = vnegq_s16(vshrq_n_s16(temp, 1));</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; temp = vshlq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x = temp;</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; <span class="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; <span class="comment">// After five iterations we have the result for 16 bit</span></div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, vsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, vsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, vsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, vsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, vsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; <span class="keywordflow">return</span> vshlq_s16(x, shift_value2);</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010020467<div class="ttc" id="namespacearm__compute_xhtml_aed2fc8d1b9642b7625379a930ef4914a"><div class="ttname"><a href="namespacearm__compute.xhtml#aed2fc8d1b9642b7625379a930ef4914a">arm_compute::vdupq_n_qs16</a></div><div class="ttdeci">qint16x8_t vdupq_n_qs16(qint16_t a)</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00274">NEFixedPoint.inl:274</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020468<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010020469<div class="ttc" id="namespacearm__compute_xhtml_a74ea79cda0ff6a819b2e5176fe0fc622"><div class="ttname"><a href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">arm_compute::vmulq_qs16</a></div><div class="ttdeci">qint16x8_t vmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00533">NEFixedPoint.inl:533</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020470</div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000020471</div>
20472</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020473<a class="anchor" id="a4be9120d5c04e6aab0831095acd24534"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000020474<div class="memitem">
20475<div class="memproto">
20476<table class="mlabels">
20477 <tr>
20478 <td class="mlabels-left">
20479 <table class="memname">
20480 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020481 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vinvsqrtq_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000020482 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020483 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020484 <td class="paramname"><em>a</em>, </td>
20485 </tr>
20486 <tr>
20487 <td class="paramkey"></td>
20488 <td></td>
20489 <td class="paramtype">int&#160;</td>
20490 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
20491 </tr>
20492 <tr>
20493 <td></td>
20494 <td>)</td>
20495 <td></td><td></td>
20496 </tr>
20497 </table>
20498 </td>
20499 <td class="mlabels-right">
20500<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20501 </tr>
20502</table>
20503</div><div class="memdoc">
20504
20505<p>Calculate inverse square root for fixed point 8bit using Newton-Raphosn method (16 elements) </p>
20506<dl class="params"><dt>Parameters</dt><dd>
20507 <table class="params">
20508 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
20509 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
20510 </table>
20511 </dd>
20512</dl>
20513<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit inverse sqrt. </dd></dl>
20514
Kaizenbf8b01d2017-10-12 14:26:51 +010020515<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01814">1814</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020516
Kaizenbf8b01d2017-10-12 14:26:51 +010020517<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00243">vdupq_n_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00513">vmulq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020518<div class="fragment"><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;{</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_three = vdupq_n_s8(3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value = vnegq_s8(vsubq_s8(vdupq_n_s8(8), vaddq_s8(vclzq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s8(fixed_point_position))));</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; <span class="comment">// Add one when the shift value is negative in order to get the correct result when we shift right with 1</span></div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> temp = vsubq_s8(vdupq_n_s8(8), vaddq_s8(vclzq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s8(fixed_point_position)));</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160; uint8x16_t temp_ltz = vcltq_s8(temp, <a class="code" href="namespacearm__compute.xhtml#adbd4df93ed00fcda54f91e669ea2be04">vdupq_n_qs8</a>(0));</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; temp = vbslq_s8(temp_ltz, vaddq_s8(temp, vdupq_n_s8(1)), temp);</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value2 = vnegq_s8(vshrq_n_s8(temp, 1));</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; temp = vshlq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x = temp;</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; <span class="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; <span class="comment">// After three iterations we have the result for 8 bit</span></div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160; x = vshrq_n_s8(<a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, vsubq_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160; x = vshrq_n_s8(<a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, vsubq_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; x = vshrq_n_s8(<a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, vsubq_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160; <span class="keywordflow">return</span> vshlq_s8(x, shift_value2);</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020519<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010020520<div class="ttc" id="namespacearm__compute_xhtml_adbd4df93ed00fcda54f91e669ea2be04"><div class="ttname"><a href="namespacearm__compute.xhtml#adbd4df93ed00fcda54f91e669ea2be04">arm_compute::vdupq_n_qs8</a></div><div class="ttdeci">qint8x16_t vdupq_n_qs8(qint8_t a)</div><div class="ttdoc">8 bit fixed point vector duplicate (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00243">NEFixedPoint.inl:243</a></div></div>
20521<div class="ttc" id="namespacearm__compute_xhtml_a031b17d4102856aa4d6bf7ebf83bf0ab"><div class="ttname"><a href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">arm_compute::vmulq_qs8</a></div><div class="ttdeci">qint8x16_t vmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00513">NEFixedPoint.inl:513</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020522</div><!-- fragment -->
20523</div>
20524</div>
20525<a class="anchor" id="a4cd20897bfcf3b38125c1b1cd3642d2f"></a>
20526<div class="memitem">
20527<div class="memproto">
20528<table class="mlabels">
20529 <tr>
20530 <td class="mlabels-left">
20531 <table class="memname">
20532 <tr>
20533 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vld1_dup_qs16 </td>
20534 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020535 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010020536 <td class="paramname"><em>addr</em></td><td>)</td>
20537 <td></td>
20538 </tr>
20539 </table>
20540 </td>
20541 <td class="mlabels-right">
20542<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20543 </tr>
20544</table>
20545</div><div class="memdoc">
20546
20547<p>Load all lanes of 16 bit fixed point vector with same value from memory (4 elements) </p>
20548<dl class="params"><dt>Parameters</dt><dd>
20549 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020550 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address of the 16 bit fixed point scalar value to load</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +010020551 </table>
20552 </dd>
20553</dl>
20554<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vector (4 elements) </dd></dl>
20555
Kaizenbf8b01d2017-10-12 14:26:51 +010020556<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00178">178</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020557<div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> vld1_dup_s16(addr);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010020558</div>
20559</div>
20560<a class="anchor" id="ada853a8e19c80626633d95392d2b4a8b"></a>
20561<div class="memitem">
20562<div class="memproto">
20563<table class="mlabels">
20564 <tr>
20565 <td class="mlabels-left">
20566 <table class="memname">
20567 <tr>
20568 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vld1_dup_qs8 </td>
20569 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020570 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020571 <td class="paramname"><em>addr</em></td><td>)</td>
20572 <td></td>
20573 </tr>
20574 </table>
20575 </td>
20576 <td class="mlabels-right">
20577<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20578 </tr>
20579</table>
20580</div><div class="memdoc">
20581
20582<p>Load all lanes of 8 bit fixed point vector with same value from memory (8 elements) </p>
20583<dl class="params"><dt>Parameters</dt><dd>
20584 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020585 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address of the 8 bit fixed point scalar value to load</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020586 </table>
20587 </dd>
20588</dl>
20589<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (8 elements) </dd></dl>
20590
Kaizenbf8b01d2017-10-12 14:26:51 +010020591<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00173">173</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020592
Anthony Barbierf45d5a92018-01-24 16:23:15 +000020593<p>Referenced by <a class="el" href="_n_e_direct_convolution_detail_8h_source.xhtml#l00065">arm_compute::detail::load_matrix_row()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020594<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> vld1_dup_s8(addr);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010020595</div>
20596</div>
20597<a class="anchor" id="a1470ca9d692f773f33ddbd9b3a37f1f9"></a>
20598<div class="memitem">
20599<div class="memproto">
20600<table class="mlabels">
20601 <tr>
20602 <td class="mlabels-left">
20603 <table class="memname">
20604 <tr>
20605 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vld1_qs16 </td>
20606 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020607 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020608 <td class="paramname"><em>addr</em></td><td>)</td>
20609 <td></td>
20610 </tr>
20611 </table>
20612 </td>
20613 <td class="mlabels-right">
20614<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20615 </tr>
20616</table>
20617</div><div class="memdoc">
20618
20619<p>Load a single 16 bit fixed point vector from memory (4 elements) </p>
20620<dl class="params"><dt>Parameters</dt><dd>
20621 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020622 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address of the 16 bit fixed point vector to load</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020623 </table>
20624 </dd>
20625</dl>
20626<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vector (4 elements) </dd></dl>
20627
Kaizenbf8b01d2017-10-12 14:26:51 +010020628<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00158">158</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020629<div class="fragment"><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> vld1_s16(addr);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010020630</div>
20631</div>
20632<a class="anchor" id="a77ef79482edac98140bbdfaeffb78b8f"></a>
20633<div class="memitem">
20634<div class="memproto">
20635<table class="mlabels">
20636 <tr>
20637 <td class="mlabels-left">
20638 <table class="memname">
20639 <tr>
20640 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vld1_qs8 </td>
20641 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020642 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020643 <td class="paramname"><em>addr</em></td><td>)</td>
20644 <td></td>
20645 </tr>
20646 </table>
20647 </td>
20648 <td class="mlabels-right">
20649<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20650 </tr>
20651</table>
20652</div><div class="memdoc">
20653
20654<p>Load a single 8 bit fixed point vector from memory (8 elements) </p>
20655<dl class="params"><dt>Parameters</dt><dd>
20656 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020657 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address of the 8 bit fixed point vector to load</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020658 </table>
20659 </dd>
20660</dl>
20661<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (8 elements) </dd></dl>
20662
Kaizenbf8b01d2017-10-12 14:26:51 +010020663<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00153">153</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020664
Anthony Barbierf45d5a92018-01-24 16:23:15 +000020665<p>Referenced by <a class="el" href="_n_e_direct_convolution_detail_8h_source.xhtml#l00229">arm_compute::detail::convolve_3x3&lt; 1 &gt;()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020666<div class="fragment"><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> vld1_s8(addr);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010020667</div>
20668</div>
20669<a class="anchor" id="aa3b4b5dc205a2edb9dd2f08b0dbbf3e7"></a>
20670<div class="memitem">
20671<div class="memproto">
20672<table class="mlabels">
20673 <tr>
20674 <td class="mlabels-left">
20675 <table class="memname">
20676 <tr>
20677 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vld1q_dup_qs16 </td>
20678 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020679 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010020680 <td class="paramname"><em>addr</em></td><td>)</td>
20681 <td></td>
20682 </tr>
20683 </table>
20684 </td>
20685 <td class="mlabels-right">
20686<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20687 </tr>
20688</table>
20689</div><div class="memdoc">
20690
20691<p>Load all lanes of 16 bit fixed point vector with same value from memory (8 elements) </p>
20692<dl class="params"><dt>Parameters</dt><dd>
20693 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020694 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address of the 16 bit fixed point scalar value to load</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +010020695 </table>
20696 </dd>
20697</dl>
20698<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vector (8 elements) </dd></dl>
20699
Kaizenbf8b01d2017-10-12 14:26:51 +010020700<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00188">188</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020701<div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;{</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> vld1q_dup_s16(addr);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010020702</div>
20703</div>
20704<a class="anchor" id="ad988b528a38525b8ceca56ed8d09c801"></a>
20705<div class="memitem">
20706<div class="memproto">
20707<table class="mlabels">
20708 <tr>
20709 <td class="mlabels-left">
20710 <table class="memname">
20711 <tr>
20712 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vld1q_dup_qs8 </td>
20713 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020714 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020715 <td class="paramname"><em>addr</em></td><td>)</td>
20716 <td></td>
20717 </tr>
20718 </table>
20719 </td>
20720 <td class="mlabels-right">
20721<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20722 </tr>
20723</table>
20724</div><div class="memdoc">
20725
20726<p>Load all lanes of 8 bit fixed point vector with same value from memory (16 elements) </p>
20727<dl class="params"><dt>Parameters</dt><dd>
20728 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020729 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address of the 8 bit fixed point scalar value to load</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020730 </table>
20731 </dd>
20732</dl>
20733<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (16 elements) </dd></dl>
20734
Kaizenbf8b01d2017-10-12 14:26:51 +010020735<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00183">183</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020736<div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> vld1q_dup_s8(addr);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010020737</div>
20738</div>
20739<a class="anchor" id="aaa2cfaf59eb25ffb975bea87844e23c6"></a>
20740<div class="memitem">
20741<div class="memproto">
20742<table class="mlabels">
20743 <tr>
20744 <td class="mlabels-left">
20745 <table class="memname">
20746 <tr>
20747 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vld1q_qs16 </td>
20748 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020749 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020750 <td class="paramname"><em>addr</em></td><td>)</td>
20751 <td></td>
20752 </tr>
20753 </table>
20754 </td>
20755 <td class="mlabels-right">
20756<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20757 </tr>
20758</table>
20759</div><div class="memdoc">
20760
20761<p>Load a single 16 bit fixed point vector from memory (8 elements) </p>
20762<dl class="params"><dt>Parameters</dt><dd>
20763 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020764 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address of the 16 bit fixed point vector to load</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020765 </table>
20766 </dd>
20767</dl>
20768<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vector (8 elements) </dd></dl>
20769
Kaizenbf8b01d2017-10-12 14:26:51 +010020770<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00168">168</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020771<div class="fragment"><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> vld1q_s16(addr);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010020772</div>
20773</div>
20774<a class="anchor" id="aba22755f7d41ffc62e23e5594751ecaa"></a>
20775<div class="memitem">
20776<div class="memproto">
20777<table class="mlabels">
20778 <tr>
20779 <td class="mlabels-left">
20780 <table class="memname">
20781 <tr>
20782 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vld1q_qs8 </td>
20783 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020784 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020785 <td class="paramname"><em>addr</em></td><td>)</td>
20786 <td></td>
20787 </tr>
20788 </table>
20789 </td>
20790 <td class="mlabels-right">
20791<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20792 </tr>
20793</table>
20794</div><div class="memdoc">
20795
20796<p>Load a single 8 bit fixed point vector from memory (16 elements) </p>
20797<dl class="params"><dt>Parameters</dt><dd>
20798 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020799 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address of the 8 bit fixed point vector to load</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020800 </table>
20801 </dd>
20802</dl>
20803<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (16 elements) </dd></dl>
20804
Kaizenbf8b01d2017-10-12 14:26:51 +010020805<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00163">163</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020806<div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;{</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> vld1q_s8(addr);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010020807</div>
20808</div>
Kaizen8938bd32017-09-28 14:38:23 +010020809<a class="anchor" id="a8bab58697ee7d7df117384a05d4e2f92"></a>
20810<div class="memitem">
20811<div class="memproto">
20812 <table class="memname">
20813 <tr>
20814 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a3c4099e91913f28017e1f57b8e5cbf9f">qint16x8x2_t</a> arm_compute::vld2q_qs16 </td>
20815 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020816 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010020817 <td class="paramname"><em>addr</em></td><td>)</td>
20818 <td></td>
20819 </tr>
20820 </table>
20821</div><div class="memdoc">
20822
20823<p>Load two 16 bit fixed point vectors from memory (8x2 elements) </p>
20824<dl class="params"><dt>Parameters</dt><dd>
20825 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020826 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address of the 16 bit fixed point vectors to load</td></tr>
Kaizen8938bd32017-09-28 14:38:23 +010020827 </table>
20828 </dd>
20829</dl>
20830<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vectors (8x2 elements) </dd></dl>
20831
20832</div>
20833</div>
20834<a class="anchor" id="a1c9f2b26b64fd697fa1b22450521876d"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020835<div class="memitem">
20836<div class="memproto">
20837<table class="mlabels">
20838 <tr>
20839 <td class="mlabels-left">
20840 <table class="memname">
20841 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010020842 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a3c4099e91913f28017e1f57b8e5cbf9f">qint16x8x2_t</a> arm_compute::vld2q_qs16 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020843 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020844 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010020845 <td class="paramname"><em>addr</em></td><td>)</td>
20846 <td></td>
20847 </tr>
20848 </table>
20849 </td>
20850 <td class="mlabels-right">
20851<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20852 </tr>
20853</table>
20854</div><div class="memdoc">
20855
Kaizenbf8b01d2017-10-12 14:26:51 +010020856<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00193">193</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020857<div class="fragment"><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> vld2q_s16(addr);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;}</div></div><!-- fragment -->
Kaizen8938bd32017-09-28 14:38:23 +010020858</div>
20859</div>
20860<a class="anchor" id="ad9e26d94cb0b929e30b88400cd5c60d2"></a>
20861<div class="memitem">
20862<div class="memproto">
20863<table class="mlabels">
20864 <tr>
20865 <td class="mlabels-left">
20866 <table class="memname">
20867 <tr>
20868 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vlog_qs16 </td>
20869 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020870 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020871 <td class="paramname"><em>a</em>, </td>
20872 </tr>
20873 <tr>
20874 <td class="paramkey"></td>
20875 <td></td>
20876 <td class="paramtype">int&#160;</td>
20877 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
20878 </tr>
20879 <tr>
20880 <td></td>
20881 <td>)</td>
20882 <td></td><td></td>
20883 </tr>
20884 </table>
20885 </td>
20886 <td class="mlabels-right">
20887<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20888 </tr>
20889</table>
20890</div><div class="memdoc">
20891
Kaizen8938bd32017-09-28 14:38:23 +010020892<p>Calculate logarithm fixed point 16 bit (4 elements) </p>
20893<dl class="params"><dt>Parameters</dt><dd>
20894 <table class="params">
20895 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
20896 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
20897 </table>
20898 </dd>
20899</dl>
20900<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit logarithm. </dd></dl>
20901
Kaizenbf8b01d2017-10-12 14:26:51 +010020902<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01585">1585</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010020903
Kaizenbf8b01d2017-10-12 14:26:51 +010020904<p>References <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00496">vmul_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01103">vrecip_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020905<div class="fragment"><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;{</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_one = vdup_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_fifteen_dec = vdup_n_s16(15);</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_ln2 = vdup_n_s16(0x58B9 &gt;&gt; (15 - fixed_point_position)); <span class="comment">// ln(2)</span></div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; <span class="comment">// If 0 &lt; a &lt; 1, calculate log(1/x)</span></div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; uint16x4_t calc_reciprocal = vclt_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_one);</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> recip = vdup_n_s16(0);</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; recip = vbsl_s16(calc_reciprocal, recip, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; <span class="comment">// Calculate reciprocal</span></div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; recip = <a class="code" href="namespacearm__compute.xhtml#a8e14017f1276f4a4e14078d93ed692bd">vrecip_qs16</a>(recip, fixed_point_position);</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> = vbsl_s16(calc_reciprocal, recip, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; <span class="comment">// Get decimal part of a</span></div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value = vdup_n_s16(-fixed_point_position);</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> dec_a = vshl_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value); <span class="comment">// a &gt;&gt; fixed_point_position</span></div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; <span class="comment">// Get exponent of 2^n which is equal or less than dec_a</span></div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; shift_value = vsub_s16(const_fifteen_dec, vclz_s16(dec_a));</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; <span class="comment">// Get x to range (1, 2]</span></div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value_neg = vneg_s16(shift_value);</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> temp = vsub_s16(vrshl_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value_neg), const_one);</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = vmul_s16(shift_value, const_one);</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> poly = vtaylor_poly_qs16&lt;true&gt;(temp, fixed_point_position);</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; poly = <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(vadd_s16(poly, sum), const_ln2, fixed_point_position);</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="comment">// Set negative value for 0 &lt; a &lt; 1</span></div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; poly = vbsl_s16(calc_reciprocal, vneg_s16(poly), poly);</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020906<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>
Kaizenbf8b01d2017-10-12 14:26:51 +010020907<div class="ttc" id="namespacearm__compute_xhtml_ac1b67e3283a1cae4d57b7f64137f5f5c"><div class="ttname"><a href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">arm_compute::vmul_qs16</a></div><div class="ttdeci">qint16x4_t vmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00496">NEFixedPoint.inl:496</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020908<div class="ttc" id="namespacearm__compute_xhtml_a82c56f0856f56d430393e6a00baee983"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">arm_compute::qint16x4_t</a></div><div class="ttdeci">int16x4_t qint16x4_t</div><div class="ttdoc">16 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00041">NEFixedPoint.h:41</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010020909<div class="ttc" id="namespacearm__compute_xhtml_a8e14017f1276f4a4e14078d93ed692bd"><div class="ttname"><a href="namespacearm__compute.xhtml#a8e14017f1276f4a4e14078d93ed692bd">arm_compute::vrecip_qs16</a></div><div class="ttdeci">qint16x4_t vrecip_qs16(qint16x4_t a, int fixed_point_position)</div><div class="ttdoc">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01103">NEFixedPoint.inl:1103</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020910</div><!-- fragment -->
20911</div>
20912</div>
20913<a class="anchor" id="a475d617b2ee92ec39588e6d6e488471a"></a>
20914<div class="memitem">
20915<div class="memproto">
20916<table class="mlabels">
20917 <tr>
20918 <td class="mlabels-left">
20919 <table class="memname">
20920 <tr>
20921 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vlog_qs8 </td>
20922 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020923 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010020924 <td class="paramname"><em>a</em>, </td>
20925 </tr>
20926 <tr>
20927 <td class="paramkey"></td>
20928 <td></td>
20929 <td class="paramtype">int&#160;</td>
20930 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
20931 </tr>
20932 <tr>
20933 <td></td>
20934 <td>)</td>
20935 <td></td><td></td>
20936 </tr>
20937 </table>
20938 </td>
20939 <td class="mlabels-right">
20940<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20941 </tr>
20942</table>
20943</div><div class="memdoc">
20944
20945<p>Calculate logarithm fixed point 8 bit (8 elements) </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020946<dl class="params"><dt>Parameters</dt><dd>
20947 <table class="params">
20948 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
20949 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
20950 </table>
20951 </dd>
20952</dl>
20953<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit logarithm. </dd></dl>
20954
Kaizenbf8b01d2017-10-12 14:26:51 +010020955<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01546">1546</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020956
Kaizenbf8b01d2017-10-12 14:26:51 +010020957<p>References <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00479">vmul_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01077">vrecip_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000020958<div class="fragment"><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;{</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_one = vdup_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_seven_dec = vdup_n_s8(7);</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_ln2 = vdup_n_s8(0x58 &gt;&gt; (7 - fixed_point_position)); <span class="comment">// ln(2)</span></div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; <span class="comment">// If 0 &lt; a &lt; 1, calculate log(1/x)</span></div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; uint8x8_t calc_reciprocal = vclt_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_one);</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> recip = vdup_n_s8(0);</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; recip = vbsl_s8(calc_reciprocal, recip, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; <span class="comment">// Calculate reciprocal</span></div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; recip = <a class="code" href="namespacearm__compute.xhtml#aa24b270b0193ad8983dfecd6105c4936">vrecip_qs8</a>(recip, fixed_point_position);</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> = vbsl_s8(calc_reciprocal, recip, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; <span class="comment">// Get decimal part of a</span></div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value = vdup_n_s8(-fixed_point_position);</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> dec_a = vshl_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value); <span class="comment">// a &gt;&gt; fixed_point_position</span></div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; <span class="comment">// Get exponent of 2^n which is equal or less than dec_a</span></div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; shift_value = vsub_s8(const_seven_dec, vclz_s8(dec_a));</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; <span class="comment">// Get x to range (1, 2]</span></div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value_neg = vneg_s8(shift_value);</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> temp = vsub_s8(vrshl_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value_neg), const_one);</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = vmul_s8(shift_value, const_one);</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> poly = vtaylor_poly_qs8&lt;true&gt;(temp, fixed_point_position);</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; poly = <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(vadd_s8(poly, sum), const_ln2, fixed_point_position);</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; <span class="comment">// Set negative value for 0 &lt; a &lt; 1</span></div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; poly = vbsl_s8(calc_reciprocal, vneg_s8(poly), poly);</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010020959<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>
Kaizenbf8b01d2017-10-12 14:26:51 +010020960<div class="ttc" id="namespacearm__compute_xhtml_afccf1305c480f2338af8925bba6b54cd"><div class="ttname"><a href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">arm_compute::vmul_qs8</a></div><div class="ttdeci">qint8x8_t vmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00479">NEFixedPoint.inl:479</a></div></div>
20961<div class="ttc" id="namespacearm__compute_xhtml_aa24b270b0193ad8983dfecd6105c4936"><div class="ttname"><a href="namespacearm__compute.xhtml#aa24b270b0193ad8983dfecd6105c4936">arm_compute::vrecip_qs8</a></div><div class="ttdeci">qint8x8_t vrecip_qs8(qint8x8_t a, int fixed_point_position)</div><div class="ttdoc">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01077">NEFixedPoint.inl:1077</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010020962<div class="ttc" id="namespacearm__compute_xhtml_a16a1bee14f1db073f75caa76dacf5078"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">arm_compute::qint8x8_t</a></div><div class="ttdeci">int8x8_t qint8x8_t</div><div class="ttdoc">8 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00033">NEFixedPoint.h:33</a></div></div>
20963</div><!-- fragment -->
20964</div>
20965</div>
20966<a class="anchor" id="a37a3e03a22ad160a2e9e5c133607e020"></a>
20967<div class="memitem">
20968<div class="memproto">
20969<table class="mlabels">
20970 <tr>
20971 <td class="mlabels-left">
20972 <table class="memname">
20973 <tr>
20974 <td class="memname">float32x4_t vlogq_f32 </td>
20975 <td>(</td>
20976 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000020977 <td class="paramname"><em>x</em></td><td>)</td>
20978 <td></td>
20979 </tr>
20980 </table>
20981 </td>
20982 <td class="mlabels-right">
20983<span class="mlabels"><span class="mlabel">inline</span></span> </td>
20984 </tr>
20985</table>
20986</div><div class="memdoc">
20987
20988<p>Calculate logarithm. </p>
20989<dl class="params"><dt>Parameters</dt><dd>
20990 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010020991 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input vector value in F32 format.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000020992 </table>
20993 </dd>
20994</dl>
20995<dl class="section return"><dt>Returns</dt><dd>The calculated logarithm. </dd></dl>
20996
Kaizen8938bd32017-09-28 14:38:23 +010020997<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00134">134</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000020998
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020999<p>References <a class="el" href="_n_e_math_8inl_source.xhtml#l00101">vtaylor_polyq_f32()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000021000
Kaizen8938bd32017-09-28 14:38:23 +010021001<p>Referenced by <a class="el" href="_n_e_math_8inl_source.xhtml#l00167">vpowq_f32()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021002<div class="fragment"><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> int32x4_t CONST_127 = vdupq_n_s32(127); <span class="comment">// 127</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> float32x4_t CONST_LN2 = vdupq_n_f32(0.6931471805f); <span class="comment">// ln(2)</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="comment">// Extract exponent</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; int32x4_t m = vsubq_s32(vreinterpretq_s32_u32(vshrq_n_u32(vreinterpretq_u32_f32(x), 23)), CONST_127);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; float32x4_t val = vreinterpretq_f32_s32(vsubq_s32(vreinterpretq_s32_f32(x), vshlq_n_s32(m, 23)));</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; float32x4_t poly = <a class="code" href="namespacearm__compute.xhtml#a4fa76a98dce5ed1b655ff840f2ce6e57">vtaylor_polyq_f32</a>(val, <a class="code" href="namespacearm__compute.xhtml#a48fb9cf404e8f7043235bf14105c9793">log_tab</a>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; poly = vmlaq_f32(poly, vcvtq_f32_s32(m), CONST_LN2);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a4fa76a98dce5ed1b655ff840f2ce6e57"><div class="ttname"><a href="namespacearm__compute.xhtml#a4fa76a98dce5ed1b655ff840f2ce6e57">arm_compute::vtaylor_polyq_f32</a></div><div class="ttdeci">float32x4_t vtaylor_polyq_f32(float32x4_t x, const std::array&lt; float32x4_t, 8 &gt; &amp;coeffs)</div><div class="ttdoc">Perform a 7th degree polynomial approximation using Estrin&amp;#39;s method. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_math_8inl_source.xhtml#l00101">NEMath.inl:101</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021003<div class="ttc" id="namespacearm__compute_xhtml_a48fb9cf404e8f7043235bf14105c9793"><div class="ttname"><a href="namespacearm__compute.xhtml#a48fb9cf404e8f7043235bf14105c9793">arm_compute::log_tab</a></div><div class="ttdeci">const std::array&lt; float32x4_t, 8 &gt; log_tab</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_math_8inl_source.xhtml#l00043">NEMath.inl:43</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000021004</div><!-- fragment -->
21005</div>
21006</div>
Kaizen8938bd32017-09-28 14:38:23 +010021007<a class="anchor" id="a756ac701185cfc4924443db164fd65ae"></a>
21008<div class="memitem">
21009<div class="memproto">
21010<table class="mlabels">
21011 <tr>
21012 <td class="mlabels-left">
21013 <table class="memname">
21014 <tr>
21015 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vlogq_qs16 </td>
21016 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021017 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021018 <td class="paramname"><em>a</em>, </td>
21019 </tr>
21020 <tr>
21021 <td class="paramkey"></td>
21022 <td></td>
21023 <td class="paramtype">int&#160;</td>
21024 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
21025 </tr>
21026 <tr>
21027 <td></td>
21028 <td>)</td>
21029 <td></td><td></td>
21030 </tr>
21031 </table>
21032 </td>
21033 <td class="mlabels-right">
21034<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21035 </tr>
21036</table>
21037</div><div class="memdoc">
21038
21039<p>Calculate logarithm fixed point 16 bit (8 elements) </p>
21040<dl class="params"><dt>Parameters</dt><dd>
21041 <table class="params">
21042 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
21043 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
21044 </table>
21045 </dd>
21046</dl>
21047<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit logarithm. </dd></dl>
21048
Kaizenbf8b01d2017-10-12 14:26:51 +010021049<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01663">1663</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010021050
Kaizenbf8b01d2017-10-12 14:26:51 +010021051<p>References <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00607">vqmulq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01265">vqrecipq_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010021052
Kaizenbf8b01d2017-10-12 14:26:51 +010021053<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01983">vqpowq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021054<div class="fragment"><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;{</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_one = vdupq_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_fifteen_dec = vdupq_n_s16(15);</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_ln2 = vdupq_n_s16(0x58B9 &gt;&gt; (15 - fixed_point_position)); <span class="comment">// ln(2)</span></div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; <span class="comment">// If 0 &lt; a &lt; 1, calculate log(1/x)</span></div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; uint16x8_t calc_reciprocal = vcltq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_one);</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> recip = vdupq_n_s16(0);</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; recip = vbslq_s16(calc_reciprocal, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, recip);</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; <span class="comment">// Calculate reciprocal</span></div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; recip = <a class="code" href="namespacearm__compute.xhtml#a6a368d809128ff6bce989cda02c536d8">vqrecipq_qs16</a>(recip, fixed_point_position);</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> = vbslq_s16(calc_reciprocal, recip, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; <span class="comment">// Get decimal part of a</span></div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> dec_a = vshlq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value); <span class="comment">// a &gt;&gt; fixed_point_position</span></div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; <span class="comment">// Get exponent of 2^n which is equal or less than dec_a</span></div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; shift_value = vqsubq_s16(const_fifteen_dec, vclzq_s16(dec_a));</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; <span class="comment">// Get x to range (1, 2]</span></div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value_neg = vnegq_s16(shift_value);</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> temp = vqsubq_s16(vrshlq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value_neg), const_one);</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = vmulq_s16(shift_value, const_one);</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> poly = vtaylor_polyq_qs16&lt;true&gt;(temp, fixed_point_position);</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; poly = <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(vqaddq_s16(poly, sum), const_ln2, fixed_point_position);</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; <span class="comment">// Set negative value for 0 &lt; a &lt; 1</span></div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; poly = vbslq_s16(calc_reciprocal, vnegq_s16(poly), poly);</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021055<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>
Kaizenbf8b01d2017-10-12 14:26:51 +010021056<div class="ttc" id="namespacearm__compute_xhtml_a982d792d366430a954d96e8575d3c313"><div class="ttname"><a href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">arm_compute::vqmulq_qs16</a></div><div class="ttdeci">qint16x8_t vqmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00607">NEFixedPoint.inl:607</a></div></div>
21057<div class="ttc" id="namespacearm__compute_xhtml_a6a368d809128ff6bce989cda02c536d8"><div class="ttname"><a href="namespacearm__compute.xhtml#a6a368d809128ff6bce989cda02c536d8">arm_compute::vqrecipq_qs16</a></div><div class="ttdeci">qint16x8_t vqrecipq_qs16(qint16x8_t a, int fixed_point_position)</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01265">NEFixedPoint.inl:1265</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021058<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
21059</div><!-- fragment -->
21060</div>
21061</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021062<a class="anchor" id="a340b9cd5ad88f1a821498c6fad80e82c"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000021063<div class="memitem">
21064<div class="memproto">
21065<table class="mlabels">
21066 <tr>
21067 <td class="mlabels-left">
21068 <table class="memname">
21069 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021070 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vlogq_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000021071 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021072 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021073 <td class="paramname"><em>a</em>, </td>
21074 </tr>
21075 <tr>
21076 <td class="paramkey"></td>
21077 <td></td>
21078 <td class="paramtype">int&#160;</td>
21079 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
21080 </tr>
21081 <tr>
21082 <td></td>
21083 <td>)</td>
21084 <td></td><td></td>
21085 </tr>
21086 </table>
21087 </td>
21088 <td class="mlabels-right">
21089<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21090 </tr>
21091</table>
21092</div><div class="memdoc">
21093
21094<p>Calculate logarithm fixed point 16bit (16 elements) </p>
21095<dl class="params"><dt>Parameters</dt><dd>
21096 <table class="params">
21097 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
21098 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
21099 </table>
21100 </dd>
21101</dl>
21102<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit logarithm. </dd></dl>
21103
Kaizenbf8b01d2017-10-12 14:26:51 +010021104<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01624">1624</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021105
Kaizenbf8b01d2017-10-12 14:26:51 +010021106<p>References <a class="el" href="reduction__operation_8cl_source.xhtml#l00052">sum()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00513">vmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01183">vrecipq_qs8()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021107
Kaizenbf8b01d2017-10-12 14:26:51 +010021108<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01978">vqpowq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021109<div class="fragment"><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;{</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_one = vdupq_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_seven_dec = vdupq_n_s8(7);</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_ln2 = vdupq_n_s8(0x58 &gt;&gt; (7 - fixed_point_position)); <span class="comment">// ln(2)</span></div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; <span class="comment">// If 0 &lt; a &lt; 1, calculate log(1/x)</span></div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; uint8x16_t calc_reciprocal = vcltq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_one);</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> recip = vdupq_n_s8(0);</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; recip = vbslq_s8(calc_reciprocal, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, recip);</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; <span class="comment">// Calculate reciprocal</span></div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160; recip = <a class="code" href="namespacearm__compute.xhtml#abbeb1dc4834fb4e97cf94d702d0e0f91">vrecipq_qs8</a>(recip, fixed_point_position);</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> = vbslq_s8(calc_reciprocal, recip, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; <span class="comment">// Get decimal part of a</span></div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value = vdupq_n_s8(-fixed_point_position);</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> dec_a = vshlq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value); <span class="comment">// a &gt;&gt; fixed_point_position</span></div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; <span class="comment">// Get exponent of 2^n which is equal or less than dec_a</span></div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; shift_value = vsubq_s8(const_seven_dec, vclzq_s8(dec_a));</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <span class="comment">// Get x to range (1, 2]</span></div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value_neg = vnegq_s8(shift_value);</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> temp = vsubq_s8(vrshlq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value_neg), const_one);</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> = vmulq_s8(shift_value, const_one);</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> poly = vtaylor_polyq_qs8&lt;true&gt;(temp, fixed_point_position);</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; poly = <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(vaddq_s8(poly, sum), const_ln2, fixed_point_position);</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; <span class="comment">// Set negative value for 0 &lt; a &lt; 1</span></div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; poly = vbslq_s8(calc_reciprocal, vnegq_s8(poly), poly);</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021110<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>
21111<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010021112<div class="ttc" id="namespacearm__compute_xhtml_a031b17d4102856aa4d6bf7ebf83bf0ab"><div class="ttname"><a href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">arm_compute::vmulq_qs8</a></div><div class="ttdeci">qint8x16_t vmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00513">NEFixedPoint.inl:513</a></div></div>
21113<div class="ttc" id="namespacearm__compute_xhtml_abbeb1dc4834fb4e97cf94d702d0e0f91"><div class="ttname"><a href="namespacearm__compute.xhtml#abbeb1dc4834fb4e97cf94d702d0e0f91">arm_compute::vrecipq_qs8</a></div><div class="ttdeci">qint8x16_t vrecipq_qs8(qint8x16_t a, int fixed_point_position)</div><div class="ttdoc">Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01183">NEFixedPoint.inl:1183</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021114</div><!-- fragment -->
21115</div>
21116</div>
21117<a class="anchor" id="a4e6c2516e84e006167b046690d9a0c84"></a>
21118<div class="memitem">
21119<div class="memproto">
21120<table class="mlabels">
21121 <tr>
21122 <td class="mlabels-left">
21123 <table class="memname">
21124 <tr>
21125 <td class="memname">float32x4x2_t vmax2q_f32 </td>
21126 <td>(</td>
21127 <td class="paramtype">float32x4x2_t&#160;</td>
21128 <td class="paramname"><em>a</em>, </td>
21129 </tr>
21130 <tr>
21131 <td class="paramkey"></td>
21132 <td></td>
21133 <td class="paramtype">float32x4x2_t&#160;</td>
21134 <td class="paramname"><em>b</em>&#160;</td>
21135 </tr>
21136 <tr>
21137 <td></td>
21138 <td>)</td>
21139 <td></td><td></td>
21140 </tr>
21141 </table>
21142 </td>
21143 <td class="mlabels-right">
21144<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21145 </tr>
21146</table>
21147</div><div class="memdoc">
21148
21149<p>Compute lane-by-lane maximum between elements of a float vector with 4x2 elements. </p>
21150<dl class="params"><dt>Parameters</dt><dd>
21151 <table class="params">
21152 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Float input vector </td></tr>
21153 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Float input vector</td></tr>
21154 </table>
21155 </dd>
21156</dl>
21157<dl class="section return"><dt>Returns</dt><dd>The lane-by-lane maximum -&gt; float32x4x2 </dd></dl>
21158
Kaizenbf8b01d2017-10-12 14:26:51 +010021159<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01988">1988</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021160<div class="fragment"><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;{</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; float32x4x2_t res =</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; {</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; {</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; vmaxq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[0], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>.val[0]),</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; vmaxq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[1], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>.val[1])</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; }</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; };</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
21161<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021162</div><!-- fragment -->
21163</div>
21164</div>
21165<a class="anchor" id="a5db8c0cf0dba918904733f0c9a8bedc8"></a>
21166<div class="memitem">
21167<div class="memproto">
21168<table class="mlabels">
21169 <tr>
21170 <td class="mlabels-left">
21171 <table class="memname">
21172 <tr>
21173 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vmax_qs16 </td>
21174 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021175 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021176 <td class="paramname"><em>a</em>, </td>
21177 </tr>
21178 <tr>
21179 <td class="paramkey"></td>
21180 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021181 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021182 <td class="paramname"><em>b</em>&#160;</td>
21183 </tr>
21184 <tr>
21185 <td></td>
21186 <td>)</td>
21187 <td></td><td></td>
21188 </tr>
21189 </table>
21190 </td>
21191 <td class="mlabels-right">
21192<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21193 </tr>
21194</table>
21195</div><div class="memdoc">
21196
21197<p>16 bit fixed point vector max (4 elements) </p>
21198<dl class="params"><dt>Parameters</dt><dd>
21199 <table class="params">
21200 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
21201 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
21202 </table>
21203 </dd>
21204</dl>
21205<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector max operation </dd></dl>
21206
Kaizenbf8b01d2017-10-12 14:26:51 +010021207<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00329">329</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021208<div class="fragment"><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;{</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> vmax_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
21209<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021210</div><!-- fragment -->
21211</div>
21212</div>
21213<a class="anchor" id="a3e913e95e286244f24f9a381909c8b26"></a>
21214<div class="memitem">
21215<div class="memproto">
21216<table class="mlabels">
21217 <tr>
21218 <td class="mlabels-left">
21219 <table class="memname">
21220 <tr>
21221 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vmax_qs8 </td>
21222 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021223 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021224 <td class="paramname"><em>a</em>, </td>
21225 </tr>
21226 <tr>
21227 <td class="paramkey"></td>
21228 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021229 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021230 <td class="paramname"><em>b</em>&#160;</td>
21231 </tr>
21232 <tr>
21233 <td></td>
21234 <td>)</td>
21235 <td></td><td></td>
21236 </tr>
21237 </table>
21238 </td>
21239 <td class="mlabels-right">
21240<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21241 </tr>
21242</table>
21243</div><div class="memdoc">
21244
21245<p>8 bit fixed point vector max (8 elements) </p>
21246<dl class="params"><dt>Parameters</dt><dd>
21247 <table class="params">
21248 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
21249 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
21250 </table>
21251 </dd>
21252</dl>
21253<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector max operation </dd></dl>
21254
Kaizenbf8b01d2017-10-12 14:26:51 +010021255<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00324">324</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021256<div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> vmax_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
21257<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021258</div><!-- fragment -->
21259</div>
21260</div>
21261<a class="anchor" id="a952d1f0a7f47167985554aed39b737ac"></a>
21262<div class="memitem">
21263<div class="memproto">
21264<table class="mlabels">
21265 <tr>
21266 <td class="mlabels-left">
21267 <table class="memname">
21268 <tr>
21269 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vmaxq_qs16 </td>
21270 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021271 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021272 <td class="paramname"><em>a</em>, </td>
21273 </tr>
21274 <tr>
21275 <td class="paramkey"></td>
21276 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021277 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021278 <td class="paramname"><em>b</em>&#160;</td>
21279 </tr>
21280 <tr>
21281 <td></td>
21282 <td>)</td>
21283 <td></td><td></td>
21284 </tr>
21285 </table>
21286 </td>
21287 <td class="mlabels-right">
21288<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21289 </tr>
21290</table>
21291</div><div class="memdoc">
21292
21293<p>16 bit fixed point vector max (8 elements) </p>
21294<dl class="params"><dt>Parameters</dt><dd>
21295 <table class="params">
21296 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
21297 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
21298 </table>
21299 </dd>
21300</dl>
21301<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector max operation </dd></dl>
21302
Kaizenbf8b01d2017-10-12 14:26:51 +010021303<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00349">349</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021304<div class="fragment"><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;{</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> vmaxq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
21305<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021306</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010021307</div>
21308</div>
21309<a class="anchor" id="a1627f818fb2ca90f7c3880f959030556"></a>
21310<div class="memitem">
21311<div class="memproto">
21312<table class="mlabels">
21313 <tr>
21314 <td class="mlabels-left">
21315 <table class="memname">
21316 <tr>
21317 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vmaxq_qs8 </td>
21318 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021319 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021320 <td class="paramname"><em>a</em>, </td>
21321 </tr>
21322 <tr>
21323 <td class="paramkey"></td>
21324 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021325 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021326 <td class="paramname"><em>b</em>&#160;</td>
21327 </tr>
21328 <tr>
21329 <td></td>
21330 <td>)</td>
21331 <td></td><td></td>
21332 </tr>
21333 </table>
21334 </td>
21335 <td class="mlabels-right">
21336<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21337 </tr>
21338</table>
21339</div><div class="memdoc">
21340
21341<p>8 bit fixed point vector max (16 elements) </p>
21342<dl class="params"><dt>Parameters</dt><dd>
21343 <table class="params">
21344 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
21345 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
21346 </table>
21347 </dd>
21348</dl>
21349<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector max operation </dd></dl>
21350
Kaizenbf8b01d2017-10-12 14:26:51 +010021351<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00334">334</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021352<div class="fragment"><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;{</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> vmaxq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
21353<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021354</div><!-- fragment -->
21355</div>
21356</div>
21357<a class="anchor" id="ac0eb95618787b12b93aeb2f3f101dad2"></a>
21358<div class="memitem">
21359<div class="memproto">
21360<table class="mlabels">
21361 <tr>
21362 <td class="mlabels-left">
21363 <table class="memname">
21364 <tr>
21365 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vmin_qs16 </td>
21366 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021367 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021368 <td class="paramname"><em>a</em>, </td>
21369 </tr>
21370 <tr>
21371 <td class="paramkey"></td>
21372 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021373 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021374 <td class="paramname"><em>b</em>&#160;</td>
21375 </tr>
21376 <tr>
21377 <td></td>
21378 <td>)</td>
21379 <td></td><td></td>
21380 </tr>
21381 </table>
21382 </td>
21383 <td class="mlabels-right">
21384<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21385 </tr>
21386</table>
21387</div><div class="memdoc">
21388
21389<p>16 bit fixed point vector min (4 elements) </p>
21390<dl class="params"><dt>Parameters</dt><dd>
21391 <table class="params">
21392 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
21393 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
21394 </table>
21395 </dd>
21396</dl>
21397<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector max operation </dd></dl>
21398
Kaizenbf8b01d2017-10-12 14:26:51 +010021399<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00359">359</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021400<div class="fragment"><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;{</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> vmin_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
21401<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021402</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010021403</div>
21404</div>
21405<a class="anchor" id="abed4a7c95569e1fa72d0f8bfe5a50c84"></a>
21406<div class="memitem">
21407<div class="memproto">
21408<table class="mlabels">
21409 <tr>
21410 <td class="mlabels-left">
21411 <table class="memname">
21412 <tr>
21413 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vmin_qs8 </td>
21414 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021415 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021416 <td class="paramname"><em>a</em>, </td>
21417 </tr>
21418 <tr>
21419 <td class="paramkey"></td>
21420 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021421 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021422 <td class="paramname"><em>b</em>&#160;</td>
21423 </tr>
21424 <tr>
21425 <td></td>
21426 <td>)</td>
21427 <td></td><td></td>
21428 </tr>
21429 </table>
21430 </td>
21431 <td class="mlabels-right">
21432<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21433 </tr>
21434</table>
21435</div><div class="memdoc">
21436
21437<p>8 bit fixed point vector min (8 elements) </p>
21438<dl class="params"><dt>Parameters</dt><dd>
21439 <table class="params">
21440 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
21441 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
21442 </table>
21443 </dd>
21444</dl>
21445<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector max operation </dd></dl>
21446
Kaizenbf8b01d2017-10-12 14:26:51 +010021447<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00354">354</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021448<div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> vmin_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
21449<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021450</div><!-- fragment -->
21451</div>
21452</div>
21453<a class="anchor" id="a9724e1c56a877ce483c84420297dd638"></a>
21454<div class="memitem">
21455<div class="memproto">
21456<table class="mlabels">
21457 <tr>
21458 <td class="mlabels-left">
21459 <table class="memname">
21460 <tr>
21461 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vminq_qs16 </td>
21462 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021463 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021464 <td class="paramname"><em>a</em>, </td>
21465 </tr>
21466 <tr>
21467 <td class="paramkey"></td>
21468 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021469 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021470 <td class="paramname"><em>b</em>&#160;</td>
21471 </tr>
21472 <tr>
21473 <td></td>
21474 <td>)</td>
21475 <td></td><td></td>
21476 </tr>
21477 </table>
21478 </td>
21479 <td class="mlabels-right">
21480<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21481 </tr>
21482</table>
21483</div><div class="memdoc">
21484
21485<p>16 bit fixed point vector min (8 elements) </p>
21486<dl class="params"><dt>Parameters</dt><dd>
21487 <table class="params">
21488 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
21489 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
21490 </table>
21491 </dd>
21492</dl>
21493<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector min operation </dd></dl>
21494
Kaizenbf8b01d2017-10-12 14:26:51 +010021495<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00379">379</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021496<div class="fragment"><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;{</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">return</span> vminq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
21497<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021498</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010021499</div>
21500</div>
21501<a class="anchor" id="a3b393341c8500b469780137b3548f70b"></a>
21502<div class="memitem">
21503<div class="memproto">
21504<table class="mlabels">
21505 <tr>
21506 <td class="mlabels-left">
21507 <table class="memname">
21508 <tr>
21509 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vminq_qs8 </td>
21510 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021511 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021512 <td class="paramname"><em>a</em>, </td>
21513 </tr>
21514 <tr>
21515 <td class="paramkey"></td>
21516 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021517 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021518 <td class="paramname"><em>b</em>&#160;</td>
21519 </tr>
21520 <tr>
21521 <td></td>
21522 <td>)</td>
21523 <td></td><td></td>
21524 </tr>
21525 </table>
21526 </td>
21527 <td class="mlabels-right">
21528<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21529 </tr>
21530</table>
21531</div><div class="memdoc">
21532
21533<p>8 bit fixed point vector min (16 elements) </p>
21534<dl class="params"><dt>Parameters</dt><dd>
21535 <table class="params">
21536 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
21537 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
21538 </table>
21539 </dd>
21540</dl>
21541<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector min operation </dd></dl>
21542
Kaizenbf8b01d2017-10-12 14:26:51 +010021543<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00364">364</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021544<div class="fragment"><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;{</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> vminq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
21545<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021546</div><!-- fragment -->
21547</div>
21548</div>
21549<a class="anchor" id="a274a6a8a684dd31dbd2a1ebef37b38db"></a>
21550<div class="memitem">
21551<div class="memproto">
21552<table class="mlabels">
21553 <tr>
21554 <td class="mlabels-left">
21555 <table class="memname">
21556 <tr>
21557 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vmla_qs16 </td>
21558 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021559 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021560 <td class="paramname"><em>a</em>, </td>
21561 </tr>
21562 <tr>
21563 <td class="paramkey"></td>
21564 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021565 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021566 <td class="paramname"><em>b</em>, </td>
21567 </tr>
21568 <tr>
21569 <td class="paramkey"></td>
21570 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021571 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021572 <td class="paramname"><em>c</em>, </td>
21573 </tr>
21574 <tr>
21575 <td class="paramkey"></td>
21576 <td></td>
21577 <td class="paramtype">int&#160;</td>
21578 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
21579 </tr>
21580 <tr>
21581 <td></td>
21582 <td>)</td>
21583 <td></td><td></td>
21584 </tr>
21585 </table>
21586 </td>
21587 <td class="mlabels-right">
21588<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21589 </tr>
21590</table>
21591</div><div class="memdoc">
21592
21593<p>16 bit fixed point vector multiply-accumulate (4 elements). </p>
21594<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to <code>a</code> (a + b * c).</p>
21595<dl class="params"><dt>Parameters</dt><dd>
21596 <table class="params">
21597 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector where the result of multiplication must be added to </td></tr>
21598 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
21599 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 16 bit fixed point input vector </td></tr>
21600 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
21601 </table>
21602 </dd>
21603</dl>
21604<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiply-accumulate </dd></dl>
21605
Kaizenbf8b01d2017-10-12 14:26:51 +010021606<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00667">667</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021607<div class="fragment"><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;{</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> tmp = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; tmp = vmlal_s16(tmp, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; tmp = vshlq_s32(tmp, fixed_point_position_s32);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="comment">// Convert back to qint16 and accumulate</span></div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">return</span> vadd_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, vmovn_s32(tmp));</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021608<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000021609<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
21610<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021611</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010021612</div>
21613</div>
21614<a class="anchor" id="a26fd8532b87adbcf27214504c38918e4"></a>
21615<div class="memitem">
21616<div class="memproto">
21617<table class="mlabels">
21618 <tr>
21619 <td class="mlabels-left">
21620 <table class="memname">
21621 <tr>
21622 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vmla_qs8 </td>
21623 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021624 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021625 <td class="paramname"><em>a</em>, </td>
21626 </tr>
21627 <tr>
21628 <td class="paramkey"></td>
21629 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021630 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021631 <td class="paramname"><em>b</em>, </td>
21632 </tr>
21633 <tr>
21634 <td class="paramkey"></td>
21635 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021636 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021637 <td class="paramname"><em>c</em>, </td>
21638 </tr>
21639 <tr>
21640 <td class="paramkey"></td>
21641 <td></td>
21642 <td class="paramtype">int&#160;</td>
21643 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
21644 </tr>
21645 <tr>
21646 <td></td>
21647 <td>)</td>
21648 <td></td><td></td>
21649 </tr>
21650 </table>
21651 </td>
21652 <td class="mlabels-right">
21653<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21654 </tr>
21655</table>
21656</div><div class="memdoc">
21657
21658<p>8 bit fixed point vector multiply-accumulate (8 elements). </p>
21659<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to <code>a</code> (a + b * c).</p>
21660<dl class="params"><dt>Parameters</dt><dd>
21661 <table class="params">
21662 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector where the result of multiplication must be added to </td></tr>
21663 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
21664 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
21665 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
21666 </table>
21667 </dd>
21668</dl>
21669<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate </dd></dl>
21670
Kaizenbf8b01d2017-10-12 14:26:51 +010021671<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00650">650</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021672<div class="fragment"><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;{</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; tmp = vmlal_s8(tmp, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; tmp = vshlq_s16(tmp, fixed_point_position_s16);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="comment">// Convert back to qint8 and accumulate</span></div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">return</span> vadd_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, vmovn_s16(tmp));</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021673<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000021674<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
21675<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021676</div><!-- fragment -->
21677</div>
21678</div>
21679<a class="anchor" id="ae236b9df08e568bb4b1dcc89896cff7e"></a>
21680<div class="memitem">
21681<div class="memproto">
21682<table class="mlabels">
21683 <tr>
21684 <td class="mlabels-left">
21685 <table class="memname">
21686 <tr>
21687 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> vmlal_qs16 </td>
21688 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021689 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021690 <td class="paramname"><em>a</em>, </td>
21691 </tr>
21692 <tr>
21693 <td class="paramkey"></td>
21694 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021695 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021696 <td class="paramname"><em>b</em>, </td>
21697 </tr>
21698 <tr>
21699 <td class="paramkey"></td>
21700 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021701 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021702 <td class="paramname"><em>c</em>, </td>
21703 </tr>
21704 <tr>
21705 <td class="paramkey"></td>
21706 <td></td>
21707 <td class="paramtype">int&#160;</td>
21708 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
21709 </tr>
21710 <tr>
21711 <td></td>
21712 <td>)</td>
21713 <td></td><td></td>
21714 </tr>
21715 </table>
21716 </td>
21717 <td class="mlabels-right">
21718<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21719 </tr>
21720</table>
21721</div><div class="memdoc">
21722
21723<p>16 bit fixed point vector multiply-accumulate long (4 elements). </p>
21724<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to the 32 bit fixed point vector <code>a</code> (a + b * c). 4 elements</p>
21725<dl class="params"><dt>Parameters</dt><dd>
21726 <table class="params">
21727 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 32 bit fixed point input vector where the result of multiplication must be added to </td></tr>
21728 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
21729 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 16 bit fixed point input vector </td></tr>
21730 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
21731 </table>
21732 </dd>
21733</dl>
21734<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiply-accumulate long </dd></dl>
21735
Kaizenbf8b01d2017-10-12 14:26:51 +010021736<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00817">817</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021737<div class="fragment"><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;{</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> tmp = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; tmp = vmlal_s16(tmp, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; tmp = vshlq_s32(tmp, fixed_point_position_s32);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="comment">// Accumulate</span></div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">return</span> vaddq_s32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, tmp);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021738<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000021739<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
21740<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021741</div><!-- fragment -->
21742</div>
21743</div>
21744<a class="anchor" id="a13873b51e98dcb41229ccf911e671693"></a>
21745<div class="memitem">
21746<div class="memproto">
21747<table class="mlabels">
21748 <tr>
21749 <td class="mlabels-left">
21750 <table class="memname">
21751 <tr>
21752 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vmlal_qs8 </td>
21753 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021754 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021755 <td class="paramname"><em>a</em>, </td>
21756 </tr>
21757 <tr>
21758 <td class="paramkey"></td>
21759 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021760 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021761 <td class="paramname"><em>b</em>, </td>
21762 </tr>
21763 <tr>
21764 <td class="paramkey"></td>
21765 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021766 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021767 <td class="paramname"><em>c</em>, </td>
21768 </tr>
21769 <tr>
21770 <td class="paramkey"></td>
21771 <td></td>
21772 <td class="paramtype">int&#160;</td>
21773 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
21774 </tr>
21775 <tr>
21776 <td></td>
21777 <td>)</td>
21778 <td></td><td></td>
21779 </tr>
21780 </table>
21781 </td>
21782 <td class="mlabels-right">
21783<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21784 </tr>
21785</table>
21786</div><div class="memdoc">
21787
21788<p>8 bit fixed point vector multiply-accumulate long (8 elements). </p>
21789<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to the 16 bit fixed point vector <code>a</code> (a + b * c). 8 elements</p>
21790<dl class="params"><dt>Parameters</dt><dd>
21791 <table class="params">
21792 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector where the result of multiplication must be added to </td></tr>
21793 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
21794 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
21795 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
21796 </table>
21797 </dd>
21798</dl>
21799<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate long </dd></dl>
21800
Kaizenbf8b01d2017-10-12 14:26:51 +010021801<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00800">800</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021802<div class="fragment"><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;{</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; tmp = vmlal_s8(tmp, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>);</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; tmp = vshlq_s16(tmp, fixed_point_position_s16);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="comment">// Accumulate</span></div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">return</span> vaddq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, tmp);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021803<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000021804<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
21805<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021806</div><!-- fragment -->
21807</div>
21808</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021809<a class="anchor" id="aba8de9eaa10a7cb45c5aa603585d0e4c"></a>
21810<div class="memitem">
21811<div class="memproto">
21812<table class="mlabels">
21813 <tr>
21814 <td class="mlabels-left">
21815 <table class="memname">
21816 <tr>
21817 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#ac7e1832b8c58f07a98fc8d390b16ac27">qasymm8x16_t</a> vmlaq_qasymm8 </td>
21818 <td>(</td>
21819 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ac7e1832b8c58f07a98fc8d390b16ac27">qasymm8x16_t</a>&#160;</td>
21820 <td class="paramname"><em>vd</em>, </td>
21821 </tr>
21822 <tr>
21823 <td class="paramkey"></td>
21824 <td></td>
21825 <td class="paramtype">float32x4_t&#160;</td>
21826 <td class="paramname"><em>vs</em>, </td>
21827 </tr>
21828 <tr>
21829 <td class="paramkey"></td>
21830 <td></td>
21831 <td class="paramtype">float32x4_t&#160;</td>
21832 <td class="paramname"><em>vo</em>&#160;</td>
21833 </tr>
21834 <tr>
21835 <td></td>
21836 <td>)</td>
21837 <td></td><td></td>
21838 </tr>
21839 </table>
21840 </td>
21841 <td class="mlabels-right">
21842<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21843 </tr>
21844</table>
21845</div><div class="memdoc">
21846
21847<p>Perform a multiply-accumulate on all 16 components of a QASYMM8 vector. </p>
21848<p>vd*vs + vo</p>
21849<dl class="params"><dt>Parameters</dt><dd>
21850 <table class="params">
21851 <tr><td class="paramdir">[in]</td><td class="paramname">vd</td><td>Input vector value in QASYMM8 format </td></tr>
21852 <tr><td class="paramdir">[in]</td><td class="paramname">vs</td><td><a class="el" href="struct_vector.xhtml" title="Structure to hold Vector information. ">Vector</a> multiplier in F32 format. The multiplier value must be duplicated across all four lanes. </td></tr>
21853 <tr><td class="paramdir">[in]</td><td class="paramname">vo</td><td><a class="el" href="struct_vector.xhtml" title="Structure to hold Vector information. ">Vector</a> addend in F32 format. The addend value must be duplicated across all four lanes.</td></tr>
21854 </table>
21855 </dd>
21856</dl>
21857<dl class="section return"><dt>Returns</dt><dd>A 16-component vector in QASYMM8 format, saturated to fit </dd></dl>
21858
21859<p>Definition at line <a class="el" href="_n_e_asymm_8inl_source.xhtml#l00034">34</a> of file <a class="el" href="_n_e_asymm_8inl_source.xhtml">NEAsymm.inl</a>.</p>
21860<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// Convert uint8 vectors to uint16 vectors</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">const</span> uint8x8_t vd_low = vget_low_u8(vd);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">const</span> uint8x8_t vd_high = vget_high_u8(vd);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; uint16x8_t vd_low_u16x8 = vmovl_u8(vd_low);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; uint16x8_t vd_high_u16x8 = vmovl_u8(vd_high);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Convert uint16 vectors to uint32 vectors</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; uint32x4_t A_u32x4 = vmovl_u16(vget_low_u16(vd_low_u16x8));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; uint32x4_t B_u32x4 = vmovl_u16(vget_high_u16(vd_low_u16x8));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; uint32x4_t C_u32x4 = vmovl_u16(vget_low_u16(vd_high_u16x8));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; uint32x4_t D_u32x4 = vmovl_u16(vget_high_u16(vd_high_u16x8));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// Convert uint32 vectors to float32 vectors</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; float32x4_t A_f32x4 = vcvtq_f32_u32(A_u32x4);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; float32x4_t B_f32x4 = vcvtq_f32_u32(B_u32x4);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; float32x4_t C_f32x4 = vcvtq_f32_u32(C_u32x4);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; float32x4_t D_f32x4 = vcvtq_f32_u32(D_u32x4);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// vd = vd*vs + vo</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; A_f32x4 = vmlaq_f32(vo, A_f32x4, vs);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; B_f32x4 = vmlaq_f32(vo, B_f32x4, vs);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; C_f32x4 = vmlaq_f32(vo, C_f32x4, vs);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; D_f32x4 = vmlaq_f32(vo, D_f32x4, vs);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// Convert float32 vectors to uint32 vectors</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; A_u32x4 = vcvtq_u32_f32(A_f32x4);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; B_u32x4 = vcvtq_u32_f32(B_f32x4);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; C_u32x4 = vcvtq_u32_f32(C_f32x4);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; D_u32x4 = vcvtq_u32_f32(D_f32x4);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Convert uint32 vectors to uint16 vectors (with saturation)</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; vd_low_u16x8 = vcombine_u16(vqmovn_u32(A_u32x4), vqmovn_u32(B_u32x4));</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; vd_high_u16x8 = vcombine_u16(vqmovn_u32(C_u32x4), vqmovn_u32(D_u32x4));</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// convert uint16 vectors to uint8 vectors (with saturation)</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> vcombine_u8(vqmovn_u16(vd_low_u16x8), vqmovn_u16(vd_high_u16x8));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div></div><!-- fragment -->
21861</div>
21862</div>
Kaizen8938bd32017-09-28 14:38:23 +010021863<a class="anchor" id="afac88503bedaf0d617729062991518d7"></a>
21864<div class="memitem">
21865<div class="memproto">
21866<table class="mlabels">
21867 <tr>
21868 <td class="mlabels-left">
21869 <table class="memname">
21870 <tr>
21871 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vmlaq_qs16 </td>
21872 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021873 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021874 <td class="paramname"><em>a</em>, </td>
21875 </tr>
21876 <tr>
21877 <td class="paramkey"></td>
21878 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021879 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021880 <td class="paramname"><em>b</em>, </td>
21881 </tr>
21882 <tr>
21883 <td class="paramkey"></td>
21884 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021885 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010021886 <td class="paramname"><em>c</em>, </td>
21887 </tr>
21888 <tr>
21889 <td class="paramkey"></td>
21890 <td></td>
21891 <td class="paramtype">int&#160;</td>
21892 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
21893 </tr>
21894 <tr>
21895 <td></td>
21896 <td>)</td>
21897 <td></td><td></td>
21898 </tr>
21899 </table>
21900 </td>
21901 <td class="mlabels-right">
21902<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21903 </tr>
21904</table>
21905</div><div class="memdoc">
21906
21907<p>16 bit fixed point vector multiply-accumulate (16 elements). </p>
21908<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to <code>a</code> (a + b * c).</p>
21909<dl class="params"><dt>Parameters</dt><dd>
21910 <table class="params">
21911 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector where the result of multiplication must be added to </td></tr>
21912 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
21913 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 16 bit fixed point input vector </td></tr>
21914 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
21915 </table>
21916 </dd>
21917</dl>
21918<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiply-accumulate </dd></dl>
21919
Kaizenbf8b01d2017-10-12 14:26:51 +010021920<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00704">704</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010021921
Kaizenbf8b01d2017-10-12 14:26:51 +010021922<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00148">vget_high_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00138">vget_low_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021923<div class="fragment"><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;{</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> tmp0 = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> tmp1 = tmp0;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; tmp0 = vmlal_s16(tmp0, <a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>), <a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>));</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; tmp1 = vmlal_s16(tmp1, <a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>), <a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>));</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; tmp0 = vshlq_s32(tmp0, fixed_point_position_s32);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; tmp1 = vshlq_s32(tmp1, fixed_point_position_s32);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="comment">// Convert back to qint16 and accumulate</span></div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">return</span> vcombine_s16(vadd_s16(<a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vmovn_s32(tmp0)), vadd_s16(<a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vmovn_s32(tmp1)));</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010021924<div class="ttc" id="namespacearm__compute_xhtml_ac2edef8bf07bce91b37aa02b952b8ed6"><div class="ttname"><a href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">arm_compute::vget_high_qs16</a></div><div class="ttdeci">qint16x4_t vget_high_qs16(qint16x8_t a)</div><div class="ttdoc">Get the higher half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00148">NEFixedPoint.inl:148</a></div></div>
21925<div class="ttc" id="namespacearm__compute_xhtml_ae895c5b470fcf069afd626bb36c63e3d"><div class="ttname"><a href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">arm_compute::vget_low_qs16</a></div><div class="ttdeci">qint16x4_t vget_low_qs16(qint16x8_t a)</div><div class="ttdoc">Get the lower half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00138">NEFixedPoint.inl:138</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021926<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000021927<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
21928<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021929</div><!-- fragment -->
21930</div>
21931</div>
21932<a class="anchor" id="aca905840b37a91fff71e163aa619904c"></a>
21933<div class="memitem">
21934<div class="memproto">
21935<table class="mlabels">
21936 <tr>
21937 <td class="mlabels-left">
21938 <table class="memname">
21939 <tr>
21940 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vmlaq_qs8 </td>
21941 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021942 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021943 <td class="paramname"><em>a</em>, </td>
21944 </tr>
21945 <tr>
21946 <td class="paramkey"></td>
21947 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021948 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021949 <td class="paramname"><em>b</em>, </td>
21950 </tr>
21951 <tr>
21952 <td class="paramkey"></td>
21953 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000021954 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010021955 <td class="paramname"><em>c</em>, </td>
21956 </tr>
21957 <tr>
21958 <td class="paramkey"></td>
21959 <td></td>
21960 <td class="paramtype">int&#160;</td>
21961 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
21962 </tr>
21963 <tr>
21964 <td></td>
21965 <td>)</td>
21966 <td></td><td></td>
21967 </tr>
21968 </table>
21969 </td>
21970 <td class="mlabels-right">
21971<span class="mlabels"><span class="mlabel">inline</span></span> </td>
21972 </tr>
21973</table>
21974</div><div class="memdoc">
21975
21976<p>8 bit fixed point vector multiply-accumulate (16 elements). </p>
21977<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to <code>a</code> (a + b * c).</p>
21978<dl class="params"><dt>Parameters</dt><dd>
21979 <table class="params">
21980 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector where the result of multiplication must be added to </td></tr>
21981 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
21982 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
21983 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
21984 </table>
21985 </dd>
21986</dl>
21987<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate </dd></dl>
21988
Kaizenbf8b01d2017-10-12 14:26:51 +010021989<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00684">684</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000021990<div class="fragment"><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;{</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp0 = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp1 = tmp0;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; tmp0 = vmlal_s8(tmp0, vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>), vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>));</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; tmp1 = vmlal_s8(tmp1, vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>), vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>));</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; tmp0 = vshlq_s16(tmp0, fixed_point_position_s16);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; tmp1 = vshlq_s16(tmp1, fixed_point_position_s16);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="comment">// Convert back to qint8 and accumulate</span></div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> vcombine_s8(vadd_s8(vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vmovn_s16(tmp0)), vadd_s8(vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vmovn_s16(tmp1)));</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021991<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000021992<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
21993<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010021994</div><!-- fragment -->
21995</div>
21996</div>
21997<a class="anchor" id="ac1b67e3283a1cae4d57b7f64137f5f5c"></a>
21998<div class="memitem">
21999<div class="memproto">
22000<table class="mlabels">
22001 <tr>
22002 <td class="mlabels-left">
22003 <table class="memname">
22004 <tr>
22005 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vmul_qs16 </td>
22006 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022007 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022008 <td class="paramname"><em>a</em>, </td>
22009 </tr>
22010 <tr>
22011 <td class="paramkey"></td>
22012 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022013 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022014 <td class="paramname"><em>b</em>, </td>
22015 </tr>
22016 <tr>
22017 <td class="paramkey"></td>
22018 <td></td>
22019 <td class="paramtype">int&#160;</td>
22020 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
22021 </tr>
22022 <tr>
22023 <td></td>
22024 <td>)</td>
22025 <td></td><td></td>
22026 </tr>
22027 </table>
22028 </td>
22029 <td class="mlabels-right">
22030<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22031 </tr>
22032</table>
22033</div><div class="memdoc">
22034
22035<p>16 bit fixed point vector multiply (4 elements) </p>
22036<dl class="params"><dt>Parameters</dt><dd>
22037 <table class="params">
22038 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
22039 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
22040 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
22041 </table>
22042 </dd>
22043</dl>
22044<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiplication. </dd></dl>
22045
Kaizenbf8b01d2017-10-12 14:26:51 +010022046<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00496">496</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010022047
Kaizenbf8b01d2017-10-12 14:26:51 +010022048<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01299">vdiv_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01729">vinvsqrt_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01585">vlog_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01103">vrecip_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01331">vtaylor_poly_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022049<div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;{</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="comment">// Initialize the temporary result with a constant used to round up the result</span></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> res = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; res = vmlal_s16(res, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; res = vshlq_s32(res, fixed_point_position_s32);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="comment">// Convert back to qint16</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">return</span> vmovn_s32(res);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022050<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000022051<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022052</div><!-- fragment -->
22053</div>
22054</div>
22055<a class="anchor" id="afccf1305c480f2338af8925bba6b54cd"></a>
22056<div class="memitem">
22057<div class="memproto">
22058<table class="mlabels">
22059 <tr>
22060 <td class="mlabels-left">
22061 <table class="memname">
22062 <tr>
22063 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vmul_qs8 </td>
22064 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022065 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022066 <td class="paramname"><em>a</em>, </td>
22067 </tr>
22068 <tr>
22069 <td class="paramkey"></td>
22070 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022071 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022072 <td class="paramname"><em>b</em>, </td>
22073 </tr>
22074 <tr>
22075 <td class="paramkey"></td>
22076 <td></td>
22077 <td class="paramtype">int&#160;</td>
22078 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
22079 </tr>
22080 <tr>
22081 <td></td>
22082 <td>)</td>
22083 <td></td><td></td>
22084 </tr>
22085 </table>
22086 </td>
22087 <td class="mlabels-right">
22088<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22089 </tr>
22090</table>
22091</div><div class="memdoc">
22092
22093<p>8 bit fixed point vector multiply (8 elements) </p>
22094<dl class="params"><dt>Parameters</dt><dd>
22095 <table class="params">
22096 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
22097 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
22098 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
22099 </table>
22100 </dd>
22101</dl>
22102<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiplication. </dd></dl>
22103
Kaizenbf8b01d2017-10-12 14:26:51 +010022104<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00479">479</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022105
Kaizenbf8b01d2017-10-12 14:26:51 +010022106<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01294">vdiv_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01702">vinvsqrt_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01546">vlog_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01077">vrecip_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01315">vtaylor_poly_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022107<div class="fragment"><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="comment">// Initialize the temporary result with a constant used to round up the result</span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; res = vmlal_s8(res, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; res = vshlq_s16(res, fixed_point_position_s16);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="comment">// Convert back to qint8</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> vmovn_s16(res);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022108<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000022109<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022110</div><!-- fragment -->
22111</div>
22112</div>
22113<a class="anchor" id="afce8b13d7a800aa8ac24733160130cfc"></a>
22114<div class="memitem">
22115<div class="memproto">
22116<table class="mlabels">
22117 <tr>
22118 <td class="mlabels-left">
22119 <table class="memname">
22120 <tr>
22121 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> vmull_qs16 </td>
22122 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022123 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022124 <td class="paramname"><em>a</em>, </td>
22125 </tr>
22126 <tr>
22127 <td class="paramkey"></td>
22128 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022129 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022130 <td class="paramname"><em>b</em>, </td>
22131 </tr>
22132 <tr>
22133 <td class="paramkey"></td>
22134 <td></td>
22135 <td class="paramtype">int&#160;</td>
22136 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
22137 </tr>
22138 <tr>
22139 <td></td>
22140 <td>)</td>
22141 <td></td><td></td>
22142 </tr>
22143 </table>
22144 </td>
22145 <td class="mlabels-right">
22146<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22147 </tr>
22148</table>
22149</div><div class="memdoc">
22150
22151<p>16 bit fixed point vector long multiply (4 elements) </p>
22152<dl class="params"><dt>Parameters</dt><dd>
22153 <table class="params">
22154 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
22155 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
22156 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
22157 </table>
22158 </dd>
22159</dl>
22160<dl class="section return"><dt>Returns</dt><dd>The result of the 32 bit fixed point long vector multiplication. </dd></dl>
22161
Kaizenbf8b01d2017-10-12 14:26:51 +010022162<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00636">636</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022163<div class="fragment"><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;{</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> tmp = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; tmp = vmull_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">return</span> vqshlq_s32(tmp, fixed_point_position_s32);</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022164<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000022165<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022166</div><!-- fragment -->
22167</div>
22168</div>
22169<a class="anchor" id="a3e959a9add1078033f3a27725323df13"></a>
22170<div class="memitem">
22171<div class="memproto">
22172<table class="mlabels">
22173 <tr>
22174 <td class="mlabels-left">
22175 <table class="memname">
22176 <tr>
22177 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vmull_qs8 </td>
22178 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022179 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022180 <td class="paramname"><em>a</em>, </td>
22181 </tr>
22182 <tr>
22183 <td class="paramkey"></td>
22184 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022185 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022186 <td class="paramname"><em>b</em>, </td>
22187 </tr>
22188 <tr>
22189 <td class="paramkey"></td>
22190 <td></td>
22191 <td class="paramtype">int&#160;</td>
22192 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
22193 </tr>
22194 <tr>
22195 <td></td>
22196 <td>)</td>
22197 <td></td><td></td>
22198 </tr>
22199 </table>
22200 </td>
22201 <td class="mlabels-right">
22202<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22203 </tr>
22204</table>
22205</div><div class="memdoc">
22206
22207<p>8 bit fixed point vector long multiply (8 elements) </p>
22208<dl class="params"><dt>Parameters</dt><dd>
22209 <table class="params">
22210 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
22211 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
22212 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
22213 </table>
22214 </dd>
22215</dl>
22216<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point long vector multiplication. </dd></dl>
22217
Kaizenbf8b01d2017-10-12 14:26:51 +010022218<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00627">627</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022219
Anthony Barbierf45d5a92018-01-24 16:23:15 +000022220<p>Referenced by <a class="el" href="_n_e_direct_convolution_detail_8h_source.xhtml#l00229">arm_compute::detail::convolve_3x3&lt; 1 &gt;()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022221<div class="fragment"><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;{</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res = vmull_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">return</span> vqrshlq_s16(res, fixed_point_position_s16);</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022222<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000022223<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022224</div><!-- fragment -->
22225</div>
22226</div>
22227<a class="anchor" id="a74ea79cda0ff6a819b2e5176fe0fc622"></a>
22228<div class="memitem">
22229<div class="memproto">
22230<table class="mlabels">
22231 <tr>
22232 <td class="mlabels-left">
22233 <table class="memname">
22234 <tr>
22235 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vmulq_qs16 </td>
22236 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022237 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022238 <td class="paramname"><em>a</em>, </td>
22239 </tr>
22240 <tr>
22241 <td class="paramkey"></td>
22242 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022243 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022244 <td class="paramname"><em>b</em>, </td>
22245 </tr>
22246 <tr>
22247 <td class="paramkey"></td>
22248 <td></td>
22249 <td class="paramtype">int&#160;</td>
22250 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
22251 </tr>
22252 <tr>
22253 <td></td>
22254 <td>)</td>
22255 <td></td><td></td>
22256 </tr>
22257 </table>
22258 </td>
22259 <td class="mlabels-right">
22260<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22261 </tr>
22262</table>
22263</div><div class="memdoc">
22264
22265<p>16 bit fixed point vector multiply (8 elements) </p>
22266<dl class="params"><dt>Parameters</dt><dd>
22267 <table class="params">
22268 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
22269 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
22270 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
22271 </table>
22272 </dd>
22273</dl>
22274<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiplication. </dd></dl>
22275
Kaizenbf8b01d2017-10-12 14:26:51 +010022276<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00533">533</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010022277
Kaizenbf8b01d2017-10-12 14:26:51 +010022278<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00148">vget_high_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00138">vget_low_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010022279
Kaizenbf8b01d2017-10-12 14:26:51 +010022280<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01309">vdivq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01841">vinvsqrtq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01210">vrecipq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01395">vtaylor_polyq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022281<div class="fragment"><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;{</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> res0 = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> res1 = res0;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; res0 = vmlal_s16(res0, <a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), <a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; res1 = vmlal_s16(res1, <a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), <a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; res0 = vshlq_s32(res0, fixed_point_position_s32);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; res1 = vshlq_s32(res1, fixed_point_position_s32);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="comment">// Convert back to qint16</span></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">return</span> vcombine_s16(vmovn_s32(res0), vmovn_s32(res1));</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010022282<div class="ttc" id="namespacearm__compute_xhtml_ac2edef8bf07bce91b37aa02b952b8ed6"><div class="ttname"><a href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">arm_compute::vget_high_qs16</a></div><div class="ttdeci">qint16x4_t vget_high_qs16(qint16x8_t a)</div><div class="ttdoc">Get the higher half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00148">NEFixedPoint.inl:148</a></div></div>
22283<div class="ttc" id="namespacearm__compute_xhtml_ae895c5b470fcf069afd626bb36c63e3d"><div class="ttname"><a href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">arm_compute::vget_low_qs16</a></div><div class="ttdeci">qint16x4_t vget_low_qs16(qint16x8_t a)</div><div class="ttdoc">Get the lower half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00138">NEFixedPoint.inl:138</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022284<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000022285<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022286</div><!-- fragment -->
22287</div>
22288</div>
22289<a class="anchor" id="a031b17d4102856aa4d6bf7ebf83bf0ab"></a>
22290<div class="memitem">
22291<div class="memproto">
22292<table class="mlabels">
22293 <tr>
22294 <td class="mlabels-left">
22295 <table class="memname">
22296 <tr>
22297 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vmulq_qs8 </td>
22298 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022299 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022300 <td class="paramname"><em>a</em>, </td>
22301 </tr>
22302 <tr>
22303 <td class="paramkey"></td>
22304 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022305 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022306 <td class="paramname"><em>b</em>, </td>
22307 </tr>
22308 <tr>
22309 <td class="paramkey"></td>
22310 <td></td>
22311 <td class="paramtype">int&#160;</td>
22312 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
22313 </tr>
22314 <tr>
22315 <td></td>
22316 <td>)</td>
22317 <td></td><td></td>
22318 </tr>
22319 </table>
22320 </td>
22321 <td class="mlabels-right">
22322<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22323 </tr>
22324</table>
22325</div><div class="memdoc">
22326
22327<p>8 bit fixed point vector multiply (16 elements) </p>
22328<dl class="params"><dt>Parameters</dt><dd>
22329 <table class="params">
22330 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
22331 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
22332 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
22333 </table>
22334 </dd>
22335</dl>
22336<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiplication. </dd></dl>
22337
Kaizenbf8b01d2017-10-12 14:26:51 +010022338<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00513">513</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022339
Kaizenbf8b01d2017-10-12 14:26:51 +010022340<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01304">vdivq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01814">vinvsqrtq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01624">vlogq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01183">vrecipq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01379">vtaylor_polyq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022341<div class="fragment"><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;{</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res0 = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res1 = res0;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; res0 = vmlal_s8(res0, vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; res1 = vmlal_s8(res1, vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; res0 = vshlq_s16(res0, fixed_point_position_s16);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; res1 = vshlq_s16(res1, fixed_point_position_s16);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="comment">// Convert back to qint8</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">return</span> vcombine_s8(vmovn_s16(res0), vmovn_s16(res1));</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022342<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000022343<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022344</div><!-- fragment -->
22345</div>
22346</div>
22347<a class="anchor" id="ac73b89ba44bae1df9a8998ad2a99996e"></a>
22348<div class="memitem">
22349<div class="memproto">
22350<table class="mlabels">
22351 <tr>
22352 <td class="mlabels-left">
22353 <table class="memname">
22354 <tr>
22355 <td class="memname">int16x4_t vpaddl_qs8 </td>
22356 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022357 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022358 <td class="paramname"><em>a</em></td><td>)</td>
22359 <td></td>
22360 </tr>
22361 </table>
22362 </td>
22363 <td class="mlabels-right">
22364<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22365 </tr>
22366</table>
22367</div><div class="memdoc">
22368
22369<p>8 bit fixed point vector saturating pairwise add (8 elements) </p>
22370<dl class="params"><dt>Parameters</dt><dd>
22371 <table class="params">
22372 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
22373 </table>
22374 </dd>
22375</dl>
22376<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector addition. The result is saturated in case of overflow </dd></dl>
22377
Kaizenbf8b01d2017-10-12 14:26:51 +010022378<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00434">434</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022379<div class="fragment"><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;{</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">return</span> vpaddl_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022380</div><!-- fragment -->
22381</div>
22382</div>
22383<a class="anchor" id="a8ee6fe28466be3c48a70debe663b08d4"></a>
22384<div class="memitem">
22385<div class="memproto">
22386<table class="mlabels">
22387 <tr>
22388 <td class="mlabels-left">
22389 <table class="memname">
22390 <tr>
22391 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vpmax_qs16 </td>
22392 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022393 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022394 <td class="paramname"><em>a</em>, </td>
22395 </tr>
22396 <tr>
22397 <td class="paramkey"></td>
22398 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022399 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022400 <td class="paramname"><em>b</em>&#160;</td>
22401 </tr>
22402 <tr>
22403 <td></td>
22404 <td>)</td>
22405 <td></td><td></td>
22406 </tr>
22407 </table>
22408 </td>
22409 <td class="mlabels-right">
22410<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22411 </tr>
22412</table>
22413</div><div class="memdoc">
22414
22415<p>16 bit fixed point vector pairwise max (4 elements) </p>
22416<dl class="params"><dt>Parameters</dt><dd>
22417 <table class="params">
22418 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
22419 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
22420 </table>
22421 </dd>
22422</dl>
22423<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector pairwise max operation </dd></dl>
22424
Kaizenbf8b01d2017-10-12 14:26:51 +010022425<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00344">344</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022426<div class="fragment"><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;{</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> vpmax_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
22427<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022428</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010022429</div>
22430</div>
22431<a class="anchor" id="a1ecd37cd4eb461a98ca7c429e51802d2"></a>
22432<div class="memitem">
22433<div class="memproto">
22434<table class="mlabels">
22435 <tr>
22436 <td class="mlabels-left">
22437 <table class="memname">
22438 <tr>
22439 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vpmax_qs8 </td>
22440 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022441 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022442 <td class="paramname"><em>a</em>, </td>
22443 </tr>
22444 <tr>
22445 <td class="paramkey"></td>
22446 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022447 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022448 <td class="paramname"><em>b</em>&#160;</td>
22449 </tr>
22450 <tr>
22451 <td></td>
22452 <td>)</td>
22453 <td></td><td></td>
22454 </tr>
22455 </table>
22456 </td>
22457 <td class="mlabels-right">
22458<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22459 </tr>
22460</table>
22461</div><div class="memdoc">
22462
22463<p>8 bit fixed point vector pairwise max (8 elements) </p>
22464<dl class="params"><dt>Parameters</dt><dd>
22465 <table class="params">
22466 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
22467 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
22468 </table>
22469 </dd>
22470</dl>
22471<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector pairwise max operation </dd></dl>
22472
Kaizenbf8b01d2017-10-12 14:26:51 +010022473<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00339">339</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022474<div class="fragment"><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> vpmax_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
22475<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022476</div><!-- fragment -->
22477</div>
22478</div>
22479<a class="anchor" id="a9d9d1279b08f3e79fd0cf019b79138f9"></a>
22480<div class="memitem">
22481<div class="memproto">
22482<table class="mlabels">
22483 <tr>
22484 <td class="mlabels-left">
22485 <table class="memname">
22486 <tr>
22487 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vpmin_qs16 </td>
22488 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022489 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022490 <td class="paramname"><em>a</em>, </td>
22491 </tr>
22492 <tr>
22493 <td class="paramkey"></td>
22494 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022495 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022496 <td class="paramname"><em>b</em>&#160;</td>
22497 </tr>
22498 <tr>
22499 <td></td>
22500 <td>)</td>
22501 <td></td><td></td>
22502 </tr>
22503 </table>
22504 </td>
22505 <td class="mlabels-right">
22506<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22507 </tr>
22508</table>
22509</div><div class="memdoc">
22510
22511<p>16 bit fixed point vector pairwise min (4 elements) </p>
22512<dl class="params"><dt>Parameters</dt><dd>
22513 <table class="params">
22514 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
22515 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
22516 </table>
22517 </dd>
22518</dl>
22519<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector pairwise min operation </dd></dl>
22520
Kaizenbf8b01d2017-10-12 14:26:51 +010022521<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00374">374</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022522<div class="fragment"><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;{</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> vpmin_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
22523<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022524</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010022525</div>
22526</div>
22527<a class="anchor" id="ad3f599d91685017d37e87d36170a5342"></a>
22528<div class="memitem">
22529<div class="memproto">
22530<table class="mlabels">
22531 <tr>
22532 <td class="mlabels-left">
22533 <table class="memname">
22534 <tr>
22535 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vpmin_qs8 </td>
22536 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022537 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022538 <td class="paramname"><em>a</em>, </td>
22539 </tr>
22540 <tr>
22541 <td class="paramkey"></td>
22542 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022543 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022544 <td class="paramname"><em>b</em>&#160;</td>
22545 </tr>
22546 <tr>
22547 <td></td>
22548 <td>)</td>
22549 <td></td><td></td>
22550 </tr>
22551 </table>
22552 </td>
22553 <td class="mlabels-right">
22554<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22555 </tr>
22556</table>
22557</div><div class="memdoc">
22558
22559<p>8 bit fixed point vector pairwise min (8 elements) </p>
22560<dl class="params"><dt>Parameters</dt><dd>
22561 <table class="params">
22562 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
22563 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
22564 </table>
22565 </dd>
22566</dl>
22567<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector pairwise min operation </dd></dl>
22568
Kaizenbf8b01d2017-10-12 14:26:51 +010022569<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00369">369</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022570<div class="fragment"><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;{</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> vpmin_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
22571<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022572</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010022573</div>
22574</div>
22575<a class="anchor" id="a45c3c1474c3e3ec31ec13efaf6acd261"></a>
22576<div class="memitem">
22577<div class="memproto">
22578<table class="mlabels">
22579 <tr>
22580 <td class="mlabels-left">
22581 <table class="memname">
22582 <tr>
22583 <td class="memname">float32x4_t vpowq_f32 </td>
22584 <td>(</td>
22585 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000022586 <td class="paramname"><em>val</em>, </td>
22587 </tr>
22588 <tr>
22589 <td class="paramkey"></td>
22590 <td></td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022591 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000022592 <td class="paramname"><em>n</em>&#160;</td>
22593 </tr>
22594 <tr>
22595 <td></td>
22596 <td>)</td>
22597 <td></td><td></td>
22598 </tr>
22599 </table>
22600 </td>
22601 <td class="mlabels-right">
22602<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22603 </tr>
22604</table>
22605</div><div class="memdoc">
22606
22607<p>Calculate n power of a number. </p>
22608<p>pow(x,n) = e^(n*log(x))</p>
22609<dl class="params"><dt>Parameters</dt><dd>
22610 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010022611 <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Input vector value in F32 format. </td></tr>
22612 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Powers to raise the input to.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000022613 </table>
22614 </dd>
22615</dl>
22616<dl class="section return"><dt>Returns</dt><dd>The calculated power. </dd></dl>
22617
Kaizen8938bd32017-09-28 14:38:23 +010022618<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00167">167</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000022619
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022620<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00939">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>, <a class="el" href="_n_e_math_8inl_source.xhtml#l00113">vexpq_f32()</a>, and <a class="el" href="_n_e_math_8inl_source.xhtml#l00134">vlogq_f32()</a>.</p>
22621<div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#ade3ef16de304661943c900ac9a47d28f">vexpq_f32</a>(vmulq_f32(n, <a class="code" href="namespacearm__compute.xhtml#a37a3e03a22ad160a2e9e5c133607e020">vlogq_f32</a>(val)));</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_ade3ef16de304661943c900ac9a47d28f"><div class="ttname"><a href="namespacearm__compute.xhtml#ade3ef16de304661943c900ac9a47d28f">arm_compute::vexpq_f32</a></div><div class="ttdeci">float32x4_t vexpq_f32(float32x4_t x)</div><div class="ttdoc">Calculate exponential. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_math_8inl_source.xhtml#l00113">NEMath.inl:113</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022622<div class="ttc" id="namespacearm__compute_xhtml_a37a3e03a22ad160a2e9e5c133607e020"><div class="ttname"><a href="namespacearm__compute.xhtml#a37a3e03a22ad160a2e9e5c133607e020">arm_compute::vlogq_f32</a></div><div class="ttdeci">float32x4_t vlogq_f32(float32x4_t x)</div><div class="ttdoc">Calculate logarithm. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_math_8inl_source.xhtml#l00134">NEMath.inl:134</a></div></div>
22623</div><!-- fragment -->
22624</div>
22625</div>
22626<a class="anchor" id="a7c97511a35de87be34f48b4ab4b3c222"></a>
22627<div class="memitem">
22628<div class="memproto">
22629<table class="mlabels">
22630 <tr>
22631 <td class="mlabels-left">
22632 <table class="memname">
22633 <tr>
22634 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqabs_qs16 </td>
22635 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022636 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022637 <td class="paramname"><em>a</em></td><td>)</td>
22638 <td></td>
22639 </tr>
22640 </table>
22641 </td>
22642 <td class="mlabels-right">
22643<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22644 </tr>
22645</table>
22646</div><div class="memdoc">
22647
22648<p>Saturating absolute value of 16 bit fixed point vector (4 elements) </p>
22649<dl class="params"><dt>Parameters</dt><dd>
22650 <table class="params">
22651 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>4 bit fixed point input vector</td></tr>
22652 </table>
22653 </dd>
22654</dl>
22655<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector absolute value </dd></dl>
22656
Kaizenbf8b01d2017-10-12 14:26:51 +010022657<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00309">309</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010022658
Kaizenbf8b01d2017-10-12 14:26:51 +010022659<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01468">vqexp_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022660<div class="fragment"><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;{</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> vqabs_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000022661</div><!-- fragment -->
22662</div>
22663</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022664<a class="anchor" id="a4b2c9440d5fa4909ae909869877f39e3"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000022665<div class="memitem">
22666<div class="memproto">
22667<table class="mlabels">
22668 <tr>
22669 <td class="mlabels-left">
22670 <table class="memname">
22671 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022672 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqabs_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000022673 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022674 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022675 <td class="paramname"><em>a</em></td><td>)</td>
22676 <td></td>
22677 </tr>
22678 </table>
22679 </td>
22680 <td class="mlabels-right">
22681<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22682 </tr>
22683</table>
22684</div><div class="memdoc">
22685
22686<p>Saturating absolute value of 8 bit fixed point vector (8 elements) </p>
22687<dl class="params"><dt>Parameters</dt><dd>
22688 <table class="params">
22689 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
22690 </table>
22691 </dd>
22692</dl>
22693<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector absolute value </dd></dl>
22694
Kaizenbf8b01d2017-10-12 14:26:51 +010022695<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00304">304</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022696
Kaizenbf8b01d2017-10-12 14:26:51 +010022697<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01442">vqexp_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022698<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> vqabs_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022699</div><!-- fragment -->
22700</div>
22701</div>
22702<a class="anchor" id="aa001ed913705cf378d947052435917aa"></a>
22703<div class="memitem">
22704<div class="memproto">
22705<table class="mlabels">
22706 <tr>
22707 <td class="mlabels-left">
22708 <table class="memname">
22709 <tr>
22710 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqabsq_qs16 </td>
22711 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022712 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022713 <td class="paramname"><em>a</em></td><td>)</td>
22714 <td></td>
22715 </tr>
22716 </table>
22717 </td>
22718 <td class="mlabels-right">
22719<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22720 </tr>
22721</table>
22722</div><div class="memdoc">
22723
22724<p>Saturating absolute value of 16 bit fixed point vector (8 elements) </p>
22725<dl class="params"><dt>Parameters</dt><dd>
22726 <table class="params">
22727 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector</td></tr>
22728 </table>
22729 </dd>
22730</dl>
22731<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector absolute value </dd></dl>
22732
Kaizenbf8b01d2017-10-12 14:26:51 +010022733<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00319">319</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010022734
Kaizenbf8b01d2017-10-12 14:26:51 +010022735<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01520">vqexpq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022736<div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;{</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> vqabsq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022737</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010022738</div>
22739</div>
22740<a class="anchor" id="ac8095edd652a1f3a76bf9d0f4251827a"></a>
22741<div class="memitem">
22742<div class="memproto">
22743<table class="mlabels">
22744 <tr>
22745 <td class="mlabels-left">
22746 <table class="memname">
22747 <tr>
22748 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqabsq_qs8 </td>
22749 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022750 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022751 <td class="paramname"><em>a</em></td><td>)</td>
22752 <td></td>
22753 </tr>
22754 </table>
22755 </td>
22756 <td class="mlabels-right">
22757<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22758 </tr>
22759</table>
22760</div><div class="memdoc">
22761
22762<p>Saturating absolute value of 8 bit fixed point vector (16 elements) </p>
22763<dl class="params"><dt>Parameters</dt><dd>
22764 <table class="params">
22765 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
22766 </table>
22767 </dd>
22768</dl>
22769<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector absolute value </dd></dl>
22770
Kaizenbf8b01d2017-10-12 14:26:51 +010022771<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00314">314</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022772
Kaizenbf8b01d2017-10-12 14:26:51 +010022773<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01494">vqexpq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022774<div class="fragment"><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;{</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> vqabsq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022775</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010022776</div>
22777</div>
22778<a class="anchor" id="ad80ab0f6b783c10e0488cb84a8812e8f"></a>
22779<div class="memitem">
22780<div class="memproto">
22781<table class="mlabels">
22782 <tr>
22783 <td class="mlabels-left">
22784 <table class="memname">
22785 <tr>
22786 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqadd_qs16 </td>
22787 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022788 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022789 <td class="paramname"><em>a</em>, </td>
22790 </tr>
22791 <tr>
22792 <td class="paramkey"></td>
22793 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022794 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022795 <td class="paramname"><em>b</em>&#160;</td>
22796 </tr>
22797 <tr>
22798 <td></td>
22799 <td>)</td>
22800 <td></td><td></td>
22801 </tr>
22802 </table>
22803 </td>
22804 <td class="mlabels-right">
22805<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22806 </tr>
22807</table>
22808</div><div class="memdoc">
22809
22810<p>16 bit fixed point vector saturating add (4 elements) </p>
22811<dl class="params"><dt>Parameters</dt><dd>
22812 <table class="params">
22813 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
22814 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
22815 </table>
22816 </dd>
22817</dl>
22818<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector addition. The result is saturated in case of overflow </dd></dl>
22819
Kaizenbf8b01d2017-10-12 14:26:51 +010022820<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00409">409</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010022821
Kaizenbf8b01d2017-10-12 14:26:51 +010022822<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01939">vqtanh_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022823<div class="fragment"><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;{</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> vqadd_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
22824<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022825</div><!-- fragment -->
22826</div>
22827</div>
22828<a class="anchor" id="af4ce9287cfb7aef16f79a3152c3f3bbd"></a>
22829<div class="memitem">
22830<div class="memproto">
22831<table class="mlabels">
22832 <tr>
22833 <td class="mlabels-left">
22834 <table class="memname">
22835 <tr>
22836 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#addcffa8e8086154c0449c23e6b0dff83">qint32x2_t</a> arm_compute::vqadd_qs32 </td>
22837 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022838 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#addcffa8e8086154c0449c23e6b0dff83">qint32x2_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022839 <td class="paramname"><em>a</em>, </td>
22840 </tr>
22841 <tr>
22842 <td class="paramkey"></td>
22843 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022844 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#addcffa8e8086154c0449c23e6b0dff83">qint32x2_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022845 <td class="paramname"><em>b</em>&#160;</td>
22846 </tr>
22847 <tr>
22848 <td></td>
22849 <td>)</td>
22850 <td></td><td></td>
22851 </tr>
22852 </table>
22853 </td>
22854 <td class="mlabels-right">
22855<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22856 </tr>
22857</table>
22858</div><div class="memdoc">
22859
Kaizenbf8b01d2017-10-12 14:26:51 +010022860<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00414">414</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022861<div class="fragment"><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;{</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> vqadd_s32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
22862<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022863</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010022864</div>
22865</div>
22866<a class="anchor" id="a8a14fe5fc71105c9bfebb28a58f06a52"></a>
22867<div class="memitem">
22868<div class="memproto">
22869<table class="mlabels">
22870 <tr>
22871 <td class="mlabels-left">
22872 <table class="memname">
22873 <tr>
22874 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqadd_qs8 </td>
22875 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022876 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022877 <td class="paramname"><em>a</em>, </td>
22878 </tr>
22879 <tr>
22880 <td class="paramkey"></td>
22881 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022882 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022883 <td class="paramname"><em>b</em>&#160;</td>
22884 </tr>
22885 <tr>
22886 <td></td>
22887 <td>)</td>
22888 <td></td><td></td>
22889 </tr>
22890 </table>
22891 </td>
22892 <td class="mlabels-right">
22893<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22894 </tr>
22895</table>
22896</div><div class="memdoc">
22897
22898<p>8 bit fixed point vector saturating add (8 elements) </p>
22899<dl class="params"><dt>Parameters</dt><dd>
22900 <table class="params">
22901 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
22902 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
22903 </table>
22904 </dd>
22905</dl>
22906<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector addition. The result is saturated in case of overflow </dd></dl>
22907
Kaizenbf8b01d2017-10-12 14:26:51 +010022908<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00404">404</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022909
Kaizenbf8b01d2017-10-12 14:26:51 +010022910<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01926">vqtanh_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022911<div class="fragment"><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;{</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">return</span> vqadd_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
22912<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022913</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010022914</div>
22915</div>
22916<a class="anchor" id="a9d88750b393cdfe6f5685107bb1d98f7"></a>
22917<div class="memitem">
22918<div class="memproto">
22919<table class="mlabels">
22920 <tr>
22921 <td class="mlabels-left">
22922 <table class="memname">
22923 <tr>
22924 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqaddq_qs16 </td>
22925 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022926 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022927 <td class="paramname"><em>a</em>, </td>
22928 </tr>
22929 <tr>
22930 <td class="paramkey"></td>
22931 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022932 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010022933 <td class="paramname"><em>b</em>&#160;</td>
22934 </tr>
22935 <tr>
22936 <td></td>
22937 <td>)</td>
22938 <td></td><td></td>
22939 </tr>
22940 </table>
22941 </td>
22942 <td class="mlabels-right">
22943<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22944 </tr>
22945</table>
22946</div><div class="memdoc">
22947
22948<p>16 bit fixed point vector saturating add (8 elements) </p>
22949<dl class="params"><dt>Parameters</dt><dd>
22950 <table class="params">
22951 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
22952 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
22953 </table>
22954 </dd>
22955</dl>
22956<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector addition. The result is saturated in case of overflow </dd></dl>
22957
Kaizenbf8b01d2017-10-12 14:26:51 +010022958<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00424">424</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010022959
Kaizenbf8b01d2017-10-12 14:26:51 +010022960<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01965">vqtanhq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022961<div class="fragment"><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;{</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> vqaddq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
22962<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010022963</div><!-- fragment -->
22964</div>
22965</div>
22966<a class="anchor" id="a4158859b4b6af057b01b2c2d745d66b2"></a>
22967<div class="memitem">
22968<div class="memproto">
22969<table class="mlabels">
22970 <tr>
22971 <td class="mlabels-left">
22972 <table class="memname">
22973 <tr>
22974 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> arm_compute::vqaddq_qs32 </td>
22975 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022976 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022977 <td class="paramname"><em>a</em>, </td>
22978 </tr>
22979 <tr>
22980 <td class="paramkey"></td>
22981 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022982 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010022983 <td class="paramname"><em>b</em>&#160;</td>
22984 </tr>
22985 <tr>
22986 <td></td>
22987 <td>)</td>
22988 <td></td><td></td>
22989 </tr>
22990 </table>
22991 </td>
22992 <td class="mlabels-right">
22993<span class="mlabels"><span class="mlabel">inline</span></span> </td>
22994 </tr>
22995</table>
22996</div><div class="memdoc">
22997
Kaizenbf8b01d2017-10-12 14:26:51 +010022998<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00429">429</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000022999<div class="fragment"><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;{</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> vqaddq_s32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
23000<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023001</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010023002</div>
23003</div>
23004<a class="anchor" id="a9765c5ee2d3cc9e3ca983fd2f47ba916"></a>
23005<div class="memitem">
23006<div class="memproto">
23007<table class="mlabels">
23008 <tr>
23009 <td class="mlabels-left">
23010 <table class="memname">
23011 <tr>
23012 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqaddq_qs8 </td>
23013 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023014 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023015 <td class="paramname"><em>a</em>, </td>
23016 </tr>
23017 <tr>
23018 <td class="paramkey"></td>
23019 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023020 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023021 <td class="paramname"><em>b</em>&#160;</td>
23022 </tr>
23023 <tr>
23024 <td></td>
23025 <td>)</td>
23026 <td></td><td></td>
23027 </tr>
23028 </table>
23029 </td>
23030 <td class="mlabels-right">
23031<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23032 </tr>
23033</table>
23034</div><div class="memdoc">
23035
23036<p>8 bit fixed point vector saturating add (16 elements) </p>
23037<dl class="params"><dt>Parameters</dt><dd>
23038 <table class="params">
23039 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
23040 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
23041 </table>
23042 </dd>
23043</dl>
23044<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector addition. The result is saturated in case of overflow </dd></dl>
23045
Kaizenbf8b01d2017-10-12 14:26:51 +010023046<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00419">419</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023047
Kaizenbf8b01d2017-10-12 14:26:51 +010023048<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01952">vqtanhq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023049<div class="fragment"><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;{</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> vqaddq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
23050<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023051</div><!-- fragment -->
23052</div>
23053</div>
23054<a class="anchor" id="afbaee7c07c41b0138ee0f3aefecc6160"></a>
23055<div class="memitem">
23056<div class="memproto">
23057<table class="mlabels">
23058 <tr>
23059 <td class="mlabels-left">
23060 <table class="memname">
23061 <tr>
23062 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqcvt_qs16_f32 </td>
23063 <td>(</td>
23064 <td class="paramtype">const float32x4_t&#160;</td>
23065 <td class="paramname"><em>a</em>, </td>
23066 </tr>
23067 <tr>
23068 <td class="paramkey"></td>
23069 <td></td>
23070 <td class="paramtype">int&#160;</td>
23071 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23072 </tr>
23073 <tr>
23074 <td></td>
23075 <td>)</td>
23076 <td></td><td></td>
23077 </tr>
23078 </table>
23079 </td>
23080 <td class="mlabels-right">
23081<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23082 </tr>
23083</table>
23084</div><div class="memdoc">
23085
23086<p>Convert a float vector with 4 elements to 16 bit fixed point vector with 4 elements. </p>
23087<dl class="params"><dt>Parameters</dt><dd>
23088 <table class="params">
23089 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Float input vector </td></tr>
23090 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23091 </table>
23092 </dd>
23093</dl>
23094<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 16 bit fixed point. The result is saturated in case of overflow </dd></dl>
23095
Kaizenbf8b01d2017-10-12 14:26:51 +010023096<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00896">896</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023097<div class="fragment"><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;{</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(static_cast&lt;float&gt;(1 &lt;&lt; fixed_point_position));</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; float32x4_t res_f32 = vbslq_f32(vcgeq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, vdupq_n_f32(0)), vdupq_n_f32(0.5f), vdupq_n_f32(-0.5f));</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; res_f32 = vmlaq_f32(res_f32, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, pow2);</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keyword">const</span> int32x4_t res_s32 = vcvtq_s32_f32(res_f32);</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">return</span> vqmovn_s32(res_s32);</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023098</div><!-- fragment -->
23099</div>
23100</div>
23101<a class="anchor" id="a371a36182341de1fa885d16e8780302f"></a>
23102<div class="memitem">
23103<div class="memproto">
23104 <table class="memname">
23105 <tr>
23106 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqcvt_qs8_f32 </td>
23107 <td>(</td>
23108 <td class="paramtype">const float32x4x2_t&#160;</td>
23109 <td class="paramname"><em>a</em>, </td>
23110 </tr>
23111 <tr>
23112 <td class="paramkey"></td>
23113 <td></td>
23114 <td class="paramtype">int&#160;</td>
23115 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23116 </tr>
23117 <tr>
23118 <td></td>
23119 <td>)</td>
23120 <td></td><td></td>
23121 </tr>
23122 </table>
23123</div><div class="memdoc">
23124
23125<p>Convert a float vector with 4x2 elements to 8 bit fixed point vector with 8 elements. </p>
23126<dl class="params"><dt>Parameters</dt><dd>
23127 <table class="params">
23128 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Float input vector </td></tr>
23129 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23130 </table>
23131 </dd>
23132</dl>
23133<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 8 bit fixed point. The result is saturated in case of overflow </dd></dl>
23134
23135</div>
23136</div>
23137<a class="anchor" id="abc68ac054570316bfd48d4c4c84c3b0e"></a>
23138<div class="memitem">
23139<div class="memproto">
23140<table class="mlabels">
23141 <tr>
23142 <td class="mlabels-left">
23143 <table class="memname">
23144 <tr>
23145 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqcvt_qs8_f32 </td>
23146 <td>(</td>
23147 <td class="paramtype">const float32x4x2_t &amp;&#160;</td>
23148 <td class="paramname"><em>a</em>, </td>
23149 </tr>
23150 <tr>
23151 <td class="paramkey"></td>
23152 <td></td>
23153 <td class="paramtype">int&#160;</td>
23154 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23155 </tr>
23156 <tr>
23157 <td></td>
23158 <td>)</td>
23159 <td></td><td></td>
23160 </tr>
23161 </table>
23162 </td>
23163 <td class="mlabels-right">
23164<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23165 </tr>
23166</table>
23167</div><div class="memdoc">
23168
Kaizenbf8b01d2017-10-12 14:26:51 +010023169<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00868">868</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023170<div class="fragment"><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;{</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(static_cast&lt;float&gt;(1 &lt;&lt; fixed_point_position));</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; float32x4x2_t res_f32 =</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; {</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; vbslq_f32(vcgeq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[0], vdupq_n_f32(0)), vdupq_n_f32(0.5f), vdupq_n_f32(-0.5f)),</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; vbslq_f32(vcgeq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[1], vdupq_n_f32(0)), vdupq_n_f32(0.5f), vdupq_n_f32(-0.5f))</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; }</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; };</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; res_f32.val[0] = vmlaq_f32(res_f32.val[0], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[0], pow2);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; res_f32.val[1] = vmlaq_f32(res_f32.val[1], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[1], pow2);</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keyword">const</span> int32x4x2_t res_s32 =</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; {</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; {</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; vcvtq_s32_f32(res_f32.val[0]),</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; vcvtq_s32_f32(res_f32.val[1]),</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; }</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; };</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keyword">const</span> int16x8_t res_s16 = vcombine_s16(vqmovn_s32(res_s32.val[0]), vqmovn_s32(res_s32.val[1]));</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">return</span> vqmovn_s16(res_s16);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023171</div><!-- fragment -->
23172</div>
23173</div>
23174<a class="anchor" id="afe99b690ec0046061f66f699fa055b47"></a>
23175<div class="memitem">
23176<div class="memproto">
23177<table class="mlabels">
23178 <tr>
23179 <td class="mlabels-left">
23180 <table class="memname">
23181 <tr>
23182 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqcvtq_qs16_f32 </td>
23183 <td>(</td>
23184 <td class="paramtype">const float32x4x2_t &amp;&#160;</td>
23185 <td class="paramname"><em>a</em>, </td>
23186 </tr>
23187 <tr>
23188 <td class="paramkey"></td>
23189 <td></td>
23190 <td class="paramtype">int&#160;</td>
23191 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23192 </tr>
23193 <tr>
23194 <td></td>
23195 <td>)</td>
23196 <td></td><td></td>
23197 </tr>
23198 </table>
23199 </td>
23200 <td class="mlabels-right">
23201<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23202 </tr>
23203</table>
23204</div><div class="memdoc">
23205
23206<p>Convert a float vector with 4x2 elements to 16 bit fixed point vector with 8 elements. </p>
23207<dl class="params"><dt>Parameters</dt><dd>
23208 <table class="params">
23209 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Float input vector </td></tr>
23210 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23211 </table>
23212 </dd>
23213</dl>
23214<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 16 bit fixed point. The result is saturated in case of overflow </dd></dl>
23215
Kaizenbf8b01d2017-10-12 14:26:51 +010023216<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00949">949</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010023217
Kaizenbf8b01d2017-10-12 14:26:51 +010023218<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00262">vdupq_n_qs16_f32()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023219<div class="fragment"><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;{</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(static_cast&lt;float&gt;(1 &lt;&lt; fixed_point_position));</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; float32x4x2_t res_f32 =</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; {</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; vbslq_f32(vcgeq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[0], vdupq_n_f32(0)), vdupq_n_f32(0.5f), vdupq_n_f32(-0.5f)),</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; vbslq_f32(vcgeq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[1], vdupq_n_f32(0)), vdupq_n_f32(0.5f), vdupq_n_f32(-0.5f))</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; };</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; res_f32.val[0] = vmlaq_f32(res_f32.val[0], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[0], pow2);</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; res_f32.val[1] = vmlaq_f32(res_f32.val[1], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[1], pow2);</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keyword">const</span> int32x4x2_t res_s32 =</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; {</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; {</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; vcvtq_s32_f32(res_f32.val[0]),</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; vcvtq_s32_f32(res_f32.val[1])</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; }</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; };</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordflow">return</span> vcombine_s16(vqmovn_s32(res_s32.val[0]), vqmovn_s32(res_s32.val[1]));</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023220</div><!-- fragment -->
23221</div>
23222</div>
23223<a class="anchor" id="ad7eb7d308bb87e94eb693bc13eda5adc"></a>
23224<div class="memitem">
23225<div class="memproto">
23226<table class="mlabels">
23227 <tr>
23228 <td class="mlabels-left">
23229 <table class="memname">
23230 <tr>
23231 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqcvtq_qs8_f32 </td>
23232 <td>(</td>
23233 <td class="paramtype">const float32x4x4_t &amp;&#160;</td>
23234 <td class="paramname"><em>a</em>, </td>
23235 </tr>
23236 <tr>
23237 <td class="paramkey"></td>
23238 <td></td>
23239 <td class="paramtype">int&#160;</td>
23240 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23241 </tr>
23242 <tr>
23243 <td></td>
23244 <td>)</td>
23245 <td></td><td></td>
23246 </tr>
23247 </table>
23248 </td>
23249 <td class="mlabels-right">
23250<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23251 </tr>
23252</table>
23253</div><div class="memdoc">
23254
23255<p>Convert a float vector with 4x4 elements to 8 bit fixed point vector with 16 elements. </p>
23256<dl class="params"><dt>Parameters</dt><dd>
23257 <table class="params">
23258 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Float input vector </td></tr>
23259 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23260 </table>
23261 </dd>
23262</dl>
23263<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 8 bit fixed point. The result is saturated in case of overflow </dd></dl>
23264
Kaizenbf8b01d2017-10-12 14:26:51 +010023265<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00909">909</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010023266
Kaizenbf8b01d2017-10-12 14:26:51 +010023267<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00248">vdupq_n_qs8_f32()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023268<div class="fragment"><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;{</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(static_cast&lt;float&gt;(1 &lt;&lt; fixed_point_position));</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; float32x4x4_t res_f32 =</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; {</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; {</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; vbslq_f32(vcgeq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[0], vdupq_n_f32(0)), vdupq_n_f32(0.5f), vdupq_n_f32(-0.5f)),</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; vbslq_f32(vcgeq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[1], vdupq_n_f32(0)), vdupq_n_f32(0.5f), vdupq_n_f32(-0.5f)),</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; vbslq_f32(vcgeq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[2], vdupq_n_f32(0)), vdupq_n_f32(0.5f), vdupq_n_f32(-0.5f)),</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; vbslq_f32(vcgeq_f32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[3], vdupq_n_f32(0)), vdupq_n_f32(0.5f), vdupq_n_f32(-0.5f))</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; }</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; };</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; res_f32.val[0] = vmlaq_f32(res_f32.val[0], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[0], pow2);</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; res_f32.val[1] = vmlaq_f32(res_f32.val[1], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[1], pow2);</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; res_f32.val[2] = vmlaq_f32(res_f32.val[2], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[2], pow2);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; res_f32.val[3] = vmlaq_f32(res_f32.val[3], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>.val[3], pow2);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keyword">const</span> int32x4x4_t res_s32 =</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; {</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; {</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; vcvtq_s32_f32(res_f32.val[0]),</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; vcvtq_s32_f32(res_f32.val[1]),</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; vcvtq_s32_f32(res_f32.val[2]),</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; vcvtq_s32_f32(res_f32.val[3]),</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; }</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; };</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keyword">const</span> int16x8x2_t res_s16 =</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; {</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; {</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; vcombine_s16(vqmovn_s32(res_s32.val[0]), vqmovn_s32(res_s32.val[1])),</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; vcombine_s16(vqmovn_s32(res_s32.val[2]), vqmovn_s32(res_s32.val[3])),</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; };</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <span class="keywordflow">return</span> vcombine_s8(vqmovn_s16(res_s16.val[0]), vqmovn_s16(res_s16.val[1]));</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023269</div><!-- fragment -->
23270</div>
23271</div>
23272<a class="anchor" id="aa3c9489e850081532442f4da59515852"></a>
23273<div class="memitem">
23274<div class="memproto">
23275<table class="mlabels">
23276 <tr>
23277 <td class="mlabels-left">
23278 <table class="memname">
23279 <tr>
23280 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqexp_qs16 </td>
23281 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023282 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023283 <td class="paramname"><em>a</em>, </td>
23284 </tr>
23285 <tr>
23286 <td class="paramkey"></td>
23287 <td></td>
23288 <td class="paramtype">int&#160;</td>
23289 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23290 </tr>
23291 <tr>
23292 <td></td>
23293 <td>)</td>
23294 <td></td><td></td>
23295 </tr>
23296 </table>
23297 </td>
23298 <td class="mlabels-right">
23299<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23300 </tr>
23301</table>
23302</div><div class="memdoc">
23303
23304<p>Calculate saturating exponential fixed point 16 bit (4 elements) </p>
23305<dl class="params"><dt>Parameters</dt><dd>
23306 <table class="params">
23307 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
23308 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23309 </table>
23310 </dd>
23311</dl>
23312<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit saturating exponential </dd></dl>
23313
Kaizenbf8b01d2017-10-12 14:26:51 +010023314<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01468">1468</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010023315
Jenkinsc3f34a42018-03-02 12:38:09 +000023316<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00309">vqabs_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00570">vqmul_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010023317
Kaizenbf8b01d2017-10-12 14:26:51 +010023318<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01939">vqtanh_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023319<div class="fragment"><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;{</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value = vdup_n_s16(fixed_point_position - 15);</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_one = vdup_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_ln2 = vqrshl_s16(vdup_n_s16(0x58B9), shift_value); <span class="comment">// ln(2)</span></div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_inv_ln2 = vorr_s16(vqrshl_s16(vdup_n_s16(0x38AA), shift_value), const_one); <span class="comment">// 1/ln(2)</span></div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; <span class="comment">// Perform range reduction [-log(2),log(2)]</span></div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> m = <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_inv_ln2, fixed_point_position); <span class="comment">// x / ln(2)</span></div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; <span class="comment">// get decimal part from m</span></div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> dec_m = vqshl_s16(m, vdup_n_s16(-fixed_point_position));</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a> = <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(vqshl_s16(dec_m, vdup_n_s16(fixed_point_position)), const_ln2, fixed_point_position);</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; alpha = <a class="code" href="namespacearm__compute.xhtml#a7c97511a35de87be34f48b4ab4b3c222">vqabs_qs16</a>(vqsub_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, alpha));</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> poly = vqtaylor_poly_qs16&lt;false&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>, fixed_point_position);</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; poly = vqadd_s16(poly, const_one);</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160; poly = vqshl_s16(poly, dec_m);</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_aec34399f16d824f79571abe464556466"><div class="ttname"><a href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">arm_compute::vqmul_qs16</a></div><div class="ttdeci">qint16x4_t vqmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00570">NEFixedPoint.inl:570</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023320<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010023321<div class="ttc" id="namespacearm__compute_xhtml_a7c97511a35de87be34f48b4ab4b3c222"><div class="ttname"><a href="namespacearm__compute.xhtml#a7c97511a35de87be34f48b4ab4b3c222">arm_compute::vqabs_qs16</a></div><div class="ttdeci">qint16x4_t vqabs_qs16(qint16x4_t a)</div><div class="ttdoc">Saturating absolute value of 16 bit fixed point vector (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00309">NEFixedPoint.inl:309</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023322<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023323<div class="ttc" id="namespacearm__compute_xhtml_a82c56f0856f56d430393e6a00baee983"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">arm_compute::qint16x4_t</a></div><div class="ttdeci">int16x4_t qint16x4_t</div><div class="ttdoc">16 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00041">NEFixedPoint.h:41</a></div></div>
23324</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010023325</div>
23326</div>
23327<a class="anchor" id="a635b41196d74b1f2c4d9ee9298444796"></a>
23328<div class="memitem">
23329<div class="memproto">
23330<table class="mlabels">
23331 <tr>
23332 <td class="mlabels-left">
23333 <table class="memname">
23334 <tr>
23335 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqexp_qs8 </td>
23336 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023337 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023338 <td class="paramname"><em>a</em>, </td>
23339 </tr>
23340 <tr>
23341 <td class="paramkey"></td>
23342 <td></td>
23343 <td class="paramtype">int&#160;</td>
23344 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23345 </tr>
23346 <tr>
23347 <td></td>
23348 <td>)</td>
23349 <td></td><td></td>
23350 </tr>
23351 </table>
23352 </td>
23353 <td class="mlabels-right">
23354<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23355 </tr>
23356</table>
23357</div><div class="memdoc">
23358
23359<p>Calculate saturating exponential fixed point 8bit (8 elements) </p>
23360<dl class="params"><dt>Parameters</dt><dd>
23361 <table class="params">
23362 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
23363 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23364 </table>
23365 </dd>
23366</dl>
23367<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit saturating exponential </dd></dl>
23368
Kaizenbf8b01d2017-10-12 14:26:51 +010023369<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01442">1442</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023370
Jenkinsc3f34a42018-03-02 12:38:09 +000023371<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00304">vqabs_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00553">vqmul_qs8()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023372
Kaizenbf8b01d2017-10-12 14:26:51 +010023373<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01926">vqtanh_qs8()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023374<div class="fragment"><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;{</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value = vdup_n_s8(fixed_point_position - 7);</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_one = vdup_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_ln2 = vqrshl_s8(vdup_n_s8(0x58), shift_value); <span class="comment">// ln(2)</span></div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_inv_ln2 = vorr_s8(vqrshl_s8(vdup_n_s8(0x38), shift_value), const_one); <span class="comment">// 1/ln(2)</span></div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <span class="comment">// Perform range reduction [-log(2),log(2)]</span></div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> m = <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_inv_ln2, fixed_point_position); <span class="comment">// x / ln(2)</span></div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; <span class="comment">// get decimal part from m</span></div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> dec_m = vqshl_s8(m, vdup_n_s8(-fixed_point_position));</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a> = <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(vqshl_s8(dec_m, vdup_n_s8(fixed_point_position)), const_ln2, fixed_point_position);</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; alpha = <a class="code" href="namespacearm__compute.xhtml#a4b2c9440d5fa4909ae909869877f39e3">vqabs_qs8</a>(vqsub_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, alpha));</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> poly = vqtaylor_poly_qs8&lt;false&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>, fixed_point_position);</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; poly = vqadd_s8(poly, const_one);</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; poly = vqshl_s8(poly, dec_m);</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a4b2c9440d5fa4909ae909869877f39e3"><div class="ttname"><a href="namespacearm__compute.xhtml#a4b2c9440d5fa4909ae909869877f39e3">arm_compute::vqabs_qs8</a></div><div class="ttdeci">qint8x8_t vqabs_qs8(qint8x8_t a)</div><div class="ttdoc">Saturating absolute value of 8 bit fixed point vector (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00304">NEFixedPoint.inl:304</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023375<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010023376<div class="ttc" id="namespacearm__compute_xhtml_a746205173d1a1f3955fa0c26b5be3b10"><div class="ttname"><a href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">arm_compute::vqmul_qs8</a></div><div class="ttdeci">qint8x8_t vqmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00553">NEFixedPoint.inl:553</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023377<div class="ttc" id="namespacearm__compute_xhtml_a16a1bee14f1db073f75caa76dacf5078"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">arm_compute::qint8x8_t</a></div><div class="ttdeci">int8x8_t qint8x8_t</div><div class="ttdoc">8 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00033">NEFixedPoint.h:33</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023378<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023379</div><!-- fragment -->
23380</div>
23381</div>
Kaizen8938bd32017-09-28 14:38:23 +010023382<a class="anchor" id="a5b5e085002cf5a69fb80e6991d0a4556"></a>
23383<div class="memitem">
23384<div class="memproto">
23385<table class="mlabels">
23386 <tr>
23387 <td class="mlabels-left">
23388 <table class="memname">
23389 <tr>
23390 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqexpq_qs16 </td>
23391 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023392 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023393 <td class="paramname"><em>a</em>, </td>
23394 </tr>
23395 <tr>
23396 <td class="paramkey"></td>
23397 <td></td>
23398 <td class="paramtype">int&#160;</td>
23399 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23400 </tr>
23401 <tr>
23402 <td></td>
23403 <td>)</td>
23404 <td></td><td></td>
23405 </tr>
23406 </table>
23407 </td>
23408 <td class="mlabels-right">
23409<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23410 </tr>
23411</table>
23412</div><div class="memdoc">
23413
23414<p>Calculate saturating exponential fixed point 16 bit (8 elements) </p>
23415<dl class="params"><dt>Parameters</dt><dd>
23416 <table class="params">
23417 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
23418 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23419 </table>
23420 </dd>
23421</dl>
23422<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit saturating exponential </dd></dl>
23423
Kaizenbf8b01d2017-10-12 14:26:51 +010023424<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01520">1520</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010023425
Jenkinsc3f34a42018-03-02 12:38:09 +000023426<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00319">vqabsq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00607">vqmulq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00474">vqsubq_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010023427
Kaizenbf8b01d2017-10-12 14:26:51 +010023428<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01983">vqpowq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01965">vqtanhq_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023429<div class="fragment"><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;{</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value = vdupq_n_s16(fixed_point_position - 15);</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_one = vdupq_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_ln2 = vqrshlq_s16(vdupq_n_s16(0x58B9), shift_value); <span class="comment">// ln(2)</span></div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_inv_ln2 = vorrq_s16(vqrshlq_s16(vdupq_n_s16(0x38AA), shift_value), const_one); <span class="comment">// 1/ln(2)</span></div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; <span class="comment">// Perform range reduction [-log(2),log(2)]</span></div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> m = <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_inv_ln2, fixed_point_position); <span class="comment">// x / ln(2)</span></div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; <span class="comment">// get decimal part from m</span></div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> dec_m = vqshlq_s16(m, vdupq_n_s16(-fixed_point_position));</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a> = <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(vqshlq_s16(dec_m, vdupq_n_s16(fixed_point_position)), const_ln2, fixed_point_position);</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; alpha = <a class="code" href="namespacearm__compute.xhtml#aa001ed913705cf378d947052435917aa">vqabsq_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a9edb31327a1e06c730d5a09b14dcfeb9">vqsubq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, alpha));</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> poly = vqtaylor_polyq_qs16&lt;false&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>, fixed_point_position);</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; poly = vqaddq_s16(poly, const_one);</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; poly = vqshlq_s16(poly, dec_m);</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a9edb31327a1e06c730d5a09b14dcfeb9"><div class="ttname"><a href="namespacearm__compute.xhtml#a9edb31327a1e06c730d5a09b14dcfeb9">arm_compute::vqsubq_qs16</a></div><div class="ttdeci">qint16x8_t vqsubq_qs16(qint16x8_t a, qint16x8_t b)</div><div class="ttdoc">16 bit fixed point vector saturating subtraction (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00474">NEFixedPoint.inl:474</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023430<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010023431<div class="ttc" id="namespacearm__compute_xhtml_aa001ed913705cf378d947052435917aa"><div class="ttname"><a href="namespacearm__compute.xhtml#aa001ed913705cf378d947052435917aa">arm_compute::vqabsq_qs16</a></div><div class="ttdeci">qint16x8_t vqabsq_qs16(qint16x8_t a)</div><div class="ttdoc">Saturating absolute value of 16 bit fixed point vector (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00319">NEFixedPoint.inl:319</a></div></div>
23432<div class="ttc" id="namespacearm__compute_xhtml_a982d792d366430a954d96e8575d3c313"><div class="ttname"><a href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">arm_compute::vqmulq_qs16</a></div><div class="ttdeci">qint16x8_t vqmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00607">NEFixedPoint.inl:607</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023433<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023434<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023435</div><!-- fragment -->
23436</div>
23437</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023438<a class="anchor" id="ae6cf1822b8fbad305677650a2b751247"></a>
23439<div class="memitem">
23440<div class="memproto">
23441<table class="mlabels">
23442 <tr>
23443 <td class="mlabels-left">
23444 <table class="memname">
23445 <tr>
23446 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqexpq_qs8 </td>
23447 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023448 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023449 <td class="paramname"><em>a</em>, </td>
23450 </tr>
23451 <tr>
23452 <td class="paramkey"></td>
23453 <td></td>
23454 <td class="paramtype">int&#160;</td>
23455 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23456 </tr>
23457 <tr>
23458 <td></td>
23459 <td>)</td>
23460 <td></td><td></td>
23461 </tr>
23462 </table>
23463 </td>
23464 <td class="mlabels-right">
23465<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23466 </tr>
23467</table>
23468</div><div class="memdoc">
23469
23470<p>Calculate saturating exponential fixed point 8bit (16 elements) </p>
23471<dl class="params"><dt>Parameters</dt><dd>
23472 <table class="params">
23473 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
23474 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23475 </table>
23476 </dd>
23477</dl>
23478<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit saturating exponential </dd></dl>
23479
Kaizenbf8b01d2017-10-12 14:26:51 +010023480<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01494">1494</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023481
Jenkinsc3f34a42018-03-02 12:38:09 +000023482<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">arm_compute::test::validation::alpha</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00314">vqabsq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00587">vqmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00469">vqsubq_qs8()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023483
Kaizenbf8b01d2017-10-12 14:26:51 +010023484<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01978">vqpowq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01952">vqtanhq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023485<div class="fragment"><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;{</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value = vdupq_n_s8(fixed_point_position - 7);</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_one = vdupq_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_ln2 = vqrshlq_s8(vdupq_n_s8(0x58), shift_value); <span class="comment">// ln(2)</span></div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_inv_ln2 = vorrq_s8(vqrshlq_s8(vdupq_n_s8(0x38), shift_value), const_one); <span class="comment">// 1/ln(2)</span></div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; <span class="comment">// Perform range reduction [-log(2),log(2)]</span></div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> m = <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, const_inv_ln2, fixed_point_position); <span class="comment">// x / ln(2)</span></div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; <span class="comment">// get decimal part from m</span></div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> dec_m = vqshlq_s8(m, vdupq_n_s8(-fixed_point_position));</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a> = <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(vqshlq_s8(dec_m, vdupq_n_s8(fixed_point_position)), const_ln2, fixed_point_position);</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; alpha = <a class="code" href="namespacearm__compute.xhtml#ac8095edd652a1f3a76bf9d0f4251827a">vqabsq_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#ab2a6ce3d8239e49c81af1ebc617680b4">vqsubq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, alpha));</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> poly = vqtaylor_polyq_qs8&lt;false&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>, fixed_point_position);</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; poly = vqaddq_s8(poly, const_one);</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; poly = vqshlq_s8(poly, dec_m);</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023486<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010023487<div class="ttc" id="namespacearm__compute_xhtml_ac8095edd652a1f3a76bf9d0f4251827a"><div class="ttname"><a href="namespacearm__compute.xhtml#ac8095edd652a1f3a76bf9d0f4251827a">arm_compute::vqabsq_qs8</a></div><div class="ttdeci">qint8x16_t vqabsq_qs8(qint8x16_t a)</div><div class="ttdoc">Saturating absolute value of 8 bit fixed point vector (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00314">NEFixedPoint.inl:314</a></div></div>
23488<div class="ttc" id="namespacearm__compute_xhtml_a081c0605c83155125ad95a144a1d6071"><div class="ttname"><a href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">arm_compute::vqmulq_qs8</a></div><div class="ttdeci">qint8x16_t vqmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00587">NEFixedPoint.inl:587</a></div></div>
23489<div class="ttc" id="namespacearm__compute_xhtml_ab2a6ce3d8239e49c81af1ebc617680b4"><div class="ttname"><a href="namespacearm__compute.xhtml#ab2a6ce3d8239e49c81af1ebc617680b4">arm_compute::vqsubq_qs8</a></div><div class="ttdeci">qint8x16_t vqsubq_qs8(qint8x16_t a, qint8x16_t b)</div><div class="ttdoc">8 bit fixed point vector saturating subtraction (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00469">NEFixedPoint.inl:469</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023490<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00115">GEMM.cpp:115</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023491</div><!-- fragment -->
23492</div>
23493</div>
23494<a class="anchor" id="a23041b440c544f24afd9b1e79a6d77df"></a>
23495<div class="memitem">
23496<div class="memproto">
23497<table class="mlabels">
23498 <tr>
23499 <td class="mlabels-left">
23500 <table class="memname">
23501 <tr>
23502 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqinvsqrt_qs16 </td>
23503 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023504 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023505 <td class="paramname"><em>a</em>, </td>
23506 </tr>
23507 <tr>
23508 <td class="paramkey"></td>
23509 <td></td>
23510 <td class="paramtype">int&#160;</td>
23511 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23512 </tr>
23513 <tr>
23514 <td></td>
23515 <td>)</td>
23516 <td></td><td></td>
23517 </tr>
23518 </table>
23519 </td>
23520 <td class="mlabels-right">
23521<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23522 </tr>
23523</table>
23524</div><div class="memdoc">
23525
23526<p>Calculate saturating inverse square root for fixed point 16 bit using Newton-Raphosn method (4 elements) </p>
23527<dl class="params"><dt>Parameters</dt><dd>
23528 <table class="params">
23529 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
23530 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23531 </table>
23532 </dd>
23533</dl>
23534<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit inverse sqrt. </dd></dl>
23535
Kaizenbf8b01d2017-10-12 14:26:51 +010023536<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01785">1785</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010023537
Kaizenbf8b01d2017-10-12 14:26:51 +010023538<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00238">vdup_n_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00570">vqmul_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023539<div class="fragment"><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;{</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_three = vdup_n_s16(3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value = vqneg_s16(vqsub_s16(vdup_n_s16(16), vqadd_s16(vclz_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s16(fixed_point_position))));</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; <span class="comment">// Add one when the shift value is negative in order to get the correct result when we shift right with 1</span></div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> temp = vqsub_s16(vdup_n_s16(16), vqadd_s16(vclz_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s16(fixed_point_position)));</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; uint16x4_t temp_ltz = vclt_s16(temp, <a class="code" href="namespacearm__compute.xhtml#a1f6c3965dec29d8ac84ff84a164e9d8e">vdup_n_qs16</a>(0));</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160; temp = vbsl_s16(temp_ltz, vqadd_s16(temp, vdup_n_s16(1)), temp);</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value2 = vqneg_s16(vshr_n_s16(temp, 1));</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; temp = vqshl_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x = temp;</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160; <span class="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; <span class="comment">// After five iterations we have the result for 16 bit</span></div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, vqsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, vqsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, vqsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, vqsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; x = vshr_n_s16(<a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, vqsub_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; <span class="keywordflow">return</span> vqshl_s16(x, shift_value2);</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_aec34399f16d824f79571abe464556466"><div class="ttname"><a href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">arm_compute::vqmul_qs16</a></div><div class="ttdeci">qint16x4_t vqmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00570">NEFixedPoint.inl:570</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023540<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010023541<div class="ttc" id="namespacearm__compute_xhtml_a1f6c3965dec29d8ac84ff84a164e9d8e"><div class="ttname"><a href="namespacearm__compute.xhtml#a1f6c3965dec29d8ac84ff84a164e9d8e">arm_compute::vdup_n_qs16</a></div><div class="ttdeci">qint16x4_t vdup_n_qs16(qint16_t a)</div><div class="ttdoc">16 bit fixed point vector duplicate (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00238">NEFixedPoint.inl:238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023542<div class="ttc" id="namespacearm__compute_xhtml_a82c56f0856f56d430393e6a00baee983"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">arm_compute::qint16x4_t</a></div><div class="ttdeci">int16x4_t qint16x4_t</div><div class="ttdoc">16 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00041">NEFixedPoint.h:41</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023543</div><!-- fragment -->
23544</div>
23545</div>
23546<a class="anchor" id="a5ddc3dc4b4ee6847fd96c6a8599e20e4"></a>
23547<div class="memitem">
23548<div class="memproto">
23549<table class="mlabels">
23550 <tr>
23551 <td class="mlabels-left">
23552 <table class="memname">
23553 <tr>
23554 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqinvsqrt_qs8 </td>
23555 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023556 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023557 <td class="paramname"><em>a</em>, </td>
23558 </tr>
23559 <tr>
23560 <td class="paramkey"></td>
23561 <td></td>
23562 <td class="paramtype">int&#160;</td>
23563 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23564 </tr>
23565 <tr>
23566 <td></td>
23567 <td>)</td>
23568 <td></td><td></td>
23569 </tr>
23570 </table>
23571 </td>
23572 <td class="mlabels-right">
23573<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23574 </tr>
23575</table>
23576</div><div class="memdoc">
23577
23578<p>Calculate saturating inverse square root for fixed point 8bit using Newton-Raphosn method (8 elements) </p>
23579<dl class="params"><dt>Parameters</dt><dd>
23580 <table class="params">
23581 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
23582 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23583 </table>
23584 </dd>
23585</dl>
23586<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit inverse sqrt. </dd></dl>
23587
Kaizenbf8b01d2017-10-12 14:26:51 +010023588<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01758">1758</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023589
Kaizenbf8b01d2017-10-12 14:26:51 +010023590<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00233">vdup_n_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00553">vqmul_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023591<div class="fragment"><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;{</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_three = vdup_n_s8(3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value = vqneg_s8(vqsub_s8(vdup_n_s8(8), vqadd_s8(vclz_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s8(fixed_point_position))));</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; <span class="comment">// Add one when the shift value is negative in order to get the correct result when we shift right with 1</span></div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> temp = vqsub_s8(vdup_n_s8(8), vqadd_s8(vclz_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s8(fixed_point_position)));</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; uint8x8_t temp_ltz = vclt_s8(temp, <a class="code" href="namespacearm__compute.xhtml#a1a226812e3cfdf3494adbdd92d4a1cb3">vdup_n_qs8</a>(0));</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; temp = vbsl_s8(temp_ltz, vqadd_s8(temp, vdup_n_s8(1)), temp);</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value2 = vqneg_s8(vshr_n_s8(temp, 1));</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160; temp = vqshl_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x = temp;</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; <span class="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; <span class="comment">// After three iterations we have the result for 8 bit</span></div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160; x = vshr_n_s8(<a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(x, vqsub_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; x = vshr_n_s8(<a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(x, vqsub_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; x = vshr_n_s8(<a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(x, vqsub_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; <span class="keywordflow">return</span> vqshl_s8(x, shift_value2);</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010023592<div class="ttc" id="namespacearm__compute_xhtml_a746205173d1a1f3955fa0c26b5be3b10"><div class="ttname"><a href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">arm_compute::vqmul_qs8</a></div><div class="ttdeci">qint8x8_t vqmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00553">NEFixedPoint.inl:553</a></div></div>
23593<div class="ttc" id="namespacearm__compute_xhtml_a1a226812e3cfdf3494adbdd92d4a1cb3"><div class="ttname"><a href="namespacearm__compute.xhtml#a1a226812e3cfdf3494adbdd92d4a1cb3">arm_compute::vdup_n_qs8</a></div><div class="ttdeci">qint8x8_t vdup_n_qs8(qint8_t a)</div><div class="ttdoc">8 bit fixed point vector duplicate (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00233">NEFixedPoint.inl:233</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023594<div class="ttc" id="namespacearm__compute_xhtml_a16a1bee14f1db073f75caa76dacf5078"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">arm_compute::qint8x8_t</a></div><div class="ttdeci">int8x8_t qint8x8_t</div><div class="ttdoc">8 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00033">NEFixedPoint.h:33</a></div></div>
23595</div><!-- fragment -->
23596</div>
23597</div>
Kaizen8938bd32017-09-28 14:38:23 +010023598<a class="anchor" id="a74613d11a6b769ddcdd28d80fb8d74a8"></a>
23599<div class="memitem">
23600<div class="memproto">
23601<table class="mlabels">
23602 <tr>
23603 <td class="mlabels-left">
23604 <table class="memname">
23605 <tr>
23606 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqinvsqrtq_qs16 </td>
23607 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023608 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023609 <td class="paramname"><em>a</em>, </td>
23610 </tr>
23611 <tr>
23612 <td class="paramkey"></td>
23613 <td></td>
23614 <td class="paramtype">int&#160;</td>
23615 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23616 </tr>
23617 <tr>
23618 <td></td>
23619 <td>)</td>
23620 <td></td><td></td>
23621 </tr>
23622 </table>
23623 </td>
23624 <td class="mlabels-right">
23625<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23626 </tr>
23627</table>
23628</div><div class="memdoc">
23629
23630<p>Calculate saturating inverse square root for fixed point 16 bit using Newton-Raphosn method (8 elements) </p>
23631<dl class="params"><dt>Parameters</dt><dd>
23632 <table class="params">
23633 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
23634 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23635 </table>
23636 </dd>
23637</dl>
23638<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit inverse sqrt. </dd></dl>
23639
Kaizenbf8b01d2017-10-12 14:26:51 +010023640<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01897">1897</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010023641
Kaizenbf8b01d2017-10-12 14:26:51 +010023642<p>References <a class="el" href="namespacearm__compute.xhtml#a740436aed8843612da747f40ff926875">vdupq_n_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00607">vqmulq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023643<div class="fragment"><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;{</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_three = vdupq_n_s16(3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value = vqnegq_s16(vqsubq_s16(vdupq_n_s16(16), vqaddq_s16(vclzq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s16(fixed_point_position))));</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160; <span class="comment">// Add one when the shift value is negative in order to get the correct result when we shift right with 1</span></div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> temp = vqsubq_s16(vdupq_n_s16(16), vqaddq_s16(vclzq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s16(fixed_point_position)));</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; uint16x8_t temp_ltz = vcltq_s16(temp, <a class="code" href="namespacearm__compute.xhtml#aed2fc8d1b9642b7625379a930ef4914a">vdupq_n_qs16</a>(0));</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; temp = vbslq_s16(temp_ltz, vqaddq_s16(temp, vdupq_n_s16(1)), temp);</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value2 = vqnegq_s16(vshrq_n_s16(temp, 1));</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; temp = vqshlq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x = temp;</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; <span class="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; <span class="comment">// After five iterations we have the result for 16 bit</span></div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, vqsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, vqsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, vqsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, vqsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; x = vshrq_n_s16(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, vqsubq_s16(const_three, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; <span class="keywordflow">return</span> vqshlq_s16(x, shift_value2);</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010023644<div class="ttc" id="namespacearm__compute_xhtml_aed2fc8d1b9642b7625379a930ef4914a"><div class="ttname"><a href="namespacearm__compute.xhtml#aed2fc8d1b9642b7625379a930ef4914a">arm_compute::vdupq_n_qs16</a></div><div class="ttdeci">qint16x8_t vdupq_n_qs16(qint16_t a)</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00274">NEFixedPoint.inl:274</a></div></div>
23645<div class="ttc" id="namespacearm__compute_xhtml_a982d792d366430a954d96e8575d3c313"><div class="ttname"><a href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">arm_compute::vqmulq_qs16</a></div><div class="ttdeci">qint16x8_t vqmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00607">NEFixedPoint.inl:607</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023646<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
23647</div><!-- fragment -->
23648</div>
23649</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023650<a class="anchor" id="ad5d5110467053814882fb616c6cb855b"></a>
23651<div class="memitem">
23652<div class="memproto">
23653<table class="mlabels">
23654 <tr>
23655 <td class="mlabels-left">
23656 <table class="memname">
23657 <tr>
23658 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqinvsqrtq_qs8 </td>
23659 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023660 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023661 <td class="paramname"><em>a</em>, </td>
23662 </tr>
23663 <tr>
23664 <td class="paramkey"></td>
23665 <td></td>
23666 <td class="paramtype">int&#160;</td>
23667 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23668 </tr>
23669 <tr>
23670 <td></td>
23671 <td>)</td>
23672 <td></td><td></td>
23673 </tr>
23674 </table>
23675 </td>
23676 <td class="mlabels-right">
23677<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23678 </tr>
23679</table>
23680</div><div class="memdoc">
23681
23682<p>Calculate saturating inverse square root for fixed point 8bit using Newton-Raphosn method (16 elements) </p>
23683<dl class="params"><dt>Parameters</dt><dd>
23684 <table class="params">
23685 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
23686 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23687 </table>
23688 </dd>
23689</dl>
23690<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit inverse sqrt. </dd></dl>
23691
Kaizenbf8b01d2017-10-12 14:26:51 +010023692<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01870">1870</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023693
Kaizenbf8b01d2017-10-12 14:26:51 +010023694<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00243">vdupq_n_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00587">vqmulq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023695<div class="fragment"><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;{</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_three = vdupq_n_s8(3 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value = vqnegq_s8(vqsubq_s8(vdupq_n_s8(8), vqaddq_s8(vclzq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s8(fixed_point_position))));</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; <span class="comment">// Add one when the shift value is negative in order to get the correct result when we shift right with 1</span></div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> temp = vqsubq_s8(vdupq_n_s8(8), vqaddq_s8(vclzq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s8(fixed_point_position)));</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; uint8x16_t temp_ltz = vcltq_s8(temp, <a class="code" href="namespacearm__compute.xhtml#adbd4df93ed00fcda54f91e669ea2be04">vdupq_n_qs8</a>(0));</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160; temp = vbslq_s8(temp_ltz, vqaddq_s8(temp, vdupq_n_s8(1)), temp);</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value2 = vqnegq_s8(vshrq_n_s8(temp, 1));</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; temp = vqshlq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x = temp;</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; <span class="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; <span class="comment">// After three iterations we have the result for 8 bit</span></div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; x = vshrq_n_s8(<a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, vqsubq_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160; x = vshrq_n_s8(<a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, vqsubq_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; x = vshrq_n_s8(<a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, vqsubq_s8(const_three, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(temp, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, x, fixed_point_position), fixed_point_position)), fixed_point_position), 1);</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; <span class="keywordflow">return</span> vqshlq_s8(x, shift_value2);</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023696<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010023697<div class="ttc" id="namespacearm__compute_xhtml_adbd4df93ed00fcda54f91e669ea2be04"><div class="ttname"><a href="namespacearm__compute.xhtml#adbd4df93ed00fcda54f91e669ea2be04">arm_compute::vdupq_n_qs8</a></div><div class="ttdeci">qint8x16_t vdupq_n_qs8(qint8_t a)</div><div class="ttdoc">8 bit fixed point vector duplicate (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00243">NEFixedPoint.inl:243</a></div></div>
23698<div class="ttc" id="namespacearm__compute_xhtml_a081c0605c83155125ad95a144a1d6071"><div class="ttname"><a href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">arm_compute::vqmulq_qs8</a></div><div class="ttdeci">qint8x16_t vqmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00587">NEFixedPoint.inl:587</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023699</div><!-- fragment -->
23700</div>
23701</div>
23702<a class="anchor" id="aa761736badde8e65c51952cc613be3b9"></a>
23703<div class="memitem">
23704<div class="memproto">
23705<table class="mlabels">
23706 <tr>
23707 <td class="mlabels-left">
23708 <table class="memname">
23709 <tr>
23710 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqmla_qs16 </td>
23711 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023712 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023713 <td class="paramname"><em>a</em>, </td>
23714 </tr>
23715 <tr>
23716 <td class="paramkey"></td>
23717 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023718 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023719 <td class="paramname"><em>b</em>, </td>
23720 </tr>
23721 <tr>
23722 <td class="paramkey"></td>
23723 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023724 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023725 <td class="paramname"><em>c</em>, </td>
23726 </tr>
23727 <tr>
23728 <td class="paramkey"></td>
23729 <td></td>
23730 <td class="paramtype">int&#160;</td>
23731 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23732 </tr>
23733 <tr>
23734 <td></td>
23735 <td>)</td>
23736 <td></td><td></td>
23737 </tr>
23738 </table>
23739 </td>
23740 <td class="mlabels-right">
23741<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23742 </tr>
23743</table>
23744</div><div class="memdoc">
23745
23746<p>16 bit fixed point vector saturating multiply-accumulate (4 elements). </p>
23747<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to <code>a</code> (a + b * c).</p>
23748<dl class="params"><dt>Parameters</dt><dd>
23749 <table class="params">
23750 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector where the result of multiplication must be added to </td></tr>
23751 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
23752 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 16 bit fixed point input vector </td></tr>
23753 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23754 </table>
23755 </dd>
23756</dl>
23757<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiply-accumulate. The result is saturated in case of overflow </dd></dl>
23758
Kaizenbf8b01d2017-10-12 14:26:51 +010023759<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00741">741</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023760<div class="fragment"><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;{</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> tmp = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; tmp = vmlal_s16(tmp, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; tmp = vqshlq_s32(tmp, fixed_point_position_s32);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="comment">// Convert back to qint8 and accumulate</span></div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">return</span> vqadd_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, vqmovn_s32(tmp));</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023761<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023762<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
23763<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023764</div><!-- fragment -->
23765</div>
23766</div>
23767<a class="anchor" id="ac6cb55578e8ff1f3c20aa50f2e728679"></a>
23768<div class="memitem">
23769<div class="memproto">
23770<table class="mlabels">
23771 <tr>
23772 <td class="mlabels-left">
23773 <table class="memname">
23774 <tr>
23775 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqmla_qs8 </td>
23776 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023777 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023778 <td class="paramname"><em>a</em>, </td>
23779 </tr>
23780 <tr>
23781 <td class="paramkey"></td>
23782 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023783 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023784 <td class="paramname"><em>b</em>, </td>
23785 </tr>
23786 <tr>
23787 <td class="paramkey"></td>
23788 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023789 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023790 <td class="paramname"><em>c</em>, </td>
23791 </tr>
23792 <tr>
23793 <td class="paramkey"></td>
23794 <td></td>
23795 <td class="paramtype">int&#160;</td>
23796 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23797 </tr>
23798 <tr>
23799 <td></td>
23800 <td>)</td>
23801 <td></td><td></td>
23802 </tr>
23803 </table>
23804 </td>
23805 <td class="mlabels-right">
23806<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23807 </tr>
23808</table>
23809</div><div class="memdoc">
23810
23811<p>8 bit fixed point vector saturating multiply-accumulate (8 elements). </p>
23812<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to <code>a</code> (a + b * c).</p>
23813<dl class="params"><dt>Parameters</dt><dd>
23814 <table class="params">
23815 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector where the result of multiplication must be added to </td></tr>
23816 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
23817 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
23818 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23819 </table>
23820 </dd>
23821</dl>
23822<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate. The result is saturated in case of overflow </dd></dl>
23823
Kaizenbf8b01d2017-10-12 14:26:51 +010023824<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00724">724</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023825<div class="fragment"><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;{</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; tmp = vmlal_s8(tmp, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; tmp = vqshlq_s16(tmp, fixed_point_position_s16);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="comment">// Convert back to qint8 and accumulate</span></div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">return</span> vqadd_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, vqmovn_s16(tmp));</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023826<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023827<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
23828<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023829</div><!-- fragment -->
23830</div>
23831</div>
23832<a class="anchor" id="a71633dedee7ccca61420733d9fd24fae"></a>
23833<div class="memitem">
23834<div class="memproto">
23835<table class="mlabels">
23836 <tr>
23837 <td class="mlabels-left">
23838 <table class="memname">
23839 <tr>
23840 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> vqmlal_qs16 </td>
23841 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023842 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023843 <td class="paramname"><em>a</em>, </td>
23844 </tr>
23845 <tr>
23846 <td class="paramkey"></td>
23847 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023848 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023849 <td class="paramname"><em>b</em>, </td>
23850 </tr>
23851 <tr>
23852 <td class="paramkey"></td>
23853 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023854 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023855 <td class="paramname"><em>c</em>, </td>
23856 </tr>
23857 <tr>
23858 <td class="paramkey"></td>
23859 <td></td>
23860 <td class="paramtype">int&#160;</td>
23861 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23862 </tr>
23863 <tr>
23864 <td></td>
23865 <td>)</td>
23866 <td></td><td></td>
23867 </tr>
23868 </table>
23869 </td>
23870 <td class="mlabels-right">
23871<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23872 </tr>
23873</table>
23874</div><div class="memdoc">
23875
23876<p>16 bit fixed point vector saturating multiply-accumulate long (4 elements). </p>
23877<p>The saturation is performed on the 16 bit fixed point output vector. This operation performs the product between <code>b</code> and <code>c</code> and add the result to the 32 bit fixed point vector <code>a</code> (a + b * c). 4 elements</p>
23878<dl class="params"><dt>Parameters</dt><dd>
23879 <table class="params">
23880 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 32 bit fixed point input vector where the result of multiplication must be added to </td></tr>
23881 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
23882 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 16 bit fixed point input vector </td></tr>
23883 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23884 </table>
23885 </dd>
23886</dl>
23887<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiply-accumulate long </dd></dl>
23888
Kaizenbf8b01d2017-10-12 14:26:51 +010023889<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00851">851</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023890<div class="fragment"><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;{</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> tmp = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; tmp = vmlal_s16(tmp, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>);</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; tmp = vqshlq_s32(tmp, fixed_point_position_s32);</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="comment">// Accumulate</span></div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">return</span> vqaddq_s32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, tmp);</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023891<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023892<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
23893<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023894</div><!-- fragment -->
23895</div>
23896</div>
23897<a class="anchor" id="aedfa26202753ca9db96ae3bcb51b14b0"></a>
23898<div class="memitem">
23899<div class="memproto">
23900<table class="mlabels">
23901 <tr>
23902 <td class="mlabels-left">
23903 <table class="memname">
23904 <tr>
23905 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqmlal_qs8 </td>
23906 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023907 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023908 <td class="paramname"><em>a</em>, </td>
23909 </tr>
23910 <tr>
23911 <td class="paramkey"></td>
23912 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023913 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023914 <td class="paramname"><em>b</em>, </td>
23915 </tr>
23916 <tr>
23917 <td class="paramkey"></td>
23918 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023919 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010023920 <td class="paramname"><em>c</em>, </td>
23921 </tr>
23922 <tr>
23923 <td class="paramkey"></td>
23924 <td></td>
23925 <td class="paramtype">int&#160;</td>
23926 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23927 </tr>
23928 <tr>
23929 <td></td>
23930 <td>)</td>
23931 <td></td><td></td>
23932 </tr>
23933 </table>
23934 </td>
23935 <td class="mlabels-right">
23936<span class="mlabels"><span class="mlabel">inline</span></span> </td>
23937 </tr>
23938</table>
23939</div><div class="memdoc">
23940
23941<p>8 bit fixed point vector saturating multiply-accumulate long (8 elements). </p>
23942<p>The saturation is performed on the 16 bit fixed point output vector. This operation performs the product between <code>b</code> and <code>c</code> and add the result to the 16 bit fixed point vector <code>a</code> (a + b * c). 8 elements</p>
23943<dl class="params"><dt>Parameters</dt><dd>
23944 <table class="params">
23945 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector where the result of multiplication must be added to </td></tr>
23946 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
23947 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
23948 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
23949 </table>
23950 </dd>
23951</dl>
23952<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate long </dd></dl>
23953
Kaizenbf8b01d2017-10-12 14:26:51 +010023954<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00834">834</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023955
Anthony Barbierf45d5a92018-01-24 16:23:15 +000023956<p>Referenced by <a class="el" href="_n_e_direct_convolution_detail_8h_source.xhtml#l00229">arm_compute::detail::convolve_3x3&lt; 1 &gt;()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000023957<div class="fragment"><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;{</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; tmp = vmlal_s8(tmp, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; tmp = vqshlq_s16(tmp, fixed_point_position_s16);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="comment">// Accumulate</span></div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">return</span> vqaddq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, tmp);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023958<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000023959<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
23960<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010023961</div><!-- fragment -->
23962</div>
23963</div>
23964<a class="anchor" id="aed829745c42ecd74cfff15bc92936ba5"></a>
23965<div class="memitem">
23966<div class="memproto">
23967<table class="mlabels">
23968 <tr>
23969 <td class="mlabels-left">
23970 <table class="memname">
23971 <tr>
23972 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqmlaq_qs16 </td>
23973 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023974 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023975 <td class="paramname"><em>a</em>, </td>
23976 </tr>
23977 <tr>
23978 <td class="paramkey"></td>
23979 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023980 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023981 <td class="paramname"><em>b</em>, </td>
23982 </tr>
23983 <tr>
23984 <td class="paramkey"></td>
23985 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023986 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010023987 <td class="paramname"><em>c</em>, </td>
23988 </tr>
23989 <tr>
23990 <td class="paramkey"></td>
23991 <td></td>
23992 <td class="paramtype">int&#160;</td>
23993 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
23994 </tr>
23995 <tr>
23996 <td></td>
23997 <td>)</td>
23998 <td></td><td></td>
23999 </tr>
24000 </table>
24001 </td>
24002 <td class="mlabels-right">
24003<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24004 </tr>
24005</table>
24006</div><div class="memdoc">
24007
24008<p>16 bit fixed point vector saturating multiply-accumulate (8 elements). </p>
24009<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to <code>a</code> (a + b * c).</p>
24010<dl class="params"><dt>Parameters</dt><dd>
24011 <table class="params">
24012 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector where the result of multiplication must be added to </td></tr>
24013 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
24014 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 16 bit fixed point input vector </td></tr>
24015 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
24016 </table>
24017 </dd>
24018</dl>
24019<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiply-accumulate.The result is saturated in case of overflow </dd></dl>
24020
Kaizenbf8b01d2017-10-12 14:26:51 +010024021<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00779">779</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024022
Kaizenbf8b01d2017-10-12 14:26:51 +010024023<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00148">vget_high_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00138">vget_low_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024024<div class="fragment"><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;{</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> tmp0 = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> tmp1 = tmp0;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; tmp0 = vmlal_s16(tmp0, <a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>), <a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>));</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; tmp1 = vmlal_s16(tmp1, <a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>), <a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>));</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; tmp0 = vqshlq_s32(tmp0, fixed_point_position_s32);</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; tmp1 = vqshlq_s32(tmp1, fixed_point_position_s32);</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="comment">// Convert back to qint16 and accumulate</span></div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res = vcombine_s16(vqmovn_s32(tmp0), vqmovn_s32(tmp1));</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">return</span> vqaddq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, res);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024025<div class="ttc" id="namespacearm__compute_xhtml_ac2edef8bf07bce91b37aa02b952b8ed6"><div class="ttname"><a href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">arm_compute::vget_high_qs16</a></div><div class="ttdeci">qint16x4_t vget_high_qs16(qint16x8_t a)</div><div class="ttdoc">Get the higher half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00148">NEFixedPoint.inl:148</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024026<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024027<div class="ttc" id="namespacearm__compute_xhtml_ae895c5b470fcf069afd626bb36c63e3d"><div class="ttname"><a href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">arm_compute::vget_low_qs16</a></div><div class="ttdeci">qint16x4_t vget_low_qs16(qint16x8_t a)</div><div class="ttdoc">Get the lower half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00138">NEFixedPoint.inl:138</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024028<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024029<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
24030<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024031</div><!-- fragment -->
24032</div>
24033</div>
24034<a class="anchor" id="a037ac8df4a7e30a455a97218b88b67ad"></a>
24035<div class="memitem">
24036<div class="memproto">
24037<table class="mlabels">
24038 <tr>
24039 <td class="mlabels-left">
24040 <table class="memname">
24041 <tr>
24042 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqmlaq_qs8 </td>
24043 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024044 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024045 <td class="paramname"><em>a</em>, </td>
24046 </tr>
24047 <tr>
24048 <td class="paramkey"></td>
24049 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024050 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024051 <td class="paramname"><em>b</em>, </td>
24052 </tr>
24053 <tr>
24054 <td class="paramkey"></td>
24055 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024056 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024057 <td class="paramname"><em>c</em>, </td>
24058 </tr>
24059 <tr>
24060 <td class="paramkey"></td>
24061 <td></td>
24062 <td class="paramtype">int&#160;</td>
24063 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24064 </tr>
24065 <tr>
24066 <td></td>
24067 <td>)</td>
24068 <td></td><td></td>
24069 </tr>
24070 </table>
24071 </td>
24072 <td class="mlabels-right">
24073<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24074 </tr>
24075</table>
24076</div><div class="memdoc">
24077
24078<p>8 bit fixed point vector saturating multiply-accumulate (16 elements). </p>
24079<p>This operation performs the product between <code>b</code> and <code>c</code> and add the result to <code>a</code> (a + b * c).</p>
24080<dl class="params"><dt>Parameters</dt><dd>
24081 <table class="params">
24082 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector where the result of multiplication must be added to </td></tr>
24083 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
24084 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
24085 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
24086 </table>
24087 </dd>
24088</dl>
24089<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate.The result is saturated in case of overflow </dd></dl>
24090
Kaizenbf8b01d2017-10-12 14:26:51 +010024091<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00758">758</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024092<div class="fragment"><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;{</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp0 = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp1 = tmp0;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; tmp0 = vmlal_s8(tmp0, vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>), vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>));</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; tmp1 = vmlal_s8(tmp1, vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>), vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>));</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; tmp0 = vqshlq_s16(tmp0, fixed_point_position_s16);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; tmp1 = vqshlq_s16(tmp1, fixed_point_position_s16);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="comment">// Convert back to qint8 and accumulate</span></div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> res = vcombine_s8(vqmovn_s16(tmp0), vqmovn_s16(tmp1));</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">return</span> vqaddq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, res);</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024093<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024094<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024095<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
24096<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024097</div><!-- fragment -->
24098</div>
24099</div>
24100<a class="anchor" id="a92c2d0b9a8eeb3ab04a39a25fef2b6c3"></a>
24101<div class="memitem">
24102<div class="memproto">
24103 <table class="memname">
24104 <tr>
24105 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqmovn_q16 </td>
24106 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024107 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024108 <td class="paramname"><em>a</em></td><td>)</td>
24109 <td></td>
24110 </tr>
24111 </table>
24112</div><div class="memdoc">
24113
24114<p>16 bit fixed point vector saturating narrow (8 elements) </p>
24115<dl class="params"><dt>Parameters</dt><dd>
24116 <table class="params">
24117 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point vector to convert</td></tr>
24118 </table>
24119 </dd>
24120</dl>
24121<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector </dd></dl>
24122
24123</div>
24124</div>
Kaizen8938bd32017-09-28 14:38:23 +010024125<a class="anchor" id="a12e7578c32321d2362114563881153ee"></a>
24126<div class="memitem">
24127<div class="memproto">
24128 <table class="memname">
24129 <tr>
24130 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> arm_compute::vqmovn_q32 </td>
24131 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024132 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024133 <td class="paramname"><em>a</em></td><td>)</td>
24134 <td></td>
24135 </tr>
24136 </table>
24137</div><div class="memdoc">
24138
24139<p>32 bit fixed point vector saturating narrow (4 elements) </p>
24140<dl class="params"><dt>Parameters</dt><dd>
24141 <table class="params">
24142 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>32 bit fixed point vector to convert</td></tr>
24143 </table>
24144 </dd>
24145</dl>
24146<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vector </dd></dl>
24147
24148</div>
24149</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024150<a class="anchor" id="aa9a56a13e02fa346fcbe59257b2cef74"></a>
24151<div class="memitem">
24152<div class="memproto">
24153<table class="mlabels">
24154 <tr>
24155 <td class="mlabels-left">
24156 <table class="memname">
24157 <tr>
24158 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqmovn_qs16 </td>
24159 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024160 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024161 <td class="paramname"><em>a</em></td><td>)</td>
24162 <td></td>
24163 </tr>
24164 </table>
24165 </td>
24166 <td class="mlabels-right">
24167<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24168 </tr>
24169</table>
24170</div><div class="memdoc">
24171
Kaizenbf8b01d2017-10-12 14:26:51 +010024172<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00223">223</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024173<div class="fragment"><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;{</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> vqmovn_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024174</div><!-- fragment -->
24175</div>
24176</div>
24177<a class="anchor" id="acd99794ca54cbddbb4bda5d78d0caea7"></a>
24178<div class="memitem">
24179<div class="memproto">
24180<table class="mlabels">
24181 <tr>
24182 <td class="mlabels-left">
24183 <table class="memname">
24184 <tr>
24185 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> arm_compute::vqmovn_qs32 </td>
24186 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024187 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024188 <td class="paramname"><em>a</em></td><td>)</td>
24189 <td></td>
24190 </tr>
24191 </table>
24192 </td>
24193 <td class="mlabels-right">
24194<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24195 </tr>
24196</table>
24197</div><div class="memdoc">
24198
Kaizenbf8b01d2017-10-12 14:26:51 +010024199<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00228">228</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024200<div class="fragment"><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> vqmovn_s32(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024201</div><!-- fragment -->
24202</div>
24203</div>
24204<a class="anchor" id="aec34399f16d824f79571abe464556466"></a>
24205<div class="memitem">
24206<div class="memproto">
24207<table class="mlabels">
24208 <tr>
24209 <td class="mlabels-left">
24210 <table class="memname">
24211 <tr>
24212 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqmul_qs16 </td>
24213 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024214 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024215 <td class="paramname"><em>a</em>, </td>
24216 </tr>
24217 <tr>
24218 <td class="paramkey"></td>
24219 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024220 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024221 <td class="paramname"><em>b</em>, </td>
24222 </tr>
24223 <tr>
24224 <td class="paramkey"></td>
24225 <td></td>
24226 <td class="paramtype">int&#160;</td>
24227 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24228 </tr>
24229 <tr>
24230 <td></td>
24231 <td>)</td>
24232 <td></td><td></td>
24233 </tr>
24234 </table>
24235 </td>
24236 <td class="mlabels-right">
24237<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24238 </tr>
24239</table>
24240</div><div class="memdoc">
24241
24242<p>16 bit fixed point vector saturating multiply (4 elements) </p>
24243<dl class="params"><dt>Parameters</dt><dd>
24244 <table class="params">
24245 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
24246 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
24247 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
24248 </table>
24249 </dd>
24250</dl>
24251<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiplication. The result is saturated in case of overflow </dd></dl>
24252
Kaizenbf8b01d2017-10-12 14:26:51 +010024253<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00570">570</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024254
Kaizenbf8b01d2017-10-12 14:26:51 +010024255<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01468">vqexp_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01785">vqinvsqrt_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01156">vqrecip_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01939">vqtanh_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01363">vqtaylor_poly_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024256<div class="fragment"><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;{</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="comment">// Initialize the temporary result with a constant used to round up the result</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> res = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; res = vmlal_s16(res, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; res = vqshlq_s32(res, fixed_point_position_s32);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="comment">// Convert back to qint16 and saturate</span></div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> vqmovn_s32(res);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024257<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024258<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024259</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010024260</div>
24261</div>
24262<a class="anchor" id="a746205173d1a1f3955fa0c26b5be3b10"></a>
24263<div class="memitem">
24264<div class="memproto">
24265<table class="mlabels">
24266 <tr>
24267 <td class="mlabels-left">
24268 <table class="memname">
24269 <tr>
24270 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqmul_qs8 </td>
24271 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024272 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024273 <td class="paramname"><em>a</em>, </td>
24274 </tr>
24275 <tr>
24276 <td class="paramkey"></td>
24277 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024278 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024279 <td class="paramname"><em>b</em>, </td>
24280 </tr>
24281 <tr>
24282 <td class="paramkey"></td>
24283 <td></td>
24284 <td class="paramtype">int&#160;</td>
24285 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24286 </tr>
24287 <tr>
24288 <td></td>
24289 <td>)</td>
24290 <td></td><td></td>
24291 </tr>
24292 </table>
24293 </td>
24294 <td class="mlabels-right">
24295<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24296 </tr>
24297</table>
24298</div><div class="memdoc">
24299
24300<p>8 bit fixed point vector saturating multiply (8 elements) </p>
24301<dl class="params"><dt>Parameters</dt><dd>
24302 <table class="params">
24303 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
24304 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
24305 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
24306 </table>
24307 </dd>
24308</dl>
24309<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiplication. The result is saturated in case of overflow </dd></dl>
24310
Kaizenbf8b01d2017-10-12 14:26:51 +010024311<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00553">553</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024312
Kaizenbf8b01d2017-10-12 14:26:51 +010024313<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01442">vqexp_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01758">vqinvsqrt_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01130">vqrecip_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01926">vqtanh_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01347">vqtaylor_poly_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024314<div class="fragment"><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;{</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="comment">// Initialize the temporary result with a constant used to round up the result</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; res = vmlal_s8(res, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; res = vqshlq_s16(res, fixed_point_position_s16);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="comment">// Convert back to qint8 and saturate</span></div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">return</span> vqmovn_s16(res);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024315<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024316<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024317</div><!-- fragment -->
24318</div>
24319</div>
24320<a class="anchor" id="a982d792d366430a954d96e8575d3c313"></a>
24321<div class="memitem">
24322<div class="memproto">
24323<table class="mlabels">
24324 <tr>
24325 <td class="mlabels-left">
24326 <table class="memname">
24327 <tr>
24328 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqmulq_qs16 </td>
24329 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024330 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024331 <td class="paramname"><em>a</em>, </td>
24332 </tr>
24333 <tr>
24334 <td class="paramkey"></td>
24335 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024336 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024337 <td class="paramname"><em>b</em>, </td>
24338 </tr>
24339 <tr>
24340 <td class="paramkey"></td>
24341 <td></td>
24342 <td class="paramtype">int&#160;</td>
24343 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24344 </tr>
24345 <tr>
24346 <td></td>
24347 <td>)</td>
24348 <td></td><td></td>
24349 </tr>
24350 </table>
24351 </td>
24352 <td class="mlabels-right">
24353<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24354 </tr>
24355</table>
24356</div><div class="memdoc">
24357
24358<p>16 bit fixed point vector saturating multiply (8 elements) </p>
24359<dl class="params"><dt>Parameters</dt><dd>
24360 <table class="params">
24361 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
24362 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector </td></tr>
24363 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
24364 </table>
24365 </dd>
24366</dl>
24367<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector multiplication. The result is saturated in case of overflow </dd></dl>
24368
Kaizenbf8b01d2017-10-12 14:26:51 +010024369<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00607">607</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024370
Kaizenbf8b01d2017-10-12 14:26:51 +010024371<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00148">vget_high_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00138">vget_low_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024372
Kaizenbf8b01d2017-10-12 14:26:51 +010024373<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01663">vlogq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01520">vqexpq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01897">vqinvsqrtq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01983">vqpowq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01265">vqrecipq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01965">vqtanhq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01427">vqtaylor_polyq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024374<div class="fragment"><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;{</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keyword">const</span> int32x4_t fixed_point_position_s32 = vdupq_n_s32(-fixed_point_position);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> res0 = vdupq_n_s32(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <a class="code" href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">qint32x4_t</a> res1 = res0;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; res0 = vmlal_s16(res0, <a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), <a class="code" href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">vget_low_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; res1 = vmlal_s16(res1, <a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), <a class="code" href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">vget_high_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; res0 = vqshlq_s32(res0, fixed_point_position_s32);</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; res1 = vqshlq_s32(res1, fixed_point_position_s32);</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="comment">// Convert back to qint16 and saturate</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">return</span> vcombine_s16(vqmovn_s32(res0), vqmovn_s32(res1));</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024375<div class="ttc" id="namespacearm__compute_xhtml_ac2edef8bf07bce91b37aa02b952b8ed6"><div class="ttname"><a href="namespacearm__compute.xhtml#ac2edef8bf07bce91b37aa02b952b8ed6">arm_compute::vget_high_qs16</a></div><div class="ttdeci">qint16x4_t vget_high_qs16(qint16x8_t a)</div><div class="ttdoc">Get the higher half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00148">NEFixedPoint.inl:148</a></div></div>
24376<div class="ttc" id="namespacearm__compute_xhtml_ae895c5b470fcf069afd626bb36c63e3d"><div class="ttname"><a href="namespacearm__compute.xhtml#ae895c5b470fcf069afd626bb36c63e3d">arm_compute::vget_low_qs16</a></div><div class="ttdeci">qint16x4_t vget_low_qs16(qint16x8_t a)</div><div class="ttdoc">Get the lower half of a 16 elements vector. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00138">NEFixedPoint.inl:138</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024377<div class="ttc" id="namespacearm__compute_xhtml_abd854c117af4dbd12633db2fbc01dd49"><div class="ttname"><a href="namespacearm__compute.xhtml#abd854c117af4dbd12633db2fbc01dd49">arm_compute::qint32x4_t</a></div><div class="ttdeci">int32x4_t qint32x4_t</div><div class="ttdoc">32 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00050">NEFixedPoint.h:50</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024378<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024379</div><!-- fragment -->
24380</div>
24381</div>
24382<a class="anchor" id="a081c0605c83155125ad95a144a1d6071"></a>
24383<div class="memitem">
24384<div class="memproto">
24385<table class="mlabels">
24386 <tr>
24387 <td class="mlabels-left">
24388 <table class="memname">
24389 <tr>
24390 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqmulq_qs8 </td>
24391 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024392 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024393 <td class="paramname"><em>a</em>, </td>
24394 </tr>
24395 <tr>
24396 <td class="paramkey"></td>
24397 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024398 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024399 <td class="paramname"><em>b</em>, </td>
24400 </tr>
24401 <tr>
24402 <td class="paramkey"></td>
24403 <td></td>
24404 <td class="paramtype">int&#160;</td>
24405 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24406 </tr>
24407 <tr>
24408 <td></td>
24409 <td>)</td>
24410 <td></td><td></td>
24411 </tr>
24412 </table>
24413 </td>
24414 <td class="mlabels-right">
24415<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24416 </tr>
24417</table>
24418</div><div class="memdoc">
24419
24420<p>8 bit fixed point vector saturating multiply (16 elements) </p>
24421<dl class="params"><dt>Parameters</dt><dd>
24422 <table class="params">
24423 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
24424 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
24425 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
24426 </table>
24427 </dd>
24428</dl>
24429<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiplication. The result is saturated in case of overflow </dd></dl>
24430
Kaizenbf8b01d2017-10-12 14:26:51 +010024431<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00587">587</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024432
Kaizenbf8b01d2017-10-12 14:26:51 +010024433<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01494">vqexpq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01870">vqinvsqrtq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01978">vqpowq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01238">vqrecipq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01952">vqtanhq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01411">vqtaylor_polyq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024434<div class="fragment"><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;{</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res0 = vdupq_n_s16(1 &lt;&lt; (fixed_point_position - 1));</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res1 = res0;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; res0 = vmlal_s8(res0, vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vget_low_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; res1 = vmlal_s8(res1, vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vget_high_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>));</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; res0 = vqshlq_s16(res0, fixed_point_position_s16);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; res1 = vqshlq_s16(res1, fixed_point_position_s16);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="comment">// Convert back to qint8 and saturate</span></div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">return</span> vcombine_s8(vqmovn_s16(res0), vqmovn_s16(res1));</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024435<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024436<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024437</div><!-- fragment -->
24438</div>
24439</div>
Kaizen8938bd32017-09-28 14:38:23 +010024440<a class="anchor" id="ad705110ee89e7d32c319671b9b92e0ba"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024441<div class="memitem">
24442<div class="memproto">
Kaizen8938bd32017-09-28 14:38:23 +010024443<table class="mlabels">
24444 <tr>
24445 <td class="mlabels-left">
Anthony Barbierdbdab852017-06-23 15:42:00 +010024446 <table class="memname">
24447 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010024448 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqpowq_qs16 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024449 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024450 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024451 <td class="paramname"><em>a</em>, </td>
24452 </tr>
24453 <tr>
24454 <td class="paramkey"></td>
24455 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024456 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024457 <td class="paramname"><em>b</em>, </td>
24458 </tr>
24459 <tr>
24460 <td class="paramkey"></td>
24461 <td></td>
24462 <td class="paramtype">int&#160;</td>
24463 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24464 </tr>
24465 <tr>
24466 <td></td>
24467 <td>)</td>
24468 <td></td><td></td>
24469 </tr>
24470 </table>
Kaizen8938bd32017-09-28 14:38:23 +010024471 </td>
24472 <td class="mlabels-right">
24473<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24474 </tr>
24475</table>
24476</div><div class="memdoc">
24477
24478<p>Calculate saturating n power for fixed point 16bit (8 elements). </p>
24479<p>pow(a,b) = e^(b*log(a))</p>
24480<dl class="params"><dt>Parameters</dt><dd>
24481 <table class="params">
24482 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16bit fixed point input vector </td></tr>
24483 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>16bit fixed point power vector </td></tr>
24484 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
24485 </table>
24486 </dd>
24487</dl>
24488<dl class="section return"><dt>Returns</dt><dd>The result of the 16bit power. </dd></dl>
24489
Kaizenbf8b01d2017-10-12 14:26:51 +010024490<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01983">1983</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024491
Kaizenbf8b01d2017-10-12 14:26:51 +010024492<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01663">vlogq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01520">vqexpq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00607">vqmulq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024493<div class="fragment"><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;{</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a5b5e085002cf5a69fb80e6991d0a4556">vqexpq_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute.xhtml#a756ac701185cfc4924443db164fd65ae">vlogq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, fixed_point_position), fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024494<div class="ttc" id="namespacearm__compute_xhtml_a982d792d366430a954d96e8575d3c313"><div class="ttname"><a href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">arm_compute::vqmulq_qs16</a></div><div class="ttdeci">qint16x8_t vqmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00607">NEFixedPoint.inl:607</a></div></div>
24495<div class="ttc" id="namespacearm__compute_xhtml_a5b5e085002cf5a69fb80e6991d0a4556"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b5e085002cf5a69fb80e6991d0a4556">arm_compute::vqexpq_qs16</a></div><div class="ttdeci">qint16x8_t vqexpq_qs16(qint16x8_t a, int fixed_point_position)</div><div class="ttdoc">Calculate saturating exponential fixed point 16 bit (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01520">NEFixedPoint.inl:1520</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024496<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024497<div class="ttc" id="namespacearm__compute_xhtml_a756ac701185cfc4924443db164fd65ae"><div class="ttname"><a href="namespacearm__compute.xhtml#a756ac701185cfc4924443db164fd65ae">arm_compute::vlogq_qs16</a></div><div class="ttdeci">qint16x8_t vlogq_qs16(qint16x8_t a, int fixed_point_position)</div><div class="ttdoc">Calculate logarithm fixed point 16 bit (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01663">NEFixedPoint.inl:1663</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024498</div><!-- fragment -->
24499</div>
24500</div>
24501<a class="anchor" id="aa0061a2146587eea4a393ff14232d8fe"></a>
24502<div class="memitem">
24503<div class="memproto">
24504<table class="mlabels">
24505 <tr>
24506 <td class="mlabels-left">
24507 <table class="memname">
24508 <tr>
24509 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqpowq_qs8 </td>
24510 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024511 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024512 <td class="paramname"><em>a</em>, </td>
24513 </tr>
24514 <tr>
24515 <td class="paramkey"></td>
24516 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024517 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024518 <td class="paramname"><em>b</em>, </td>
24519 </tr>
24520 <tr>
24521 <td class="paramkey"></td>
24522 <td></td>
24523 <td class="paramtype">int&#160;</td>
24524 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24525 </tr>
24526 <tr>
24527 <td></td>
24528 <td>)</td>
24529 <td></td><td></td>
24530 </tr>
24531 </table>
24532 </td>
24533 <td class="mlabels-right">
24534<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24535 </tr>
24536</table>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024537</div><div class="memdoc">
24538
24539<p>Calculate saturating n power for fixed point 8bit (16 elements). </p>
24540<p>pow(a,b) = e^(b*log(a))</p>
24541<dl class="params"><dt>Parameters</dt><dd>
24542 <table class="params">
24543 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
24544 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>8bit fixed point power vector </td></tr>
24545 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
24546 </table>
24547 </dd>
24548</dl>
24549<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit power. </dd></dl>
24550
Kaizenbf8b01d2017-10-12 14:26:51 +010024551<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01978">1978</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024552
Kaizenbf8b01d2017-10-12 14:26:51 +010024553<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01624">vlogq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01494">vqexpq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00587">vqmulq_qs8()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024554<div class="fragment"><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;{</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#ae6cf1822b8fbad305677650a2b751247">vqexpq_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>, <a class="code" href="namespacearm__compute.xhtml#a340b9cd5ad88f1a821498c6fad80e82c">vlogq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, fixed_point_position), fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a340b9cd5ad88f1a821498c6fad80e82c"><div class="ttname"><a href="namespacearm__compute.xhtml#a340b9cd5ad88f1a821498c6fad80e82c">arm_compute::vlogq_qs8</a></div><div class="ttdeci">qint8x16_t vlogq_qs8(qint8x16_t a, int fixed_point_position)</div><div class="ttdoc">Calculate logarithm fixed point 16bit (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01624">NEFixedPoint.inl:1624</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024555<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024556<div class="ttc" id="namespacearm__compute_xhtml_ae6cf1822b8fbad305677650a2b751247"><div class="ttname"><a href="namespacearm__compute.xhtml#ae6cf1822b8fbad305677650a2b751247">arm_compute::vqexpq_qs8</a></div><div class="ttdeci">qint8x16_t vqexpq_qs8(qint8x16_t a, int fixed_point_position)</div><div class="ttdoc">Calculate saturating exponential fixed point 8bit (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01494">NEFixedPoint.inl:1494</a></div></div>
24557<div class="ttc" id="namespacearm__compute_xhtml_a081c0605c83155125ad95a144a1d6071"><div class="ttname"><a href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">arm_compute::vqmulq_qs8</a></div><div class="ttdeci">qint8x16_t vqmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00587">NEFixedPoint.inl:587</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024558<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024559</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010024560</div>
24561</div>
Kaizen8938bd32017-09-28 14:38:23 +010024562<a class="anchor" id="ada5b8019889d6b38b3cb64ccdd3731ca"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024563<div class="memitem">
24564<div class="memproto">
24565<table class="mlabels">
24566 <tr>
24567 <td class="mlabels-left">
24568 <table class="memname">
24569 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010024570 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> arm_compute::vqrecip_qs16 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024571 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024572 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024573 <td class="paramname"><em>a</em>, </td>
24574 </tr>
24575 <tr>
24576 <td class="paramkey"></td>
24577 <td></td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024578 <td class="paramtype">int&#160;</td>
24579 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24580 </tr>
24581 <tr>
24582 <td></td>
24583 <td>)</td>
24584 <td></td><td></td>
24585 </tr>
24586 </table>
24587 </td>
24588 <td class="mlabels-right">
24589<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24590 </tr>
24591</table>
24592</div><div class="memdoc">
24593
Kaizenbf8b01d2017-10-12 14:26:51 +010024594<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01156">1156</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024595
Kaizenbf8b01d2017-10-12 14:26:51 +010024596<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00570">vqmul_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024597
Kaizenbf8b01d2017-10-12 14:26:51 +010024598<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01939">vqtanh_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024599<div class="fragment"><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;{</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="comment">// We need two bits to store 2, thus we can only support formats from Q2.13 to Q15.0</span></div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_48_over_17 = vdup_n_s16(0x5A5A &gt;&gt; (13 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_32_over_17 = vdup_n_s16(0x3C3C &gt;&gt; (13 - fixed_point_position)); <span class="comment">// 1.8823</span></div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_one = vdup_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_two = vdup_n_s16(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value = vqneg_s16(vqsub_s16(vdup_n_s16(8), vqadd_s16(vclz_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s16(fixed_point_position))));</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> temp = vqshl_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="comment">// Newton-Raphson division initial estimate X0 calculation</span></div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x = vqsub_s16(const_48_over_17, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, const_32_over_17, fixed_point_position));</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; uint16x4_t set_one = vcgt_s16(x, const_one);</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; x = vbsl_s16(set_one, const_one, x);</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="comment">// Use four iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, vqsub_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, vqsub_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, vqsub_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(x, vqsub_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keywordflow">return</span> vqshl_s16(x, shift_value);</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_aec34399f16d824f79571abe464556466"><div class="ttname"><a href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">arm_compute::vqmul_qs16</a></div><div class="ttdeci">qint16x4_t vqmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00570">NEFixedPoint.inl:570</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024600<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024601<div class="ttc" id="namespacearm__compute_xhtml_a82c56f0856f56d430393e6a00baee983"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">arm_compute::qint16x4_t</a></div><div class="ttdeci">int16x4_t qint16x4_t</div><div class="ttdoc">16 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00041">NEFixedPoint.h:41</a></div></div>
24602</div><!-- fragment -->
24603</div>
24604</div>
24605<a class="anchor" id="a3e6537037711264ed5e8f33c8564c325"></a>
24606<div class="memitem">
24607<div class="memproto">
24608<table class="mlabels">
24609 <tr>
24610 <td class="mlabels-left">
24611 <table class="memname">
24612 <tr>
24613 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqrecip_qs8 </td>
24614 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024615 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024616 <td class="paramname"><em>a</em>, </td>
24617 </tr>
24618 <tr>
24619 <td class="paramkey"></td>
24620 <td></td>
24621 <td class="paramtype">int&#160;</td>
24622 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24623 </tr>
24624 <tr>
24625 <td></td>
24626 <td>)</td>
24627 <td></td><td></td>
24628 </tr>
24629 </table>
24630 </td>
24631 <td class="mlabels-right">
24632<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24633 </tr>
24634</table>
24635</div><div class="memdoc">
24636
Kaizenbf8b01d2017-10-12 14:26:51 +010024637<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01130">1130</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024638
Kaizenbf8b01d2017-10-12 14:26:51 +010024639<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00553">vqmul_qs8()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024640
Kaizenbf8b01d2017-10-12 14:26:51 +010024641<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01926">vqtanh_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024642<div class="fragment"><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;{</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="comment">// We need two bits to store 2, thus we can only support formats from Q2.5 to Q7.0</span></div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_48_over_17 = vdup_n_s8(0x5A &gt;&gt; (5 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_32_over_17 = vdup_n_s8((0x3C &gt;&gt; (5 - fixed_point_position))); <span class="comment">// 1.8823</span></div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_one = vdup_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_two = vdup_n_s8(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value = vqneg_s8(vqsub_s8(vdup_n_s8(8), vqadd_s8(vclz_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s8(fixed_point_position))));</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> temp = vqshl_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="comment">// Newton-Raphson division initial estimate X0 calculation</span></div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x = vqsub_s8(const_48_over_17, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(temp, const_32_over_17, fixed_point_position));</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; uint8x8_t set_one = vcgt_s8(x, const_one);</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; x = vbsl_s8(set_one, const_one, x);</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <span class="comment">// Use three iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(x, vqsub_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(x, vqsub_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(x, vqsub_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <span class="keywordflow">return</span> vqshl_s8(x, shift_value);</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024643<div class="ttc" id="namespacearm__compute_xhtml_a746205173d1a1f3955fa0c26b5be3b10"><div class="ttname"><a href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">arm_compute::vqmul_qs8</a></div><div class="ttdeci">qint8x8_t vqmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00553">NEFixedPoint.inl:553</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024644<div class="ttc" id="namespacearm__compute_xhtml_a16a1bee14f1db073f75caa76dacf5078"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">arm_compute::qint8x8_t</a></div><div class="ttdeci">int8x8_t qint8x8_t</div><div class="ttdoc">8 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00033">NEFixedPoint.h:33</a></div></div>
24645</div><!-- fragment -->
24646</div>
24647</div>
24648<a class="anchor" id="a6a368d809128ff6bce989cda02c536d8"></a>
24649<div class="memitem">
24650<div class="memproto">
24651<table class="mlabels">
24652 <tr>
24653 <td class="mlabels-left">
24654 <table class="memname">
24655 <tr>
24656 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> arm_compute::vqrecipq_qs16 </td>
24657 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024658 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024659 <td class="paramname"><em>a</em>, </td>
24660 </tr>
24661 <tr>
24662 <td class="paramkey"></td>
24663 <td></td>
24664 <td class="paramtype">int&#160;</td>
24665 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24666 </tr>
24667 <tr>
24668 <td></td>
24669 <td>)</td>
24670 <td></td><td></td>
24671 </tr>
24672 </table>
24673 </td>
24674 <td class="mlabels-right">
24675<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24676 </tr>
24677</table>
24678</div><div class="memdoc">
24679
Kaizenbf8b01d2017-10-12 14:26:51 +010024680<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01265">1265</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024681
Kaizenbf8b01d2017-10-12 14:26:51 +010024682<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="_n_e_fixed_point_8inl_source.xhtml#l00607">vqmulq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00474">vqsubq_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024683
Kaizenbf8b01d2017-10-12 14:26:51 +010024684<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01663">vlogq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01965">vqtanhq_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024685<div class="fragment"><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;{</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; <span class="comment">// We need two bits to store 2, thus we can only support formats from Q2.13 to Q15.0</span></div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_48_over_17 = vdupq_n_s16(0x5A56 &gt;&gt; (13 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_32_over_17 = vdupq_n_s16(0x3C3C &gt;&gt; (13 - fixed_point_position)); <span class="comment">// 1.8823</span></div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_one = vdupq_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_two = vdupq_n_s16(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value = vqnegq_s16(vqsubq_s16(vdupq_n_s16(16), vqaddq_s16(vclzq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s16(fixed_point_position))));</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> temp = vqshlq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; <span class="comment">// Newton-Raphson division initial estimate X0 calculation</span></div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x = <a class="code" href="namespacearm__compute.xhtml#a9edb31327a1e06c730d5a09b14dcfeb9">vqsubq_qs16</a>(const_48_over_17, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, const_32_over_17, fixed_point_position));</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="comment">// Set initial guess to one if x &gt; 1</span></div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; uint16x8_t set_one = vcgtq_s16(x, const_one);</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; x = vbslq_s16(set_one, const_one, x);</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <span class="comment">// Use four iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, vqsubq_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, vqsubq_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, vqsubq_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(x, vqsubq_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; <span class="comment">// Saturate result in case of overflow</span></div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; <span class="keywordflow">return</span> vbslq_s16(vceqq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, vdupq_n_s16(0)), vdupq_n_s16(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::numeric_limits&lt;int16_t&gt;::max</a>()), vqshlq_s16(x, shift_value));</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a9edb31327a1e06c730d5a09b14dcfeb9"><div class="ttname"><a href="namespacearm__compute.xhtml#a9edb31327a1e06c730d5a09b14dcfeb9">arm_compute::vqsubq_qs16</a></div><div class="ttdeci">qint16x8_t vqsubq_qs16(qint16x8_t a, qint16x8_t b)</div><div class="ttdoc">16 bit fixed point vector saturating subtraction (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00474">NEFixedPoint.inl:474</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024686<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024687<div class="ttc" id="namespacearm__compute_xhtml_a982d792d366430a954d96e8575d3c313"><div class="ttname"><a href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">arm_compute::vqmulq_qs16</a></div><div class="ttdeci">qint16x8_t vqmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00607">NEFixedPoint.inl:607</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024688<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
24689<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&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; 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>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024690</div><!-- fragment -->
24691</div>
24692</div>
24693<a class="anchor" id="a3dd4382391c752128ab7b3a6dd68314b"></a>
24694<div class="memitem">
24695<div class="memproto">
24696<table class="mlabels">
24697 <tr>
24698 <td class="mlabels-left">
24699 <table class="memname">
24700 <tr>
24701 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> arm_compute::vqrecipq_qs8 </td>
24702 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024703 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024704 <td class="paramname"><em>a</em>, </td>
24705 </tr>
24706 <tr>
24707 <td class="paramkey"></td>
24708 <td></td>
24709 <td class="paramtype">int&#160;</td>
24710 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24711 </tr>
24712 <tr>
24713 <td></td>
24714 <td>)</td>
24715 <td></td><td></td>
24716 </tr>
24717 </table>
24718 </td>
24719 <td class="mlabels-right">
24720<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24721 </tr>
24722</table>
24723</div><div class="memdoc">
24724
Kaizenbf8b01d2017-10-12 14:26:51 +010024725<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01238">1238</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024726
Kaizenbf8b01d2017-10-12 14:26:51 +010024727<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00587">vqmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00469">vqsubq_qs8()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024728
Kaizenbf8b01d2017-10-12 14:26:51 +010024729<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01952">vqtanhq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024730<div class="fragment"><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;{</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; <span class="comment">// We need two bits to store 2, thus we can only support formats from Q2.5 to Q7.0</span></div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_48_over_17 = vdupq_n_s8(0x5A &gt;&gt; (5 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_32_over_17 = vdupq_n_s8((0x3C &gt;&gt; (5 - fixed_point_position))); <span class="comment">// -1.8823</span></div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_one = vdupq_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_two = vdupq_n_s8(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value = vqnegq_s8(vqsubq_s8(vdupq_n_s8(8), vqaddq_s8(vclzq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s8(fixed_point_position))));</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> temp = vqshlq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <span class="comment">// Newton-Raphson division initial estimate X0 calculation</span></div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x = <a class="code" href="namespacearm__compute.xhtml#ab2a6ce3d8239e49c81af1ebc617680b4">vqsubq_qs8</a>(const_48_over_17, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(temp, const_32_over_17, fixed_point_position));</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; <span class="comment">// Set initial guess to one if x &gt; 1</span></div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; uint8x16_t set_one = vcgtq_s8(x, const_one);</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; x = vbslq_s8(set_one, const_one, x);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; <span class="comment">// Use three iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, vqsubq_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, vqsubq_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, vqsubq_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="keywordflow">return</span> vqshlq_s8(x, shift_value);</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024731<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024732<div class="ttc" id="namespacearm__compute_xhtml_a081c0605c83155125ad95a144a1d6071"><div class="ttname"><a href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">arm_compute::vqmulq_qs8</a></div><div class="ttdeci">qint8x16_t vqmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00587">NEFixedPoint.inl:587</a></div></div>
24733<div class="ttc" id="namespacearm__compute_xhtml_ab2a6ce3d8239e49c81af1ebc617680b4"><div class="ttname"><a href="namespacearm__compute.xhtml#ab2a6ce3d8239e49c81af1ebc617680b4">arm_compute::vqsubq_qs8</a></div><div class="ttdeci">qint8x16_t vqsubq_qs8(qint8x16_t a, qint8x16_t b)</div><div class="ttdoc">8 bit fixed point vector saturating subtraction (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00469">NEFixedPoint.inl:469</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024734</div><!-- fragment -->
24735</div>
24736</div>
24737<a class="anchor" id="a73a131b9775ce771a1a25607a83b0ca9"></a>
24738<div class="memitem">
24739<div class="memproto">
24740<table class="mlabels">
24741 <tr>
24742 <td class="mlabels-left">
24743 <table class="memname">
24744 <tr>
24745 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqsub_qs16 </td>
24746 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024747 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024748 <td class="paramname"><em>a</em>, </td>
24749 </tr>
24750 <tr>
24751 <td class="paramkey"></td>
24752 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024753 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024754 <td class="paramname"><em>b</em>&#160;</td>
24755 </tr>
24756 <tr>
24757 <td></td>
24758 <td>)</td>
24759 <td></td><td></td>
24760 </tr>
24761 </table>
24762 </td>
24763 <td class="mlabels-right">
24764<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24765 </tr>
24766</table>
24767</div><div class="memdoc">
24768
24769<p>16 bit fixed point vector saturating subtraction (4 elements) </p>
24770<dl class="params"><dt>Parameters</dt><dd>
24771 <table class="params">
24772 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
24773 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
24774 </table>
24775 </dd>
24776</dl>
24777<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector subtraction. The result is saturated in case of overflow </dd></dl>
24778
Kaizenbf8b01d2017-10-12 14:26:51 +010024779<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00464">464</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024780
Kaizenbf8b01d2017-10-12 14:26:51 +010024781<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01939">vqtanh_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024782<div class="fragment"><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;{</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> vqsub_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
24783<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024784</div><!-- fragment -->
24785</div>
24786</div>
24787<a class="anchor" id="a5b1437029acce06690a938e09f5a762a"></a>
24788<div class="memitem">
24789<div class="memproto">
24790<table class="mlabels">
24791 <tr>
24792 <td class="mlabels-left">
24793 <table class="memname">
24794 <tr>
24795 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqsub_qs8 </td>
24796 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024797 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024798 <td class="paramname"><em>a</em>, </td>
24799 </tr>
24800 <tr>
24801 <td class="paramkey"></td>
24802 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024803 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024804 <td class="paramname"><em>b</em>&#160;</td>
24805 </tr>
24806 <tr>
24807 <td></td>
24808 <td>)</td>
24809 <td></td><td></td>
24810 </tr>
24811 </table>
24812 </td>
24813 <td class="mlabels-right">
24814<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24815 </tr>
24816</table>
24817</div><div class="memdoc">
24818
24819<p>8 bit fixed point vector saturating subtraction (8 elements) </p>
24820<dl class="params"><dt>Parameters</dt><dd>
24821 <table class="params">
24822 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
24823 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
24824 </table>
24825 </dd>
24826</dl>
24827<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector subtraction. The result is saturated in case of overflow </dd></dl>
24828
Kaizenbf8b01d2017-10-12 14:26:51 +010024829<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00459">459</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024830
Kaizenbf8b01d2017-10-12 14:26:51 +010024831<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01926">vqtanh_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024832<div class="fragment"><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;{</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">return</span> vqsub_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
24833<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024834</div><!-- fragment -->
24835</div>
24836</div>
24837<a class="anchor" id="a9edb31327a1e06c730d5a09b14dcfeb9"></a>
24838<div class="memitem">
24839<div class="memproto">
24840<table class="mlabels">
24841 <tr>
24842 <td class="mlabels-left">
24843 <table class="memname">
24844 <tr>
24845 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqsubq_qs16 </td>
24846 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024847 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024848 <td class="paramname"><em>a</em>, </td>
24849 </tr>
24850 <tr>
24851 <td class="paramkey"></td>
24852 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024853 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010024854 <td class="paramname"><em>b</em>&#160;</td>
24855 </tr>
24856 <tr>
24857 <td></td>
24858 <td>)</td>
24859 <td></td><td></td>
24860 </tr>
24861 </table>
24862 </td>
24863 <td class="mlabels-right">
24864<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24865 </tr>
24866</table>
24867</div><div class="memdoc">
24868
24869<p>16 bit fixed point vector saturating subtraction (8 elements) </p>
24870<dl class="params"><dt>Parameters</dt><dd>
24871 <table class="params">
24872 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
24873 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
24874 </table>
24875 </dd>
24876</dl>
24877<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector subtraction. The result is saturated in case of overflow </dd></dl>
24878
Kaizenbf8b01d2017-10-12 14:26:51 +010024879<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00474">474</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024880
Kaizenbf8b01d2017-10-12 14:26:51 +010024881<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01520">vqexpq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01265">vqrecipq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01965">vqtanhq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024882<div class="fragment"><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> vqsubq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
24883<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024884</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010024885</div>
24886</div>
24887<a class="anchor" id="ab2a6ce3d8239e49c81af1ebc617680b4"></a>
24888<div class="memitem">
24889<div class="memproto">
24890<table class="mlabels">
24891 <tr>
24892 <td class="mlabels-left">
24893 <table class="memname">
24894 <tr>
24895 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqsubq_qs8 </td>
24896 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024897 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024898 <td class="paramname"><em>a</em>, </td>
24899 </tr>
24900 <tr>
24901 <td class="paramkey"></td>
24902 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024903 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024904 <td class="paramname"><em>b</em>&#160;</td>
24905 </tr>
24906 <tr>
24907 <td></td>
24908 <td>)</td>
24909 <td></td><td></td>
24910 </tr>
24911 </table>
24912 </td>
24913 <td class="mlabels-right">
24914<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24915 </tr>
24916</table>
24917</div><div class="memdoc">
24918
24919<p>8 bit fixed point vector saturating subtraction (16 elements) </p>
24920<dl class="params"><dt>Parameters</dt><dd>
24921 <table class="params">
24922 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
24923 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
24924 </table>
24925 </dd>
24926</dl>
24927<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector subtraction. The result is saturated in case of overflow </dd></dl>
24928
Kaizenbf8b01d2017-10-12 14:26:51 +010024929<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00469">469</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024930
Kaizenbf8b01d2017-10-12 14:26:51 +010024931<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01494">vqexpq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01238">vqrecipq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01952">vqtanhq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000024932<div class="fragment"><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;{</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> vqsubq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
24933<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024934</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010024935</div>
24936</div>
Kaizen8938bd32017-09-28 14:38:23 +010024937<a class="anchor" id="a81b5a6029b604d0a1daf4d4ac63a56c8"></a>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024938<div class="memitem">
24939<div class="memproto">
24940<table class="mlabels">
24941 <tr>
24942 <td class="mlabels-left">
24943 <table class="memname">
24944 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010024945 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqtanh_qs16 </td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024946 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024947 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024948 <td class="paramname"><em>a</em>, </td>
24949 </tr>
24950 <tr>
24951 <td class="paramkey"></td>
24952 <td></td>
24953 <td class="paramtype">int&#160;</td>
24954 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
24955 </tr>
24956 <tr>
24957 <td></td>
24958 <td>)</td>
24959 <td></td><td></td>
24960 </tr>
24961 </table>
24962 </td>
24963 <td class="mlabels-right">
24964<span class="mlabels"><span class="mlabel">inline</span></span> </td>
24965 </tr>
24966</table>
24967</div><div class="memdoc">
24968
Kaizen8938bd32017-09-28 14:38:23 +010024969<p>Calculate hyperbolic tangent for fixed point 16 bit (4 elements) </p>
24970<dl class="params"><dt>Parameters</dt><dd>
24971 <table class="params">
24972 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
24973 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
24974 </table>
24975 </dd>
24976</dl>
24977<dl class="section return"><dt>Returns</dt><dd>The calculated Hyperbolic Tangent. </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010024978
Kaizenbf8b01d2017-10-12 14:26:51 +010024979<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01939">1939</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010024980
Kaizenbf8b01d2017-10-12 14:26:51 +010024981<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00939">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00409">vqadd_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01468">vqexp_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00570">vqmul_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01156">vqrecip_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00464">vqsub_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000024982<div class="fragment"><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;{</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_one = vdup_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_two = vdup_n_s16(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> exp2x = <a class="code" href="namespacearm__compute.xhtml#aa3c9489e850081532442f4da59515852">vqexp_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(const_two, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> num = <a class="code" href="namespacearm__compute.xhtml#a73a131b9775ce771a1a25607a83b0ca9">vqsub_qs16</a>(exp2x, const_one);</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> den = <a class="code" href="namespacearm__compute.xhtml#ad80ab0f6b783c10e0488cb84a8812e8f">vqadd_qs16</a>(exp2x, const_one);</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a> = <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(num, <a class="code" href="namespacearm__compute.xhtml#ada5b8019889d6b38b3cb64ccdd3731ca">vqrecip_qs16</a>(den, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a>;</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_aec34399f16d824f79571abe464556466"><div class="ttname"><a href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">arm_compute::vqmul_qs16</a></div><div class="ttdeci">qint16x4_t vqmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00570">NEFixedPoint.inl:570</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000024983<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010024984<div class="ttc" id="namespacearm__compute_xhtml_a73a131b9775ce771a1a25607a83b0ca9"><div class="ttname"><a href="namespacearm__compute.xhtml#a73a131b9775ce771a1a25607a83b0ca9">arm_compute::vqsub_qs16</a></div><div class="ttdeci">qint16x4_t vqsub_qs16(qint16x4_t a, qint16x4_t b)</div><div class="ttdoc">16 bit fixed point vector saturating subtraction (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00464">NEFixedPoint.inl:464</a></div></div>
24985<div class="ttc" id="namespacearm__compute_xhtml_ad80ab0f6b783c10e0488cb84a8812e8f"><div class="ttname"><a href="namespacearm__compute.xhtml#ad80ab0f6b783c10e0488cb84a8812e8f">arm_compute::vqadd_qs16</a></div><div class="ttdeci">qint16x4_t vqadd_qs16(qint16x4_t a, qint16x4_t b)</div><div class="ttdoc">16 bit fixed point vector saturating add (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00409">NEFixedPoint.inl:409</a></div></div>
24986<div class="ttc" id="namespacearm__compute_xhtml_aa3c9489e850081532442f4da59515852"><div class="ttname"><a href="namespacearm__compute.xhtml#aa3c9489e850081532442f4da59515852">arm_compute::vqexp_qs16</a></div><div class="ttdeci">qint16x4_t vqexp_qs16(qint16x4_t a, int fixed_point_position)</div><div class="ttdoc">Calculate saturating exponential fixed point 16 bit (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01468">NEFixedPoint.inl:1468</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024987<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&lt; T &gt; tanh(fixed_point&lt; T &gt; 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>
Kaizenbf8b01d2017-10-12 14:26:51 +010024988<div class="ttc" id="namespacearm__compute_xhtml_ada5b8019889d6b38b3cb64ccdd3731ca"><div class="ttname"><a href="namespacearm__compute.xhtml#ada5b8019889d6b38b3cb64ccdd3731ca">arm_compute::vqrecip_qs16</a></div><div class="ttdeci">qint16x4_t vqrecip_qs16(qint16x4_t a, int fixed_point_position)</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01156">NEFixedPoint.inl:1156</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010024989<div class="ttc" id="namespacearm__compute_xhtml_a82c56f0856f56d430393e6a00baee983"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">arm_compute::qint16x4_t</a></div><div class="ttdeci">int16x4_t qint16x4_t</div><div class="ttdoc">16 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00041">NEFixedPoint.h:41</a></div></div>
24990</div><!-- fragment -->
24991</div>
24992</div>
24993<a class="anchor" id="a2b97d40b6d61e8453d755711fed30a38"></a>
24994<div class="memitem">
24995<div class="memproto">
24996<table class="mlabels">
24997 <tr>
24998 <td class="mlabels-left">
24999 <table class="memname">
25000 <tr>
25001 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqtanh_qs8 </td>
25002 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025003 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025004 <td class="paramname"><em>a</em>, </td>
25005 </tr>
25006 <tr>
25007 <td class="paramkey"></td>
25008 <td></td>
25009 <td class="paramtype">int&#160;</td>
25010 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25011 </tr>
25012 <tr>
25013 <td></td>
25014 <td>)</td>
25015 <td></td><td></td>
25016 </tr>
25017 </table>
25018 </td>
25019 <td class="mlabels-right">
25020<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25021 </tr>
25022</table>
25023</div><div class="memdoc">
25024
25025<p>Calculate hyperbolic tangent for fixed point 8bit (8 elements) </p>
25026<dl class="params"><dt>Parameters</dt><dd>
25027 <table class="params">
25028 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
25029 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
25030 </table>
25031 </dd>
25032</dl>
25033<dl class="section return"><dt>Returns</dt><dd>The calculated Hyperbolic Tangent. </dd></dl>
25034
Kaizenbf8b01d2017-10-12 14:26:51 +010025035<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01926">1926</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025036
Kaizenbf8b01d2017-10-12 14:26:51 +010025037<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00939">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00404">vqadd_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01442">vqexp_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00553">vqmul_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01130">vqrecip_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00459">vqsub_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025038<div class="fragment"><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;{</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_one = vdup_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_two = vdup_n_s8(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> exp2x = <a class="code" href="namespacearm__compute.xhtml#a635b41196d74b1f2c4d9ee9298444796">vqexp_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(const_two, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> num = <a class="code" href="namespacearm__compute.xhtml#a5b1437029acce06690a938e09f5a762a">vqsub_qs8</a>(exp2x, const_one);</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> den = <a class="code" href="namespacearm__compute.xhtml#a8a14fe5fc71105c9bfebb28a58f06a52">vqadd_qs8</a>(exp2x, const_one);</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a> = <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(num, <a class="code" href="namespacearm__compute.xhtml#a3e6537037711264ed5e8f33c8564c325">vqrecip_qs8</a>(den, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a>;</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025039<div class="ttc" id="namespacearm__compute_xhtml_a5b1437029acce06690a938e09f5a762a"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b1437029acce06690a938e09f5a762a">arm_compute::vqsub_qs8</a></div><div class="ttdeci">qint8x8_t vqsub_qs8(qint8x8_t a, qint8x8_t b)</div><div class="ttdoc">8 bit fixed point vector saturating subtraction (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00459">NEFixedPoint.inl:459</a></div></div>
25040<div class="ttc" id="namespacearm__compute_xhtml_a746205173d1a1f3955fa0c26b5be3b10"><div class="ttname"><a href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">arm_compute::vqmul_qs8</a></div><div class="ttdeci">qint8x8_t vqmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00553">NEFixedPoint.inl:553</a></div></div>
25041<div class="ttc" id="namespacearm__compute_xhtml_a3e6537037711264ed5e8f33c8564c325"><div class="ttname"><a href="namespacearm__compute.xhtml#a3e6537037711264ed5e8f33c8564c325">arm_compute::vqrecip_qs8</a></div><div class="ttdeci">qint8x8_t vqrecip_qs8(qint8x8_t a, int fixed_point_position)</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01130">NEFixedPoint.inl:1130</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025042<div class="ttc" id="namespacearm__compute_xhtml_a16a1bee14f1db073f75caa76dacf5078"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">arm_compute::qint8x8_t</a></div><div class="ttdeci">int8x8_t qint8x8_t</div><div class="ttdoc">8 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00033">NEFixedPoint.h:33</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025043<div class="ttc" id="namespacearm__compute_xhtml_a8a14fe5fc71105c9bfebb28a58f06a52"><div class="ttname"><a href="namespacearm__compute.xhtml#a8a14fe5fc71105c9bfebb28a58f06a52">arm_compute::vqadd_qs8</a></div><div class="ttdeci">qint8x8_t vqadd_qs8(qint8x8_t a, qint8x8_t b)</div><div class="ttdoc">8 bit fixed point vector saturating add (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00404">NEFixedPoint.inl:404</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025044<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&lt; T &gt; tanh(fixed_point&lt; T &gt; 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>
Kaizenbf8b01d2017-10-12 14:26:51 +010025045<div class="ttc" id="namespacearm__compute_xhtml_a635b41196d74b1f2c4d9ee9298444796"><div class="ttname"><a href="namespacearm__compute.xhtml#a635b41196d74b1f2c4d9ee9298444796">arm_compute::vqexp_qs8</a></div><div class="ttdeci">qint8x8_t vqexp_qs8(qint8x8_t a, int fixed_point_position)</div><div class="ttdoc">Calculate saturating exponential fixed point 8bit (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01442">NEFixedPoint.inl:1442</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025046</div><!-- fragment -->
25047</div>
25048</div>
25049<a class="anchor" id="ab9f9b779eb9bb6ecb730548a1e87da65"></a>
25050<div class="memitem">
25051<div class="memproto">
25052<table class="mlabels">
25053 <tr>
25054 <td class="mlabels-left">
25055 <table class="memname">
25056 <tr>
25057 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqtanhq_qs16 </td>
25058 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025059 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025060 <td class="paramname"><em>a</em>, </td>
25061 </tr>
25062 <tr>
25063 <td class="paramkey"></td>
25064 <td></td>
25065 <td class="paramtype">int&#160;</td>
25066 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25067 </tr>
25068 <tr>
25069 <td></td>
25070 <td>)</td>
25071 <td></td><td></td>
25072 </tr>
25073 </table>
25074 </td>
25075 <td class="mlabels-right">
25076<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25077 </tr>
25078</table>
25079</div><div class="memdoc">
25080
25081<p>Calculate hyperbolic tangent for fixed point 16bit (8 elements) </p>
25082<dl class="params"><dt>Parameters</dt><dd>
25083 <table class="params">
25084 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
25085 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
25086 </table>
25087 </dd>
25088</dl>
25089<dl class="section return"><dt>Returns</dt><dd>The calculated Hyperbolic Tangent. </dd></dl>
25090
Kaizenbf8b01d2017-10-12 14:26:51 +010025091<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01965">1965</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025092
Kaizenbf8b01d2017-10-12 14:26:51 +010025093<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00939">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00424">vqaddq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01520">vqexpq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00607">vqmulq_qs16()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01265">vqrecipq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00474">vqsubq_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025094<div class="fragment"><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;{</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_one = vdupq_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_two = vdupq_n_s16(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> exp2x = <a class="code" href="namespacearm__compute.xhtml#a5b5e085002cf5a69fb80e6991d0a4556">vqexpq_qs16</a>(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(const_two, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> num = <a class="code" href="namespacearm__compute.xhtml#a9edb31327a1e06c730d5a09b14dcfeb9">vqsubq_qs16</a>(exp2x, const_one);</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> den = <a class="code" href="namespacearm__compute.xhtml#a9d88750b393cdfe6f5685107bb1d98f7">vqaddq_qs16</a>(exp2x, const_one);</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a> = <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(num, <a class="code" href="namespacearm__compute.xhtml#a6a368d809128ff6bce989cda02c536d8">vqrecipq_qs16</a>(den, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a>;</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a9edb31327a1e06c730d5a09b14dcfeb9"><div class="ttname"><a href="namespacearm__compute.xhtml#a9edb31327a1e06c730d5a09b14dcfeb9">arm_compute::vqsubq_qs16</a></div><div class="ttdeci">qint16x8_t vqsubq_qs16(qint16x8_t a, qint16x8_t b)</div><div class="ttdoc">16 bit fixed point vector saturating subtraction (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00474">NEFixedPoint.inl:474</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000025095<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025096<div class="ttc" id="namespacearm__compute_xhtml_a982d792d366430a954d96e8575d3c313"><div class="ttname"><a href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">arm_compute::vqmulq_qs16</a></div><div class="ttdeci">qint16x8_t vqmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00607">NEFixedPoint.inl:607</a></div></div>
25097<div class="ttc" id="namespacearm__compute_xhtml_a6a368d809128ff6bce989cda02c536d8"><div class="ttname"><a href="namespacearm__compute.xhtml#a6a368d809128ff6bce989cda02c536d8">arm_compute::vqrecipq_qs16</a></div><div class="ttdeci">qint16x8_t vqrecipq_qs16(qint16x8_t a, int fixed_point_position)</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01265">NEFixedPoint.inl:1265</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025098<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025099<div class="ttc" id="namespacearm__compute_xhtml_a5b5e085002cf5a69fb80e6991d0a4556"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b5e085002cf5a69fb80e6991d0a4556">arm_compute::vqexpq_qs16</a></div><div class="ttdeci">qint16x8_t vqexpq_qs16(qint16x8_t a, int fixed_point_position)</div><div class="ttdoc">Calculate saturating exponential fixed point 16 bit (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01520">NEFixedPoint.inl:1520</a></div></div>
25100<div class="ttc" id="namespacearm__compute_xhtml_a9d88750b393cdfe6f5685107bb1d98f7"><div class="ttname"><a href="namespacearm__compute.xhtml#a9d88750b393cdfe6f5685107bb1d98f7">arm_compute::vqaddq_qs16</a></div><div class="ttdeci">qint16x8_t vqaddq_qs16(qint16x8_t a, qint16x8_t b)</div><div class="ttdoc">16 bit fixed point vector saturating add (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00424">NEFixedPoint.inl:424</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025101<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&lt; T &gt; tanh(fixed_point&lt; T &gt; 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>
25102</div><!-- fragment -->
25103</div>
25104</div>
25105<a class="anchor" id="a81ea8bde4e35ce63e8e10708bae0caea"></a>
25106<div class="memitem">
25107<div class="memproto">
25108<table class="mlabels">
25109 <tr>
25110 <td class="mlabels-left">
25111 <table class="memname">
25112 <tr>
25113 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqtanhq_qs8 </td>
25114 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025115 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025116 <td class="paramname"><em>a</em>, </td>
25117 </tr>
25118 <tr>
25119 <td class="paramkey"></td>
25120 <td></td>
25121 <td class="paramtype">int&#160;</td>
25122 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25123 </tr>
25124 <tr>
25125 <td></td>
25126 <td>)</td>
25127 <td></td><td></td>
25128 </tr>
25129 </table>
25130 </td>
25131 <td class="mlabels-right">
25132<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25133 </tr>
25134</table>
25135</div><div class="memdoc">
25136
25137<p>Calculate hyperbolic tangent for fixed point 8bit (16 elements) </p>
25138<dl class="params"><dt>Parameters</dt><dd>
25139 <table class="params">
25140 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
25141 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
25142 </table>
25143 </dd>
25144</dl>
25145<dl class="section return"><dt>Returns</dt><dd>The calculated Hyperbolic Tangent. </dd></dl>
25146
Kaizenbf8b01d2017-10-12 14:26:51 +010025147<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01952">1952</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025148
Kaizenbf8b01d2017-10-12 14:26:51 +010025149<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00939">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00419">vqaddq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01494">vqexpq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00587">vqmulq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01238">vqrecipq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00469">vqsubq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025150<div class="fragment"><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;{</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_one = vdupq_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_two = vdupq_n_s8(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> exp2x = <a class="code" href="namespacearm__compute.xhtml#ae6cf1822b8fbad305677650a2b751247">vqexpq_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(const_two, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> num = <a class="code" href="namespacearm__compute.xhtml#ab2a6ce3d8239e49c81af1ebc617680b4">vqsubq_qs8</a>(exp2x, const_one);</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> den = <a class="code" href="namespacearm__compute.xhtml#a9765c5ee2d3cc9e3ca983fd2f47ba916">vqaddq_qs8</a>(exp2x, const_one);</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a> = <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(num, <a class="code" href="namespacearm__compute.xhtml#a3dd4382391c752128ab7b3a6dd68314b">vqrecipq_qs8</a>(den, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a>;</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025151<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025152<div class="ttc" id="namespacearm__compute_xhtml_a9765c5ee2d3cc9e3ca983fd2f47ba916"><div class="ttname"><a href="namespacearm__compute.xhtml#a9765c5ee2d3cc9e3ca983fd2f47ba916">arm_compute::vqaddq_qs8</a></div><div class="ttdeci">qint8x16_t vqaddq_qs8(qint8x16_t a, qint8x16_t b)</div><div class="ttdoc">8 bit fixed point vector saturating add (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00419">NEFixedPoint.inl:419</a></div></div>
25153<div class="ttc" id="namespacearm__compute_xhtml_ae6cf1822b8fbad305677650a2b751247"><div class="ttname"><a href="namespacearm__compute.xhtml#ae6cf1822b8fbad305677650a2b751247">arm_compute::vqexpq_qs8</a></div><div class="ttdeci">qint8x16_t vqexpq_qs8(qint8x16_t a, int fixed_point_position)</div><div class="ttdoc">Calculate saturating exponential fixed point 8bit (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01494">NEFixedPoint.inl:1494</a></div></div>
25154<div class="ttc" id="namespacearm__compute_xhtml_a081c0605c83155125ad95a144a1d6071"><div class="ttname"><a href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">arm_compute::vqmulq_qs8</a></div><div class="ttdeci">qint8x16_t vqmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00587">NEFixedPoint.inl:587</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025155<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&lt; T &gt; tanh(fixed_point&lt; T &gt; 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>
Kaizenbf8b01d2017-10-12 14:26:51 +010025156<div class="ttc" id="namespacearm__compute_xhtml_ab2a6ce3d8239e49c81af1ebc617680b4"><div class="ttname"><a href="namespacearm__compute.xhtml#ab2a6ce3d8239e49c81af1ebc617680b4">arm_compute::vqsubq_qs8</a></div><div class="ttdeci">qint8x16_t vqsubq_qs8(qint8x16_t a, qint8x16_t b)</div><div class="ttdoc">8 bit fixed point vector saturating subtraction (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00469">NEFixedPoint.inl:469</a></div></div>
25157<div class="ttc" id="namespacearm__compute_xhtml_a3dd4382391c752128ab7b3a6dd68314b"><div class="ttname"><a href="namespacearm__compute.xhtml#a3dd4382391c752128ab7b3a6dd68314b">arm_compute::vqrecipq_qs8</a></div><div class="ttdeci">qint8x16_t vqrecipq_qs8(qint8x16_t a, int fixed_point_position)</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l01238">NEFixedPoint.inl:1238</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025158</div><!-- fragment -->
25159</div>
25160</div>
25161<a class="anchor" id="af39bcc812b6e450e92622e0f30b37d92"></a>
25162<div class="memitem">
25163<div class="memproto">
25164<table class="mlabels">
25165 <tr>
25166 <td class="mlabels-left">
25167 <table class="memname">
25168 <tr>
25169 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> arm_compute::vqtaylor_poly_qs16 </td>
25170 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025171 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025172 <td class="paramname"><em>a</em>, </td>
25173 </tr>
25174 <tr>
25175 <td class="paramkey"></td>
25176 <td></td>
25177 <td class="paramtype">int&#160;</td>
25178 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25179 </tr>
25180 <tr>
25181 <td></td>
25182 <td>)</td>
25183 <td></td><td></td>
25184 </tr>
25185 </table>
25186 </td>
25187 <td class="mlabels-right">
25188<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25189 </tr>
25190</table>
25191</div><div class="memdoc">
25192
Kaizenbf8b01d2017-10-12 14:26:51 +010025193<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01363">1363</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025194
Kaizenbf8b01d2017-10-12 14:26:51 +010025195<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00570">vqmul_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025196<div class="fragment"><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;{</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value = vdup_n_s16(-(15 - fixed_point_position));</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_one = vdup_n_s16(1);</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = vqrshl_s16(islog ? log_tab_qs16[0] : exp_tab_qs16[0], islog ? vqadd_s16(shift_value, const_one) : shift_value);</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = vqrshl_s16(islog ? log_tab_qs16[1] : exp_tab_qs16[1], shift_value);</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> C = vqrshl_s16(islog ? log_tab_qs16[2] : exp_tab_qs16[2], shift_value);</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> D = vqrshl_s16(islog ? log_tab_qs16[3] : exp_tab_qs16[3], shift_value);</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x1 = vqadd_s16(<a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x2 = vqadd_s16(<a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x1, fixed_point_position), B);</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x3 = vqadd_s16(<a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x2, fixed_point_position), A);</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> res = <a class="code" href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">vqmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x3, fixed_point_position);</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025197<div class="ttc" id="namespacearm__compute_xhtml_aec34399f16d824f79571abe464556466"><div class="ttname"><a href="namespacearm__compute.xhtml#aec34399f16d824f79571abe464556466">arm_compute::vqmul_qs16</a></div><div class="ttdeci">qint16x4_t vqmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00570">NEFixedPoint.inl:570</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000025198<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025199<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
25200<div class="ttc" id="namespacearm__compute_xhtml_a82c56f0856f56d430393e6a00baee983"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">arm_compute::qint16x4_t</a></div><div class="ttdeci">int16x4_t qint16x4_t</div><div class="ttdoc">16 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00041">NEFixedPoint.h:41</a></div></div>
25201</div><!-- fragment -->
25202</div>
25203</div>
25204<a class="anchor" id="a3de0bc67f9a2ef3bcfe922e50c3b5ec9"></a>
25205<div class="memitem">
25206<div class="memproto">
25207<table class="mlabels">
25208 <tr>
25209 <td class="mlabels-left">
25210 <table class="memname">
25211 <tr>
25212 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqtaylor_poly_qs8 </td>
25213 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025214 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025215 <td class="paramname"><em>a</em>, </td>
25216 </tr>
25217 <tr>
25218 <td class="paramkey"></td>
25219 <td></td>
25220 <td class="paramtype">int&#160;</td>
25221 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25222 </tr>
25223 <tr>
25224 <td></td>
25225 <td>)</td>
25226 <td></td><td></td>
25227 </tr>
25228 </table>
25229 </td>
25230 <td class="mlabels-right">
25231<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25232 </tr>
25233</table>
25234</div><div class="memdoc">
25235
Kaizenbf8b01d2017-10-12 14:26:51 +010025236<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01347">1347</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025237
Kaizenbf8b01d2017-10-12 14:26:51 +010025238<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00553">vqmul_qs8()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025239<div class="fragment"><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;{</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value = vdup_n_s8(-(7 - fixed_point_position));</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_one = vdup_n_s8(1);</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = vqrshl_s8(islog ? log_tab_qs8[0] : exp_tab_qs8[0], islog ? vqadd_s8(shift_value, const_one) : shift_value);</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = vqrshl_s8(islog ? log_tab_qs8[1] : exp_tab_qs8[1], shift_value);</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> C = vqrshl_s8(islog ? log_tab_qs8[2] : exp_tab_qs8[2], shift_value);</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> D = vqrshl_s8(islog ? log_tab_qs8[3] : exp_tab_qs8[3], shift_value);</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x1 = vqadd_s8(<a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x2 = vqadd_s8(<a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x1, fixed_point_position), B);</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x3 = vqadd_s8(<a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x2, fixed_point_position), A);</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> res = <a class="code" href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">vqmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x3, fixed_point_position);</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000025240<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025241<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025242<div class="ttc" id="namespacearm__compute_xhtml_a746205173d1a1f3955fa0c26b5be3b10"><div class="ttname"><a href="namespacearm__compute.xhtml#a746205173d1a1f3955fa0c26b5be3b10">arm_compute::vqmul_qs8</a></div><div class="ttdeci">qint8x8_t vqmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00553">NEFixedPoint.inl:553</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025243<div class="ttc" id="namespacearm__compute_xhtml_a16a1bee14f1db073f75caa76dacf5078"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">arm_compute::qint8x8_t</a></div><div class="ttdeci">int8x8_t qint8x8_t</div><div class="ttdoc">8 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00033">NEFixedPoint.h:33</a></div></div>
25244</div><!-- fragment -->
25245</div>
25246</div>
25247<a class="anchor" id="a080bc54b67bc7930ab173117baf1cd07"></a>
25248<div class="memitem">
25249<div class="memproto">
25250<table class="mlabels">
25251 <tr>
25252 <td class="mlabels-left">
25253 <table class="memname">
25254 <tr>
25255 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> arm_compute::vqtaylor_polyq_qs16 </td>
25256 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025257 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025258 <td class="paramname"><em>a</em>, </td>
25259 </tr>
25260 <tr>
25261 <td class="paramkey"></td>
25262 <td></td>
25263 <td class="paramtype">int&#160;</td>
25264 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25265 </tr>
25266 <tr>
25267 <td></td>
25268 <td>)</td>
25269 <td></td><td></td>
25270 </tr>
25271 </table>
25272 </td>
25273 <td class="mlabels-right">
25274<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25275 </tr>
25276</table>
25277</div><div class="memdoc">
25278
Kaizenbf8b01d2017-10-12 14:26:51 +010025279<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01427">1427</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025280
Kaizenbf8b01d2017-10-12 14:26:51 +010025281<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00607">vqmulq_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025282<div class="fragment"><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;{</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value = vdupq_n_s16(-(15 - fixed_point_position));</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_one = vdupq_n_s16(1);</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = vqrshlq_s16(islog ? log_tabq_qs16[0] : exp_tabq_qs16[0], islog ? vqaddq_s16(shift_value, const_one) : shift_value);</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = vqrshlq_s16(islog ? log_tabq_qs16[1] : exp_tabq_qs16[1], shift_value);</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> C = vqrshlq_s16(islog ? log_tabq_qs16[2] : exp_tabq_qs16[2], shift_value);</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> D = vqrshlq_s16(islog ? log_tabq_qs16[3] : exp_tabq_qs16[3], shift_value);</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x1 = vqaddq_s16(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x2 = vqaddq_s16(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x1, fixed_point_position), B);</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x3 = vqaddq_s16(<a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x2, fixed_point_position), A);</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res = <a class="code" href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">vqmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x3, fixed_point_position);</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000025283<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025284<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025285<div class="ttc" id="namespacearm__compute_xhtml_a982d792d366430a954d96e8575d3c313"><div class="ttname"><a href="namespacearm__compute.xhtml#a982d792d366430a954d96e8575d3c313">arm_compute::vqmulq_qs16</a></div><div class="ttdeci">qint16x8_t vqmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector saturating multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00607">NEFixedPoint.inl:607</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025286<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025287</div><!-- fragment -->
25288</div>
25289</div>
25290<a class="anchor" id="aa754195778af2be8fd3c48192eb1e5b6"></a>
25291<div class="memitem">
25292<div class="memproto">
25293<table class="mlabels">
25294 <tr>
25295 <td class="mlabels-left">
25296 <table class="memname">
25297 <tr>
25298 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> arm_compute::vqtaylor_polyq_qs8 </td>
25299 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025300 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025301 <td class="paramname"><em>a</em>, </td>
25302 </tr>
25303 <tr>
25304 <td class="paramkey"></td>
25305 <td></td>
25306 <td class="paramtype">int&#160;</td>
25307 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25308 </tr>
25309 <tr>
25310 <td></td>
25311 <td>)</td>
25312 <td></td><td></td>
25313 </tr>
25314 </table>
25315 </td>
25316 <td class="mlabels-right">
25317<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25318 </tr>
25319</table>
25320</div><div class="memdoc">
25321
Kaizenbf8b01d2017-10-12 14:26:51 +010025322<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01411">1411</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025323
Kaizenbf8b01d2017-10-12 14:26:51 +010025324<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00587">vqmulq_qs8()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025325<div class="fragment"><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;{</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value = vdupq_n_s8(-(7 - fixed_point_position));</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_one = vdupq_n_s8(1);</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = vqrshlq_s8(islog ? log_tabq_qs8[0] : exp_tabq_qs8[0], islog ? vqaddq_s8(shift_value, const_one) : shift_value);</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = vqrshlq_s8(islog ? log_tabq_qs8[1] : exp_tabq_qs8[1], shift_value);</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> C = vqrshlq_s8(islog ? log_tabq_qs8[2] : exp_tabq_qs8[2], shift_value);</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> D = vqrshlq_s8(islog ? log_tabq_qs8[3] : exp_tabq_qs8[3], shift_value);</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x1 = vqaddq_s8(<a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x2 = vqaddq_s8(<a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x1, fixed_point_position), B);</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x3 = vqaddq_s8(<a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x2, fixed_point_position), A);</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> res = <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x3, fixed_point_position);</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000025326<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025327<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
25328<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025329<div class="ttc" id="namespacearm__compute_xhtml_a081c0605c83155125ad95a144a1d6071"><div class="ttname"><a href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">arm_compute::vqmulq_qs8</a></div><div class="ttdeci">qint8x16_t vqmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector saturating multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00587">NEFixedPoint.inl:587</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025330</div><!-- fragment -->
25331</div>
25332</div>
25333<a class="anchor" id="a8e14017f1276f4a4e14078d93ed692bd"></a>
25334<div class="memitem">
25335<div class="memproto">
25336<table class="mlabels">
25337 <tr>
25338 <td class="mlabels-left">
25339 <table class="memname">
25340 <tr>
25341 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vrecip_qs16 </td>
25342 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025343 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025344 <td class="paramname"><em>a</em>, </td>
25345 </tr>
25346 <tr>
25347 <td class="paramkey"></td>
25348 <td></td>
25349 <td class="paramtype">int&#160;</td>
25350 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25351 </tr>
25352 <tr>
25353 <td></td>
25354 <td>)</td>
25355 <td></td><td></td>
25356 </tr>
25357 </table>
25358 </td>
25359 <td class="mlabels-right">
25360<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25361 </tr>
25362</table>
25363</div><div class="memdoc">
25364
25365<p>Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </p>
25366<p>(4 elements)</p>
25367<dl class="params"><dt>Parameters</dt><dd>
25368 <table class="params">
25369 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
25370 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
25371 </table>
25372 </dd>
25373</dl>
25374<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit reciprocal (1/a). </dd></dl>
25375
Kaizenbf8b01d2017-10-12 14:26:51 +010025376<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01103">1103</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025377
Kaizenbf8b01d2017-10-12 14:26:51 +010025378<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00496">vmul_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025379
Kaizenbf8b01d2017-10-12 14:26:51 +010025380<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01299">vdiv_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01585">vlog_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025381<div class="fragment"><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;{</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="comment">// We need two bits to store 2, thus we can only support formats from Q2.13 to Q15.0</span></div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_48_over_17 = vdup_n_s16(0x5A5A &gt;&gt; (13 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_32_over_17 = vdup_n_s16(0x3C3C &gt;&gt; (13 - fixed_point_position)); <span class="comment">// 1.8823</span></div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_one = vdup_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_two = vdup_n_s16(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value = vneg_s16(vsub_s16(vdup_n_s16(8), vadd_s16(vclz_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s16(fixed_point_position))));</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> temp = vshl_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="comment">// Newton-Raphson division initial estimate X0 calculation</span></div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x = vsub_s16(const_48_over_17, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, const_32_over_17, fixed_point_position));</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; uint16x4_t set_one = vcgt_s16(x, const_one);</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; x = vbsl_s16(set_one, const_one, x);</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="comment">// Use four iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, vsub_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, vsub_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, vsub_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(x, vsub_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">return</span> vshl_s16(x, shift_value);</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025382<div class="ttc" id="namespacearm__compute_xhtml_ac1b67e3283a1cae4d57b7f64137f5f5c"><div class="ttname"><a href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">arm_compute::vmul_qs16</a></div><div class="ttdeci">qint16x4_t vmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00496">NEFixedPoint.inl:496</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025383<div class="ttc" id="namespacearm__compute_xhtml_a82c56f0856f56d430393e6a00baee983"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">arm_compute::qint16x4_t</a></div><div class="ttdeci">int16x4_t qint16x4_t</div><div class="ttdoc">16 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00041">NEFixedPoint.h:41</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025384</div><!-- fragment -->
25385</div>
25386</div>
25387<a class="anchor" id="aa24b270b0193ad8983dfecd6105c4936"></a>
25388<div class="memitem">
25389<div class="memproto">
25390<table class="mlabels">
25391 <tr>
25392 <td class="mlabels-left">
25393 <table class="memname">
25394 <tr>
25395 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vrecip_qs8 </td>
25396 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025397 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025398 <td class="paramname"><em>a</em>, </td>
25399 </tr>
25400 <tr>
25401 <td class="paramkey"></td>
25402 <td></td>
25403 <td class="paramtype">int&#160;</td>
25404 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25405 </tr>
25406 <tr>
25407 <td></td>
25408 <td>)</td>
25409 <td></td><td></td>
25410 </tr>
25411 </table>
25412 </td>
25413 <td class="mlabels-right">
25414<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25415 </tr>
25416</table>
25417</div><div class="memdoc">
25418
25419<p>Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </p>
25420<p>(8 elements)</p>
25421<dl class="params"><dt>Parameters</dt><dd>
25422 <table class="params">
25423 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
25424 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
25425 </table>
25426 </dd>
25427</dl>
25428<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit reciprocal (1/a). </dd></dl>
25429
Kaizenbf8b01d2017-10-12 14:26:51 +010025430<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01077">1077</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025431
Kaizenbf8b01d2017-10-12 14:26:51 +010025432<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00479">vmul_qs8()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025433
Kaizenbf8b01d2017-10-12 14:26:51 +010025434<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01294">vdiv_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01546">vlog_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025435<div class="fragment"><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;{</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="comment">// We need two bits to store 2, thus we can only support formats from Q2.5 to Q7.0</span></div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_48_over_17 = vdup_n_s8(0x5A &gt;&gt; (5 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_32_over_17 = vdup_n_s8((0x3C &gt;&gt; (5 - fixed_point_position))); <span class="comment">// 1.8823</span></div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_one = vdup_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_two = vdup_n_s8(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value = vneg_s8(vsub_s8(vdup_n_s8(8), vadd_s8(vclz_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdup_n_s8(fixed_point_position))));</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> temp = vshl_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="comment">// Newton-Raphson division initial estimate X0 calculation</span></div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x = vsub_s8(const_48_over_17, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(temp, const_32_over_17, fixed_point_position));</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; uint8x8_t set_one = vcgt_s8(x, const_one);</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; x = vbsl_s8(set_one, const_one, x);</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <span class="comment">// Use three iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, vsub_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, vsub_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, vsub_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordflow">return</span> vshl_s8(x, shift_value);</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025436<div class="ttc" id="namespacearm__compute_xhtml_afccf1305c480f2338af8925bba6b54cd"><div class="ttname"><a href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">arm_compute::vmul_qs8</a></div><div class="ttdeci">qint8x8_t vmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00479">NEFixedPoint.inl:479</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025437<div class="ttc" id="namespacearm__compute_xhtml_a16a1bee14f1db073f75caa76dacf5078"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">arm_compute::qint8x8_t</a></div><div class="ttdeci">int8x8_t qint8x8_t</div><div class="ttdoc">8 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00033">NEFixedPoint.h:33</a></div></div>
25438</div><!-- fragment -->
25439</div>
25440</div>
Kaizen8938bd32017-09-28 14:38:23 +010025441<a class="anchor" id="aea1b943c0452ea124c9f8ac0d1315bed"></a>
25442<div class="memitem">
25443<div class="memproto">
25444<table class="mlabels">
25445 <tr>
25446 <td class="mlabels-left">
25447 <table class="memname">
25448 <tr>
25449 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vrecipq_qs16 </td>
25450 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025451 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025452 <td class="paramname"><em>a</em>, </td>
25453 </tr>
25454 <tr>
25455 <td class="paramkey"></td>
25456 <td></td>
25457 <td class="paramtype">int&#160;</td>
25458 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25459 </tr>
25460 <tr>
25461 <td></td>
25462 <td>)</td>
25463 <td></td><td></td>
25464 </tr>
25465 </table>
25466 </td>
25467 <td class="mlabels-right">
25468<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25469 </tr>
25470</table>
25471</div><div class="memdoc">
25472
25473<p>Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </p>
25474<p>(8 elements)</p>
25475<dl class="params"><dt>Parameters</dt><dd>
25476 <table class="params">
25477 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
25478 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
25479 </table>
25480 </dd>
25481</dl>
25482<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit reciprocal (1/a). </dd></dl>
25483
Kaizenbf8b01d2017-10-12 14:26:51 +010025484<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01210">1210</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025485
Kaizenbf8b01d2017-10-12 14:26:51 +010025486<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00533">vmulq_qs16()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00454">vsubq_qs16()</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025487
Kaizenbf8b01d2017-10-12 14:26:51 +010025488<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01309">vdivq_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025489<div class="fragment"><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;{</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="comment">// We need two bits to store 2, thus we can only support formats from Q2.13 to Q15.0</span></div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_48_over_17 = vdupq_n_s16(0x5A56 &gt;&gt; (13 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_32_over_17 = vdupq_n_s16(0x3C3C &gt;&gt; (13 - fixed_point_position)); <span class="comment">// 1.8823</span></div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_one = vdupq_n_s16(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_two = vdupq_n_s16(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value = vnegq_s16(vsubq_s16(vdupq_n_s16(16), vaddq_s16(vclzq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s16(fixed_point_position))));</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> temp = vshlq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="comment">// Newton-Raphson division initial estimate X0 calculation</span></div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x = <a class="code" href="namespacearm__compute.xhtml#a43569be4a403f390486148701b424e8a">vsubq_qs16</a>(const_48_over_17, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, const_32_over_17, fixed_point_position));</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="comment">// Set initial guess to one if x &gt; 1</span></div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; uint16x8_t set_one = vcgtq_s16(x, const_one);</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; x = vbslq_s16(set_one, const_one, x);</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; <span class="comment">// Use four iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, vsubq_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, vsubq_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, vsubq_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(x, vsubq_s16(const_two, <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="keywordflow">return</span> vshlq_s16(x, shift_value);</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a43569be4a403f390486148701b424e8a"><div class="ttname"><a href="namespacearm__compute.xhtml#a43569be4a403f390486148701b424e8a">arm_compute::vsubq_qs16</a></div><div class="ttdeci">qint16x8_t vsubq_qs16(qint16x8_t a, qint16x8_t b)</div><div class="ttdoc">16 bit fixed point vector subtraction (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00454">NEFixedPoint.inl:454</a></div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000025490<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025491<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025492<div class="ttc" id="namespacearm__compute_xhtml_a74ea79cda0ff6a819b2e5176fe0fc622"><div class="ttname"><a href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">arm_compute::vmulq_qs16</a></div><div class="ttdeci">qint16x8_t vmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00533">NEFixedPoint.inl:533</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025493</div><!-- fragment -->
25494</div>
25495</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025496<a class="anchor" id="abbeb1dc4834fb4e97cf94d702d0e0f91"></a>
25497<div class="memitem">
25498<div class="memproto">
25499<table class="mlabels">
25500 <tr>
25501 <td class="mlabels-left">
25502 <table class="memname">
25503 <tr>
25504 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vrecipq_qs8 </td>
25505 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025506 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025507 <td class="paramname"><em>a</em>, </td>
25508 </tr>
25509 <tr>
25510 <td class="paramkey"></td>
25511 <td></td>
25512 <td class="paramtype">int&#160;</td>
25513 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
25514 </tr>
25515 <tr>
25516 <td></td>
25517 <td>)</td>
25518 <td></td><td></td>
25519 </tr>
25520 </table>
25521 </td>
25522 <td class="mlabels-right">
25523<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25524 </tr>
25525</table>
25526</div><div class="memdoc">
25527
25528<p>Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </p>
25529<p>(16 elements)</p>
25530<dl class="params"><dt>Parameters</dt><dd>
25531 <table class="params">
25532 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
25533 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
25534 </table>
25535 </dd>
25536</dl>
25537<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit reciprocal (1/a). </dd></dl>
25538
Kaizenbf8b01d2017-10-12 14:26:51 +010025539<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01183">1183</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025540
Kaizenbf8b01d2017-10-12 14:26:51 +010025541<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00513">vmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00449">vsubq_qs8()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025542
Kaizenbf8b01d2017-10-12 14:26:51 +010025543<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01304">vdivq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01624">vlogq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025544<div class="fragment"><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;{</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <span class="comment">// We need two bits to store 2, thus we can only support formats from Q2.5 to Q7.0</span></div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_48_over_17 = vdupq_n_s8(0x5A &gt;&gt; (5 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_32_over_17 = vdupq_n_s8((0x3C &gt;&gt; (5 - fixed_point_position))); <span class="comment">// -1.8823</span></div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_one = vdupq_n_s8(1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_two = vdupq_n_s8(2 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value = vnegq_s8(vsubq_s8(vdupq_n_s8(8), vaddq_s8(vclzq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>), vdupq_n_s8(fixed_point_position))));</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> temp = vshlq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, shift_value);</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="comment">// Newton-Raphson division initial estimate X0 calculation</span></div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x = <a class="code" href="namespacearm__compute.xhtml#a1adda6690cbca8a996255e311e4762d4">vsubq_qs8</a>(const_48_over_17, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(temp, const_32_over_17, fixed_point_position));</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="comment">// Set initial guess to one if x &gt; 1</span></div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; uint8x16_t set_one = vcgtq_s8(x, const_one);</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; x = vbslq_s8(set_one, const_one, x);</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="comment">// Use three iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, vsubq_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, vsubq_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; x = <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, vsubq_s8(const_two, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(temp, x, fixed_point_position)), fixed_point_position);</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordflow">return</span> vshlq_s8(x, shift_value);</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025545<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010025546<div class="ttc" id="namespacearm__compute_xhtml_a031b17d4102856aa4d6bf7ebf83bf0ab"><div class="ttname"><a href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">arm_compute::vmulq_qs8</a></div><div class="ttdeci">qint8x16_t vmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00513">NEFixedPoint.inl:513</a></div></div>
25547<div class="ttc" id="namespacearm__compute_xhtml_a1adda6690cbca8a996255e311e4762d4"><div class="ttname"><a href="namespacearm__compute.xhtml#a1adda6690cbca8a996255e311e4762d4">arm_compute::vsubq_qs8</a></div><div class="ttdeci">qint8x16_t vsubq_qs8(qint8x16_t a, qint8x16_t b)</div><div class="ttdoc">8 bit fixed point vector subtraction (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00449">NEFixedPoint.inl:449</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025548</div><!-- fragment -->
25549</div>
25550</div>
25551<a class="anchor" id="a1d54a1ef0078902b2334d2fddba74ca6"></a>
25552<div class="memitem">
25553<div class="memproto">
25554<table class="mlabels">
25555 <tr>
25556 <td class="mlabels-left">
25557 <table class="memname">
25558 <tr>
25559 <td class="memname">void vst1_qs16 </td>
25560 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025561 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025562 <td class="paramname"><em>addr</em>, </td>
25563 </tr>
25564 <tr>
25565 <td class="paramkey"></td>
25566 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025567 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025568 <td class="paramname"><em>b</em>&#160;</td>
25569 </tr>
25570 <tr>
25571 <td></td>
25572 <td>)</td>
25573 <td></td><td></td>
25574 </tr>
25575 </table>
25576 </td>
25577 <td class="mlabels-right">
25578<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25579 </tr>
25580</table>
25581</div><div class="memdoc">
25582
25583<p>Store a single 16 bit fixed point vector to memory (4 elements) </p>
25584<dl class="params"><dt>Parameters</dt><dd>
25585 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025586 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address where the 16 bit fixed point vector should be stored </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025587 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>16 bit fixed point vector to store </td></tr>
25588 </table>
25589 </dd>
25590</dl>
25591
Kaizenbf8b01d2017-10-12 14:26:51 +010025592<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00203">203</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025593
Anthony Barbierf45d5a92018-01-24 16:23:15 +000025594<p>Referenced by <a class="el" href="_n_e_direct_convolution_detail_8h_source.xhtml#l00503">arm_compute::detail::store_results&lt; 3 &gt;()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025595<div class="fragment"><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; vst1_s16(addr, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025596</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010025597</div>
25598</div>
25599<a class="anchor" id="a509f3f9d910651d71d9f7dc3b5b3b92a"></a>
25600<div class="memitem">
25601<div class="memproto">
25602<table class="mlabels">
25603 <tr>
25604 <td class="mlabels-left">
25605 <table class="memname">
25606 <tr>
25607 <td class="memname">void vst1_qs8 </td>
25608 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025609 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025610 <td class="paramname"><em>addr</em>, </td>
25611 </tr>
25612 <tr>
25613 <td class="paramkey"></td>
25614 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025615 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025616 <td class="paramname"><em>b</em>&#160;</td>
25617 </tr>
25618 <tr>
25619 <td></td>
25620 <td>)</td>
25621 <td></td><td></td>
25622 </tr>
25623 </table>
25624 </td>
25625 <td class="mlabels-right">
25626<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25627 </tr>
25628</table>
25629</div><div class="memdoc">
25630
25631<p>Store a single 8 bit fixed point vector to memory (8 elements) </p>
25632<dl class="params"><dt>Parameters</dt><dd>
25633 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025634 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address where the 8 bit fixed point vector should be stored </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025635 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>8 bit fixed point vector to store </td></tr>
25636 </table>
25637 </dd>
25638</dl>
25639
Kaizenbf8b01d2017-10-12 14:26:51 +010025640<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00198">198</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025641<div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; vst1_s8(addr, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025642</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010025643</div>
25644</div>
25645<a class="anchor" id="a8bb5f297efd64b941f5022ea3cd7ee9a"></a>
25646<div class="memitem">
25647<div class="memproto">
25648<table class="mlabels">
25649 <tr>
25650 <td class="mlabels-left">
25651 <table class="memname">
25652 <tr>
25653 <td class="memname">void vst1q_qs16 </td>
25654 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025655 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025656 <td class="paramname"><em>addr</em>, </td>
25657 </tr>
25658 <tr>
25659 <td class="paramkey"></td>
25660 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025661 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025662 <td class="paramname"><em>b</em>&#160;</td>
25663 </tr>
25664 <tr>
25665 <td></td>
25666 <td>)</td>
25667 <td></td><td></td>
25668 </tr>
25669 </table>
25670 </td>
25671 <td class="mlabels-right">
25672<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25673 </tr>
25674</table>
25675</div><div class="memdoc">
25676
Kaizen8938bd32017-09-28 14:38:23 +010025677<p>Store a single 16 bit fixed point vector to memory (8 elements) </p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025678<dl class="params"><dt>Parameters</dt><dd>
25679 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025680 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address where the 16 bit fixed point vector should be stored </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025681 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>16 bit fixed point vector to store </td></tr>
25682 </table>
25683 </dd>
25684</dl>
25685
Kaizenbf8b01d2017-10-12 14:26:51 +010025686<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00213">213</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025687
Anthony Barbierf45d5a92018-01-24 16:23:15 +000025688<p>Referenced by <a class="el" href="_n_e_direct_convolution_detail_8h_source.xhtml#l00490">arm_compute::detail::store_results&lt; 1 &gt;()</a>, and <a class="el" href="_n_e_direct_convolution_detail_8h_source.xhtml#l00497">arm_compute::detail::store_results&lt; 2 &gt;()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025689<div class="fragment"><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;{</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; vst1q_s16(addr, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025690</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010025691</div>
25692</div>
25693<a class="anchor" id="acf4cb0bc89b25c5fac96935d040207f6"></a>
25694<div class="memitem">
25695<div class="memproto">
25696<table class="mlabels">
25697 <tr>
25698 <td class="mlabels-left">
25699 <table class="memname">
25700 <tr>
25701 <td class="memname">void vst1q_qs8 </td>
25702 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025703 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025704 <td class="paramname"><em>addr</em>, </td>
25705 </tr>
25706 <tr>
25707 <td class="paramkey"></td>
25708 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025709 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025710 <td class="paramname"><em>b</em>&#160;</td>
25711 </tr>
25712 <tr>
25713 <td></td>
25714 <td>)</td>
25715 <td></td><td></td>
25716 </tr>
25717 </table>
25718 </td>
25719 <td class="mlabels-right">
25720<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25721 </tr>
25722</table>
25723</div><div class="memdoc">
25724
25725<p>Store a single 8 bit fixed point vector to memory (16 elements) </p>
25726<dl class="params"><dt>Parameters</dt><dd>
25727 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025728 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address where the 8 bit fixed point vector should be stored </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025729 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>8 bit fixed point vector to store </td></tr>
25730 </table>
25731 </dd>
25732</dl>
25733
Kaizenbf8b01d2017-10-12 14:26:51 +010025734<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00208">208</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025735<div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; vst1q_s8(addr, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025736</div><!-- fragment -->
25737</div>
25738</div>
25739<a class="anchor" id="a22c6d123d670e84d939d5b887976328d"></a>
25740<div class="memitem">
25741<div class="memproto">
25742<table class="mlabels">
25743 <tr>
25744 <td class="mlabels-left">
25745 <table class="memname">
25746 <tr>
25747 <td class="memname">void vst2q_qs16 </td>
25748 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025749 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025750 <td class="paramname"><em>addr</em>, </td>
25751 </tr>
25752 <tr>
25753 <td class="paramkey"></td>
25754 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025755 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a3c4099e91913f28017e1f57b8e5cbf9f">qint16x8x2_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025756 <td class="paramname"><em>b</em>&#160;</td>
25757 </tr>
25758 <tr>
25759 <td></td>
25760 <td>)</td>
25761 <td></td><td></td>
25762 </tr>
25763 </table>
25764 </td>
25765 <td class="mlabels-right">
25766<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25767 </tr>
25768</table>
25769</div><div class="memdoc">
25770
25771<p>Store two 16 bit fixed point vector to memory (8x2 elements) </p>
25772<dl class="params"><dt>Parameters</dt><dd>
25773 <table class="params">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025774 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> address where the 16 bit fixed point vectors should be stored </td></tr>
Kaizen8938bd32017-09-28 14:38:23 +010025775 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>16 bit fixed point vectors to store </td></tr>
25776 </table>
25777 </dd>
25778</dl>
25779
Kaizenbf8b01d2017-10-12 14:26:51 +010025780<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00218">218</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025781<div class="fragment"><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;{</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; vst2q_s16(addr, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025782</div><!-- fragment -->
25783</div>
25784</div>
25785<a class="anchor" id="a420a19dca7258dbae20af6d92dc62926"></a>
25786<div class="memitem">
25787<div class="memproto">
25788<table class="mlabels">
25789 <tr>
25790 <td class="mlabels-left">
25791 <table class="memname">
25792 <tr>
25793 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vsub_qs16 </td>
25794 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025795 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025796 <td class="paramname"><em>a</em>, </td>
25797 </tr>
25798 <tr>
25799 <td class="paramkey"></td>
25800 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025801 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025802 <td class="paramname"><em>b</em>&#160;</td>
25803 </tr>
25804 <tr>
25805 <td></td>
25806 <td>)</td>
25807 <td></td><td></td>
25808 </tr>
25809 </table>
25810 </td>
25811 <td class="mlabels-right">
25812<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25813 </tr>
25814</table>
25815</div><div class="memdoc">
25816
25817<p>16 bit fixed point vector subtraction (4 elements) </p>
25818<dl class="params"><dt>Parameters</dt><dd>
25819 <table class="params">
25820 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
25821 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
25822 </table>
25823 </dd>
25824</dl>
25825<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector subtraction </dd></dl>
25826
Kaizenbf8b01d2017-10-12 14:26:51 +010025827<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00444">444</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025828<div class="fragment"><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;{</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">return</span> vsub_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
25829<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025830</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010025831</div>
25832</div>
25833<a class="anchor" id="a90c8ce2712bdb44fd58e3fa8b78bf6fb"></a>
25834<div class="memitem">
25835<div class="memproto">
25836<table class="mlabels">
25837 <tr>
25838 <td class="mlabels-left">
25839 <table class="memname">
25840 <tr>
25841 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vsub_qs8 </td>
25842 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025843 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025844 <td class="paramname"><em>a</em>, </td>
25845 </tr>
25846 <tr>
25847 <td class="paramkey"></td>
25848 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025849 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025850 <td class="paramname"><em>b</em>&#160;</td>
25851 </tr>
25852 <tr>
25853 <td></td>
25854 <td>)</td>
25855 <td></td><td></td>
25856 </tr>
25857 </table>
25858 </td>
25859 <td class="mlabels-right">
25860<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25861 </tr>
25862</table>
25863</div><div class="memdoc">
25864
25865<p>8 bit fixed point vector subtraction (8 elements) </p>
25866<dl class="params"><dt>Parameters</dt><dd>
25867 <table class="params">
25868 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
25869 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
25870 </table>
25871 </dd>
25872</dl>
25873<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector subtraction </dd></dl>
25874
Kaizenbf8b01d2017-10-12 14:26:51 +010025875<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00439">439</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025876<div class="fragment"><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;{</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> vsub_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
25877<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025878</div><!-- fragment -->
25879</div>
25880</div>
25881<a class="anchor" id="a43569be4a403f390486148701b424e8a"></a>
25882<div class="memitem">
25883<div class="memproto">
25884<table class="mlabels">
25885 <tr>
25886 <td class="mlabels-left">
25887 <table class="memname">
25888 <tr>
25889 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vsubq_qs16 </td>
25890 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025891 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025892 <td class="paramname"><em>a</em>, </td>
25893 </tr>
25894 <tr>
25895 <td class="paramkey"></td>
25896 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025897 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010025898 <td class="paramname"><em>b</em>&#160;</td>
25899 </tr>
25900 <tr>
25901 <td></td>
25902 <td>)</td>
25903 <td></td><td></td>
25904 </tr>
25905 </table>
25906 </td>
25907 <td class="mlabels-right">
25908<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25909 </tr>
25910</table>
25911</div><div class="memdoc">
25912
25913<p>16 bit fixed point vector subtraction (8 elements) </p>
25914<dl class="params"><dt>Parameters</dt><dd>
25915 <table class="params">
25916 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
25917 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
25918 </table>
25919 </dd>
25920</dl>
25921<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit fixed point vector subtraction </dd></dl>
25922
Kaizenbf8b01d2017-10-12 14:26:51 +010025923<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00454">454</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010025924
Kaizenbf8b01d2017-10-12 14:26:51 +010025925<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01210">vrecipq_qs16()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025926<div class="fragment"><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">return</span> vsubq_s16(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
25927<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010025928</div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010025929</div>
25930</div>
25931<a class="anchor" id="a1adda6690cbca8a996255e311e4762d4"></a>
25932<div class="memitem">
25933<div class="memproto">
25934<table class="mlabels">
25935 <tr>
25936 <td class="mlabels-left">
25937 <table class="memname">
25938 <tr>
25939 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vsubq_qs8 </td>
25940 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025941 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025942 <td class="paramname"><em>a</em>, </td>
25943 </tr>
25944 <tr>
25945 <td class="paramkey"></td>
25946 <td></td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025947 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025948 <td class="paramname"><em>b</em>&#160;</td>
25949 </tr>
25950 <tr>
25951 <td></td>
25952 <td>)</td>
25953 <td></td><td></td>
25954 </tr>
25955 </table>
25956 </td>
25957 <td class="mlabels-right">
25958<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25959 </tr>
25960</table>
25961</div><div class="memdoc">
25962
25963<p>8 bit fixed point vector subtraction (16 elements) </p>
25964<dl class="params"><dt>Parameters</dt><dd>
25965 <table class="params">
25966 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
25967 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
25968 </table>
25969 </dd>
25970</dl>
25971<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector subtraction </dd></dl>
25972
Kaizenbf8b01d2017-10-12 14:26:51 +010025973<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00449">449</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025974
Kaizenbf8b01d2017-10-12 14:26:51 +010025975<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01183">vrecipq_qs8()</a>.</p>
Jenkinsc3f34a42018-03-02 12:38:09 +000025976<div class="fragment"><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;{</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">return</span> vsubq_s8(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
25977<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00122">GEMM.cpp:122</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010025978</div><!-- fragment -->
25979</div>
25980</div>
25981<a class="anchor" id="a7845701adefdb1adafc98ca3c4918c2e"></a>
25982<div class="memitem">
25983<div class="memproto">
25984<table class="mlabels">
25985 <tr>
25986 <td class="mlabels-left">
25987 <table class="memname">
25988 <tr>
25989 <td class="memname">float32x4_t vtanhq_f32 </td>
25990 <td>(</td>
25991 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000025992 <td class="paramname"><em>val</em></td><td>)</td>
25993 <td></td>
25994 </tr>
25995 </table>
25996 </td>
25997 <td class="mlabels-right">
25998<span class="mlabels"><span class="mlabel">inline</span></span> </td>
25999 </tr>
26000</table>
26001</div><div class="memdoc">
26002
26003<p>Calculate hyperbolic tangent. </p>
26004<p>tanh(x) = (e^2x - 1)/(e^2x + 1)</p>
Anthony Barbier46d59272017-05-04 09:15:15 +010026005<dl class="section note"><dt>Note</dt><dd>We clamp x to [-5,5] to avoid overflowing issues.</dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000026006<dl class="params"><dt>Parameters</dt><dd>
26007 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010026008 <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Input vector value in F32 format.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000026009 </table>
26010 </dd>
26011</dl>
26012<dl class="section return"><dt>Returns</dt><dd>The calculated Hyperbolic Tangent. </dd></dl>
26013
Kaizen8938bd32017-09-28 14:38:23 +010026014<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00152">152</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000026015
Kaizen8938bd32017-09-28 14:38:23 +010026016<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00939">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>, <a class="el" href="_n_e_math_8inl_source.xhtml#l00113">vexpq_f32()</a>, and <a class="el" href="_n_e_math_8inl_source.xhtml#l00093">vinvq_f32()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026017<div class="fragment"><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> float32x4_t CONST_1 = vdupq_n_f32(1.f);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> float32x4_t CONST_2 = vdupq_n_f32(2.f);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> float32x4_t CONST_MIN_TANH = vdupq_n_f32(-10.f);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> float32x4_t CONST_MAX_TANH = vdupq_n_f32(10.f);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; float32x4_t x = vminq_f32(vmaxq_f32(val, CONST_MIN_TANH), CONST_MAX_TANH);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; float32x4_t exp2x = <a class="code" href="namespacearm__compute.xhtml#ade3ef16de304661943c900ac9a47d28f">vexpq_f32</a>(vmulq_f32(CONST_2, x));</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; float32x4_t num = vsubq_f32(exp2x, CONST_1);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; float32x4_t den = vaddq_f32(exp2x, CONST_1);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; float32x4_t <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a> = vmulq_f32(num, <a class="code" href="namespacearm__compute.xhtml#ac8f459d5899b79c00fb4042a5b3470fb">vinvq_f32</a>(den));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#a6854479935f66029852441b051e1a3e0">tanh</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_ade3ef16de304661943c900ac9a47d28f"><div class="ttname"><a href="namespacearm__compute.xhtml#ade3ef16de304661943c900ac9a47d28f">arm_compute::vexpq_f32</a></div><div class="ttdeci">float32x4_t vexpq_f32(float32x4_t x)</div><div class="ttdoc">Calculate exponential. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_math_8inl_source.xhtml#l00113">NEMath.inl:113</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010026018<div class="ttc" id="namespacearm__compute_xhtml_ac8f459d5899b79c00fb4042a5b3470fb"><div class="ttname"><a href="namespacearm__compute.xhtml#ac8f459d5899b79c00fb4042a5b3470fb">arm_compute::vinvq_f32</a></div><div class="ttdeci">float32x4_t vinvq_f32(float32x4_t x)</div><div class="ttdoc">Calculate reciprocal. </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_math_8inl_source.xhtml#l00093">NEMath.inl:93</a></div></div>
26019<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&lt; T &gt; tanh(fixed_point&lt; T &gt; 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>
Anthony Barbier871448e2017-03-24 14:54:29 +000026020</div><!-- fragment -->
26021</div>
26022</div>
Kaizen8938bd32017-09-28 14:38:23 +010026023<a class="anchor" id="ab6470f57e0d7659ea7823f13bb89724f"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000026024<div class="memitem">
26025<div class="memproto">
26026<table class="mlabels">
26027 <tr>
26028 <td class="mlabels-left">
26029 <table class="memname">
26030 <tr>
Kaizen8938bd32017-09-28 14:38:23 +010026031 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vtaylor_poly_qs16 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000026032 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026033 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026034 <td class="paramname"><em>a</em>, </td>
26035 </tr>
26036 <tr>
26037 <td class="paramkey"></td>
26038 <td></td>
26039 <td class="paramtype">int&#160;</td>
26040 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
26041 </tr>
26042 <tr>
26043 <td></td>
26044 <td>)</td>
26045 <td></td><td></td>
26046 </tr>
26047 </table>
26048 </td>
26049 <td class="mlabels-right">
26050<span class="mlabels"><span class="mlabel">inline</span></span> </td>
26051 </tr>
26052</table>
26053</div><div class="memdoc">
26054
Kaizen8938bd32017-09-28 14:38:23 +010026055<p>Perform a 4th degree polynomial approximation. </p>
26056<p>(4 elements)</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026057<dl class="params"><dt>Parameters</dt><dd>
26058 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +010026059 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026060 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
26061 </table>
26062 </dd>
26063</dl>
Kaizen8938bd32017-09-28 14:38:23 +010026064<dl class="section return"><dt>Returns</dt><dd>The result of the 16 bit taylor approximation. </dd></dl>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026065
Kaizenbf8b01d2017-10-12 14:26:51 +010026066<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01331">1331</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026067
Kaizenbf8b01d2017-10-12 14:26:51 +010026068<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00496">vmul_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026069<div class="fragment"><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;{</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> shift_value = vdup_n_s16(-(15 - fixed_point_position));</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> const_one = vdup_n_s16(1);</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = vrshl_s16(islog ? log_tab_qs16[0] : exp_tab_qs16[0], islog ? vadd_s16(shift_value, const_one) : shift_value);</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = vrshl_s16(islog ? log_tab_qs16[1] : exp_tab_qs16[1], shift_value);</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> C = vrshl_s16(islog ? log_tab_qs16[2] : exp_tab_qs16[2], shift_value);</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> D = vrshl_s16(islog ? log_tab_qs16[3] : exp_tab_qs16[3], shift_value);</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x1 = vadd_s16(<a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x2 = vadd_s16(<a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x1, fixed_point_position), B);</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> x3 = vadd_s16(<a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x2, fixed_point_position), A);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> res = <a class="code" href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">vmul_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x3, fixed_point_position);</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000026070<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010026071<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010026072<div class="ttc" id="namespacearm__compute_xhtml_ac1b67e3283a1cae4d57b7f64137f5f5c"><div class="ttname"><a href="namespacearm__compute.xhtml#ac1b67e3283a1cae4d57b7f64137f5f5c">arm_compute::vmul_qs16</a></div><div class="ttdeci">qint16x4_t vmul_qs16(qint16x4_t a, qint16x4_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector multiply (4 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00496">NEFixedPoint.inl:496</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010026073<div class="ttc" id="namespacearm__compute_xhtml_a82c56f0856f56d430393e6a00baee983"><div class="ttname"><a href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">arm_compute::qint16x4_t</a></div><div class="ttdeci">int16x4_t qint16x4_t</div><div class="ttdoc">16 bit fixed point vector with 4 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00041">NEFixedPoint.h:41</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026074</div><!-- fragment -->
26075</div>
26076</div>
26077<a class="anchor" id="a91b74be928419cd95068ccc9c6f1cd83"></a>
26078<div class="memitem">
26079<div class="memproto">
26080<table class="mlabels">
26081 <tr>
26082 <td class="mlabels-left">
26083 <table class="memname">
26084 <tr>
26085 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vtaylor_poly_qs8 </td>
26086 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026087 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026088 <td class="paramname"><em>a</em>, </td>
26089 </tr>
26090 <tr>
26091 <td class="paramkey"></td>
26092 <td></td>
26093 <td class="paramtype">int&#160;</td>
26094 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
26095 </tr>
26096 <tr>
26097 <td></td>
26098 <td>)</td>
26099 <td></td><td></td>
26100 </tr>
26101 </table>
26102 </td>
26103 <td class="mlabels-right">
26104<span class="mlabels"><span class="mlabel">inline</span></span> </td>
26105 </tr>
26106</table>
26107</div><div class="memdoc">
26108
26109<p>Perform a 4th degree polynomial approximation. </p>
26110<p>(8 elements)</p>
26111<dl class="params"><dt>Parameters</dt><dd>
26112 <table class="params">
26113 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
26114 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
26115 </table>
26116 </dd>
26117</dl>
26118<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit taylor approximation. </dd></dl>
26119
Kaizenbf8b01d2017-10-12 14:26:51 +010026120<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01315">1315</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026121
Kaizenbf8b01d2017-10-12 14:26:51 +010026122<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00479">vmul_qs8()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026123<div class="fragment"><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;{</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value = vdup_n_s8(-(7 - fixed_point_position));</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_one = vdup_n_s8(1);</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = vrshl_s8(islog ? log_tab_qs8[0] : exp_tab_qs8[0], islog ? vadd_s8(shift_value, const_one) : shift_value);</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = vrshl_s8(islog ? log_tab_qs8[1] : exp_tab_qs8[1], shift_value);</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> C = vrshl_s8(islog ? log_tab_qs8[2] : exp_tab_qs8[2], shift_value);</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> D = vrshl_s8(islog ? log_tab_qs8[3] : exp_tab_qs8[3], shift_value);</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x1 = vadd_s8(<a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x2 = vadd_s8(<a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x1, fixed_point_position), B);</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x3 = vadd_s8(<a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x2, fixed_point_position), A);</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> res = <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x3, fixed_point_position);</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000026124<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026125<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010026126<div class="ttc" id="namespacearm__compute_xhtml_afccf1305c480f2338af8925bba6b54cd"><div class="ttname"><a href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">arm_compute::vmul_qs8</a></div><div class="ttdeci">qint8x8_t vmul_qs8(qint8x8_t a, qint8x8_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00479">NEFixedPoint.inl:479</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026127<div class="ttc" id="namespacearm__compute_xhtml_a16a1bee14f1db073f75caa76dacf5078"><div class="ttname"><a href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">arm_compute::qint8x8_t</a></div><div class="ttdeci">int8x8_t qint8x8_t</div><div class="ttdoc">8 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00033">NEFixedPoint.h:33</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010026128</div><!-- fragment -->
26129</div>
26130</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026131<a class="anchor" id="a4fa76a98dce5ed1b655ff840f2ce6e57"></a>
26132<div class="memitem">
26133<div class="memproto">
26134<table class="mlabels">
26135 <tr>
26136 <td class="mlabels-left">
26137 <table class="memname">
26138 <tr>
26139 <td class="memname">float32x4_t vtaylor_polyq_f32 </td>
26140 <td>(</td>
26141 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000026142 <td class="paramname"><em>x</em>, </td>
26143 </tr>
26144 <tr>
26145 <td class="paramkey"></td>
26146 <td></td>
26147 <td class="paramtype">const std::array&lt; float32x4_t, 8 &gt; &amp;&#160;</td>
26148 <td class="paramname"><em>coeffs</em>&#160;</td>
26149 </tr>
26150 <tr>
26151 <td></td>
26152 <td>)</td>
26153 <td></td><td></td>
26154 </tr>
26155 </table>
26156 </td>
26157 <td class="mlabels-right">
26158<span class="mlabels"><span class="mlabel">inline</span></span> </td>
26159 </tr>
26160</table>
26161</div><div class="memdoc">
26162
26163<p>Perform a 7th degree polynomial approximation using Estrin's method. </p>
26164<dl class="params"><dt>Parameters</dt><dd>
26165 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010026166 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input vector value in F32 format. </td></tr>
26167 <tr><td class="paramdir">[in]</td><td class="paramname">coeffs</td><td>Polynomial coefficients table.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000026168 </table>
26169 </dd>
26170</dl>
26171<dl class="section return"><dt>Returns</dt><dd>The calculated approximation. </dd></dl>
26172
Kaizen8938bd32017-09-28 14:38:23 +010026173<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00101">101</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000026174
26175<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>.</p>
26176
Kaizen8938bd32017-09-28 14:38:23 +010026177<p>Referenced by <a class="el" href="_n_e_math_8inl_source.xhtml#l00113">vexpq_f32()</a>, and <a class="el" href="_n_e_math_8inl_source.xhtml#l00134">vlogq_f32()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026178<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; float32x4_t <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = vmlaq_f32(coeffs[0], coeffs[4], x);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; float32x4_t <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = vmlaq_f32(coeffs[2], coeffs[6], x);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; float32x4_t C = vmlaq_f32(coeffs[1], coeffs[5], x);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; float32x4_t D = vmlaq_f32(coeffs[3], coeffs[7], x);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; float32x4_t x2 = vmulq_f32(x, x);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; float32x4_t x4 = vmulq_f32(x2, x2);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; float32x4_t res = vmlaq_f32(vmlaq_f32(A, B, x2), vmlaq_f32(C, D, x2), x4);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000026179<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
26180</div><!-- fragment -->
26181</div>
26182</div>
Kaizen8938bd32017-09-28 14:38:23 +010026183<a class="anchor" id="ac26478d3b59cae5c3efa4bf3819002fa"></a>
26184<div class="memitem">
26185<div class="memproto">
26186<table class="mlabels">
26187 <tr>
26188 <td class="mlabels-left">
26189 <table class="memname">
26190 <tr>
26191 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vtaylor_polyq_qs16 </td>
26192 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026193 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +010026194 <td class="paramname"><em>a</em>, </td>
26195 </tr>
26196 <tr>
26197 <td class="paramkey"></td>
26198 <td></td>
26199 <td class="paramtype">int&#160;</td>
26200 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
26201 </tr>
26202 <tr>
26203 <td></td>
26204 <td>)</td>
26205 <td></td><td></td>
26206 </tr>
26207 </table>
26208 </td>
26209 <td class="mlabels-right">
26210<span class="mlabels"><span class="mlabel">inline</span></span> </td>
26211 </tr>
26212</table>
26213</div><div class="memdoc">
26214
26215<p>Perform a 4th degree polynomial approximation. </p>
26216<p>(8 elements)</p>
26217<dl class="params"><dt>Parameters</dt><dd>
26218 <table class="params">
26219 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point input vector </td></tr>
26220 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
26221 </table>
26222 </dd>
26223</dl>
26224<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit taylor approximation. </dd></dl>
26225
Kaizenbf8b01d2017-10-12 14:26:51 +010026226<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01395">1395</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Kaizen8938bd32017-09-28 14:38:23 +010026227
Kaizenbf8b01d2017-10-12 14:26:51 +010026228<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00533">vmulq_qs16()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026229<div class="fragment"><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;{</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> shift_value = vdupq_n_s16(-(15 - fixed_point_position));</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> const_one = vdupq_n_s16(1);</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = vrshlq_s16(islog ? log_tabq_qs16[0] : exp_tabq_qs16[0], islog ? vaddq_s16(shift_value, const_one) : shift_value);</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = vrshlq_s16(islog ? log_tabq_qs16[1] : exp_tabq_qs16[1], shift_value);</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> C = vrshlq_s16(islog ? log_tabq_qs16[2] : exp_tabq_qs16[2], shift_value);</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> D = vrshlq_s16(islog ? log_tabq_qs16[3] : exp_tabq_qs16[3], shift_value);</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x1 = vaddq_s16(<a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x2 = vaddq_s16(<a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x1, fixed_point_position), B);</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> x3 = vaddq_s16(<a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x2, fixed_point_position), A);</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res = <a class="code" href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">vmulq_qs16</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x3, fixed_point_position);</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000026230<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010026231<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
26232<div class="ttc" id="namespacearm__compute_xhtml_a4e15143176bfacdde8b06f4bb0b67427"><div class="ttname"><a href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">arm_compute::qint16x8_t</a></div><div class="ttdeci">int16x8_t qint16x8_t</div><div class="ttdoc">16 bit fixed point vector with 8 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00045">NEFixedPoint.h:45</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010026233<div class="ttc" id="namespacearm__compute_xhtml_a74ea79cda0ff6a819b2e5176fe0fc622"><div class="ttname"><a href="namespacearm__compute.xhtml#a74ea79cda0ff6a819b2e5176fe0fc622">arm_compute::vmulq_qs16</a></div><div class="ttdeci">qint16x8_t vmulq_qs16(qint16x8_t a, qint16x8_t b, int fixed_point_position)</div><div class="ttdoc">16 bit fixed point vector multiply (8 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00533">NEFixedPoint.inl:533</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +010026234</div><!-- fragment -->
26235</div>
26236</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026237<a class="anchor" id="a9b9a80aab8862e344ef91591a0e6e199"></a>
26238<div class="memitem">
26239<div class="memproto">
26240<table class="mlabels">
26241 <tr>
26242 <td class="mlabels-left">
26243 <table class="memname">
26244 <tr>
26245 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vtaylor_polyq_qs8 </td>
26246 <td>(</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026247 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026248 <td class="paramname"><em>a</em>, </td>
26249 </tr>
26250 <tr>
26251 <td class="paramkey"></td>
26252 <td></td>
26253 <td class="paramtype">int&#160;</td>
26254 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
26255 </tr>
26256 <tr>
26257 <td></td>
26258 <td>)</td>
26259 <td></td><td></td>
26260 </tr>
26261 </table>
26262 </td>
26263 <td class="mlabels-right">
26264<span class="mlabels"><span class="mlabel">inline</span></span> </td>
26265 </tr>
26266</table>
26267</div><div class="memdoc">
26268
26269<p>Perform a 4th degree polynomial approximation. </p>
26270<p>(16 elements)</p>
26271<dl class="params"><dt>Parameters</dt><dd>
26272 <table class="params">
26273 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
26274 <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>Fixed point position that expresses the number of bits for the fractional part of the number</td></tr>
26275 </table>
26276 </dd>
26277</dl>
26278<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit taylor approximation. </dd></dl>
26279
Kaizenbf8b01d2017-10-12 14:26:51 +010026280<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01379">1379</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026281
Kaizenbf8b01d2017-10-12 14:26:51 +010026282<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00513">vmulq_qs8()</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026283<div class="fragment"><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;{</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value = vdupq_n_s8(-(7 - fixed_point_position));</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_one = vdupq_n_s8(1);</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a> = vrshlq_s8(islog ? log_tabq_qs8[0] : exp_tabq_qs8[0], islog ? vaddq_s8(shift_value, const_one) : shift_value);</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a> = vrshlq_s8(islog ? log_tabq_qs8[1] : exp_tabq_qs8[1], shift_value);</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> C = vrshlq_s8(islog ? log_tabq_qs8[2] : exp_tabq_qs8[2], shift_value);</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> D = vrshlq_s8(islog ? log_tabq_qs8[3] : exp_tabq_qs8[3], shift_value);</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x1 = vaddq_s8(<a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, D, fixed_point_position), C);</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x2 = vaddq_s8(<a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x1, fixed_point_position), B);</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x3 = vaddq_s8(<a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x2, fixed_point_position), A);</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> res = <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, x3, fixed_point_position);</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">arm_compute::Channel::A</a></div><div class="ttdoc">Alpha channel. </div></div>
Jenkinsc3f34a42018-03-02 12:38:09 +000026284<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026285<div class="ttc" id="namespacearm__compute_xhtml_a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"><div class="ttname"><a href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::Channel::B</a></div><div class="ttdoc">Blue channel. </div></div>
26286<div class="ttc" id="namespacearm__compute_xhtml_a5b99ed49abd6b7bf13dafdd17bcef855"><div class="ttname"><a href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">arm_compute::qint8x16_t</a></div><div class="ttdeci">int8x16_t qint8x16_t</div><div class="ttdoc">8 bit fixed point vector with 16 elements </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8h_source.xhtml#l00037">NEFixedPoint.h:37</a></div></div>
Kaizenbf8b01d2017-10-12 14:26:51 +010026287<div class="ttc" id="namespacearm__compute_xhtml_a031b17d4102856aa4d6bf7ebf83bf0ab"><div class="ttname"><a href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">arm_compute::vmulq_qs8</a></div><div class="ttdeci">qint8x16_t vmulq_qs8(qint8x16_t a, qint8x16_t b, int fixed_point_position)</div><div class="ttdoc">8 bit fixed point vector multiply (16 elements) </div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00513">NEFixedPoint.inl:513</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010026288</div><!-- fragment -->
26289</div>
26290</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000026291<h2 class="groupheader">Variable Documentation</h2>
26292<a class="anchor" id="a3fed059965fe44cbe7ed4091d6b63acf"></a>
26293<div class="memitem">
26294<div class="memproto">
26295 <table class="memname">
26296 <tr>
26297 <td class="memname">constexpr uint8_t CONSTANT_BORDER_VALUE = 199</td>
26298 </tr>
26299 </table>
26300</div><div class="memdoc">
26301
26302<p>Constant value of the border pixels when using <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92" title="Pixels outside the image are assumed to have a constant value. ">BorderMode::CONSTANT</a>. </p>
26303
Anthony Barbier06ea0482018-02-22 15:45:35 +000026304<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00101">101</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000026305
26306</div>
26307</div>
26308<a class="anchor" id="a869945609357fa552d94eb16f7aad4e9"></a>
26309<div class="memitem">
26310<div class="memproto">
26311 <table class="memname">
26312 <tr>
26313 <td class="memname">const std::array&lt;float32x4_t, 8&gt; exp_tab</td>
26314 </tr>
26315 </table>
26316</div><div class="memdoc">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026317<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> {</div><div class="line"> vdupq_n_f32(1.f),</div><div class="line"> vdupq_n_f32(0.0416598916054f),</div><div class="line"> vdupq_n_f32(0.500000596046f),</div><div class="line"> vdupq_n_f32(0.0014122662833f),</div><div class="line"> vdupq_n_f32(1.00000011921f),</div><div class="line"> vdupq_n_f32(0.00833693705499f),</div><div class="line"> vdupq_n_f32(0.166665703058f),</div><div class="line"> vdupq_n_f32(0.000195780929062f),</div><div class="line"> }</div><div class="line">}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010026318<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00028">28</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
26319
Anthony Barbier871448e2017-03-24 14:54:29 +000026320</div>
26321</div>
26322<a class="anchor" id="a48fb9cf404e8f7043235bf14105c9793"></a>
26323<div class="memitem">
26324<div class="memproto">
26325 <table class="memname">
26326 <tr>
26327 <td class="memname">const std::array&lt;float32x4_t, 8&gt; log_tab</td>
26328 </tr>
26329 </table>
26330</div><div class="memdoc">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026331<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> {</div><div class="line"> vdupq_n_f32(-2.29561495781f),</div><div class="line"> vdupq_n_f32(-2.47071170807f),</div><div class="line"> vdupq_n_f32(-5.68692588806f),</div><div class="line"> vdupq_n_f32(-0.165253549814f),</div><div class="line"> vdupq_n_f32(5.17591238022f),</div><div class="line"> vdupq_n_f32(0.844007015228f),</div><div class="line"> vdupq_n_f32(4.58445882797f),</div><div class="line"> vdupq_n_f32(0.0141278216615f),</div><div class="line"> }</div><div class="line">}</div></div><!-- fragment -->
Anthony Barbierdbdab852017-06-23 15:42:00 +010026332<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00043">43</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
26333
Anthony Barbier871448e2017-03-24 14:54:29 +000026334</div>
26335</div>
26336<a class="anchor" id="a769d636d7a3c7c84579a5f477a18bc9d"></a>
26337<div class="memitem">
26338<div class="memproto">
26339 <table class="memname">
26340 <tr>
26341 <td class="memname">constexpr size_t MAX_DIMS = 6</td>
26342 </tr>
26343 </table>
26344</div><div class="memdoc">
26345
26346<p>Definition at line <a class="el" href="_dimensions_8h_source.xhtml#l00037">37</a> of file <a class="el" href="_dimensions_8h_source.xhtml">Dimensions.h</a>.</p>
26347
26348</div>
26349</div>
26350<a class="anchor" id="af9876aedd664cac0ddeacddb40cb71cd"></a>
26351<div class="memitem">
26352<div class="memproto">
26353 <table class="memname">
26354 <tr>
26355 <td class="memname">constexpr float SCALE_PYRAMID_HALF = 0.5f</td>
26356 </tr>
26357 </table>
26358</div><div class="memdoc">
26359
Anthony Barbier06ea0482018-02-22 15:45:35 +000026360<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00104">104</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026361
26362<p>Referenced by <a class="el" href="_gaussian_pyramid_8cpp_source.xhtml#l00074">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_gaussian_pyramid_half_8cpp_source.xhtml#l00041">arm_compute::test::validation::reference::gaussian_pyramid_half()</a>, and <a class="el" href="_gaussian_pyramid_half_fixture_8h_source.xhtml#l00049">GaussianPyramidHalfValidationFixture&lt; TensorType, AccessorType, FunctionType, T, PyramidType &gt;::setup()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000026363
26364</div>
26365</div>
26366<a class="anchor" id="a2ebcd5423d5fba468e7debd2e1aabe91"></a>
26367<div class="memitem">
26368<div class="memproto">
26369 <table class="memname">
26370 <tr>
26371 <td class="memname">constexpr float SCALE_PYRAMID_ORB = 8.408964152537146130583778358414e-01</td>
26372 </tr>
26373 </table>
26374</div><div class="memdoc">
26375
Anthony Barbier06ea0482018-02-22 15:45:35 +000026376<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00107">107</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000026377
26378</div>
26379</div>
26380</div><!-- contents -->
26381</div><!-- doc-content -->
26382<!-- start footer part -->
26383<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
26384 <ul>
26385 <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li>
Jenkinsc3f34a42018-03-02 12:38:09 +000026386 <li class="footer">Generated on Fri Mar 2 2018 12:37:57 for Compute Library by
Anthony Barbier871448e2017-03-24 14:54:29 +000026387 <a href="http://www.doxygen.org/index.html">
Anthony Barbier8140e1e2017-12-14 23:48:46 +000026388 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
Anthony Barbier871448e2017-03-24 14:54:29 +000026389 </ul>
26390</div>
26391</body>
26392</html>