blob: d5fb38dc57eb14a9b3404becdb5549df008d3412 [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"/>
7<meta name="generator" content="Doxygen 1.8.11"/>
8<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>
15<script type="text/javascript" src="navtreedata.js"></script>
16<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"/>
22<script type="text/javascript" src="search/searchdata.js"></script>
23<script type="text/javascript" src="search/search.js"></script>
24<script type="text/javascript">
25 $(document).ready(function() { init_search(); });
26</script>
27<script type="text/x-mathjax-config">
28 MathJax.Hub.Config({
29 extensions: ["tex2jax.js"],
30 jax: ["input/TeX","output/HTML-CSS"],
31});
32</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
33<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
43 &#160;<span id="projectnumber">v17.06</span>
Anthony Barbier871448e2017-03-24 14:54:29 +000044 </div>
45 </td>
46 </tr>
47 </tbody>
48</table>
49</div>
50<!-- end header part -->
51<!-- Generated by Doxygen 1.8.11 -->
52<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)">
106</div>
107
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">
127<table class="memberdecls">
128<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
129Namespaces</h2></td></tr>
130<tr class="memitem:namespacearm__compute_1_1cpp14"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1cpp14.xhtml">cpp14</a></td></tr>
131<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100132<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>
133<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
134<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>
135<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
136<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>
137<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
138<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>
139<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000140</table><table class="memberdecls">
141<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
142Data Structures</h2></td></tr>
143<tr class="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>
144<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>
145<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
146<tr class="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>
147<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>
148<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
149<tr class="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>
150<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>
151<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
152<tr class="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>
153<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>
154<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
155<tr class="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>
156<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>
157<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
158<tr class="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>
159<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>
160<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
161<tr class="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>
162<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>
163<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<tr class="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>
165<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>
166<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
167<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>
168<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>
169<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
170<tr class="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>
171<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>
172<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
173<tr class="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>
174<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>
175<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
176<tr class="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>
177<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>
178<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
179<tr class="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>
180<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>
181<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
182<tr class="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>
183<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>
184<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
185<tr class="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>
186<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>
187<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
188<tr class="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>
189<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>
190<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
191<tr class="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>
192<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>
193<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
194<tr class="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>
195<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>
196<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
197<tr class="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>
198<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>
199<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
200<tr class="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>
201<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>
202<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
203<tr class="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>
204<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>
205<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
206<tr class="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>
207<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>
208<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
209<tr class="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>
210<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>
211<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
212<tr class="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>
213<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>
214<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100215<tr class="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>
216<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>
217<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
218<tr class="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>
219<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>
220<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000221<tr class="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>
222<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>
223<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
224<tr class="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>
225<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>
226<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
227<tr class="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>
228<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>
229<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
230<tr class="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>
231<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>
232<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
233<tr class="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>
234<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>
235<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
236<tr class="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>
237<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>
238<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
239<tr class="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>
240<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>
241<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
242<tr class="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>
243<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>
244<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
245<tr class="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>
246<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>
247<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
248<tr class="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>
249<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>
250<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
251<tr class="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>
252<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>
253<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
254<tr class="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>
255<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>
256<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
257<tr class="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>
258<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>
259<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
260<tr class="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>
261<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>
262<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
263<tr class="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>
264<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>
265<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
266<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>
267<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>
268<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
269<tr class="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>
270<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>
271<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
272<tr class="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>
273<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>
274<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
275<tr class="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>
276<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>
277<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
278<tr class="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>
279<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>
280<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
281<tr class="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>
282<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>
283<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
284<tr class="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>
285<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>
286<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100287<tr class="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>
288<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>
289<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000290<tr class="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_weights_reshape_kernel.xhtml">CLConvolutionLayerWeightsReshapeKernel</a></td></tr>
291<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the weights reshape kernel used by convolution and fully connected layers. <a href="classarm__compute_1_1_c_l_convolution_layer_weights_reshape_kernel.xhtml#details">More...</a><br /></td></tr>
292<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
293<tr class="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>
294<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>
295<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
296<tr class="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>
297<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>
298<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
299<tr class="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>
300<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>
301<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
302<tr class="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>
303<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>
304<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100305<tr class="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.xhtml">CLDepthConcatenate</a></td></tr>
306<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.xhtml#details">More...</a><br /></td></tr>
307<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
308<tr class="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_kernel.xhtml">CLDepthConcatenateKernel</a></td></tr>
309<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_kernel.xhtml#details">More...</a><br /></td></tr>
310<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000311<tr class="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.xhtml">CLDepthConvert</a></td></tr>
312<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_kernel.xhtml">CLDepthConvertKernel</a>. <a href="classarm__compute_1_1_c_l_depth_convert.xhtml#details">More...</a><br /></td></tr>
313<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
314<tr class="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_kernel.xhtml">CLDepthConvertKernel</a></td></tr>
315<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_kernel.xhtml#details">More...</a><br /></td></tr>
316<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
317<tr class="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>
318<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>
319<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
320<tr class="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>
321<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>
322<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
323<tr class="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>
324<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>
325<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
326<tr class="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>
327<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>
328<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
329<tr class="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>
330<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>
331<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
332<tr class="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>
333<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>
334<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
335<tr class="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>
336<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>
337<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
338<tr class="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>
339<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>
340<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
341<tr class="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>
342<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>
343<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
344<tr class="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>
345<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>
346<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
347<tr class="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>
348<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>
349<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
350<tr class="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>
351<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>
352<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
353<tr class="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>
354<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>
355<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
356<tr class="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>
357<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>
358<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
359<tr class="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>
360<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>
361<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100362<tr class="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>
363<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>
364<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000365<tr class="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>
366<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>
367<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
368<tr class="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>
369<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>
370<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
371<tr class="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>
372<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>
373<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
374<tr class="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>
375<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>
376<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
377<tr class="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>
378<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>
379<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
380<tr class="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>
381<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>
382<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
383<tr class="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>
384<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>
385<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
386<tr class="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>
387<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>
388<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
389<tr class="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>
390<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>
391<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
392<tr class="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>
393<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>
394<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
395<tr class="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>
396<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>
397<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +0100398<tr class="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>
399<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>
400<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000401<tr class="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>
402<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>
403<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
404<tr class="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.xhtml">CLGEMMLowp</a></td></tr>
405<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute GEMMLowp on OpenCL. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp.xhtml#details">More...</a><br /></td></tr>
406<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
407<tr class="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>
408<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel to compute low precision matrix multiplication kernel. <a href="classarm__compute_1_1_c_l_g_e_m_m_lowp_matrix_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
409<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
410<tr class="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>
411<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>
412<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
413<tr class="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>
414<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>
415<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
416<tr class="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>
417<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL 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_c_l_g_e_m_m_matrix_multiply_kernel.xhtml#details">More...</a><br /></td></tr>
418<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
419<tr class="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>
420<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenCL kernel which transposes the elements of a matrix in chunks of 1x4 if the input data type is F32 or in chunks of 1x8 if the input data type is F16. <a href="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w_kernel.xhtml#details">More...</a><br /></td></tr>
421<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
422<tr class="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>
423<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>
424<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
425<tr class="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>
426<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>
427<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
428<tr class="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>
429<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>
430<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
431<tr class="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>
432<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>
433<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
434<tr class="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>
435<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>
436<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
437<tr class="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>
438<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>
439<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100440<tr class="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>
441<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>
442<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
443<tr class="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>
444<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>
445<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
446<tr class="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>
447<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>
448<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
449<tr class="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>
450<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>
451<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
452<tr class="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>
453<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>
454<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
455<tr class="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>
456<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>
457<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
458<tr class="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>
459<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>
460<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
461<tr class="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>
462<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>
463<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000464<tr class="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>
465<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>
466<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
467<tr class="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>
468<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>
469<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
470<tr class="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>
471<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>
472<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
473<tr class="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>
474<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>
475<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
476<tr class="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>
477<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>
478<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
479<tr class="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>
480<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>
481<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
482<tr class="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>
483<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>
484<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
485<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>
486<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>
487<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
488<tr class="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>
489<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>
490<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
491<tr class="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>
492<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>
493<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
494<tr class="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>
495<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>
496<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
497<tr class="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>
498<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>
499<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100500<tr class="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>
501<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>
502<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
503<tr class="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_weights_reshape_kernel.xhtml">CLLocallyConnectedLayerWeightsReshapeKernel</a></td></tr>
504<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the weights reshape kernel used by locally connected layers. <a href="classarm__compute_1_1_c_l_locally_connected_layer_weights_reshape_kernel.xhtml#details">More...</a><br /></td></tr>
505<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
506<tr class="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>
507<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>
508<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000509<tr class="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>
510<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>
511<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
512<tr class="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>
513<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>
514<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
515<tr class="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>
516<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_c_l_logits1_d_shift_exp_sum_kernel.xhtml#details">More...</a><br /></td></tr>
517<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
518<tr class="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>
519<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>
520<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
521<tr class="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>
522<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>
523<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
524<tr class="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>
525<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>
526<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
527<tr class="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>
528<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>
529<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
530<tr class="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>
531<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>
532<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
533<tr class="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>
534<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>
535<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
536<tr class="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>
537<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>
538<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
539<tr class="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>
540<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>
541<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
542<tr class="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>
543<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>
544<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
545<tr class="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>
546<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>
547<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
548<tr class="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>
549<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>
550<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100551<tr class="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>
552<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>
553<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000554<tr class="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>
555<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>
556<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
557<tr class="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>
558<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>
559<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
560<tr class="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>
561<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>
562<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
563<tr class="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>
564<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>
565<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
566<tr class="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>
567<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>
568<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
569<tr class="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>
570<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a normalization layer. <a href="classarm__compute_1_1_c_l_normalization_layer.xhtml#details">More...</a><br /></td></tr>
571<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
572<tr class="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>
573<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>
574<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
575<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>
576<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>
577<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
578<tr class="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>
579<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>
580<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
581<tr class="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>
582<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>
583<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
584<tr class="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>
585<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>
586<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
587<tr class="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>
588<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>
589<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
590<tr class="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>
591<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>
592<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
593<tr class="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>
594<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>
595<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
596<tr class="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>
597<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>
598<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
599<tr class="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>
600<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>
601<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
602<tr class="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>
603<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>
604<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
605<tr class="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>
606<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>
607<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
608<tr class="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>
609<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_scale_kernel.xhtml#details">More...</a><br /></td></tr>
610<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
611<tr class="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>
612<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>
613<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
614<tr class="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>
615<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>
616<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
617<tr class="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>
618<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>
619<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
620<tr class="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>
621<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>
622<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
623<tr class="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>
624<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>
625<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
626<tr class="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>
627<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>
628<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
629<tr class="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>
630<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>
631<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
632<tr class="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>
633<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>
634<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
635<tr class="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>
636<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>
637<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
638<tr class="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>
639<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>
640<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
641<tr class="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>
642<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>
643<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
644<tr class="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>
645<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>
646<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
647<tr class="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>
648<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>
649<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
650<tr class="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>
651<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>
652<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100653<tr class="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>
654<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>
655<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000656<tr class="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>
657<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>
658<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
659<tr class="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>
660<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>
661<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
662<tr class="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>
663<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>
664<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
665<tr class="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>
666<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>
667<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
668<tr class="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>
669<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>
670<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
671<tr class="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>
672<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>
673<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
674<tr class="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>
675<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>
676<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
677<tr class="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>
678<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>
679<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
680<tr class="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>
681<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>
682<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
683<tr class="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>
684<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>
685<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
686<tr class="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>
687<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>
688<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
689<tr class="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>
690<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>
691<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100692<tr class="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>
693<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000694<tr class="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>
695<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>
696<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
697<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>
698<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>
699<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
700<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>
701<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>
702<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
703<tr class="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>
704<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>
705<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100706<tr class="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>
707<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>
708<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +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_p_p_scheduler.xhtml">CPPScheduler</a></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100710<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>
Anthony Barbier871448e2017-03-24 14:54:29 +0000711<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_p_p_sort_euclidean_distance_kernel.xhtml">CPPSortEuclideanDistanceKernel</a></td></tr>
713<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>
714<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
715<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>
716<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>
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_dimensions.xhtml">Dimensions</a></td></tr>
719<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>
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_distribution1_d.xhtml">Distribution1D</a></td></tr>
722<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>
723<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100724<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>
725<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
726<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>
727<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>
728<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000729<tr class="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>
730<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>
731<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
732<tr class="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>
733<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>
734<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
735<tr class="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>
736<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>
737<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
738<tr class="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>
739<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>
740<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
741<tr class="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>
742<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>
743<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
744<tr class="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>
745<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>
746<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100747<tr class="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>
748<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>
749<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000750<tr class="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>
751<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>
752<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
753<tr class="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>
754<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>
755<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100756<tr class="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>
757<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>
758<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000759<tr class="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>
760<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>
761<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
762<tr class="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>
763<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>
764<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
765<tr class="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>
766<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>
767<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
768<tr class="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>
769<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>
770<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
771<tr class="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>
772<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>
773<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
774<tr class="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>
775<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>
776<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
777<tr class="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>
778<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>
779<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
780<tr class="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>
781<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>
782<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
783<tr class="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>
784<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>
785<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
786<tr class="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>
787<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>
788<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
789<tr class="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>
790<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>
791<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
792<tr class="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>
793<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>
794<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
795<tr class="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>
796<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>
797<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
798<tr class="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>
799<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>
800<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
801<tr class="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>
802<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>
803<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
804<tr class="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>
805<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>
806<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
807<tr class="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>
808<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>
809<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
810<tr class="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>
811<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>
812<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
813<tr class="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>
814<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>
815<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
816<tr class="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>
817<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>
818<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +0100819<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>
820<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>
821<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000822<tr class="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>
823<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>
824<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100825<tr class="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>
826<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>
827<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000828<tr class="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>
829<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>
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_i_tensor_allocator.xhtml">ITensorAllocator</a></td></tr>
832<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>
833<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100834<tr class="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>
835<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>
836<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000837<tr class="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>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100838<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>
Anthony Barbier871448e2017-03-24 14:54:29 +0000839<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_kernel.xhtml">Kernel</a></td></tr>
841<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>
842<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
843<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>
844<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>
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_lut.xhtml">Lut</a></td></tr>
847<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>
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_lut_allocator.xhtml">LutAllocator</a></td></tr>
850<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>
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_multi_h_o_g.xhtml">MultiHOG</a></td></tr>
853<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>
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_multi_image.xhtml">MultiImage</a></td></tr>
856<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>
857<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
858<tr class="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>
859<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>
860<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
861<tr class="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>
862<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>
863<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
864<tr class="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>
865<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>
866<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
867<tr class="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>
868<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>
869<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
870<tr class="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>
871<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>
872<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
873<tr class="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>
874<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>
875<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
876<tr class="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>
877<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>
878<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
879<tr class="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>
880<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>
881<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
882<tr class="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_f_p16_kernel.xhtml">NEAccumulateWeightedFP16Kernel</a></td></tr>
883<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the accumulate weighted kernel using F16. <a href="classarm__compute_1_1_n_e_accumulate_weighted_f_p16_kernel.xhtml#details">More...</a><br /></td></tr>
884<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
885<tr class="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>
886<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>
887<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
888<tr class="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>
889<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>
890<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
891<tr class="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>
892<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>
893<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
894<tr class="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>
895<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>
896<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
897<tr class="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>
898<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>
899<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
900<tr class="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>
901<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>
902<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
903<tr class="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>
904<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>
905<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100906<tr class="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>
907<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>
908<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
909<tr class="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>
910<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>
911<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +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_n_e_bitwise_and.xhtml">NEBitwiseAnd</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_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>
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_n_e_bitwise_and_kernel.xhtml">NEBitwiseAndKernel</a></td></tr>
916<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>
917<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
918<tr class="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>
919<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>
920<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
921<tr class="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>
922<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>
923<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
924<tr class="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>
925<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>
926<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
927<tr class="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>
928<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>
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_n_e_bitwise_xor.xhtml">NEBitwiseXor</a></td></tr>
931<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>
932<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
933<tr class="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>
934<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>
935<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
936<tr class="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>
937<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>
938<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
939<tr class="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_f_p16_kernel.xhtml">NEBox3x3FP16Kernel</a></td></tr>
940<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform a Box 3x3 filter using F16 simd. <a href="classarm__compute_1_1_n_e_box3x3_f_p16_kernel.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_n_e_box3x3_kernel.xhtml">NEBox3x3Kernel</a></td></tr>
943<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>
944<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
945<tr class="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>
946<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>
947<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
948<tr class="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>
949<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>
950<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
951<tr class="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>
952<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>
953<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
954<tr class="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>
955<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>
956<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
957<tr class="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>
958<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>
959<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
960<tr class="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>
961<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>
962<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
963<tr class="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>
964<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>
965<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
966<tr class="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>
967<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>
968<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
969<tr class="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>
970<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>
971<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +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_n_e_convolution_kernel.xhtml">NEConvolutionKernel</a></td></tr>
973<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>
974<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
975<tr class="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>
976<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>
977<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100978<tr class="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>
979<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>
Anthony Barbier871448e2017-03-24 14:54:29 +0000980<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
981<tr class="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>
982<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>
983<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
984<tr class="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>
985<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>
986<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +0100987<tr class="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>
988<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>
989<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +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_n_e_cumulative_distribution_kernel.xhtml">NECumulativeDistributionKernel</a></td></tr>
991<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>
992<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100993<tr class="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.xhtml">NEDepthConcatenate</a></td></tr>
994<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.xhtml#details">More...</a><br /></td></tr>
995<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
996<tr class="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_kernel.xhtml">NEDepthConcatenateKernel</a></td></tr>
997<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_kernel.xhtml#details">More...</a><br /></td></tr>
998<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +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_n_e_depth_convert.xhtml">NEDepthConvert</a></td></tr>
1000<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_kernel.xhtml">NEDepthConvertKernel</a>. <a href="classarm__compute_1_1_n_e_depth_convert.xhtml#details">More...</a><br /></td></tr>
1001<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1002<tr class="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_kernel.xhtml">NEDepthConvertKernel</a></td></tr>
1003<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Depth conversion kernel. <a href="classarm__compute_1_1_n_e_depth_convert_kernel.xhtml#details">More...</a><br /></td></tr>
1004<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1005<tr class="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>
1006<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>
1007<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1008<tr class="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>
1009<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>
1010<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1011<tr class="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>
1012<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>
1013<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1014<tr class="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>
1015<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>
1016<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001017<tr class="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>
1018<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>
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_n_e_direct_convolution_layer_bias_accumulate_kernel.xhtml">NEDirectConvolutionLayerBiasAccumulateKernel</a></td></tr>
1021<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to accumulate the biases to each element of the input tensor. <a href="classarm__compute_1_1_n_e_direct_convolution_layer_bias_accumulate_kernel.xhtml#details">More...</a><br /></td></tr>
1022<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1023<tr class="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>
1024<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>
1025<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +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_n_e_edge_non_max_suppression_kernel.xhtml">NEEdgeNonMaxSuppressionKernel</a></td></tr>
1027<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>
1028<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1029<tr class="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>
1030<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>
1031<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1032<tr class="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>
1033<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>
1034<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1035<tr class="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>
1036<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>
1037<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1038<tr class="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>
1039<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>
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_n_e_fast_corners.xhtml">NEFastCorners</a></td></tr>
1042<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>
1043<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1044<tr class="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>
1045<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>
1046<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1047<tr class="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>
1048<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>
1049<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1050<tr class="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>
1051<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>
1052<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1053<tr class="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>
1054<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>
1055<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1056<tr class="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>
1057<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>
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_n_e_fully_connected_layer.xhtml">NEFullyConnectedLayer</a></td></tr>
1060<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>
1061<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001062<tr class="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>
1063<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>
1064<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +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_n_e_gaussian3x3.xhtml">NEGaussian3x3</a></td></tr>
1066<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>
1067<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1068<tr class="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>
1069<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>
1070<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1071<tr class="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>
1072<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>
1073<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1074<tr class="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>
1075<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>
1076<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1077<tr class="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>
1078<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>
1079<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1080<tr class="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>
1081<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>
1082<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1083<tr class="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>
1084<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>
1085<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1086<tr class="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>
1087<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>
1088<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1089<tr class="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>
1090<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>
1091<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1092<tr class="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>
1093<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>
1094<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1095<tr class="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>
1096<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>
1097<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +01001098<tr class="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>
1099<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>
1100<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001101<tr class="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>
1102<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>
1103<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1104<tr class="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.xhtml">NEGEMMLowp</a></td></tr>
1105<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to execute GEMMLowp on NEON. <a href="classarm__compute_1_1_n_e_g_e_m_m_lowp.xhtml#details">More...</a><br /></td></tr>
1106<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1107<tr class="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>
1108<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>
1109<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1110<tr class="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>
1111<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>
1112<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1113<tr class="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>
1114<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>
1115<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1116<tr class="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>
1117<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>
1118<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +01001119<tr class="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>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001120<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>
Anthony Barbiera4376382017-04-12 15:12:46 +01001121<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001122<tr class="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>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001123<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>
Anthony Barbier871448e2017-03-24 14:54:29 +00001124<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1125<tr class="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_f_p16_kernel.xhtml">NEGradientFP16Kernel</a></td></tr>
1126<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform Gradient computation. <a href="classarm__compute_1_1_n_e_gradient_f_p16_kernel.xhtml#details">More...</a><br /></td></tr>
1127<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1128<tr class="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>
1129<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>
1130<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1131<tr class="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>
1132<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>
1133<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1134<tr class="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_f_p16_kernel.xhtml">NEHarrisScoreFP16Kernel</a></td></tr>
1135<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for the accumulate Weighted kernel using F16. <a href="classarm__compute_1_1_n_e_harris_score_f_p16_kernel.xhtml#details">More...</a><br /></td></tr>
1136<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1137<tr class="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>
1138<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>
1139<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1140<tr class="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>
Anthony Barbier46d59272017-05-04 09:15:15 +01001141<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>
Anthony Barbier871448e2017-03-24 14:54:29 +00001142<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1143<tr class="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>
1144<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>
1145<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1146<tr class="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>
1147<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>
1148<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1149<tr class="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>
1150<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>
1151<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1152<tr class="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>
1153<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>
1154<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1155<tr class="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>
1156<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>
1157<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1158<tr class="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>
1159<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>
1160<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1161<tr class="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>
1162<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>
1163<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001164<tr class="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>
1165<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>
1166<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1167<tr class="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>
1168<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>
1169<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1170<tr class="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>
1171<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>
1172<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1173<tr class="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>
1174<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>
1175<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1176<tr class="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>
1177<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>
1178<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1179<tr class="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>
1180<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>
1181<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1182<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>
1183<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>
1184<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1185<tr class="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>
1186<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>
1187<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001188<tr class="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>
1189<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>
1190<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1191<tr class="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>
1192<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>
1193<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001194<tr class="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>
1195<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>
1196<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1197<tr class="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_norm_kernel.xhtml">NELogits1DNormKernel</a></td></tr>
1198<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_n_e_logits1_d_norm_kernel.xhtml#details">More...</a><br /></td></tr>
1199<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1200<tr class="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_shift_exp_sum_kernel.xhtml">NELogits1DShiftExpSumKernel</a></td></tr>
1201<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_n_e_logits1_d_shift_exp_sum_kernel.xhtml#details">More...</a><br /></td></tr>
1202<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1203<tr class="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>
1204<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>
1205<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1206<tr class="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_f_p16_kernel.xhtml">NEMagnitudePhaseFP16Kernel</a></td></tr>
1207<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_f_p16_kernel.xhtml#details">More...</a><br /></td></tr>
1208<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1209<tr class="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>
1210<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>
1211<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1212<tr class="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>
1213<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>
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_n_e_mean_std_dev_kernel.xhtml">NEMeanStdDevKernel</a></td></tr>
1216<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>
1217<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1218<tr class="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>
1219<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>
1220<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1221<tr class="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>
1222<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>
1223<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1224<tr class="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>
1225<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>
1226<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1227<tr class="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>
1228<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>
1229<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1230<tr class="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>
1231<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>
1232<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1233<tr class="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>
1234<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>
1235<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1236<tr class="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>
1237<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>
1238<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1239<tr class="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>
1240<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>
1241<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1242<tr class="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_f_p16_kernel.xhtml">NENonMaximaSuppression3x3FP16Kernel</a></td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +01001243<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NEON kernel to perform Non-Maxima suppression 3x3 with intermediate results in F16 if the input data type is F32. <a href="classarm__compute_1_1_n_e_non_maxima_suppression3x3_f_p16_kernel.xhtml#details">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001244<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1245<tr class="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>
1246<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>
1247<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1248<tr class="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>
1249<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic function to simulate a normalization layer. <a href="classarm__compute_1_1_n_e_normalization_layer.xhtml#details">More...</a><br /></td></tr>
1250<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1251<tr class="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>
1252<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>
1253<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1254<tr class="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>
1255<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>
1256<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1257<tr class="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>
1258<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>
1259<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1260<tr class="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>
1261<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>
1262<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1263<tr class="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>
1264<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>
1265<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1266<tr class="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>
1267<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>
1268<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1269<tr class="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>
1270<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>
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_n_e_remap.xhtml">NERemap</a></td></tr>
1273<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>
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_n_e_remap_kernel.xhtml">NERemapKernel</a></td></tr>
1276<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>
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_scale.xhtml">NEScale</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_scale_kernel.xhtml">NEScaleKernel</a>. <a href="classarm__compute_1_1_n_e_scale.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_scale_kernel.xhtml">NEScaleKernel</a></td></tr>
1282<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>
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_scharr3x3.xhtml">NEScharr3x3</a></td></tr>
1285<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>
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_scharr3x3_kernel.xhtml">NEScharr3x3Kernel</a></td></tr>
1288<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>
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_separable_convolution_hor_kernel.xhtml">NESeparableConvolutionHorKernel</a></td></tr>
1291<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>
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_separable_convolution_vert_kernel.xhtml">NESeparableConvolutionVertKernel</a></td></tr>
1294<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>
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_sobel3x3.xhtml">NESobel3x3</a></td></tr>
1297<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>
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_sobel3x3_kernel.xhtml">NESobel3x3Kernel</a></td></tr>
1300<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>
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_sobel5x5.xhtml">NESobel5x5</a></td></tr>
1303<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>
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_sobel5x5_hor_kernel.xhtml">NESobel5x5HorKernel</a></td></tr>
1306<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>
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_sobel5x5_vert_kernel.xhtml">NESobel5x5VertKernel</a></td></tr>
1309<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>
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_sobel7x7.xhtml">NESobel7x7</a></td></tr>
1312<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>
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_sobel7x7_hor_kernel.xhtml">NESobel7x7HorKernel</a></td></tr>
1315<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>
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_sobel7x7_vert_kernel.xhtml">NESobel7x7VertKernel</a></td></tr>
1318<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>
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_softmax_layer.xhtml">NESoftmaxLayer</a></td></tr>
1321<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>
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_table_lookup.xhtml">NETableLookup</a></td></tr>
1324<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>
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_table_lookup_kernel.xhtml">NETableLookupKernel</a></td></tr>
1327<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>
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_threshold.xhtml">NEThreshold</a></td></tr>
1330<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>
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_threshold_kernel.xhtml">NEThresholdKernel</a></td></tr>
1333<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>
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_transpose.xhtml">NETranspose</a></td></tr>
1336<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>
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_transpose_kernel.xhtml">NETransposeKernel</a></td></tr>
1339<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>
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_warp_affine.xhtml">NEWarpAffine</a></td></tr>
1342<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>
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_warp_affine_kernel.xhtml">NEWarpAffineKernel</a></td></tr>
1345<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>
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_warp_perspective.xhtml">NEWarpPerspective</a></td></tr>
1348<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>
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_warp_perspective_kernel.xhtml">NEWarpPerspectiveKernel</a></td></tr>
1351<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>
1352<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001353<tr class="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>
1354<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>
1355<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001356<tr class="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>
1357<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>
1358<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001359<tr class="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>
1360<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>
1361<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001362<tr class="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>
1363<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>
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_pixel_value.xhtml">PixelValue</a></td></tr>
1366<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>
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_pooling_layer_info.xhtml">PoolingLayerInfo</a></td></tr>
1369<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>
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_program.xhtml">Program</a></td></tr>
1372<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>
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_pyramid.xhtml">Pyramid</a></td></tr>
1375<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>
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_pyramid_info.xhtml">PyramidInfo</a></td></tr>
1378<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>
1379<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1380<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>
1381<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>
1382<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001383<tr class="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>
1384<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>
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_single_thread_scheduler.xhtml">SingleThreadScheduler</a></td></tr>
1387<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>
1388<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001389<tr class="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>
1390<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>
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_steps.xhtml">Steps</a></td></tr>
1393<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>
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_strides.xhtml">Strides</a></td></tr>
1396<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>
1397<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001398<tr class="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>
1399<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>
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_sub_tensor_info.xhtml">SubTensorInfo</a></td></tr>
1402<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>
1403<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001404<tr class="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>
1405<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>
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_tensor_allocator.xhtml">TensorAllocator</a></td></tr>
1408<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>
1409<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1410<tr class="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>
1411<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>
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_tensor_shape.xhtml">TensorShape</a></td></tr>
1414<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>
1415<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1416<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>
1417<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001418<tr class="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>
1419<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>
1420<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001421<tr class="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>
1422<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>
1423<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
1424</table><table class="memberdecls">
1425<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
1426Typedefs</h2></td></tr>
1427<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>
1428<tr class="separator:adb969f0e554bf563f2fa671399d59280"><td class="memSeparator" colspan="2">&#160;</td></tr>
1429<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>
1430<tr class="separator:adf4063963bf3a4b07a5d0cc840da9ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
1431<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>
1432<tr class="separator:a4cc908807b0a45ccc6ce7ba340ae2259"><td class="memSeparator" colspan="2">&#160;</td></tr>
1433<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>
1434<tr class="separator:a68396eee600b3d23bf7f95a802e65dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
1435<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>
1436<tr class="separator:a72251c7a73b3c057ffca9f32ee3e19ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
1437<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>
1438<tr class="separator:aed5c7222c31a34327f00de37d8c4f4fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
1439<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>
1440<tr class="separator:a6b5f839e8d27c6351e8d58812dd46c97"><td class="memSeparator" colspan="2">&#160;</td></tr>
1441<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>
1442<tr class="separator:a67328fa21e30aecd0c27d6d2e63a2b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
1443<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>
1444<tr class="separator:ab95380ecf1c0253f6c785c0f59194066"><td class="memSeparator" colspan="2">&#160;</td></tr>
1445<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>
1446<tr class="separator:a631bac7c033a0d341c631870f9755217"><td class="memSeparator" colspan="2">&#160;</td></tr>
1447<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>
1448<tr class="separator:aa80145f30ddae0c2ccbcaa910e3e71dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
1449<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>
1450<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>
1451<tr class="separator:a4751499f1c526c7285e7e946c2e84541"><td class="memSeparator" colspan="2">&#160;</td></tr>
1452<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>
1453<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>
1454<tr class="separator:ac4cfbdf439d7bf5d420546298bd5ca0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
1455<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>
1456<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>
1457<tr class="separator:a99a54c937a254c96cd1a29a96ffa7dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
1458<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>
1459<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>
1460<tr class="separator:a908439cd5cf8253865d5c70a413fd607"><td class="memSeparator" colspan="2">&#160;</td></tr>
1461<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>
1462<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>
1463<tr class="separator:ac72d613f7270604dbcad2553c278b16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
1464<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>
1465<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>
1466<tr class="separator:aab26624bf4b326f8145b2909a5042004"><td class="memSeparator" colspan="2">&#160;</td></tr>
1467<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>
1468<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>
1469<tr class="separator:a9f34ccad344bc43d25e8be2b828853aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
1470<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>
1471<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>
1472<tr class="separator:ac7295b0d8d71be75033238ad7fbba38c"><td class="memSeparator" colspan="2">&#160;</td></tr>
1473<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>
1474<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>
1475<tr class="separator:a0ffdf01e236016ce8d366a69875d1375"><td class="memSeparator" colspan="2">&#160;</td></tr>
1476<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>
1477<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>
1478<tr class="separator:a6d08e1e881bf611c1e1b9e2bb8810d19"><td class="memSeparator" colspan="2">&#160;</td></tr>
1479<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>
1480<tr class="separator:a569a32a7a853d4708fd4f4840c88a157"><td class="memSeparator" colspan="2">&#160;</td></tr>
1481<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>
1482<tr class="separator:a05d88c40a53babe38cb2cb5841c4a0ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
1483<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>
1484<tr class="separator:a0339a19c93dde6754834a7d4ec7dab73"><td class="memSeparator" colspan="2">&#160;</td></tr>
1485<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>
1486<tr class="separator:ac20902ac1ef01783c8a8d71a9bdf1100"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001487<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>
1488<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>
1489<tr class="separator:a4c3f681c30c9398c45bc3cd5dc4f038a"><td class="memSeparator" colspan="2">&#160;</td></tr>
1490<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>
1491<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>
1492<tr class="separator:a1521eea74b97de8f2df9304e44179400"><td class="memSeparator" colspan="2">&#160;</td></tr>
1493<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>
1494<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>
1495<tr class="separator:aa06c95f9976f3729316d689b4419089f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001496<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>
1497<tr class="separator:ab56a557a5fdf97819f23c35c24f0b0d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
1498<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>
1499<tr class="separator:aac9efd49d3bbbd53779713e5fb37de62"><td class="memSeparator" colspan="2">&#160;</td></tr>
1500<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>
1501<tr class="separator:a52b3b9de6092ae37321159c4c2f1bf40"><td class="memSeparator" colspan="2">&#160;</td></tr>
1502<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>
1503<tr class="separator:a32e4b9083329486a06960006af89a84c"><td class="memSeparator" colspan="2">&#160;</td></tr>
1504<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>
1505<tr class="separator:a276401fd5651e75431d3e1cc90601caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
1506<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>
1507<tr class="separator:a1ffe8af91a934c926d102938db8d3ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
1508<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>
1509<tr class="separator:ac9b2a6fa6e146437bfc8c0bee96e4760"><td class="memSeparator" colspan="2">&#160;</td></tr>
1510<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>
1511<tr class="separator:a1dd5e04cea002eae658fa2a899848ad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
1512<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>
1513<tr class="separator:a51fdf34dfc5c60b6f4f455f0a9cac457"><td class="memSeparator" colspan="2">&#160;</td></tr>
1514<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>
1515<tr class="separator:a8a82a1928159e86b0778c3c14e8842be"><td class="memSeparator" colspan="2">&#160;</td></tr>
1516<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>
1517<tr class="separator:a9f3ed96e009111cfbe53d3f77c712390"><td class="memSeparator" colspan="2">&#160;</td></tr>
1518<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>
1519<tr class="separator:a4aad0c49ce3d7cf4693830398f190250"><td class="memSeparator" colspan="2">&#160;</td></tr>
1520<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>
1521<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>
1522<tr class="separator:acf81639b3d33b5da654ef088e4d10520"><td class="memSeparator" colspan="2">&#160;</td></tr>
1523<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>
1524<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>
1525<tr class="separator:a21898b2d2e31ab9af8933c66ff82c8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
1526<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>
1527<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>
1528<tr class="separator:ae46cbbe03d31c6c8e7eba7b58999842d"><td class="memSeparator" colspan="2">&#160;</td></tr>
1529<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>
1530<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>
1531<tr class="separator:a1025306f820a9e76df7e5891caacff7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
1532<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>
1533<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>
1534<tr class="separator:ac78a7593874c21cff86478c1ba6df27b"><td class="memSeparator" colspan="2">&#160;</td></tr>
1535<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>
1536<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>
1537<tr class="separator:aca4adbcd292c26b0e392c59875c1e926"><td class="memSeparator" colspan="2">&#160;</td></tr>
1538<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>
1539<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>
1540<tr class="separator:a4ba5f6b7cd6b70b75e42149f3bc08f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
1541<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>
1542<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>
1543<tr class="separator:ae4152320657df499674ed64b16c28a7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
1544<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>
1545<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>
1546<tr class="separator:a0f952bd0821b506e18514a3f4dbc6c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
1547<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>
1548<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>
1549<tr class="separator:a6310d21f215fface41df4cde725a62b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
1550<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>
1551<tr class="separator:a19699533eb1b662e46a10715f6086487"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001552<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>
1553<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>
1554<tr class="separator:a16a1bee14f1db073f75caa76dacf5078"><td class="memSeparator" colspan="2">&#160;</td></tr>
1555<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>
1556<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>
1557<tr class="separator:ace2375b626995858a398e1ffb3108f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
1558<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>
1559<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>
1560<tr class="separator:a252c74fae9a9238ef7c23d306e670706"><td class="memSeparator" colspan="2">&#160;</td></tr>
1561<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>
1562<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>
1563<tr class="separator:a01ae65c0a0736d4293e657a66bde1538"><td class="memSeparator" colspan="2">&#160;</td></tr>
1564<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>
1565<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>
1566<tr class="separator:a5b99ed49abd6b7bf13dafdd17bcef855"><td class="memSeparator" colspan="2">&#160;</td></tr>
1567<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>
1568<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>
1569<tr class="separator:a09108711e0c18d4e9811ea4597d573b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
1570<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>
1571<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>
1572<tr class="separator:a7e175277ee7de6a5aeb5cd8916dbb346"><td class="memSeparator" colspan="2">&#160;</td></tr>
1573<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>
1574<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>
1575<tr class="separator:a3c4b33603ffff71e9f02c4be1a2f14d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
1576<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>
1577<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>
1578<tr class="separator:a82c56f0856f56d430393e6a00baee983"><td class="memSeparator" colspan="2">&#160;</td></tr>
1579<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>
1580<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>
1581<tr class="separator:a8d57e0f4f122442011213667168ef538"><td class="memSeparator" colspan="2">&#160;</td></tr>
1582<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>
1583<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>
1584<tr class="separator:a63f034ee885f20111e7f5d44e48e6d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
1585<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>
1586<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>
1587<tr class="separator:a8525b18a2f34c3497bbfbd0e7c3a7875"><td class="memSeparator" colspan="2">&#160;</td></tr>
1588<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>
1589<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>
1590<tr class="separator:a4e15143176bfacdde8b06f4bb0b67427"><td class="memSeparator" colspan="2">&#160;</td></tr>
1591<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>
1592<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>
1593<tr class="separator:a3c4099e91913f28017e1f57b8e5cbf9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
1594<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>
1595<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>
1596<tr class="separator:a65e109cf43ade8a2a3c57a1120b90b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
1597<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>
1598<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>
1599<tr class="separator:a6bc1e8d62f1055278d8f05454faa422f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001600<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>
1601<tr class="separator:a4467b302fc9ec312c40580336ab783da"><td class="memSeparator" colspan="2">&#160;</td></tr>
1602<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>
1603<tr class="separator:a2ab89a5d0959531aac270879cdd3ed78"><td class="memSeparator" colspan="2">&#160;</td></tr>
1604<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>
1605<tr class="separator:a8856eca9a83e16bb0cb5880e9c6c9fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
1606<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>
1607<tr class="separator:a327abccf7b43aa32d6a24319b986f3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
1608<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>
1609<tr class="separator:a5fe01ab895629edd84a511b56657d79e"><td class="memSeparator" colspan="2">&#160;</td></tr>
1610<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>
1611<tr class="separator:abd445adaaca7913c9344c90dc8c76358"><td class="memSeparator" colspan="2">&#160;</td></tr>
1612<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>
1613<tr class="separator:a9dbb5e00a3f397691eb782f03f65375c"><td class="memSeparator" colspan="2">&#160;</td></tr>
1614<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>
1615<tr class="separator:ab91cb2269b2e58ed2cb6bd2ca831d434"><td class="memSeparator" colspan="2">&#160;</td></tr>
1616<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>
1617<tr class="separator:acd6eb2619ccd5eee4963de3195785359"><td class="memSeparator" colspan="2">&#160;</td></tr>
1618<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>
1619<tr class="separator:a69c19b38cbee8fa6680513f6ff76bbb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
1620<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>
1621<tr class="separator:a6af9862834629c287a81b16837b51e44"><td class="memSeparator" colspan="2">&#160;</td></tr>
1622<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>
1623<tr class="separator:a6e06029aa1b68c0cdeb80656cc9353fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
1624<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>
1625<tr class="separator:a55e1c5ed17b7ee3762198a38eb50650a"><td class="memSeparator" colspan="2">&#160;</td></tr>
1626<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>
1627<tr class="separator:a0fd5f0310a26faad00b905bac3792726"><td class="memSeparator" colspan="2">&#160;</td></tr>
1628<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>
1629<tr class="separator:ab8d2c7efb7643ce8f9e5446dbe1da0b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
1630<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>
1631<tr class="separator:a3f9ab729931f4e4fa36ff1683186d988"><td class="memSeparator" colspan="2">&#160;</td></tr>
1632<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>
1633<tr class="separator:aa031694bb03711e09e25546ad2b643cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
1634<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>
1635<tr class="separator:a7b4c4a79c73a3f85ba89aff03fddefa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
1636<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>
1637<tr class="separator:a1d7d89b7e990055dc95ed37dfb24da48"><td class="memSeparator" colspan="2">&#160;</td></tr>
1638<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>
1639<tr class="separator:a5fb8cb339705102066c915d18f0701ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
1640<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>
1641<tr class="separator:a8a401a071524761c661a75969c951cf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
1642<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>
1643<tr class="separator:a193a4859b365f3ef4e0d73a1e6b12c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
1644<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>
1645<tr class="separator:aae712f442eae2d56d17529ca6cb9cb77"><td class="memSeparator" colspan="2">&#160;</td></tr>
1646<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>
1647<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>
1648<tr class="separator:a843447b81f09d837e90d44e6e6bd236d"><td class="memSeparator" colspan="2">&#160;</td></tr>
1649<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>
1650<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>
1651<tr class="separator:a1992a8362b7074e709394a5219d16e62"><td class="memSeparator" colspan="2">&#160;</td></tr>
1652<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>
1653<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>
1654<tr class="separator:a587dee5d7f05d5e9c3b8704ae8927101"><td class="memSeparator" colspan="2">&#160;</td></tr>
1655<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>
1656<tr class="separator:af87af588094f04e537df98eaf0426cb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
1657<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>
1658<tr class="separator:a70997613219641045213b0c12948fb74"><td class="memSeparator" colspan="2">&#160;</td></tr>
1659<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>
1660<tr class="separator:afcef84cf3b7d147b2b6ab0bd884afc16"><td class="memSeparator" colspan="2">&#160;</td></tr>
1661<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>
1662<tr class="separator:a4ec6965f606c588137f7a48d84c1d6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +01001663<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>
1664<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>
1665<tr class="separator:adbc7771d367ba8f51da1450d3602e5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
1666<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>
1667<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>
1668<tr class="separator:aeb2682fbeb2766df26b4be1971c9757d"><td class="memSeparator" colspan="2">&#160;</td></tr>
1669<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>
1670<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>
1671<tr class="separator:ae5a088552f26a1afafd0cbf821d256fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001672<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>
1673<tr class="separator:a681c120e2188371794ec3a59768c64ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001674<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>
1675<tr class="separator:a0604c803e41880a4a16408efc4e6a69b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001676<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>
1677<tr class="separator:a7fb6a368d181ef193475f725c713430a"><td class="memSeparator" colspan="2">&#160;</td></tr>
1678</table><table class="memberdecls">
1679<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
1680Enumerations</h2></td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001681<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 />
1682&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a57a3b40730a5af7ea3e13eb4bba56d82">GPU_ARCH_MASK</a> = 0xF00,
1683<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">MIDGARD</a> = 0x100,
1684<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e">BIFROST</a> = 0x200,
1685<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">T600</a> = 0x110,
1686<br />
1687&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd">T700</a> = 0x120,
1688<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">T800</a> = 0x130,
1689<a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298">G70</a> = 0x210
1690<br />
1691 }<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>
1692</td></tr>
1693<tr class="separator:a735ac6c2a02e320969625308810444f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001694<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 />
1695&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>,
1696<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>,
1697<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>,
1698<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>,
1699<br />
1700&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>,
1701<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>,
1702<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>,
1703<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>,
1704<br />
1705&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>,
1706<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>,
1707<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>,
1708<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>,
1709<br />
1710&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>,
1711<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>,
1712<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>,
1713<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>,
1714<br />
1715&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a>
1716<br />
1717 }<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>
1718</td></tr>
1719<tr class="separator:ab4e88c89b3b7ea1735996cc4def22d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
1720<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 />
1721&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>,
1722<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a6669348b484e3008dca2bfa8e85e40b5">U8</a>,
1723<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">S8</a>,
Anthony Barbierdbdab852017-06-23 15:42:00 +01001724<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>,
Anthony Barbier871448e2017-03-24 14:54:29 +00001725<br />
Anthony Barbierdbdab852017-06-23 15:42:00 +01001726&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>,
1727<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a6e0b0886efb94aec797f6b830329b72c">S16</a>,
1728<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>,
Anthony Barbier871448e2017-03-24 14:54:29 +00001729<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>,
Anthony Barbierdbdab852017-06-23 15:42:00 +01001730<br />
1731&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aa1e28eee0339658d39a8b4d325b56e9c">S32</a>,
Anthony Barbier871448e2017-03-24 14:54:29 +00001732<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">U64</a>,
Anthony Barbierdbdab852017-06-23 15:42:00 +01001733<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">S64</a>,
Anthony Barbier871448e2017-03-24 14:54:29 +00001734<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a56d8353718e6fdc78b8d69078a2cdb94">F16</a>,
Anthony Barbier871448e2017-03-24 14:54:29 +00001735<br />
Anthony Barbierdbdab852017-06-23 15:42:00 +01001736&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>,
1737<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">F64</a>,
1738<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">SIZET</a>
Anthony Barbier871448e2017-03-24 14:54:29 +00001739<br />
1740 }<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>
1741</td></tr>
1742<tr class="separator:ad8ed01ff3ff33333d8e19db4d2818bb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
1743<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>,
1744<a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">CONSTANT</a>,
1745<a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">REPLICATE</a>
1746 }<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>
1747</td></tr>
1748<tr class="separator:a15a05537a472ee742404821851529327"><td class="memSeparator" colspan="2">&#160;</td></tr>
1749<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>,
1750<a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86">SATURATE</a>
1751 }<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>
1752</td></tr>
1753<tr class="separator:a82b8ac759c804bc1fb4e2d21e178fb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
1754<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>,
1755<a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">BILINEAR</a>,
1756<a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">AREA</a>
1757 }<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>
1758</td></tr>
1759<tr class="separator:a966a9c417ce5e94dca08d9b5e745c0c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
1760<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>,
1761<a class="el" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202a731cb35d2d520920db9ab20dfc5edc64">BILINEAR_SCHARR</a>
1762 }<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>
1763</td></tr>
1764<tr class="separator:a2d8a00f1d80a53ce8f75fa929c873202"><td class="memSeparator" colspan="2">&#160;</td></tr>
1765<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>,
1766<a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a01036ddcc971d02f6c32c3da31a119f2">RANGE</a>
1767 }<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>
1768</td></tr>
1769<tr class="separator:a3e6b23e675649b83240691abbc42a649"><td class="memSeparator" colspan="2">&#160;</td></tr>
1770<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>,
Anthony Barbierdbdab852017-06-23 15:42:00 +01001771<a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95">TO_NEAREST_UP</a>,
Anthony Barbier871448e2017-03-24 14:54:29 +00001772<a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea02ff1fff1812f84c89547fcd6c176150">TO_NEAREST_EVEN</a>
1773 }<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>
1774</td></tr>
1775<tr class="separator:add6426cbf2e057a195846d4ba09a50be"><td class="memSeparator" colspan="2">&#160;</td></tr>
1776<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>,
1777<a class="el" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a43f2a8b688fb96e5ad8ba08308bbcdfd">TERM_CRITERIA_ITERATIONS</a>,
1778<a class="el" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a788740b1ba2d6463dae318a332513b29">TERM_CRITERIA_BOTH</a>
1779 }<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>
1780</td></tr>
1781<tr class="separator:a08c1503414e23f5dd10ff83492685453"><td class="memSeparator" colspan="2">&#160;</td></tr>
1782<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>,
1783<a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aad927ac799e8b24f80fc80d89b2eb7131">L2NORM</a>
1784 }<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>
1785</td></tr>
1786<tr class="separator:a7b3ec6413f000b02fdb4e39a951d9f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
1787<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>,
1788<a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72aaf36b47f395cd01f48b8fc1013665054">UNSIGNED</a>
1789 }<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>
1790</td></tr>
1791<tr class="separator:af00a42ecad444bbda75cde1b64bd7e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
1792<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 />
1793&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>,
1794<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9c5959e6f08f10d0edbadf5be1f33c53">C0</a>,
1795<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa1a2ddc2db4693cfd16d534cde5572cc1">C1</a>,
1796<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aaf1a543f5a2c5d49bc5dde298fcf716e4">C2</a>,
1797<br />
1798&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa3abe124ecc82bf2c2e22e6058f38c50c">C3</a>,
1799<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6">R</a>,
1800<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf">G</a>,
1801<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>,
1802<br />
1803&#160;&#160;<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>,
1804<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">Y</a>,
1805<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>,
1806<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a>
1807<br />
1808 }<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>
1809</td></tr>
1810<tr class="separator:a1ce9b523fd4f3b5bbcadcd796183455a"><td class="memSeparator" colspan="2">&#160;</td></tr>
1811<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>,
1812<a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a04dd53a8e6c2306e9bbf944c1d6047f2">CROSS</a>,
1813<a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a290d4b81f4e2b47d86fd1b0170e9aab7">DISK</a>,
1814<a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb">OTHER</a>
1815 }<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>
1816</td></tr>
1817<tr class="separator:afdda916edc7502967bbec17ea3c06c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
1818<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,
1819<a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653">MIN</a> = 1,
1820<a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">MAX</a> = 2
1821 }<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>
1822</td></tr>
1823<tr class="separator:adf2ced65e536375a1c96425d9fced858"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001824<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>,
1825<a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e">IN_MAP_2D</a>,
Anthony Barbier871448e2017-03-24 14:54:29 +00001826<a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5">CROSS_MAP</a>
1827 }<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>
1828</td></tr>
1829<tr class="separator:ad4bb8dabdbf8ad75e34220cc666b59ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001830<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,
1831<a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3ac9e68c0594494ec85805b225a7acb9c2">L2HYS_NORM</a> = 2,
1832<a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a68616ae21712c00705b962f4eff06eaa">L1_NORM</a> = 3
Anthony Barbier871448e2017-03-24 14:54:29 +00001833 }<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>
1834</td></tr>
1835<tr class="separator:a673665b4587a2956fcbad5f0e9ba89d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
1836<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>,
1837<a class="el" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa5bdce8e6d9dc3efbbd31e90a8a181dff">CEIL</a>
1838 }<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>
1839</td></tr>
1840<tr class="separator:a1fece1bd804e64f39f602d1c3969849a"><td class="memSeparator" colspan="2">&#160;</td></tr>
1841<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>,
1842<a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a">AVG</a>
1843 }<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>
1844</td></tr>
1845<tr class="separator:a9172da722f0a434e5cc07c0a3c115d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001846<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> { <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7">EXP</a>,
1847<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3">LOG</a>,
1848<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b">INV_SQRT</a>,
1849<a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1">RECIPROCAL</a>
1850 }<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>
1851</td></tr>
1852<tr class="separator:afa20b6a7f4383003babd690f026f22dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001853</table><table class="memberdecls">
1854<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
1855Functions</h2></td></tr>
1856<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>
1857<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>
1858<tr class="separator:ab04905b0c6c0e4091160561eae870101"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001859<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>
1860<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>
1861<tr class="separator:afab814721e78cbfc34e7e7fe2874fa56"><td class="memSeparator" colspan="2">&#160;</td></tr>
1862<tr class="memitem:a35fb9d1dde1b976f4b7d361aabcc7c0d"><td class="memTemplParams" colspan="2">template&lt;typename Kernel , typename... T&gt; </td></tr>
1863<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>
1864<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>
1865<tr class="separator:a35fb9d1dde1b976f4b7d361aabcc7c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
1866<tr class="memitem:abc72c95941485d8a068fa38372308574"><td class="memTemplParams" colspan="2">template&lt;typename Kernel &gt; </td></tr>
1867<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>
1868<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>
1869<tr class="separator:abc72c95941485d8a068fa38372308574"><td class="memSeparator" colspan="2">&#160;</td></tr>
1870<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>
1871<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>
1872<tr class="separator:a9d0143bdde8255313aae6ac020dd629c"><td class="memSeparator" colspan="2">&#160;</td></tr>
1873<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>
1874<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>
1875<tr class="separator:a4a351d5c39dec88af98a671da1c43fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001876<tr class="memitem:a22af22ebac966b76e8553127064201a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a22af22ebac966b76e8553127064201a2">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=cl::Range_128_1)</td></tr>
1877<tr class="memdesc:a22af22ebac966b76e8553127064201a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the kernel to the command queue with the given window. <a href="#a22af22ebac966b76e8553127064201a2">More...</a><br /></td></tr>
1878<tr class="separator:a22af22ebac966b76e8553127064201a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier46d59272017-05-04 09:15:15 +01001879<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>
1880<tr class="separator:aa4f4d7a58287017588fc338965873f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001881<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>
1882<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>
1883<tr class="separator:a568b0fbfa3d903099d9c9f7b6acf188d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001884<tr class="memitem:a5930b66fce0674d707fbf4f2dfcacc8f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a5930b66fce0674d707fbf4f2dfcacc8f">debug</a> (const char *function, const char *file, const int line, const char *msg,...)</td></tr>
1885<tr class="memdesc:a5930b66fce0674d707fbf4f2dfcacc8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a debug message. <a href="#a5930b66fce0674d707fbf4f2dfcacc8f">More...</a><br /></td></tr>
1886<tr class="separator:a5930b66fce0674d707fbf4f2dfcacc8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
1887<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>
1888<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>
1889<tr class="separator:a203882febb616f5468d1b63b60ffb331"><td class="memSeparator" colspan="2">&#160;</td></tr>
1890<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>
1891<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>
1892<tr class="separator:a43315c66c4d00207f70143233b189085"><td class="memSeparator" colspan="2">&#160;</td></tr>
1893<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>
1894<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>
1895<tr class="separator:aa8cee074ec68e2ae7830a9472efd8429"><td class="memSeparator" colspan="2">&#160;</td></tr>
1896<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>
1897<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>
1898<tr class="separator:a532d90e007d0cb6f3d43107229c40c32"><td class="memSeparator" colspan="2">&#160;</td></tr>
1899<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>
1900<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>
1901<tr class="separator:a45669fcc0f31fce521179510e85dcb62"><td class="memSeparator" colspan="2">&#160;</td></tr>
1902<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>
1903<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>
1904<tr class="separator:ab97841950d268532e51f28a208ddafd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
1905<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>
1906<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>
1907<tr class="separator:ae74bbb6e25cc1b774428722b2faad00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
1908<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>
1909<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>
1910<tr class="separator:aec48f137adc904d648dd7eba0d828fab"><td class="memSeparator" colspan="2">&#160;</td></tr>
1911<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>
1912<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>
1913<tr class="separator:af0b73b0c4980a551d7cd4edec43ffd92"><td class="memSeparator" colspan="2">&#160;</td></tr>
1914<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>
1915<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>
1916<tr class="separator:a0721e062e6d7a90f07fd08aeda5e7eda"><td class="memSeparator" colspan="2">&#160;</td></tr>
1917<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>
1918<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>
1919<tr class="separator:a55c8a365b4242664f8c0f19e91bcee92"><td class="memSeparator" colspan="2">&#160;</td></tr>
1920<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>
1921<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>
1922<tr class="separator:ab768d7001612a149c0bf695b773d659b"><td class="memSeparator" colspan="2">&#160;</td></tr>
1923<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>
1924<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>
1925<tr class="separator:ae39636f0e83dd3b854b89181a230216f"><td class="memSeparator" colspan="2">&#160;</td></tr>
1926<tr class="memitem:a31f807a33c1ad8f1b92f6bdf8f8e960a"><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#a31f807a33c1ad8f1b92f6bdf8f8e960a">sexp_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, int fixed_point_position)</td></tr>
1927<tr class="memdesc:a31f807a33c1ad8f1b92f6bdf8f8e960a"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit fixed point scalar exponential <a href="#a31f807a33c1ad8f1b92f6bdf8f8e960a">More...</a><br /></td></tr>
1928<tr class="separator:a31f807a33c1ad8f1b92f6bdf8f8e960a"><td class="memSeparator" colspan="2">&#160;</td></tr>
1929<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>
1930<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>
1931<tr class="separator:a596a7e3c63f80e67ea7cb713e8fc9992"><td class="memSeparator" colspan="2">&#160;</td></tr>
1932<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>
1933<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>
1934<tr class="separator:a62232512d049619479b670c58a607924"><td class="memSeparator" colspan="2">&#160;</td></tr>
1935<tr class="memitem:a85574c36b0854c1f988a3be4f7db6b6d"><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#a85574c36b0854c1f988a3be4f7db6b6d">scvt_qs8_f32</a> (float a, int fixed_point_position)</td></tr>
1936<tr class="memdesc:a85574c36b0854c1f988a3be4f7db6b6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a float to 8 bit fixed point. <a href="#a85574c36b0854c1f988a3be4f7db6b6d">More...</a><br /></td></tr>
1937<tr class="separator:a85574c36b0854c1f988a3be4f7db6b6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
1938<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>
1939<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>
1940<tr class="separator:a55e8e161b9a16d750a6cff3fba6cd480"><td class="memSeparator" colspan="2">&#160;</td></tr>
1941<tr class="memitem:aacd9632313e7c7341b403155575a48ed"><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#aacd9632313e7c7341b403155575a48ed">scvt_qs16_f32</a> (float a, int fixed_point_position)</td></tr>
1942<tr class="memdesc:aacd9632313e7c7341b403155575a48ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a float to 16 bit fixed point. <a href="#aacd9632313e7c7341b403155575a48ed">More...</a><br /></td></tr>
1943<tr class="separator:aacd9632313e7c7341b403155575a48ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
1944<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>
1945<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>
1946<tr class="separator:ad555b251940cba2ca1c6eb168f0bbea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
1947<tr class="memitem:a6458ccaf13f1c225d6b60672754f2c72"><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#a6458ccaf13f1c225d6b60672754f2c72">sqexp_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> a, int fixed_point_position)</td></tr>
1948<tr class="separator:a6458ccaf13f1c225d6b60672754f2c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
1949<tr class="memitem:adfe7525e3cd542da6c043a98f93a8d3c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
1950<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;::value, 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>
1951<tr class="separator:adfe7525e3cd542da6c043a98f93a8d3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
1952<tr class="memitem:aceaaf77291e83ca0dfaed677c93ce350"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aceaaf77291e83ca0dfaed677c93ce350">delta_bilinear_c1u8</a> (const uint8_t *pixel_ptr, size_t stride, float dx, float dy)</td></tr>
1953<tr class="memdesc:aceaaf77291e83ca0dfaed677c93ce350"><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="#aceaaf77291e83ca0dfaed677c93ce350">More...</a><br /></td></tr>
1954<tr class="separator:aceaaf77291e83ca0dfaed677c93ce350"><td class="memSeparator" colspan="2">&#160;</td></tr>
1955<tr class="memitem:a49560b7b7e0095fd7501b0a6d7042f2b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a49560b7b7e0095fd7501b0a6d7042f2b">pixel_bilinear_c1u8</a> (const uint8_t *first_pixel_ptr, size_t stride, float x, float y)</td></tr>
1956<tr class="memdesc:a49560b7b7e0095fd7501b0a6d7042f2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the pixel at (x,y) using bilinear interpolation. <a href="#a49560b7b7e0095fd7501b0a6d7042f2b">More...</a><br /></td></tr>
1957<tr class="separator:a49560b7b7e0095fd7501b0a6d7042f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
1958<tr class="memitem:a7c3fa3051dcd3570157d121b6cb0e56a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7c3fa3051dcd3570157d121b6cb0e56a">pixel_bilinear_c1u8_clamp</a> (const uint8_t *first_pixel_ptr, size_t stride, size_t width, size_t height, float x, float y)</td></tr>
1959<tr class="memdesc:a7c3fa3051dcd3570157d121b6cb0e56a"><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="#a7c3fa3051dcd3570157d121b6cb0e56a">More...</a><br /></td></tr>
1960<tr class="separator:a7c3fa3051dcd3570157d121b6cb0e56a"><td class="memSeparator" colspan="2">&#160;</td></tr>
1961<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>
1962<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>
1963<tr class="separator:ab7b3af731907e85fcaf72555c446176b"><td class="memSeparator" colspan="2">&#160;</td></tr>
1964<tr class="memitem:a1c0b9414fe3a6ef6a7a23bd324ae9e67"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
1965<tr class="memitem:a1c0b9414fe3a6ef6a7a23bd324ae9e67"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1c0b9414fe3a6ef6a7a23bd324ae9e67">clamp</a> (const T &amp;n, const T &amp;lower, const T &amp;upper)</td></tr>
1966<tr class="memdesc:a1c0b9414fe3a6ef6a7a23bd324ae9e67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs clamping among a lower and upper value. <a href="#a1c0b9414fe3a6ef6a7a23bd324ae9e67">More...</a><br /></td></tr>
1967<tr class="separator:a1c0b9414fe3a6ef6a7a23bd324ae9e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
1968<tr class="memitem:a76e58198af8e930a851637e7e3eccbd2"><td class="memTemplParams" colspan="2">template&lt;typename F &gt; </td></tr>
1969<tr class="memitem:a76e58198af8e930a851637e7e3eccbd2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a76e58198af8e930a851637e7e3eccbd2">for_each</a> (F &amp;&amp;)</td></tr>
1970<tr class="memdesc:a76e58198af8e930a851637e7e3eccbd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base case of for_each. <a href="#a76e58198af8e930a851637e7e3eccbd2">More...</a><br /></td></tr>
1971<tr class="separator:a76e58198af8e930a851637e7e3eccbd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
1972<tr class="memitem:ab951ff3c9484cd4b243344b3a0f12d95"><td class="memTemplParams" colspan="2">template&lt;typename F , typename T , typename... Ts&gt; </td></tr>
1973<tr class="memitem:ab951ff3c9484cd4b243344b3a0f12d95"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ab951ff3c9484cd4b243344b3a0f12d95">for_each</a> (F &amp;&amp;func, T &amp;&amp;arg, Ts &amp;&amp;...args)</td></tr>
1974<tr class="memdesc:ab951ff3c9484cd4b243344b3a0f12d95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the function for each of the arguments. <a href="#ab951ff3c9484cd4b243344b3a0f12d95">More...</a><br /></td></tr>
1975<tr class="separator:ab951ff3c9484cd4b243344b3a0f12d95"><td class="memSeparator" colspan="2">&#160;</td></tr>
1976<tr class="memitem:a6905c41fd996c479e46791ef58e440aa"><td class="memTemplParams" colspan="2">template&lt;typename F , typename T &gt; </td></tr>
1977<tr class="memitem:a6905c41fd996c479e46791ef58e440aa"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6905c41fd996c479e46791ef58e440aa">foldl</a> (F &amp;&amp;, const T &amp;value)</td></tr>
1978<tr class="memdesc:a6905c41fd996c479e46791ef58e440aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base case of foldl. <a href="#a6905c41fd996c479e46791ef58e440aa">More...</a><br /></td></tr>
1979<tr class="separator:a6905c41fd996c479e46791ef58e440aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
1980<tr class="memitem:a7f8e5c5fc77465cf3ac58b3d15305a5f"><td class="memTemplParams" colspan="2">template&lt;typename F , typename T , typename U &gt; </td></tr>
1981<tr class="memitem:a7f8e5c5fc77465cf3ac58b3d15305a5f"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7f8e5c5fc77465cf3ac58b3d15305a5f">foldl</a> (F &amp;&amp;func, T &amp;&amp;value1, U &amp;&amp;value2) -&gt; decltype(func(value1, value2))</td></tr>
1982<tr class="memdesc:a7f8e5c5fc77465cf3ac58b3d15305a5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base case of foldl. <a href="#a7f8e5c5fc77465cf3ac58b3d15305a5f">More...</a><br /></td></tr>
1983<tr class="separator:a7f8e5c5fc77465cf3ac58b3d15305a5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
1984<tr class="memitem:a05d0de315da2ecf1fa7d22ffad49b254"><td class="memTemplParams" colspan="2">template&lt;typename F , typename I , typename T , typename... Vs&gt; </td></tr>
1985<tr class="memitem:a05d0de315da2ecf1fa7d22ffad49b254"><td class="memTemplItemLeft" align="right" valign="top">I&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a05d0de315da2ecf1fa7d22ffad49b254">foldl</a> (F &amp;&amp;func, I &amp;&amp;initial, T &amp;&amp;value, Vs &amp;&amp;...values)</td></tr>
1986<tr class="memdesc:a05d0de315da2ecf1fa7d22ffad49b254"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fold left. <a href="#a05d0de315da2ecf1fa7d22ffad49b254">More...</a><br /></td></tr>
1987<tr class="separator:a05d0de315da2ecf1fa7d22ffad49b254"><td class="memSeparator" colspan="2">&#160;</td></tr>
1988<tr class="memitem:a6c0dcc38187027dcb89cd9724bc5a823"><td class="memTemplParams" colspan="2">template&lt;typename L , typename... Ts&gt; </td></tr>
1989<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>
1990<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>
1991<tr class="separator:a6c0dcc38187027dcb89cd9724bc5a823"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00001992<tr class="memitem:ac2a92cae51d2734a65676052adb33c22"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
1993<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>
1994<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>
1995<tr class="separator:ac2a92cae51d2734a65676052adb33c22"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01001996<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>
1997<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>
1998<tr class="separator:aa2117aef4381edbdf81e17ec088df7f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
1999<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>
2000<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>
2001<tr class="separator:a47456b4d520aee1cba80bf6e20f6685a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2002<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>
2003<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>
2004<tr class="separator:afcdda83b6a85d5798f08d92c0e235e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002005<tr class="memitem:a3bb1b3d01f14dbc0beb1e826eefeddc6"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2006<tr class="memitem:a3bb1b3d01f14dbc0beb1e826eefeddc6"><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#a3bb1b3d01f14dbc0beb1e826eefeddc6">intersect_valid_regions</a> (Ts &amp;&amp;...regions)</td></tr>
2007<tr class="memdesc:a3bb1b3d01f14dbc0beb1e826eefeddc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Intersect multiple valid regions. <a href="#a3bb1b3d01f14dbc0beb1e826eefeddc6">More...</a><br /></td></tr>
2008<tr class="separator:a3bb1b3d01f14dbc0beb1e826eefeddc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002009<tr class="memitem:a35178800b82e07a49da5a81cdeda9a0c"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
2010<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>
2011<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>
2012<tr class="separator:a35178800b82e07a49da5a81cdeda9a0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2013<tr class="memitem:a8c35748731709927597cb5a2c227e682"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2014<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>
2015<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>
2016<tr class="separator:a8c35748731709927597cb5a2c227e682"><td class="memSeparator" colspan="2">&#160;</td></tr>
2017<tr class="memitem:a1c9627ac3d73a67e9312c2c9740ff0a3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a1c9627ac3d73a67e9312c2c9740ff0a3">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)</td></tr>
2018<tr class="separator:a1c9627ac3d73a67e9312c2c9740ff0a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
2019<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>
2020<tr class="separator:a9d1a839c51134b2ae171a2264c541b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2021<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>
2022<tr class="separator:a8076ba239b6681067b6cfea7f773a39f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2023<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>
2024<tr class="separator:ad19446be52c2c162fa678b9ae236f445"><td class="memSeparator" colspan="2">&#160;</td></tr>
2025<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>
2026<tr class="separator:a0894ed18ca6f55d6053882676cc2c95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002027<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>
2028<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>
2029<tr class="separator:a41c1523098580451b378f76b8c37a0f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2030<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>
2031<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>
2032<tr class="separator:ab16fcfbfc3ee6dbc0c112f0bc9b3d9c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
2033<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>
2034<tr class="separator:a93cc303c8ae098d264f07d37890412de"><td class="memSeparator" colspan="2">&#160;</td></tr>
2035<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>
2036<tr class="separator:acf7451c0d0f8a4b1cfbb60d7531a43aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
2037<tr class="memitem:a3c22c0d3494660b72b4fc04fec76f92d"><td class="memTemplParams" colspan="2">template&lt;bool yuyv, bool alpha&gt; </td></tr>
2038<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>
2039<tr class="separator:a3c22c0d3494660b72b4fc04fec76f92d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2040<tr class="memitem:ae6a44e412bccc0705a720708b0692218"><td class="memTemplParams" colspan="2">template&lt;bool uv, bool alpha&gt; </td></tr>
2041<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>
2042<tr class="separator:ae6a44e412bccc0705a720708b0692218"><td class="memSeparator" colspan="2">&#160;</td></tr>
2043<tr class="memitem:a6e42fac1baa264b033ac430b63ebd145"><td class="memTemplParams" colspan="2">template&lt;bool alpha&gt; </td></tr>
2044<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>
2045<tr class="separator:a6e42fac1baa264b033ac430b63ebd145"><td class="memSeparator" colspan="2">&#160;</td></tr>
2046<tr class="memitem:a8ee13904a3f5ba84b28cb53d956021d7"><td class="memTemplParams" colspan="2">template&lt;bool yuyv&gt; </td></tr>
2047<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>
2048<tr class="separator:a8ee13904a3f5ba84b28cb53d956021d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
2049<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>
2050<tr class="separator:af2be1325decaa34a8a1199af177148c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2051<tr class="memitem:a199d36780fbb4a70168f290480673650"><td class="memTemplParams" colspan="2">template&lt;bool uv&gt; </td></tr>
2052<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>
2053<tr class="separator:a199d36780fbb4a70168f290480673650"><td class="memSeparator" colspan="2">&#160;</td></tr>
2054<tr class="memitem:ae43e8f0463c0289169025c3041688d36"><td class="memTemplParams" colspan="2">template&lt;bool yuyv&gt; </td></tr>
2055<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>
2056<tr class="separator:ae43e8f0463c0289169025c3041688d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
2057<tr class="memitem:a587a54c85dcc72838b8f4b5575ebafe4"><td class="memTemplParams" colspan="2">template&lt;bool uv&gt; </td></tr>
2058<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>
2059<tr class="separator:a587a54c85dcc72838b8f4b5575ebafe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
2060<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>
2061<tr class="separator:a08e9d88293a5cef787bb324c2dc0a6bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
2062<tr class="memitem:a14fd899b732509e245976b9967b8931d"><td class="memTemplParams" colspan="2">template&lt;bool alpha&gt; </td></tr>
2063<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>
2064<tr class="separator:a14fd899b732509e245976b9967b8931d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2065<tr class="memitem:a49b7a8e217ba7aad821fdeaab86bad53"><td class="memTemplParams" colspan="2">template&lt;bool alpha&gt; </td></tr>
2066<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>
2067<tr class="separator:a49b7a8e217ba7aad821fdeaab86bad53"><td class="memSeparator" colspan="2">&#160;</td></tr>
2068<tr class="memitem:ad304c0b0a72ed3f65c24fa69ab3cd53e"><td class="memTemplParams" colspan="2">template&lt;bool alpha&gt; </td></tr>
2069<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>
2070<tr class="separator:ad304c0b0a72ed3f65c24fa69ab3cd53e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002071<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>
2072<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>
2073<tr class="separator:a85ff7d135f7aa13359bd575139ba14dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
2074<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>
2075<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>
2076<tr class="separator:ab93c92d0f3228809b6a4bfaa24eb4924"><td class="memSeparator" colspan="2">&#160;</td></tr>
2077<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>
2078<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>
2079<tr class="separator:a77ef79482edac98140bbdfaeffb78b8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2080<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>
2081<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>
2082<tr class="separator:aba22755f7d41ffc62e23e5594751ecaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
2083<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>
2084<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>
2085<tr class="separator:a1470ca9d692f773f33ddbd9b3a37f1f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
2086<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>
2087<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>
2088<tr class="separator:aaa2cfaf59eb25ffb975bea87844e23c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2089<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>
2090<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>
2091<tr class="separator:ada853a8e19c80626633d95392d2b4a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2092<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>
2093<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>
2094<tr class="separator:ad988b528a38525b8ceca56ed8d09c801"><td class="memSeparator" colspan="2">&#160;</td></tr>
2095<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>
2096<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>
2097<tr class="separator:a509f3f9d910651d71d9f7dc3b5b3b92a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2098<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>
2099<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>
2100<tr class="separator:acf4cb0bc89b25c5fac96935d040207f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2101<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>
2102<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>
2103<tr class="separator:a1d54a1ef0078902b2334d2fddba74ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2104<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>
2105<tr class="memdesc:a8bb5f297efd64b941f5022ea3cd7ee9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a single 8 bit fixed point vector to memory (16 elements) <a href="#a8bb5f297efd64b941f5022ea3cd7ee9a">More...</a><br /></td></tr>
2106<tr class="separator:a8bb5f297efd64b941f5022ea3cd7ee9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2107<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>
2108<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>
2109<tr class="separator:a92c2d0b9a8eeb3ab04a39a25fef2b6c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
2110<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>
2111<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>
2112<tr class="separator:a1a226812e3cfdf3494adbdd92d4a1cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
2113<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>
2114<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>
2115<tr class="separator:adbd4df93ed00fcda54f91e669ea2be04"><td class="memSeparator" colspan="2">&#160;</td></tr>
2116<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>
2117<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>
2118<tr class="separator:ab20e66231de6c259952534de39214784"><td class="memSeparator" colspan="2">&#160;</td></tr>
2119<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>
2120<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>
2121<tr class="separator:a740436aed8843612da747f40ff926875"><td class="memSeparator" colspan="2">&#160;</td></tr>
2122<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>
2123<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>
2124<tr class="separator:ab62f4e080614df358423180767cffefd"><td class="memSeparator" colspan="2">&#160;</td></tr>
2125<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>
2126<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>
2127<tr class="separator:a3e4c45da2bef323158955d7c3b9d148d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2128<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>
2129<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>
2130<tr class="separator:a4b2c9440d5fa4909ae909869877f39e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
2131<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>
2132<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>
2133<tr class="separator:ac8095edd652a1f3a76bf9d0f4251827a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2134<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>
2135<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>
2136<tr class="separator:a3e913e95e286244f24f9a381909c8b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
2137<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>
2138<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>
2139<tr class="separator:a1627f818fb2ca90f7c3880f959030556"><td class="memSeparator" colspan="2">&#160;</td></tr>
2140<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>
2141<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>
2142<tr class="separator:a1ecd37cd4eb461a98ca7c429e51802d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
2143<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>
2144<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>
2145<tr class="separator:abed4a7c95569e1fa72d0f8bfe5a50c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
2146<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>
2147<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>
2148<tr class="separator:a3b393341c8500b469780137b3548f70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2149<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>
2150<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>
2151<tr class="separator:ad3f599d91685017d37e87d36170a5342"><td class="memSeparator" colspan="2">&#160;</td></tr>
2152<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>
2153<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>
2154<tr class="separator:ad91fc981c1b7b04a1975de3aefc6a4f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
2155<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>
2156<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>
2157<tr class="separator:a30eeb53208a2f67d4b0cf73a81b09467"><td class="memSeparator" colspan="2">&#160;</td></tr>
2158<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>
2159<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>
2160<tr class="separator:a8a14fe5fc71105c9bfebb28a58f06a52"><td class="memSeparator" colspan="2">&#160;</td></tr>
2161<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>
2162<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>
2163<tr class="separator:a9765c5ee2d3cc9e3ca983fd2f47ba916"><td class="memSeparator" colspan="2">&#160;</td></tr>
2164<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>
2165<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>
2166<tr class="separator:ad80ab0f6b783c10e0488cb84a8812e8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2167<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>
2168<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>
2169<tr class="separator:a9d88750b393cdfe6f5685107bb1d98f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
2170<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>
2171<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>
2172<tr class="separator:ac73b89ba44bae1df9a8998ad2a99996e"><td class="memSeparator" colspan="2">&#160;</td></tr>
2173<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>
2174<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>
2175<tr class="separator:a90c8ce2712bdb44fd58e3fa8b78bf6fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
2176<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>
2177<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>
2178<tr class="separator:a1adda6690cbca8a996255e311e4762d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
2179<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>
2180<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>
2181<tr class="separator:a5b1437029acce06690a938e09f5a762a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2182<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>
2183<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>
2184<tr class="separator:ab2a6ce3d8239e49c81af1ebc617680b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
2185<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>
2186<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>
2187<tr class="separator:afccf1305c480f2338af8925bba6b54cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
2188<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>
2189<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>
2190<tr class="separator:a031b17d4102856aa4d6bf7ebf83bf0ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
2191<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>
2192<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>
2193<tr class="separator:a746205173d1a1f3955fa0c26b5be3b10"><td class="memSeparator" colspan="2">&#160;</td></tr>
2194<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>
2195<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>
2196<tr class="separator:a081c0605c83155125ad95a144a1d6071"><td class="memSeparator" colspan="2">&#160;</td></tr>
2197<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>
2198<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>
2199<tr class="separator:a3e959a9add1078033f3a27725323df13"><td class="memSeparator" colspan="2">&#160;</td></tr>
2200<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>
2201<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>
2202<tr class="separator:a26fd8532b87adbcf27214504c38918e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
2203<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>
2204<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>
2205<tr class="separator:aca905840b37a91fff71e163aa619904c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2206<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>
2207<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>
2208<tr class="separator:ac6cb55578e8ff1f3c20aa50f2e728679"><td class="memSeparator" colspan="2">&#160;</td></tr>
2209<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>
2210<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>
2211<tr class="separator:a037ac8df4a7e30a455a97218b88b67ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
2212<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>
2213<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>
2214<tr class="separator:a13873b51e98dcb41229ccf911e671693"><td class="memSeparator" colspan="2">&#160;</td></tr>
2215<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>
2216<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>
2217<tr class="separator:aedfa26202753ca9db96ae3bcb51b14b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2218<tr class="memitem:a9f1ff9f119f659c10a90d0a9091811b0"><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#a9f1ff9f119f659c10a90d0a9091811b0">vcvt_qs8_f32</a> (const float32x4x2_t &amp;a, int fixed_point_position)</td></tr>
2219<tr class="memdesc:a9f1ff9f119f659c10a90d0a9091811b0"><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="#a9f1ff9f119f659c10a90d0a9091811b0">More...</a><br /></td></tr>
2220<tr class="separator:a9f1ff9f119f659c10a90d0a9091811b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2221<tr class="memitem:ac2c526cae11f55c15d9e04e8767cb6db"><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#ac2c526cae11f55c15d9e04e8767cb6db">vcvtq_qs8_f32</a> (const float32x4x4_t &amp;a, int fixed_point_position)</td></tr>
2222<tr class="memdesc:ac2c526cae11f55c15d9e04e8767cb6db"><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="#ac2c526cae11f55c15d9e04e8767cb6db">More...</a><br /></td></tr>
2223<tr class="separator:ac2c526cae11f55c15d9e04e8767cb6db"><td class="memSeparator" colspan="2">&#160;</td></tr>
2224<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>
2225<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>
2226<tr class="separator:a14a78befffd5c48b43554fdc28d654ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
2227<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>
2228<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>
2229<tr class="separator:a19e68f6a298ae587a491df52d6859350"><td class="memSeparator" colspan="2">&#160;</td></tr>
2230<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>
2231<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>
2232<tr class="separator:aa24b270b0193ad8983dfecd6105c4936"><td class="memSeparator" colspan="2">&#160;</td></tr>
2233<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>
2234<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>
2235<tr class="separator:abbeb1dc4834fb4e97cf94d702d0e0f91"><td class="memSeparator" colspan="2">&#160;</td></tr>
2236<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>
2237<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>
2238<tr class="separator:aeab4c6963804a85c9ea6c319f4e95a0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2239<tr class="memitem:aebc9202dc76554d81b3b082e74016197"><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#aebc9202dc76554d81b3b082e74016197">vdivq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int8x16_t b, int fixed_point_position)</td></tr>
2240<tr class="memdesc:aebc9202dc76554d81b3b082e74016197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division fixed point 8bit (16 elements) <a href="#aebc9202dc76554d81b3b082e74016197">More...</a><br /></td></tr>
2241<tr class="separator:aebc9202dc76554d81b3b082e74016197"><td class="memSeparator" colspan="2">&#160;</td></tr>
2242<tr class="memitem:a91b74be928419cd95068ccc9c6f1cd83"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
2243<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>
2244<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>
2245<tr class="separator:a91b74be928419cd95068ccc9c6f1cd83"><td class="memSeparator" colspan="2">&#160;</td></tr>
2246<tr class="memitem:a9b9a80aab8862e344ef91591a0e6e199"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
2247<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>
2248<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>
2249<tr class="separator:a9b9a80aab8862e344ef91591a0e6e199"><td class="memSeparator" colspan="2">&#160;</td></tr>
2250<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>
2251<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>
2252<tr class="separator:a635b41196d74b1f2c4d9ee9298444796"><td class="memSeparator" colspan="2">&#160;</td></tr>
2253<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>
2254<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>
2255<tr class="separator:ae6cf1822b8fbad305677650a2b751247"><td class="memSeparator" colspan="2">&#160;</td></tr>
2256<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>
2257<tr class="memdesc:a475d617b2ee92ec39588e6d6e488471a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate logarithm fixed point 16bit (8 elements) <a href="#a475d617b2ee92ec39588e6d6e488471a">More...</a><br /></td></tr>
2258<tr class="separator:a475d617b2ee92ec39588e6d6e488471a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2259<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>
2260<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>
2261<tr class="separator:a340b9cd5ad88f1a821498c6fad80e82c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2262<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>
2263<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>
2264<tr class="separator:ab7fbbbe8d980de582a73b5546b303b1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2265<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>
2266<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>
2267<tr class="separator:a5ddc3dc4b4ee6847fd96c6a8599e20e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
2268<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>
2269<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>
2270<tr class="separator:a4be9120d5c04e6aab0831095acd24534"><td class="memSeparator" colspan="2">&#160;</td></tr>
2271<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>
2272<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>
2273<tr class="separator:ad5d5110467053814882fb616c6cb855b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2274<tr class="memitem:a490b00ba8696c15a0d8267cb73fa359b"><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#a490b00ba8696c15a0d8267cb73fa359b">vtanh_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, int fixed_point_position)</td></tr>
2275<tr class="memdesc:a490b00ba8696c15a0d8267cb73fa359b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate hyperbolic tangent for fixed point 8bit (8 elements) <a href="#a490b00ba8696c15a0d8267cb73fa359b">More...</a><br /></td></tr>
2276<tr class="separator:a490b00ba8696c15a0d8267cb73fa359b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2277<tr class="memitem:adba961ae41ea74a338dab569938e6312"><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#adba961ae41ea74a338dab569938e6312">vtanhq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> a, int fixed_point_position)</td></tr>
2278<tr class="memdesc:adba961ae41ea74a338dab569938e6312"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate hyperbolic tangent for fixed point 8bit (16 elements) <a href="#adba961ae41ea74a338dab569938e6312">More...</a><br /></td></tr>
2279<tr class="separator:adba961ae41ea74a338dab569938e6312"><td class="memSeparator" colspan="2">&#160;</td></tr>
2280<tr class="memitem:a7214e62803b7c5c347124a5ec5ade4e2"><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#a7214e62803b7c5c347124a5ec5ade4e2">vqpowq_qs8</a> (<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> a, <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> b, int fixed_point_position)</td></tr>
2281<tr class="memdesc:a7214e62803b7c5c347124a5ec5ade4e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate saturating n power for fixed point 8bit (16 elements). <a href="#a7214e62803b7c5c347124a5ec5ade4e2">More...</a><br /></td></tr>
2282<tr class="separator:a7214e62803b7c5c347124a5ec5ade4e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
2283<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>
2284<tr class="separator:aa9a56a13e02fa346fcbe59257b2cef74"><td class="memSeparator" colspan="2">&#160;</td></tr>
2285<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>
2286<tr class="separator:aed2fc8d1b9642b7625379a930ef4914a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2287<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>
2288<tr class="separator:ac18aedae4207e681f6f833281d2395a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2289<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>
2290<tr class="separator:a3dd4382391c752128ab7b3a6dd68314b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2291<tr class="memitem:a3d36b520df07b909b027685ddc8e67c0"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
2292<tr class="memitem:a3d36b520df07b909b027685ddc8e67c0"><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#a3d36b520df07b909b027685ddc8e67c0">vqtaylor_poly_qs8</a> (int8x8_t a, int fixed_point_position)</td></tr>
2293<tr class="separator:a3d36b520df07b909b027685ddc8e67c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2294<tr class="memitem:aa754195778af2be8fd3c48192eb1e5b6"><td class="memTemplParams" colspan="2">template&lt;bool islog&gt; </td></tr>
2295<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>
2296<tr class="separator:aa754195778af2be8fd3c48192eb1e5b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2297<tr class="memitem:a0d4cef7d7331ac5a216d8bd3000564db"><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#a0d4cef7d7331ac5a216d8bd3000564db">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>
2298<tr class="separator:a0d4cef7d7331ac5a216d8bd3000564db"><td class="memSeparator" colspan="2">&#160;</td></tr>
2299<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>
2300<tr class="memdesc:a2e27db6b9692c4c2013653e276af654d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate inverse square root. <a href="#a2e27db6b9692c4c2013653e276af654d">More...</a><br /></td></tr>
2301<tr class="separator:a2e27db6b9692c4c2013653e276af654d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2302<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>
2303<tr class="memdesc:ac8f459d5899b79c00fb4042a5b3470fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate reciprocal. <a href="#ac8f459d5899b79c00fb4042a5b3470fb">More...</a><br /></td></tr>
2304<tr class="separator:ac8f459d5899b79c00fb4042a5b3470fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
2305<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>
2306<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>
2307<tr class="separator:a4fa76a98dce5ed1b655ff840f2ce6e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
2308<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>
2309<tr class="memdesc:ade3ef16de304661943c900ac9a47d28f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate exponential. <a href="#ade3ef16de304661943c900ac9a47d28f">More...</a><br /></td></tr>
2310<tr class="separator:ade3ef16de304661943c900ac9a47d28f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2311<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>
2312<tr class="memdesc:a37a3e03a22ad160a2e9e5c133607e020"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate logarithm. <a href="#a37a3e03a22ad160a2e9e5c133607e020">More...</a><br /></td></tr>
2313<tr class="separator:a37a3e03a22ad160a2e9e5c133607e020"><td class="memSeparator" colspan="2">&#160;</td></tr>
2314<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>
2315<tr class="memdesc:a7845701adefdb1adafc98ca3c4918c2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate hyperbolic tangent. <a href="#a7845701adefdb1adafc98ca3c4918c2e">More...</a><br /></td></tr>
2316<tr class="separator:a7845701adefdb1adafc98ca3c4918c2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
2317<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>
2318<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>
2319<tr class="separator:a45c3c1474c3e3ec31ec13efaf6acd261"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002320<tr class="memitem:adf0c6059174045f80af46a0f1fb57bc6"><td class="memTemplParams" colspan="2">template&lt;typename S , typename T &gt; </td></tr>
2321<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 value, T divisor) -&gt; decltype(((value+divisor-1)/divisor)*divisor)</td></tr>
2322<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>
2323<tr class="separator:adf0c6059174045f80af46a0f1fb57bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2324<tr class="memitem:a6959e681668a37a9242d2aae4e8b4375"><td class="memTemplParams" colspan="2">template&lt;typename S , typename T &gt; </td></tr>
2325<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 value, T divisor) -&gt; decltype((value/divisor)*divisor)</td></tr>
2326<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>
2327<tr class="separator:a6959e681668a37a9242d2aae4e8b4375"><td class="memSeparator" colspan="2">&#160;</td></tr>
2328<tr class="memitem:a12705a88669cb9fb90451ebe0db53c41"><td class="memTemplParams" colspan="2">template&lt;typename S , typename T &gt; </td></tr>
2329<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>
2330<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>
2331<tr class="separator:a12705a88669cb9fb90451ebe0db53c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
2332<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>
2333<tr class="memdesc:a64c17a5a42d2499a1626222ff9753b4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <a class="el" href="namespacearm__compute.xhtml">arm_compute</a> library build information. <a href="#a64c17a5a42d2499a1626222ff9753b4d">More...</a><br /></td></tr>
2334<tr class="separator:a64c17a5a42d2499a1626222ff9753b4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2335<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>
2336<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>
2337<tr class="separator:aefa4a4d3136d77b85cccfce344f9f37f"><td class="memSeparator" colspan="2">&#160;</td></tr>
2338<tr class="memitem:ae350823b5c93227dc33f1105ece06d68"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2339<tr class="memitem:ae350823b5c93227dc33f1105ece06d68"><td class="memTemplItemLeft" align="right" valign="top">const std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ae350823b5c93227dc33f1105ece06d68">val_to_string</a> (T val)</td></tr>
2340<tr class="memdesc:ae350823b5c93227dc33f1105ece06d68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a value as a string. <a href="#ae350823b5c93227dc33f1105ece06d68">More...</a><br /></td></tr>
2341<tr class="separator:ae350823b5c93227dc33f1105ece06d68"><td class="memSeparator" colspan="2">&#160;</td></tr>
2342<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>
2343<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>
2344<tr class="separator:abb7e0f23a4f2e63f39433f158dad47ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
2345<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>
2346<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>
2347<tr class="separator:a4823543d67a2520c98669e2a5608ef6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2348<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>
2349<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>
2350<tr class="separator:a34b06c0cd94808a77b697e79880b84b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2351<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>
2352<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>
2353<tr class="separator:a59846ef5ca75cd81cdb7e8a1ce08f9db"><td class="memSeparator" colspan="2">&#160;</td></tr>
2354<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>
2355<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>
2356<tr class="separator:a4f6fe18760340bcec02d095b7099e923"><td class="memSeparator" colspan="2">&#160;</td></tr>
2357<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>
2358<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>
2359<tr class="separator:a2a71659def659c8b1c164023a99a25a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
2360<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>
2361<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>
2362<tr class="separator:ab14153fb809c18823af3c9c8bc4286cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
2363<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 size)</td></tr>
2364<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>
2365<tr class="separator:a18ec57dffc5c26864be77318111dfb2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2366<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>
2367<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>
2368<tr class="separator:a0101a40c4a6acc2af3b55afa7632f16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2369<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 size)</td></tr>
2370<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>
2371<tr class="separator:a01adc12d8e07c06cdb0f03c56a455bf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
2372<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 size)</td></tr>
2373<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>
2374<tr class="separator:a3992df9e8723140a53e49dc194d89ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
2375<tr class="memitem:a6fd2c972d67298469a6aad75879fffab"><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#a6fd2c972d67298469a6aad75879fffab">scaled_dimensions</a> (unsigned int width, unsigned int height, unsigned int kernel_size, unsigned int stride_x, unsigned int stride_y, unsigned int pad_x, unsigned int pad_y, <a class="el" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849a">DimensionRoundingType</a> round_type)</td></tr>
2376<tr class="memdesc:a6fd2c972d67298469a6aad75879fffab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns expected width and height of output scaled tensor depending on dimensions rounding mode. <a href="#a6fd2c972d67298469a6aad75879fffab">More...</a><br /></td></tr>
2377<tr class="separator:a6fd2c972d67298469a6aad75879fffab"><td class="memSeparator" colspan="2">&#160;</td></tr>
2378<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>
2379<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>
2380<tr class="separator:a9c92c867fc64454545668d87b20979eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
2381<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>
2382<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>
2383<tr class="separator:a106c203dd6af234d38452ea0ee7b2ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
2384<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>
2385<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>
2386<tr class="separator:aefa1d9648995e5eccc693c690e27aa88"><td class="memSeparator" colspan="2">&#160;</td></tr>
2387<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>
2388<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>
2389<tr class="separator:a018795ab2489d17309e158ff5c060ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
2390<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>
2391<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>
2392<tr class="separator:ac955c978e18cc9bf6daea31f13076fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
2393<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>
2394<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>
2395<tr class="separator:a14831547f57ecf5f0deef888ad41ad30"><td class="memSeparator" colspan="2">&#160;</td></tr>
2396<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>
2397<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>
2398<tr class="separator:ade34f5e72f050fd3665f3294dfb15850"><td class="memSeparator" colspan="2">&#160;</td></tr>
2399<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>
2400<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>
2401<tr class="separator:abd15add5c6c7de5c8205ce236875aadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002402<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>
2403<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>
2404<tr class="separator:afb5698af5404d5d11e3516c87b6e7041"><td class="memSeparator" colspan="2">&#160;</td></tr>
2405<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>
2406<tr class="memdesc:a532fb45c0261724a4c2e755cfd3a44e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower a given string. <a href="#a532fb45c0261724a4c2e755cfd3a44e6">More...</a><br /></td></tr>
2407<tr class="separator:a532fb45c0261724a4c2e755cfd3a44e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002408<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 Barbierdbdab852017-06-23 15:42:00 +01002409<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 +00002410<tr class="separator:af5982a092e9eb743fce2d6392bdd8897"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002411<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>
2412<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>
2413<tr class="separator:ab6bb62694ae8369d18a9c9687040975e"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +01002414<tr class="memitem:aa3a28b8acd21301990e06377c64e1276"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2415<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>
2416<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>
2417<tr class="separator:aa3a28b8acd21301990e06377c64e1276"><td class="memSeparator" colspan="2">&#160;</td></tr>
2418<tr class="memitem:aaecee617b967dd96f27d2f36732fb68e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2419<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>
2420<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>
2421<tr class="separator:aaecee617b967dd96f27d2f36732fb68e"><td class="memSeparator" colspan="2">&#160;</td></tr>
2422<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>
2423<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>
2424<tr class="separator:a51a0d2ae440bc8cab3fbbe84bfea8b1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2425<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>
2426<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>
2427<tr class="separator:ac3f2de3a35ff8d9a47b5b793637784e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002428<tr class="memitem:a078507835115009a81ee2974d6073bb9"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2429<tr class="memitem:a078507835115009a81ee2974d6073bb9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a078507835115009a81ee2974d6073bb9">error_on_nullptr</a> (const char *function, const char *file, const int line, Ts &amp;&amp;...pointers)</td></tr>
2430<tr class="memdesc:a078507835115009a81ee2974d6073bb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if one of the pointers is a nullptr. <a href="#a078507835115009a81ee2974d6073bb9">More...</a><br /></td></tr>
2431<tr class="separator:a078507835115009a81ee2974d6073bb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002432<tr class="memitem:a26a9847c05c48bd1470f22f898ee254d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a26a9847c05c48bd1470f22f898ee254d">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>
2433<tr class="memdesc:a26a9847c05c48bd1470f22f898ee254d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed window is invalid. <a href="#a26a9847c05c48bd1470f22f898ee254d">More...</a><br /></td></tr>
2434<tr class="separator:a26a9847c05c48bd1470f22f898ee254d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2435<tr class="memitem:a0916477887763c20822b43be144963eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0916477887763c20822b43be144963eb">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>
2436<tr class="memdesc:a0916477887763c20822b43be144963eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed subwindow is invalid. <a href="#a0916477887763c20822b43be144963eb">More...</a><br /></td></tr>
2437<tr class="separator:a0916477887763c20822b43be144963eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
2438<tr class="memitem:a130822528598f21a48f7ee0e6d8438a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a130822528598f21a48f7ee0e6d8438a0">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>
2439<tr class="memdesc:a130822528598f21a48f7ee0e6d8438a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed coordinates have too many dimensions. <a href="#a130822528598f21a48f7ee0e6d8438a0">More...</a><br /></td></tr>
2440<tr class="separator:a130822528598f21a48f7ee0e6d8438a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2441<tr class="memitem:a6fed5543ae383442a51362e6607c4e65"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6fed5543ae383442a51362e6607c4e65">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>
2442<tr class="memdesc:a6fed5543ae383442a51362e6607c4e65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed window has too many dimensions. <a href="#a6fed5543ae383442a51362e6607c4e65">More...</a><br /></td></tr>
2443<tr class="separator:a6fed5543ae383442a51362e6607c4e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002444<tr class="memitem:aff062b84c57c614a2de4d54db2cbc31c"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
2445<tr class="memitem:aff062b84c57c614a2de4d54db2cbc31c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aff062b84c57c614a2de4d54db2cbc31c">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>
2446<tr class="memdesc:aff062b84c57c614a2de4d54db2cbc31c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed dimension objects differ. <a href="#aff062b84c57c614a2de4d54db2cbc31c">More...</a><br /></td></tr>
2447<tr class="separator:aff062b84c57c614a2de4d54db2cbc31c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002448<tr class="memitem:a7b689868b627ba9e22c8473c5f985512"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2449<tr class="memitem:a7b689868b627ba9e22c8473c5f985512"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7b689868b627ba9e22c8473c5f985512">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>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002450<tr class="memdesc:a7b689868b627ba9e22c8473c5f985512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed two tensors have different shapes from the given dimension. <a href="#a7b689868b627ba9e22c8473c5f985512">More...</a><br /></td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002451<tr class="separator:a7b689868b627ba9e22c8473c5f985512"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002452<tr class="memitem:a496e03102bca40f666c12a575d4a6157"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2453<tr class="memitem:a496e03102bca40f666c12a575d4a6157"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a496e03102bca40f666c12a575d4a6157">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>
2454<tr class="memdesc:a496e03102bca40f666c12a575d4a6157"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed two tensors have different shapes from the given dimension. <a href="#a496e03102bca40f666c12a575d4a6157">More...</a><br /></td></tr>
2455<tr class="separator:a496e03102bca40f666c12a575d4a6157"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002456<tr class="memitem:ad35d92af32949e38ec38b3d8e46b566c"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2457<tr class="memitem:ad35d92af32949e38ec38b3d8e46b566c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad35d92af32949e38ec38b3d8e46b566c">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_1, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor_2, Ts...tensors)</td></tr>
2458<tr class="memdesc:ad35d92af32949e38ec38b3d8e46b566c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed two tensors have different data types. <a href="#ad35d92af32949e38ec38b3d8e46b566c">More...</a><br /></td></tr>
2459<tr class="separator:ad35d92af32949e38ec38b3d8e46b566c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002460<tr class="memitem:a526ed43a37ba0faf2c1789175ec1a350"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2461<tr class="memitem:a526ed43a37ba0faf2c1789175ec1a350"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a526ed43a37ba0faf2c1789175ec1a350">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>
2462<tr class="memdesc:a526ed43a37ba0faf2c1789175ec1a350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed tensors have different fixed point data types or different fixed point positions. <a href="#a526ed43a37ba0faf2c1789175ec1a350">More...</a><br /></td></tr>
2463<tr class="separator:a526ed43a37ba0faf2c1789175ec1a350"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002464<tr class="memitem:a0b360558b516e256f0af005a164c674e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename F , typename... Fs&gt; </td></tr>
2465<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>
2466<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>
2467<tr class="separator:a0b360558b516e256f0af005a164c674e"><td class="memSeparator" colspan="2">&#160;</td></tr>
2468<tr class="memitem:a0c52339d3cb372d145deeafb5a313807"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
2469<tr class="memitem:a0c52339d3cb372d145deeafb5a313807"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0c52339d3cb372d145deeafb5a313807">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>
2470<tr class="memdesc:a0c52339d3cb372d145deeafb5a313807"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the data type of the passed tensor does not match any of the data types provided. <a href="#a0c52339d3cb372d145deeafb5a313807">More...</a><br /></td></tr>
2471<tr class="separator:a0c52339d3cb372d145deeafb5a313807"><td class="memSeparator" colspan="2">&#160;</td></tr>
2472<tr class="memitem:a690ce072b4480f4a5bad433f23c9fe05"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
2473<tr class="memitem:a690ce072b4480f4a5bad433f23c9fe05"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a690ce072b4480f4a5bad433f23c9fe05">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>
2474<tr class="memdesc:a690ce072b4480f4a5bad433f23c9fe05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw 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="#a690ce072b4480f4a5bad433f23c9fe05">More...</a><br /></td></tr>
2475<tr class="separator:a690ce072b4480f4a5bad433f23c9fe05"><td class="memSeparator" colspan="2">&#160;</td></tr>
2476<tr class="memitem:a65c8e0610dff27ecf1ef30214f08d19e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a65c8e0610dff27ecf1ef30214f08d19e">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>
2477<tr class="memdesc:a65c8e0610dff27ecf1ef30214f08d19e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the tensor is not 2D. <a href="#a65c8e0610dff27ecf1ef30214f08d19e">More...</a><br /></td></tr>
2478<tr class="separator:a65c8e0610dff27ecf1ef30214f08d19e"><td class="memSeparator" colspan="2">&#160;</td></tr>
2479<tr class="memitem:a593d972357b3bcfeecb87207dc925417"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
2480<tr class="memitem:a593d972357b3bcfeecb87207dc925417"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a593d972357b3bcfeecb87207dc925417">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>
2481<tr class="memdesc:a593d972357b3bcfeecb87207dc925417"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the channel is not in channels. <a href="#a593d972357b3bcfeecb87207dc925417">More...</a><br /></td></tr>
2482<tr class="separator:a593d972357b3bcfeecb87207dc925417"><td class="memSeparator" colspan="2">&#160;</td></tr>
2483<tr class="memitem:ad0d001a84424d440f9a11fc1b80ed2ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad0d001a84424d440f9a11fc1b80ed2ff">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>
2484<tr class="memdesc:ad0d001a84424d440f9a11fc1b80ed2ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the channel is not in format. <a href="#ad0d001a84424d440f9a11fc1b80ed2ff">More...</a><br /></td></tr>
2485<tr class="separator:ad0d001a84424d440f9a11fc1b80ed2ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
2486<tr class="memitem:a307666ca482a84d5a64251d78889a818"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a307666ca482a84d5a64251d78889a818">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>
2487<tr class="memdesc:a307666ca482a84d5a64251d78889a818"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw 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="#a307666ca482a84d5a64251d78889a818">More...</a><br /></td></tr>
2488<tr class="separator:a307666ca482a84d5a64251d78889a818"><td class="memSeparator" colspan="2">&#160;</td></tr>
2489<tr class="memitem:a21a4884cd1dbfa83351b8efa265f526a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a21a4884cd1dbfa83351b8efa265f526a">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>
2490<tr class="memdesc:a21a4884cd1dbfa83351b8efa265f526a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the kernel is not configured. <a href="#a21a4884cd1dbfa83351b8efa265f526a">More...</a><br /></td></tr>
2491<tr class="separator:a21a4884cd1dbfa83351b8efa265f526a"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002492<tr class="memitem:a36ffb104aed50deb360db6f3afa4c394"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a36ffb104aed50deb360db6f3afa4c394">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>
2493<tr class="memdesc:a36ffb104aed50deb360db6f3afa4c394"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if if the coordinates and shape of the subtensor are within the parent tensor. <a href="#a36ffb104aed50deb360db6f3afa4c394">More...</a><br /></td></tr>
2494<tr class="separator:a36ffb104aed50deb360db6f3afa4c394"><td class="memSeparator" colspan="2">&#160;</td></tr>
2495<tr class="memitem:a858e835f22c359080a09709c6dd950b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a858e835f22c359080a09709c6dd950b1">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>
2496<tr class="memdesc:a858e835f22c359080a09709c6dd950b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the valid region of a subtensor is not inside the valid region of the parent tensor. <a href="#a858e835f22c359080a09709c6dd950b1">More...</a><br /></td></tr>
2497<tr class="separator:a858e835f22c359080a09709c6dd950b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
2498<tr class="memitem:a064db352a2f4153e6237054343d5fe7a"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2499<tr class="memitem:a064db352a2f4153e6237054343d5fe7a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a064db352a2f4153e6237054343d5fe7a">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>
2500<tr class="memdesc:a064db352a2f4153e6237054343d5fe7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the input fixed-point positions are different. <a href="#a064db352a2f4153e6237054343d5fe7a">More...</a><br /></td></tr>
2501<tr class="separator:a064db352a2f4153e6237054343d5fe7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2502<tr class="memitem:a9afdaa4d8bbb78938110ada1daf87f8b"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
2503<tr class="memitem:a9afdaa4d8bbb78938110ada1daf87f8b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9afdaa4d8bbb78938110ada1daf87f8b">error_on_value_not_representable_in_fixed_point</a> (const char *function, const char *file, int line, float value, const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *tensor)</td></tr>
2504<tr class="memdesc:a9afdaa4d8bbb78938110ada1daf87f8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the fixed-point value is not representable in the specified Q format. <a href="#a9afdaa4d8bbb78938110ada1daf87f8b">More...</a><br /></td></tr>
2505<tr class="separator:a9afdaa4d8bbb78938110ada1daf87f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2506<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>
2507<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>
2508<tr class="separator:aa5191117dc677a74552769b87131b1b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
2509<tr class="memitem:a18d43401e8f84ed020429b41ec4e99f5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
2510<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>
2511<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>
2512<tr class="separator:a18d43401e8f84ed020429b41ec4e99f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
2513<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>
2514<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>
2515<tr class="separator:a8af36ae3a3613112c3a95e57f606359a"><td class="memSeparator" colspan="2">&#160;</td></tr>
2516<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>
2517<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>
2518<tr class="separator:a7929032d41d5f23cd1778a70508d0219"><td class="memSeparator" colspan="2">&#160;</td></tr>
2519<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>
2520<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>
2521<tr class="separator:a509047aefc691398f1bb60b1f967a98b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2522<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>
2523<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>
2524<tr class="separator:a4287c6842a60e5f6bf309e55f8813527"><td class="memSeparator" colspan="2">&#160;</td></tr>
2525<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>
2526<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>
2527<tr class="separator:a9d79efe2673aeb3f9a9160b6a78de50c"><td class="memSeparator" colspan="2">&#160;</td></tr>
2528<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>
2529<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>
2530<tr class="separator:a2ab7370aab6e5698990c50c8871fa6fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
2531<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>
2532<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>
2533<tr class="separator:a336cf1e870f467e44c184587a13feeec"><td class="memSeparator" colspan="2">&#160;</td></tr>
2534<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>
2535<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>
2536<tr class="separator:a295edc9f8caf95838db2c5e251153514"><td class="memSeparator" colspan="2">&#160;</td></tr>
2537<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>
2538<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>
2539<tr class="separator:a685af15532d70b8682bcc52f06f034f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
2540<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>
2541<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>
2542<tr class="separator:a3b22e54b0ac0204c3b89aebcd695fa03"><td class="memSeparator" colspan="2">&#160;</td></tr>
2543<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>
2544<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>
2545<tr class="separator:aa66be15c012986ebd4c1934b97e08a36"><td class="memSeparator" colspan="2">&#160;</td></tr>
2546<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>
2547<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>
2548<tr class="separator:af32c4c5cdd0efde09774eb803bc8a0bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
2549<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>
2550<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>
2551<tr class="separator:a1379e5f8a8b4640d7a52d901f0539ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002552</table><table class="memberdecls">
2553<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
2554Variables</h2></td></tr>
2555<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>
2556<tr class="separator:a769d636d7a3c7c84579a5f477a18bc9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01002557<tr class="memitem:a6f13dc0738b4cc6b51ed1e35fe616bd0"><td class="memItemLeft" align="right" valign="top">const std::array&lt; <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6f13dc0738b4cc6b51ed1e35fe616bd0">exp_tab_qs8</a></td></tr>
2558<tr class="memdesc:a6f13dc0738b4cc6b51ed1e35fe616bd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">&lt; Exponent polynomial coefficients for 8 bit fixed point (8 elements) Format is in Q0.7 for all elements <a href="#a6f13dc0738b4cc6b51ed1e35fe616bd0">More...</a><br /></td></tr>
2559<tr class="separator:a6f13dc0738b4cc6b51ed1e35fe616bd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2560<tr class="memitem:a8b29cd747029a70119b7a21b72f56e12"><td class="memItemLeft" align="right" valign="top">const std::array&lt; <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a8b29cd747029a70119b7a21b72f56e12">exp_tabq_qs8</a></td></tr>
2561<tr class="memdesc:a8b29cd747029a70119b7a21b72f56e12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logarithm polynomial coefficients for 8 bit fixed point (8 elements) Format is in Q0.7 for all elements except the first one which is in Q1.6. <a href="#a8b29cd747029a70119b7a21b72f56e12">More...</a><br /></td></tr>
2562<tr class="separator:a8b29cd747029a70119b7a21b72f56e12"><td class="memSeparator" colspan="2">&#160;</td></tr>
2563<tr class="memitem:af6bad6fafc33437f617e27d063aea07d"><td class="memItemLeft" align="right" valign="top">const std::array&lt; <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">log_tab_qs8</a></td></tr>
2564<tr class="memdesc:af6bad6fafc33437f617e27d063aea07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logarithm polynomial coefficients for 8 bit fixed point (16 elements) Format is in Q0.7 for all elements except the first one which is in Q1.6. <a href="#af6bad6fafc33437f617e27d063aea07d">More...</a><br /></td></tr>
2565<tr class="separator:af6bad6fafc33437f617e27d063aea07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2566<tr class="memitem:a44e335b1163d294dcd6efc8e51565135"><td class="memItemLeft" align="right" valign="top">const std::array&lt; <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">log_tabq_qs8</a></td></tr>
2567<tr class="separator:a44e335b1163d294dcd6efc8e51565135"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00002568<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>
2569<tr class="separator:a869945609357fa552d94eb16f7aad4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
2570<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>
2571<tr class="separator:a48fb9cf404e8f7043235bf14105c9793"><td class="memSeparator" colspan="2">&#160;</td></tr>
2572<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>
2573<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>
2574<tr class="separator:a3fed059965fe44cbe7ed4091d6b63acf"><td class="memSeparator" colspan="2">&#160;</td></tr>
2575<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>
2576<tr class="separator:af9876aedd664cac0ddeacddb40cb71cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
2577<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>
2578<tr class="separator:a2ebcd5423d5fba468e7debd2e1aabe91"><td class="memSeparator" colspan="2">&#160;</td></tr>
2579</table>
2580<h2 class="groupheader">Typedef Documentation</h2>
2581<a class="anchor" id="afcef84cf3b7d147b2b6ab0bd884afc16"></a>
2582<div class="memitem">
2583<div class="memproto">
2584 <table class="memname">
2585 <tr>
2586 <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>
2587 </tr>
2588 </table>
2589</div><div class="memdoc">
2590
2591<p>Definition at line <a class="el" href="_c_l_optical_flow_8h_source.xhtml#l00045">45</a> of file <a class="el" href="_c_l_optical_flow_8h_source.xhtml">CLOpticalFlow.h</a>.</p>
2592
2593</div>
2594</div>
2595<a class="anchor" id="a4751499f1c526c7285e7e946c2e84541"></a>
2596<div class="memitem">
2597<div class="memproto">
2598 <table class="memname">
2599 <tr>
2600 <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>
2601 </tr>
2602 </table>
2603</div><div class="memdoc">
2604
2605<p>Interface for the kernel which applies a 3x3 convolution to a tensor. </p>
2606
2607<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>
2608
2609</div>
2610</div>
2611<a class="anchor" id="a843447b81f09d837e90d44e6e6bd236d"></a>
2612<div class="memitem">
2613<div class="memproto">
2614 <table class="memname">
2615 <tr>
2616 <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>
2617 </tr>
2618 </table>
2619</div><div class="memdoc">
2620
2621<p>Basic function to run 5x5 convolution. </p>
2622
2623<p>Definition at line <a class="el" href="_c_l_convolution_8h_source.xhtml#l00098">98</a> of file <a class="el" href="_c_l_convolution_8h_source.xhtml">CLConvolution.h</a>.</p>
2624
2625</div>
2626</div>
2627<a class="anchor" id="ac4cfbdf439d7bf5d420546298bd5ca0d"></a>
2628<div class="memitem">
2629<div class="memproto">
2630 <table class="memname">
2631 <tr>
2632 <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>
2633 </tr>
2634 </table>
2635</div><div class="memdoc">
2636
2637<p>Interface for the kernel which applies a 5x5 convolution to a tensor. </p>
2638
2639<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>
2640
2641</div>
2642</div>
2643<a class="anchor" id="a1992a8362b7074e709394a5219d16e62"></a>
2644<div class="memitem">
2645<div class="memproto">
2646 <table class="memname">
2647 <tr>
2648 <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>
2649 </tr>
2650 </table>
2651</div><div class="memdoc">
2652
2653<p>Basic function to run 7x7 convolution. </p>
2654
2655<p>Definition at line <a class="el" href="_c_l_convolution_8h_source.xhtml#l00100">100</a> of file <a class="el" href="_c_l_convolution_8h_source.xhtml">CLConvolution.h</a>.</p>
2656
2657</div>
2658</div>
2659<a class="anchor" id="a99a54c937a254c96cd1a29a96ffa7dcf"></a>
2660<div class="memitem">
2661<div class="memproto">
2662 <table class="memname">
2663 <tr>
2664 <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>
2665 </tr>
2666 </table>
2667</div><div class="memdoc">
2668
2669<p>Interface for the kernel which applies a 7x7 convolution to a tensor. </p>
2670
2671<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>
2672
2673</div>
2674</div>
2675<a class="anchor" id="a587dee5d7f05d5e9c3b8704ae8927101"></a>
2676<div class="memitem">
2677<div class="memproto">
2678 <table class="memname">
2679 <tr>
2680 <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>
2681 </tr>
2682 </table>
2683</div><div class="memdoc">
2684
2685<p>Basic function to run 9x9 convolution. </p>
2686
2687<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>
2688
2689</div>
2690</div>
2691<a class="anchor" id="a908439cd5cf8253865d5c70a413fd607"></a>
2692<div class="memitem">
2693<div class="memproto">
2694 <table class="memname">
2695 <tr>
2696 <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>
2697 </tr>
2698 </table>
2699</div><div class="memdoc">
2700
2701<p>Interface for the kernel which applies a 9x9 convolution to a tensor. </p>
2702
2703<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>
2704
2705</div>
2706</div>
2707<a class="anchor" id="a0fd5f0310a26faad00b905bac3792726"></a>
2708<div class="memitem">
2709<div class="memproto">
2710 <table class="memname">
2711 <tr>
2712 <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>
2713 </tr>
2714 </table>
2715</div><div class="memdoc">
2716
2717<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00098">98</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
2718
2719</div>
2720</div>
2721<a class="anchor" id="ab8d2c7efb7643ce8f9e5446dbe1da0b4"></a>
2722<div class="memitem">
2723<div class="memproto">
2724 <table class="memname">
2725 <tr>
2726 <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>
2727 </tr>
2728 </table>
2729</div><div class="memdoc">
2730
2731<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00099">99</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
2732
2733</div>
2734</div>
2735<a class="anchor" id="a193a4859b365f3ef4e0d73a1e6b12c85"></a>
2736<div class="memitem">
2737<div class="memproto">
2738 <table class="memname">
2739 <tr>
2740 <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>
2741 </tr>
2742 </table>
2743</div><div class="memdoc">
2744
2745<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>
2746
2747</div>
2748</div>
2749<a class="anchor" id="aae712f442eae2d56d17529ca6cb9cb77"></a>
2750<div class="memitem">
2751<div class="memproto">
2752 <table class="memname">
2753 <tr>
2754 <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>
2755 </tr>
2756 </table>
2757</div><div class="memdoc">
2758
2759<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>
2760
2761</div>
2762</div>
2763<a class="anchor" id="a5fb8cb339705102066c915d18f0701ac"></a>
2764<div class="memitem">
2765<div class="memproto">
2766 <table class="memname">
2767 <tr>
2768 <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>
2769 </tr>
2770 </table>
2771</div><div class="memdoc">
2772
2773<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>
2774
2775</div>
2776</div>
2777<a class="anchor" id="a8a401a071524761c661a75969c951cf5"></a>
2778<div class="memitem">
2779<div class="memproto">
2780 <table class="memname">
2781 <tr>
2782 <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>
2783 </tr>
2784 </table>
2785</div><div class="memdoc">
2786
2787<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>
2788
2789</div>
2790</div>
2791<a class="anchor" id="a55e1c5ed17b7ee3762198a38eb50650a"></a>
2792<div class="memitem">
2793<div class="memproto">
2794 <table class="memname">
2795 <tr>
2796 <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>
2797 </tr>
2798 </table>
2799</div><div class="memdoc">
2800
2801<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00097">97</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
2802
2803</div>
2804</div>
2805<a class="anchor" id="a70997613219641045213b0c12948fb74"></a>
2806<div class="memitem">
2807<div class="memproto">
2808 <table class="memname">
2809 <tr>
2810 <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>
2811 </tr>
2812 </table>
2813</div><div class="memdoc">
2814
2815<p>Definition at line <a class="el" href="_c_l_optical_flow_8h_source.xhtml#l00044">44</a> of file <a class="el" href="_c_l_optical_flow_8h_source.xhtml">CLOpticalFlow.h</a>.</p>
2816
2817</div>
2818</div>
2819<a class="anchor" id="a4ec6965f606c588137f7a48d84c1d6f0"></a>
2820<div class="memitem">
2821<div class="memproto">
2822 <table class="memname">
2823 <tr>
2824 <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>
2825 </tr>
2826 </table>
2827</div><div class="memdoc">
2828
2829<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>
2830
2831</div>
2832</div>
2833<a class="anchor" id="ac72d613f7270604dbcad2553c278b16c"></a>
2834<div class="memitem">
2835<div class="memproto">
2836 <table class="memname">
2837 <tr>
2838 <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>
2839 </tr>
2840 </table>
2841</div><div class="memdoc">
2842
2843<p>Interface for the kernel which applies a horizontal pass of 5x5 convolution to a tensor. </p>
2844
2845<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>
2846
2847</div>
2848</div>
2849<a class="anchor" id="ac7295b0d8d71be75033238ad7fbba38c"></a>
2850<div class="memitem">
2851<div class="memproto">
2852 <table class="memname">
2853 <tr>
2854 <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>
2855 </tr>
2856 </table>
2857</div><div class="memdoc">
2858
2859<p>Interface for the kernel which applies a vertical pass of 5x5 convolution to a tensor. </p>
2860
2861<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>
2862
2863</div>
2864</div>
2865<a class="anchor" id="aab26624bf4b326f8145b2909a5042004"></a>
2866<div class="memitem">
2867<div class="memproto">
2868 <table class="memname">
2869 <tr>
2870 <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>
2871 </tr>
2872 </table>
2873</div><div class="memdoc">
2874
2875<p>Interface for the kernel which applies a horizontal pass of 7x7 convolution to a tensor. </p>
2876
2877<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>
2878
2879</div>
2880</div>
2881<a class="anchor" id="a0ffdf01e236016ce8d366a69875d1375"></a>
2882<div class="memitem">
2883<div class="memproto">
2884 <table class="memname">
2885 <tr>
2886 <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>
2887 </tr>
2888 </table>
2889</div><div class="memdoc">
2890
2891<p>Interface for the kernel which applies a vertical pass of 7x7 convolution to a tensor. </p>
2892
2893<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>
2894
2895</div>
2896</div>
2897<a class="anchor" id="a9f34ccad344bc43d25e8be2b828853aa"></a>
2898<div class="memitem">
2899<div class="memproto">
2900 <table class="memname">
2901 <tr>
2902 <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>
2903 </tr>
2904 </table>
2905</div><div class="memdoc">
2906
2907<p>Interface for the kernel which applies a horizontal pass of 9x9 convolution to a tensor. </p>
2908
2909<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>
2910
2911</div>
2912</div>
2913<a class="anchor" id="a6d08e1e881bf611c1e1b9e2bb8810d19"></a>
2914<div class="memitem">
2915<div class="memproto">
2916 <table class="memname">
2917 <tr>
2918 <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>
2919 </tr>
2920 </table>
2921</div><div class="memdoc">
2922
2923<p>Interface for the kernel which applies a vertical pass of 9x9 convolution to a tensor. </p>
2924
2925<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>
2926
2927</div>
2928</div>
2929<a class="anchor" id="a3f9ab729931f4e4fa36ff1683186d988"></a>
2930<div class="memitem">
2931<div class="memproto">
2932 <table class="memname">
2933 <tr>
2934 <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>
2935 </tr>
2936 </table>
2937</div><div class="memdoc">
2938
2939<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00100">100</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
2940
2941</div>
2942</div>
2943<a class="anchor" id="a7b4c4a79c73a3f85ba89aff03fddefa7"></a>
2944<div class="memitem">
2945<div class="memproto">
2946 <table class="memname">
2947 <tr>
2948 <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>
2949 </tr>
2950 </table>
2951</div><div class="memdoc">
2952
2953<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00102">102</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
2954
2955</div>
2956</div>
2957<a class="anchor" id="a1d7d89b7e990055dc95ed37dfb24da48"></a>
2958<div class="memitem">
2959<div class="memproto">
2960 <table class="memname">
2961 <tr>
2962 <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>
2963 </tr>
2964 </table>
2965</div><div class="memdoc">
2966
2967<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00103">103</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
2968
2969</div>
2970</div>
2971<a class="anchor" id="aa031694bb03711e09e25546ad2b643cc"></a>
2972<div class="memitem">
2973<div class="memproto">
2974 <table class="memname">
2975 <tr>
2976 <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>
2977 </tr>
2978 </table>
2979</div><div class="memdoc">
2980
2981<p>Definition at line <a class="el" href="_c_l_array_8h_source.xhtml#l00101">101</a> of file <a class="el" href="_c_l_array_8h_source.xhtml">CLArray.h</a>.</p>
2982
2983</div>
2984</div>
2985<a class="anchor" id="a327abccf7b43aa32d6a24319b986f3ab"></a>
2986<div class="memitem">
2987<div class="memproto">
2988 <table class="memname">
2989 <tr>
2990 <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>
2991 </tr>
2992 </table>
2993</div><div class="memdoc">
2994
2995<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>
2996
2997</div>
2998</div>
2999<a class="anchor" id="a5fe01ab895629edd84a511b56657d79e"></a>
3000<div class="memitem">
3001<div class="memproto">
3002 <table class="memname">
3003 <tr>
3004 <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>
3005 </tr>
3006 </table>
3007</div><div class="memdoc">
3008
3009<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>
3010
3011</div>
3012</div>
3013<a class="anchor" id="a6e06029aa1b68c0cdeb80656cc9353fe"></a>
3014<div class="memitem">
3015<div class="memproto">
3016 <table class="memname">
3017 <tr>
3018 <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>
3019 </tr>
3020 </table>
3021</div><div class="memdoc">
3022
3023<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>
3024
3025</div>
3026</div>
3027<a class="anchor" id="a05d88c40a53babe38cb2cb5841c4a0ad"></a>
3028<div class="memitem">
3029<div class="memproto">
3030 <table class="memname">
3031 <tr>
3032 <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>
3033 </tr>
3034 </table>
3035</div><div class="memdoc">
3036
3037<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>
3038
3039</div>
3040</div>
3041<a class="anchor" id="adf4063963bf3a4b07a5d0cc840da9ee2"></a>
3042<div class="memitem">
3043<div class="memproto">
3044 <table class="memname">
3045 <tr>
3046 <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>
3047 </tr>
3048 </table>
3049</div><div class="memdoc">
3050
3051<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00108">108</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
3052
3053</div>
3054</div>
3055<a class="anchor" id="a4cc908807b0a45ccc6ce7ba340ae2259"></a>
3056<div class="memitem">
3057<div class="memproto">
3058 <table class="memname">
3059 <tr>
3060 <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>
3061 </tr>
3062 </table>
3063</div><div class="memdoc">
3064
3065<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>
3066
3067</div>
3068</div>
3069<a class="anchor" id="a631bac7c033a0d341c631870f9755217"></a>
3070<div class="memitem">
3071<div class="memproto">
3072 <table class="memname">
3073 <tr>
3074 <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>
3075 </tr>
3076 </table>
3077</div><div class="memdoc">
3078
3079<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>
3080
3081</div>
3082</div>
3083<a class="anchor" id="aa80145f30ddae0c2ccbcaa910e3e71dd"></a>
3084<div class="memitem">
3085<div class="memproto">
3086 <table class="memname">
3087 <tr>
3088 <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>
3089 </tr>
3090 </table>
3091</div><div class="memdoc">
3092
3093<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>
3094
3095</div>
3096</div>
3097<a class="anchor" id="a67328fa21e30aecd0c27d6d2e63a2b9c"></a>
3098<div class="memitem">
3099<div class="memproto">
3100 <table class="memname">
3101 <tr>
3102 <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>
3103 </tr>
3104 </table>
3105</div><div class="memdoc">
3106
3107<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>
3108
3109</div>
3110</div>
3111<a class="anchor" id="ab95380ecf1c0253f6c785c0f59194066"></a>
3112<div class="memitem">
3113<div class="memproto">
3114 <table class="memname">
3115 <tr>
3116 <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>
3117 </tr>
3118 </table>
3119</div><div class="memdoc">
3120
3121<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>
3122
3123</div>
3124</div>
3125<a class="anchor" id="adb969f0e554bf563f2fa671399d59280"></a>
3126<div class="memitem">
3127<div class="memproto">
3128 <table class="memname">
3129 <tr>
3130 <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>
3131 </tr>
3132 </table>
3133</div><div class="memdoc">
3134
3135<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00107">107</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
3136
3137</div>
3138</div>
3139<a class="anchor" id="a569a32a7a853d4708fd4f4840c88a157"></a>
3140<div class="memitem">
3141<div class="memproto">
3142 <table class="memname">
3143 <tr>
3144 <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>
3145 </tr>
3146 </table>
3147</div><div class="memdoc">
3148
3149<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>
3150
3151</div>
3152</div>
3153<a class="anchor" id="a0339a19c93dde6754834a7d4ec7dab73"></a>
3154<div class="memitem">
3155<div class="memproto">
3156 <table class="memname">
3157 <tr>
3158 <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>
3159 </tr>
3160 </table>
3161</div><div class="memdoc">
3162
3163<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>
3164
3165</div>
3166</div>
3167<a class="anchor" id="a68396eee600b3d23bf7f95a802e65dff"></a>
3168<div class="memitem">
3169<div class="memproto">
3170 <table class="memname">
3171 <tr>
3172 <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>
3173 </tr>
3174 </table>
3175</div><div class="memdoc">
3176
3177<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>
3178
3179</div>
3180</div>
3181<a class="anchor" id="af87af588094f04e537df98eaf0426cb6"></a>
3182<div class="memitem">
3183<div class="memproto">
3184 <table class="memname">
3185 <tr>
3186 <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>
3187 </tr>
3188 </table>
3189</div><div class="memdoc">
3190
3191<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>
3192
3193</div>
3194</div>
3195<a class="anchor" id="aed5c7222c31a34327f00de37d8c4f4fc"></a>
3196<div class="memitem">
3197<div class="memproto">
3198 <table class="memname">
3199 <tr>
3200 <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>
3201 </tr>
3202 </table>
3203</div><div class="memdoc">
3204
3205<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>
3206
3207</div>
3208</div>
3209<a class="anchor" id="a6b5f839e8d27c6351e8d58812dd46c97"></a>
3210<div class="memitem">
3211<div class="memproto">
3212 <table class="memname">
3213 <tr>
3214 <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>
3215 </tr>
3216 </table>
3217</div><div class="memdoc">
3218
3219<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>
3220
3221</div>
3222</div>
3223<a class="anchor" id="a72251c7a73b3c057ffca9f32ee3e19ea"></a>
3224<div class="memitem">
3225<div class="memproto">
3226 <table class="memname">
3227 <tr>
3228 <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>
3229 </tr>
3230 </table>
3231</div><div class="memdoc">
3232
3233<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>
3234
3235</div>
3236</div>
3237<a class="anchor" id="aac9efd49d3bbbd53779713e5fb37de62"></a>
3238<div class="memitem">
3239<div class="memproto">
3240 <table class="memname">
3241 <tr>
3242 <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>
3243 </tr>
3244 </table>
3245</div><div class="memdoc">
3246
3247<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>
3248
3249</div>
3250</div>
3251<a class="anchor" id="a52b3b9de6092ae37321159c4c2f1bf40"></a>
3252<div class="memitem">
3253<div class="memproto">
3254 <table class="memname">
3255 <tr>
3256 <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>
3257 </tr>
3258 </table>
3259</div><div class="memdoc">
3260
3261<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>
3262
3263</div>
3264</div>
3265<a class="anchor" id="a8a82a1928159e86b0778c3c14e8842be"></a>
3266<div class="memitem">
3267<div class="memproto">
3268 <table class="memname">
3269 <tr>
3270 <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>
3271 </tr>
3272 </table>
3273</div><div class="memdoc">
3274
3275<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>
3276
3277</div>
3278</div>
3279<a class="anchor" id="ac20902ac1ef01783c8a8d71a9bdf1100"></a>
3280<div class="memitem">
3281<div class="memproto">
3282 <table class="memname">
3283 <tr>
3284 <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>
3285 </tr>
3286 </table>
3287</div><div class="memdoc">
3288
3289<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>
3290
3291</div>
3292</div>
3293<a class="anchor" id="a1dd5e04cea002eae658fa2a899848ad7"></a>
3294<div class="memitem">
3295<div class="memproto">
3296 <table class="memname">
3297 <tr>
3298 <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>
3299 </tr>
3300 </table>
3301</div><div class="memdoc">
3302
3303<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>
3304
3305</div>
3306</div>
3307<a class="anchor" id="a51fdf34dfc5c60b6f4f455f0a9cac457"></a>
3308<div class="memitem">
3309<div class="memproto">
3310 <table class="memname">
3311 <tr>
3312 <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>
3313 </tr>
3314 </table>
3315</div><div class="memdoc">
3316
3317<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>
3318
3319</div>
3320</div>
3321<a class="anchor" id="ab56a557a5fdf97819f23c35c24f0b0d2"></a>
3322<div class="memitem">
3323<div class="memproto">
3324 <table class="memname">
3325 <tr>
3326 <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>
3327 </tr>
3328 </table>
3329</div><div class="memdoc">
3330
3331<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00138">138</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
3332
3333</div>
3334</div>
3335<a class="anchor" id="a7fb6a368d181ef193475f725c713430a"></a>
3336<div class="memitem">
3337<div class="memproto">
3338 <table class="memname">
3339 <tr>
3340 <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>
3341 </tr>
3342 </table>
3343</div><div class="memdoc">
3344
Anthony Barbierdbdab852017-06-23 15:42:00 +01003345<p>Definition at line <a class="el" href="arm__compute_2runtime_2_tensor_8h_source.xhtml#l00063">63</a> of file <a class="el" href="arm__compute_2runtime_2_tensor_8h_source.xhtml">Tensor.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00003346
3347</div>
3348</div>
3349<a class="anchor" id="a9f3ed96e009111cfbe53d3f77c712390"></a>
3350<div class="memitem">
3351<div class="memproto">
3352 <table class="memname">
3353 <tr>
3354 <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>
3355 </tr>
3356 </table>
3357</div><div class="memdoc">
3358
3359<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>
3360
3361</div>
3362</div>
3363<a class="anchor" id="a19699533eb1b662e46a10715f6086487"></a>
3364<div class="memitem">
3365<div class="memproto">
3366 <table class="memname">
3367 <tr>
3368 <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>
3369 </tr>
3370 </table>
3371</div><div class="memdoc">
3372
3373<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>
3374
3375</div>
3376</div>
3377<a class="anchor" id="a4aad0c49ce3d7cf4693830398f190250"></a>
3378<div class="memitem">
3379<div class="memproto">
3380 <table class="memname">
3381 <tr>
3382 <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>
3383 </tr>
3384 </table>
3385</div><div class="memdoc">
3386
3387<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>
3388
3389</div>
3390</div>
3391<a class="anchor" id="a69c19b38cbee8fa6680513f6ff76bbb3"></a>
3392<div class="memitem">
3393<div class="memproto">
3394 <table class="memname">
3395 <tr>
3396 <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>
3397 </tr>
3398 </table>
3399</div><div class="memdoc">
3400
3401<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>
3402
3403</div>
3404</div>
3405<a class="anchor" id="a6af9862834629c287a81b16837b51e44"></a>
3406<div class="memitem">
3407<div class="memproto">
3408 <table class="memname">
3409 <tr>
3410 <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>
3411 </tr>
3412 </table>
3413</div><div class="memdoc">
3414
3415<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>
3416
3417</div>
3418</div>
3419<a class="anchor" id="a2ab89a5d0959531aac270879cdd3ed78"></a>
3420<div class="memitem">
3421<div class="memproto">
3422 <table class="memname">
3423 <tr>
3424 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a2ab89a5d0959531aac270879cdd3ed78">InternalKeypoint</a> = std::tuple&lt;float, float, float&gt;</td>
3425 </tr>
3426 </table>
3427</div><div class="memdoc">
3428
Anthony Barbierdbdab852017-06-23 15:42:00 +01003429<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00277">277</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 +00003430
3431</div>
3432</div>
3433<a class="anchor" id="a32e4b9083329486a06960006af89a84c"></a>
3434<div class="memitem">
3435<div class="memproto">
3436 <table class="memname">
3437 <tr>
3438 <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>
3439 </tr>
3440 </table>
3441</div><div class="memdoc">
3442
3443<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>
3444
3445</div>
3446</div>
3447<a class="anchor" id="a1ffe8af91a934c926d102938db8d3ce1"></a>
3448<div class="memitem">
3449<div class="memproto">
3450 <table class="memname">
3451 <tr>
3452 <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>
3453 </tr>
3454 </table>
3455</div><div class="memdoc">
3456
3457<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>
3458
3459</div>
3460</div>
3461<a class="anchor" id="ac9b2a6fa6e146437bfc8c0bee96e4760"></a>
3462<div class="memitem">
3463<div class="memproto">
3464 <table class="memname">
3465 <tr>
3466 <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>
3467 </tr>
3468 </table>
3469</div><div class="memdoc">
3470
3471<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>
3472
3473</div>
3474</div>
3475<a class="anchor" id="a276401fd5651e75431d3e1cc90601caa"></a>
3476<div class="memitem">
3477<div class="memproto">
3478 <table class="memname">
3479 <tr>
3480 <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>
3481 </tr>
3482 </table>
3483</div><div class="memdoc">
3484
3485<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>
3486
3487</div>
3488</div>
3489<a class="anchor" id="a8856eca9a83e16bb0cb5880e9c6c9fe7"></a>
3490<div class="memitem">
3491<div class="memproto">
3492 <table class="memname">
3493 <tr>
3494 <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>
3495 </tr>
3496 </table>
3497</div><div class="memdoc">
3498
3499<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>
3500
3501</div>
3502</div>
3503<a class="anchor" id="a681c120e2188371794ec3a59768c64ab"></a>
3504<div class="memitem">
3505<div class="memproto">
3506 <table class="memname">
3507 <tr>
3508 <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>
3509 </tr>
3510 </table>
3511</div><div class="memdoc">
3512
3513<p>Definition at line <a class="el" href="_n_e_optical_flow_8h_source.xhtml#l00043">43</a> of file <a class="el" href="_n_e_optical_flow_8h_source.xhtml">NEOpticalFlow.h</a>.</p>
3514
3515</div>
3516</div>
3517<a class="anchor" id="acf81639b3d33b5da654ef088e4d10520"></a>
3518<div class="memitem">
3519<div class="memproto">
3520 <table class="memname">
3521 <tr>
3522 <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>
3523 </tr>
3524 </table>
3525</div><div class="memdoc">
3526
3527<p>Interface for the kernel which applied a 3x3 convolution to a tensor. </p>
3528
3529<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00084">84</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
3530
3531</div>
3532</div>
Anthony Barbier46d59272017-05-04 09:15:15 +01003533<a class="anchor" id="adbc7771d367ba8f51da1450d3602e5c0"></a>
3534<div class="memitem">
3535<div class="memproto">
3536 <table class="memname">
3537 <tr>
3538 <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>
3539 </tr>
3540 </table>
3541</div><div class="memdoc">
3542
3543<p>Basic function to run 5x5 convolution. </p>
3544
3545<p>Definition at line <a class="el" href="_n_e_convolution_8h_source.xhtml#l00098">98</a> of file <a class="el" href="_n_e_convolution_8h_source.xhtml">NEConvolution.h</a>.</p>
3546
3547</div>
3548</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00003549<a class="anchor" id="a21898b2d2e31ab9af8933c66ff82c8c6"></a>
3550<div class="memitem">
3551<div class="memproto">
3552 <table class="memname">
3553 <tr>
3554 <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>
3555 </tr>
3556 </table>
3557</div><div class="memdoc">
3558
3559<p>Interface for the kernel which applied a 5x5 convolution to a tensor. </p>
3560
3561<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00086">86</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
3562
3563</div>
3564</div>
Anthony Barbier46d59272017-05-04 09:15:15 +01003565<a class="anchor" id="aeb2682fbeb2766df26b4be1971c9757d"></a>
3566<div class="memitem">
3567<div class="memproto">
3568 <table class="memname">
3569 <tr>
3570 <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>
3571 </tr>
3572 </table>
3573</div><div class="memdoc">
3574
3575<p>Basic function to run 7x7 convolution. </p>
3576
3577<p>Definition at line <a class="el" href="_n_e_convolution_8h_source.xhtml#l00100">100</a> of file <a class="el" href="_n_e_convolution_8h_source.xhtml">NEConvolution.h</a>.</p>
3578
3579</div>
3580</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00003581<a class="anchor" id="ae46cbbe03d31c6c8e7eba7b58999842d"></a>
3582<div class="memitem">
3583<div class="memproto">
3584 <table class="memname">
3585 <tr>
3586 <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>
3587 </tr>
3588 </table>
3589</div><div class="memdoc">
3590
3591<p>Interface for the kernel which applied a 7x7 convolution to a tensor. </p>
3592
3593<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>
3594
3595</div>
3596</div>
Anthony Barbier46d59272017-05-04 09:15:15 +01003597<a class="anchor" id="ae5a088552f26a1afafd0cbf821d256fb"></a>
3598<div class="memitem">
3599<div class="memproto">
3600 <table class="memname">
3601 <tr>
3602 <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>
3603 </tr>
3604 </table>
3605</div><div class="memdoc">
3606
3607<p>Basic function to run 9x9 convolution. </p>
3608
3609<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>
3610
3611</div>
3612</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00003613<a class="anchor" id="a1025306f820a9e76df7e5891caacff7b"></a>
3614<div class="memitem">
3615<div class="memproto">
3616 <table class="memname">
3617 <tr>
3618 <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>
3619 </tr>
3620 </table>
3621</div><div class="memdoc">
3622
3623<p>Interface for the kernel which applied a 9x9 convolution to a tensor. </p>
3624
3625<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>
3626
3627</div>
3628</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003629<a class="anchor" id="a0604c803e41880a4a16408efc4e6a69b"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00003630<div class="memitem">
3631<div class="memproto">
3632 <table class="memname">
3633 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01003634 <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 +00003635 </tr>
3636 </table>
3637</div><div class="memdoc">
3638
3639<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>
3640
3641</div>
3642</div>
3643<a class="anchor" id="ac78a7593874c21cff86478c1ba6df27b"></a>
3644<div class="memitem">
3645<div class="memproto">
3646 <table class="memname">
3647 <tr>
3648 <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>
3649 </tr>
3650 </table>
3651</div><div class="memdoc">
3652
3653<p>Interface for the kernel which applied a 5x1 horizontal convolution to a tensor. </p>
3654
3655<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00130">130</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
3656
3657</div>
3658</div>
3659<a class="anchor" id="ae4152320657df499674ed64b16c28a7b"></a>
3660<div class="memitem">
3661<div class="memproto">
3662 <table class="memname">
3663 <tr>
3664 <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>
3665 </tr>
3666 </table>
3667</div><div class="memdoc">
3668
3669<p>Interface for the kernel which applied a 1x5 vertical convolution to a tensor. </p>
3670
3671<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00186">186</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
3672
3673</div>
3674</div>
3675<a class="anchor" id="aca4adbcd292c26b0e392c59875c1e926"></a>
3676<div class="memitem">
3677<div class="memproto">
3678 <table class="memname">
3679 <tr>
3680 <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>
3681 </tr>
3682 </table>
3683</div><div class="memdoc">
3684
3685<p>Interface for the kernel which applied a 7x1 horizontal convolution to a tensor. </p>
3686
3687<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00132">132</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
3688
3689</div>
3690</div>
3691<a class="anchor" id="a0f952bd0821b506e18514a3f4dbc6c39"></a>
3692<div class="memitem">
3693<div class="memproto">
3694 <table class="memname">
3695 <tr>
3696 <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>
3697 </tr>
3698 </table>
3699</div><div class="memdoc">
3700
3701<p>Interface for the kernel which applied a 1x7 vertical convolution to a tensor. </p>
3702
3703<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00188">188</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
3704
3705</div>
3706</div>
3707<a class="anchor" id="a4ba5f6b7cd6b70b75e42149f3bc08f38"></a>
3708<div class="memitem">
3709<div class="memproto">
3710 <table class="memname">
3711 <tr>
3712 <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>
3713 </tr>
3714 </table>
3715</div><div class="memdoc">
3716
3717<p>Interface for the kernel which applied a 9x1 horizontal convolution to a tensor. </p>
3718
3719<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00134">134</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
3720
3721</div>
3722</div>
3723<a class="anchor" id="a6310d21f215fface41df4cde725a62b9"></a>
3724<div class="memitem">
3725<div class="memproto">
3726 <table class="memname">
3727 <tr>
3728 <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>
3729 </tr>
3730 </table>
3731</div><div class="memdoc">
3732
3733<p>Interface for the kernel which applied a 1x9 vertical convolution to a tensor. </p>
3734
3735<p>Definition at line <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml#l00190">190</a> of file <a class="el" href="_n_e_convolution_kernel_8h_source.xhtml">NEConvolutionKernel.h</a>.</p>
3736
3737</div>
3738</div>
3739<a class="anchor" id="a4467b302fc9ec312c40580336ab783da"></a>
3740<div class="memitem">
3741<div class="memproto">
3742 <table class="memname">
3743 <tr>
3744 <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>
3745 </tr>
3746 </table>
3747</div><div class="memdoc">
3748
Anthony Barbierdbdab852017-06-23 15:42:00 +01003749<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00201">201</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
3750
3751</div>
3752</div>
3753<a class="anchor" id="a1521eea74b97de8f2df9304e44179400"></a>
3754<div class="memitem">
3755<div class="memproto">
3756 <table class="memname">
3757 <tr>
3758 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> = int16_t</td>
3759 </tr>
3760 </table>
3761</div><div class="memdoc">
3762
3763<p>16 bit fixed point scalar value </p>
3764
3765<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>
3766
3767</div>
3768</div>
3769<a class="anchor" id="a82c56f0856f56d430393e6a00baee983"></a>
3770<div class="memitem">
3771<div class="memproto">
3772 <table class="memname">
3773 <tr>
3774 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> = int16x4_t</td>
3775 </tr>
3776 </table>
3777</div><div class="memdoc">
3778
3779<p>16 bit fixed point vector with 4 elements </p>
3780
3781<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>
3782
3783</div>
3784</div>
3785<a class="anchor" id="a8d57e0f4f122442011213667168ef538"></a>
3786<div class="memitem">
3787<div class="memproto">
3788 <table class="memname">
3789 <tr>
3790 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a8d57e0f4f122442011213667168ef538">qint16x4x2_t</a> = int16x4x2_t</td>
3791 </tr>
3792 </table>
3793</div><div class="memdoc">
3794
3795<p>16 bit fixed point vector with 8 elements </p>
3796
3797<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>
3798
3799</div>
3800</div>
3801<a class="anchor" id="a63f034ee885f20111e7f5d44e48e6d93"></a>
3802<div class="memitem">
3803<div class="memproto">
3804 <table class="memname">
3805 <tr>
3806 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a63f034ee885f20111e7f5d44e48e6d93">qint16x4x3_t</a> = int16x4x3_t</td>
3807 </tr>
3808 </table>
3809</div><div class="memdoc">
3810
3811<p>16 bit fixed point vector with 12 elements </p>
3812
3813<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>
3814
3815</div>
3816</div>
3817<a class="anchor" id="a8525b18a2f34c3497bbfbd0e7c3a7875"></a>
3818<div class="memitem">
3819<div class="memproto">
3820 <table class="memname">
3821 <tr>
3822 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a8525b18a2f34c3497bbfbd0e7c3a7875">qint16x4x4_t</a> = int16x4x4_t</td>
3823 </tr>
3824 </table>
3825</div><div class="memdoc">
3826
3827<p>16 bit fixed point vector with 16 elements </p>
3828
3829<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>
3830
3831</div>
3832</div>
3833<a class="anchor" id="a4e15143176bfacdde8b06f4bb0b67427"></a>
3834<div class="memitem">
3835<div class="memproto">
3836 <table class="memname">
3837 <tr>
3838 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> = int16x8_t</td>
3839 </tr>
3840 </table>
3841</div><div class="memdoc">
3842
3843<p>16 bit fixed point vector with 8 elements </p>
3844
3845<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>
3846
3847</div>
3848</div>
3849<a class="anchor" id="a3c4099e91913f28017e1f57b8e5cbf9f"></a>
3850<div class="memitem">
3851<div class="memproto">
3852 <table class="memname">
3853 <tr>
3854 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a3c4099e91913f28017e1f57b8e5cbf9f">qint16x8x2_t</a> = int16x8x2_t</td>
3855 </tr>
3856 </table>
3857</div><div class="memdoc">
3858
3859<p>16 bit fixed point vector with 16 elements </p>
3860
3861<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>
3862
3863</div>
3864</div>
3865<a class="anchor" id="a65e109cf43ade8a2a3c57a1120b90b05"></a>
3866<div class="memitem">
3867<div class="memproto">
3868 <table class="memname">
3869 <tr>
3870 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a65e109cf43ade8a2a3c57a1120b90b05">qint16x8x3_t</a> = int16x8x3_t</td>
3871 </tr>
3872 </table>
3873</div><div class="memdoc">
3874
3875<p>16 bit fixed point vector with 24 elements </p>
3876
3877<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>
3878
3879</div>
3880</div>
3881<a class="anchor" id="a6bc1e8d62f1055278d8f05454faa422f"></a>
3882<div class="memitem">
3883<div class="memproto">
3884 <table class="memname">
3885 <tr>
3886 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a6bc1e8d62f1055278d8f05454faa422f">qint16x8x4_t</a> = int16x8x4_t</td>
3887 </tr>
3888 </table>
3889</div><div class="memdoc">
3890
3891<p>16 bit fixed point vector with 32 elements </p>
3892
3893<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>
3894
3895</div>
3896</div>
3897<a class="anchor" id="aa06c95f9976f3729316d689b4419089f"></a>
3898<div class="memitem">
3899<div class="memproto">
3900 <table class="memname">
3901 <tr>
3902 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#aa06c95f9976f3729316d689b4419089f">qint32_t</a> = int32_t</td>
3903 </tr>
3904 </table>
3905</div><div class="memdoc">
3906
3907<p>32 bit fixed point scalar value </p>
3908
3909<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>
3910
3911</div>
3912</div>
3913<a class="anchor" id="a4c3f681c30c9398c45bc3cd5dc4f038a"></a>
3914<div class="memitem">
3915<div class="memproto">
3916 <table class="memname">
3917 <tr>
3918 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> = int8_t</td>
3919 </tr>
3920 </table>
3921</div><div class="memdoc">
3922
3923<p>8 bit fixed point scalar value </p>
3924
3925<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>
3926
3927</div>
3928</div>
3929<a class="anchor" id="a5b99ed49abd6b7bf13dafdd17bcef855"></a>
3930<div class="memitem">
3931<div class="memproto">
3932 <table class="memname">
3933 <tr>
3934 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> = int8x16_t</td>
3935 </tr>
3936 </table>
3937</div><div class="memdoc">
3938
3939<p>8 bit fixed point vector with 16 elements </p>
3940
3941<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>
3942
3943</div>
3944</div>
3945<a class="anchor" id="a09108711e0c18d4e9811ea4597d573b1"></a>
3946<div class="memitem">
3947<div class="memproto">
3948 <table class="memname">
3949 <tr>
3950 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a09108711e0c18d4e9811ea4597d573b1">qint8x16x2_t</a> = int8x16x2_t</td>
3951 </tr>
3952 </table>
3953</div><div class="memdoc">
3954
3955<p>8 bit fixed point vector with 32 elements </p>
3956
3957<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>
3958
3959</div>
3960</div>
3961<a class="anchor" id="a7e175277ee7de6a5aeb5cd8916dbb346"></a>
3962<div class="memitem">
3963<div class="memproto">
3964 <table class="memname">
3965 <tr>
3966 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a7e175277ee7de6a5aeb5cd8916dbb346">qint8x16x3_t</a> = int8x16x3_t</td>
3967 </tr>
3968 </table>
3969</div><div class="memdoc">
3970
3971<p>8 bit fixed point vector with 48 elements </p>
3972
3973<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>
3974
3975</div>
3976</div>
3977<a class="anchor" id="a3c4b33603ffff71e9f02c4be1a2f14d5"></a>
3978<div class="memitem">
3979<div class="memproto">
3980 <table class="memname">
3981 <tr>
3982 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a3c4b33603ffff71e9f02c4be1a2f14d5">qint8x16x4_t</a> = int8x16x4_t</td>
3983 </tr>
3984 </table>
3985</div><div class="memdoc">
3986
3987<p>8 bit fixed point vector with 64 elements </p>
3988
3989<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>
3990
3991</div>
3992</div>
3993<a class="anchor" id="a16a1bee14f1db073f75caa76dacf5078"></a>
3994<div class="memitem">
3995<div class="memproto">
3996 <table class="memname">
3997 <tr>
3998 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> = int8x8_t</td>
3999 </tr>
4000 </table>
4001</div><div class="memdoc">
4002
4003<p>8 bit fixed point vector with 8 elements </p>
4004
4005<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>
4006
4007</div>
4008</div>
4009<a class="anchor" id="ace2375b626995858a398e1ffb3108f14"></a>
4010<div class="memitem">
4011<div class="memproto">
4012 <table class="memname">
4013 <tr>
4014 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#ace2375b626995858a398e1ffb3108f14">qint8x8x2_t</a> = int8x8x2_t</td>
4015 </tr>
4016 </table>
4017</div><div class="memdoc">
4018
4019<p>8 bit fixed point vector with 16 elements </p>
4020
4021<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>
4022
4023</div>
4024</div>
4025<a class="anchor" id="a252c74fae9a9238ef7c23d306e670706"></a>
4026<div class="memitem">
4027<div class="memproto">
4028 <table class="memname">
4029 <tr>
4030 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a252c74fae9a9238ef7c23d306e670706">qint8x8x3_t</a> = int8x8x3_t</td>
4031 </tr>
4032 </table>
4033</div><div class="memdoc">
4034
4035<p>8 bit fixed point vector with 24 elements </p>
4036
4037<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>
4038
4039</div>
4040</div>
4041<a class="anchor" id="a01ae65c0a0736d4293e657a66bde1538"></a>
4042<div class="memitem">
4043<div class="memproto">
4044 <table class="memname">
4045 <tr>
4046 <td class="memname">using <a class="el" href="namespacearm__compute.xhtml#a01ae65c0a0736d4293e657a66bde1538">qint8x8x4_t</a> = int8x8x4_t</td>
4047 </tr>
4048 </table>
4049</div><div class="memdoc">
4050
4051<p>8 bit fixed point vector with 32 elements </p>
4052
4053<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 +00004054
4055</div>
4056</div>
4057<a class="anchor" id="abd445adaaca7913c9344c90dc8c76358"></a>
4058<div class="memitem">
4059<div class="memproto">
4060 <table class="memname">
4061 <tr>
4062 <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>
4063 </tr>
4064 </table>
4065</div><div class="memdoc">
4066
4067<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>
4068
4069</div>
4070</div>
4071<a class="anchor" id="ab91cb2269b2e58ed2cb6bd2ca831d434"></a>
4072<div class="memitem">
4073<div class="memproto">
4074 <table class="memname">
4075 <tr>
4076 <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>
4077 </tr>
4078 </table>
4079</div><div class="memdoc">
4080
4081<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>
4082
4083</div>
4084</div>
4085<a class="anchor" id="acd6eb2619ccd5eee4963de3195785359"></a>
4086<div class="memitem">
4087<div class="memproto">
4088 <table class="memname">
4089 <tr>
4090 <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>
4091 </tr>
4092 </table>
4093</div><div class="memdoc">
4094
4095<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>
4096
4097</div>
4098</div>
4099<a class="anchor" id="a9dbb5e00a3f397691eb782f03f65375c"></a>
4100<div class="memitem">
4101<div class="memproto">
4102 <table class="memname">
4103 <tr>
4104 <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>
4105 </tr>
4106 </table>
4107</div><div class="memdoc">
4108
4109<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>
4110
4111</div>
4112</div>
4113<h2 class="groupheader">Enumeration Type Documentation</h2>
4114<a class="anchor" id="a2d8a00f1d80a53ce8f75fa929c873202"></a>
4115<div class="memitem">
4116<div class="memproto">
4117<table class="mlabels">
4118 <tr>
4119 <td class="mlabels-left">
4120 <table class="memname">
4121 <tr>
4122 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202">BilinearInterpolation</a></td>
4123 </tr>
4124 </table>
4125 </td>
4126 <td class="mlabels-right">
4127<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4128 </tr>
4129</table>
4130</div><div class="memdoc">
4131
4132<p>Bilinear Interpolation method used by LKTracker. </p>
4133<table class="fieldtable">
4134<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">
4135</td></tr>
4136<tr><td class="fieldname"><a class="anchor" id="a2d8a00f1d80a53ce8f75fa929c873202a731cb35d2d520920db9ab20dfc5edc64"></a>BILINEAR_SCHARR&#160;</td><td class="fielddoc">
4137</td></tr>
4138</table>
4139
Anthony Barbierdbdab852017-06-23 15:42:00 +01004140<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00219">219</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4141<div class="fragment"><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;{</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202a856d68c521c4c85363f54d95a33b7532">BILINEAR_OLD_NEW</a>,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a2d8a00f1d80a53ce8f75fa929c873202a731cb35d2d520920db9ab20dfc5edc64">BILINEAR_SCHARR</a></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</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 +00004142<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>
4143</div><!-- fragment -->
4144</div>
4145</div>
4146<a class="anchor" id="a15a05537a472ee742404821851529327"></a>
4147<div class="memitem">
4148<div class="memproto">
4149<table class="mlabels">
4150 <tr>
4151 <td class="mlabels-left">
4152 <table class="memname">
4153 <tr>
4154 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a></td>
4155 </tr>
4156 </table>
4157 </td>
4158 <td class="mlabels-right">
4159<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4160 </tr>
4161</table>
4162</div><div class="memdoc">
4163
4164<p>Methods available to handle borders. </p>
4165<table class="fieldtable">
4166<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3"></a>UNDEFINED&#160;</td><td class="fielddoc">
4167<p>Borders are left undefined. </p>
4168</td></tr>
4169<tr><td class="fieldname"><a class="anchor" id="a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92"></a>CONSTANT&#160;</td><td class="fielddoc">
4170<p>Pixels outside the image are assumed to have a constant value. </p>
4171</td></tr>
4172<tr><td class="fieldname"><a class="anchor" id="a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa"></a>REPLICATE&#160;</td><td class="fielddoc">
4173<p>Pixels outside the image are assumed to have the same value as the closest image pixel. </p>
4174</td></tr>
4175</table>
4176
Anthony Barbierdbdab852017-06-23 15:42:00 +01004177<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00123">123</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4178<div class="fragment"><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; <a class="code" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a0db45d2a4141101bdfe48e3314cfbca3">UNDEFINED</a>, </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a8d6b5cada83510220f59e00ce86d4d92">CONSTANT</a>, </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327a4ef59320fbe90fe47d40f1f71e4c5daa">REPLICATE</a> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</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 +00004179<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>
4180<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>
4181</div><!-- fragment -->
4182</div>
4183</div>
4184<a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455a"></a>
4185<div class="memitem">
4186<div class="memproto">
4187<table class="mlabels">
4188 <tr>
4189 <td class="mlabels-left">
4190 <table class="memname">
4191 <tr>
4192 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a></td>
4193 </tr>
4194 </table>
4195 </td>
4196 <td class="mlabels-right">
4197<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4198 </tr>
4199</table>
4200</div><div class="memdoc">
4201
4202<p>Available channels. </p>
4203<table class="fieldtable">
4204<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa696b031073e74bf2cb98e5ef201d4aa3"></a>UNKNOWN&#160;</td><td class="fielddoc">
4205</td></tr>
4206<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa9c5959e6f08f10d0edbadf5be1f33c53"></a>C0&#160;</td><td class="fielddoc">
4207<p>Unknown channel format. </p>
4208<p>First channel (used by formats with unknown channel types). </p>
4209</td></tr>
4210<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa1a2ddc2db4693cfd16d534cde5572cc1"></a>C1&#160;</td><td class="fielddoc">
4211<p>Second channel (used by formats with unknown channel types). </p>
4212</td></tr>
4213<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aaf1a543f5a2c5d49bc5dde298fcf716e4"></a>C2&#160;</td><td class="fielddoc">
4214<p>Third channel (used by formats with unknown channel types). </p>
4215</td></tr>
4216<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa3abe124ecc82bf2c2e22e6058f38c50c"></a>C3&#160;</td><td class="fielddoc">
4217<p>Fourth channel (used by formats with unknown channel types). </p>
4218</td></tr>
4219<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6"></a>R&#160;</td><td class="fielddoc">
4220<p>Red channel. </p>
4221</td></tr>
4222<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf"></a>G&#160;</td><td class="fielddoc">
4223<p>Green channel. </p>
4224</td></tr>
4225<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571"></a>B&#160;</td><td class="fielddoc">
4226<p>Blue channel. </p>
4227</td></tr>
4228<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29"></a>A&#160;</td><td class="fielddoc">
4229<p>Alpha channel. </p>
4230</td></tr>
4231<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0"></a>Y&#160;</td><td class="fielddoc">
4232<p>Luma channel. </p>
4233</td></tr>
4234<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb"></a>U&#160;</td><td class="fielddoc">
4235<p>Cb/U channel. </p>
4236</td></tr>
4237<tr><td class="fieldname"><a class="anchor" id="a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce"></a>V&#160;</td><td class="fielddoc">
4238<p>Cr/V/Value channel. </p>
4239</td></tr>
4240</table>
4241
Anthony Barbierdbdab852017-06-23 15:42:00 +01004242<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00304">304</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4243<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; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>, </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9c5959e6f08f10d0edbadf5be1f33c53">C0</a>, </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa1a2ddc2db4693cfd16d534cde5572cc1">C1</a>, </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aaf1a543f5a2c5d49bc5dde298fcf716e4">C2</a>, </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa3abe124ecc82bf2c2e22e6058f38c50c">C3</a>, </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6">R</a>, </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf">G</a>, </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>, </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">Y</a>, </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>, </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a> </div><div class="line"><a name="l00318"></a><span class="lineno"> 318</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 +00004244<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>
4245<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>
4246<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>
4247<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>
4248<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">arm_compute::Format::UNKNOWN</a></div></div>
4249<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>
4250<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>
4251<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>
4252<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>
4253<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>
4254<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>
4255</div><!-- fragment -->
4256</div>
4257</div>
4258<a class="anchor" id="a82b8ac759c804bc1fb4e2d21e178fb6f"></a>
4259<div class="memitem">
4260<div class="memproto">
4261<table class="mlabels">
4262 <tr>
4263 <td class="mlabels-left">
4264 <table class="memname">
4265 <tr>
4266 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a></td>
4267 </tr>
4268 </table>
4269 </td>
4270 <td class="mlabels-right">
4271<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4272 </tr>
4273</table>
4274</div><div class="memdoc">
4275
4276<p>Policy to handle overflow. </p>
4277<table class="fieldtable">
4278<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0"></a>WRAP&#160;</td><td class="fielddoc">
4279<p>Wrap around. </p>
4280</td></tr>
4281<tr><td class="fieldname"><a class="anchor" id="a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86"></a>SATURATE&#160;</td><td class="fielddoc">
4282<p>Saturate. </p>
4283</td></tr>
4284</table>
4285
Anthony Barbierdbdab852017-06-23 15:42:00 +01004286<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00204">204</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4287<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; <a class="code" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0">WRAP</a>, </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fa4729d95f983955f0d93a30179deb2b86">SATURATE</a> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</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 +00004288<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>
4289</div><!-- fragment -->
4290</div>
4291</div>
4292<a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6"></a>
4293<div class="memitem">
4294<div class="memproto">
4295<table class="mlabels">
4296 <tr>
4297 <td class="mlabels-left">
4298 <table class="memname">
4299 <tr>
4300 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a></td>
4301 </tr>
4302 </table>
4303 </td>
4304 <td class="mlabels-right">
4305<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4306 </tr>
4307</table>
4308</div><div class="memdoc">
4309
4310<p>Available data types. </p>
4311<table class="fieldtable">
4312<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a696b031073e74bf2cb98e5ef201d4aa3"></a>UNKNOWN&#160;</td><td class="fielddoc">
4313</td></tr>
4314<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a6669348b484e3008dca2bfa8e85e40b5"></a>U8&#160;</td><td class="fielddoc">
4315</td></tr>
4316<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975"></a>S8&#160;</td><td class="fielddoc">
4317</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01004318<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543"></a>QS8&#160;</td><td class="fielddoc">
4319</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00004320<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6aef9ef3ebca4d2b64b6ec83808bafa5f2"></a>U16&#160;</td><td class="fielddoc">
4321</td></tr>
4322<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a6e0b0886efb94aec797f6b830329b72c"></a>S16&#160;</td><td class="fielddoc">
4323</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01004324<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9"></a>QS16&#160;</td><td class="fielddoc">
4325</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00004326<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6ac8bd5bedff8ef192d39a962afc0e19ee"></a>U32&#160;</td><td class="fielddoc">
4327</td></tr>
4328<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6aa1e28eee0339658d39a8b4d325b56e9c"></a>S32&#160;</td><td class="fielddoc">
4329</td></tr>
4330<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa"></a>U64&#160;</td><td class="fielddoc">
4331</td></tr>
4332<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc"></a>S64&#160;</td><td class="fielddoc">
4333</td></tr>
4334<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a56d8353718e6fdc78b8d69078a2cdb94"></a>F16&#160;</td><td class="fielddoc">
4335</td></tr>
4336<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a44ad4ef5a76e6aa6fb3e3fa079a54fda"></a>F32&#160;</td><td class="fielddoc">
4337</td></tr>
4338<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e"></a>F64&#160;</td><td class="fielddoc">
4339</td></tr>
4340<tr><td class="fieldname"><a class="anchor" id="ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1"></a>SIZET&#160;</td><td class="fielddoc">
4341</td></tr>
4342</table>
4343
Anthony Barbierdbdab852017-06-23 15:42:00 +01004344<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00060">60</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4345<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="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">S8</a>,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">U64</a>,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">S64</a>,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">F64</a>,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">SIZET</a></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</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>
4346<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">arm_compute::DataType::QS8</a></div></div>
4347<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">Unknown image format. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00004348<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 F16 per channel </div></div>
4349<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 S16 per channel </div></div>
4350<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">arm_compute::Format::UNKNOWN</a></div></div>
4351<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 U32 per channel </div></div>
4352<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 U16 per channel </div></div>
4353<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">arm_compute::DataType::S64</a></div></div>
4354<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">arm_compute::DataType::SIZET</a></div></div>
4355<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 S32 per channel </div></div>
4356<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 U8 per channel </div></div>
4357<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">arm_compute::DataType::F64</a></div></div>
4358<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">arm_compute::DataType::U64</a></div></div>
4359<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">arm_compute::DataType::S8</a></div></div>
4360</div><!-- fragment -->
4361</div>
4362</div>
4363<a class="anchor" id="a1fece1bd804e64f39f602d1c3969849a"></a>
4364<div class="memitem">
4365<div class="memproto">
4366<table class="mlabels">
4367 <tr>
4368 <td class="mlabels-left">
4369 <table class="memname">
4370 <tr>
4371 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849a">DimensionRoundingType</a></td>
4372 </tr>
4373 </table>
4374 </td>
4375 <td class="mlabels-right">
4376<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4377 </tr>
4378</table>
4379</div><div class="memdoc">
4380
4381<p>Dimension rounding type when down-scaling on CNNs. </p>
4382<dl class="section note"><dt>Note</dt><dd>Used in pooling and convolution layer </dd></dl>
4383<table class="fieldtable">
4384<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a1fece1bd804e64f39f602d1c3969849aa56c1e354d36beb85b0d881c5b2e24cbe"></a>FLOOR&#160;</td><td class="fielddoc">
4385<p>Floor rounding. </p>
4386</td></tr>
4387<tr><td class="fieldname"><a class="anchor" id="a1fece1bd804e64f39f602d1c3969849aa5bdce8e6d9dc3efbbd31e90a8a181dff"></a>CEIL&#160;</td><td class="fielddoc">
4388<p>Ceil rounding. </p>
4389</td></tr>
4390</table>
4391
Anthony Barbierdbdab852017-06-23 15:42:00 +01004392<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00372">372</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4393<div class="fragment"><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; <a class="code" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa56c1e354d36beb85b0d881c5b2e24cbe">FLOOR</a>, </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa5bdce8e6d9dc3efbbd31e90a8a181dff">CEIL</a> </div><div class="line"><a name="l00376"></a><span class="lineno"> 376</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 +00004394<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>
4395</div><!-- fragment -->
4396</div>
4397</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01004398<a class="anchor" id="afa20b6a7f4383003babd690f026f22dc"></a>
4399<div class="memitem">
4400<div class="memproto">
4401<table class="mlabels">
4402 <tr>
4403 <td class="mlabels-left">
4404 <table class="memname">
4405 <tr>
4406 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dc">FixedPointOp</a></td>
4407 </tr>
4408 </table>
4409 </td>
4410 <td class="mlabels-right">
4411<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4412 </tr>
4413</table>
4414</div><div class="memdoc">
4415
4416<p>Fixed point operation. </p>
4417<table class="fieldtable">
4418<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7"></a>EXP&#160;</td><td class="fielddoc">
4419<p>Exponential. </p>
4420</td></tr>
4421<tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3"></a>LOG&#160;</td><td class="fielddoc">
4422<p>Logarithm. </p>
4423</td></tr>
4424<tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b"></a>INV_SQRT&#160;</td><td class="fielddoc">
4425<p>Inverse square root. </p>
4426</td></tr>
4427<tr><td class="fieldname"><a class="anchor" id="afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1"></a>RECIPROCAL&#160;</td><td class="fielddoc">
4428<p>Reciprocal. </p>
4429</td></tr>
4430</table>
4431
4432<p>Definition at line <a class="el" href="tests_2_types_8h_source.xhtml#l00029">29</a> of file <a class="el" href="tests_2_types_8h_source.xhtml">Types.h</a>.</p>
4433<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; <a class="code" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca8c670f8c37b95e1ed14a0ce414b049c7">EXP</a>, </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4b5ffcdaf38ce4d463171f5c977c5ab3">LOG</a>, </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca59c58364795af22cad54630be156712b">INV_SQRT</a>, </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afa20b6a7f4383003babd690f026f22dca4d98346f3d5cc5fa5666f0715abf25b1">RECIPROCAL</a> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</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>
4434<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>
4435<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>
4436<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>
4437</div><!-- fragment -->
4438</div>
4439</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00004440<a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58"></a>
4441<div class="memitem">
4442<div class="memproto">
4443<table class="mlabels">
4444 <tr>
4445 <td class="mlabels-left">
4446 <table class="memname">
4447 <tr>
4448 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a></td>
4449 </tr>
4450 </table>
4451 </td>
4452 <td class="mlabels-right">
4453<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4454 </tr>
4455</table>
4456</div><div class="memdoc">
4457
4458<p><a class="el" href="struct_image.xhtml" title="Structure to hold Image information. ">Image</a> colour formats. </p>
4459<table class="fieldtable">
4460<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3"></a>UNKNOWN&#160;</td><td class="fielddoc">
4461</td></tr>
4462<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5"></a>U8&#160;</td><td class="fielddoc">
4463<p>Unknown image format. </p>
4464</td></tr>
4465<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c"></a>S16&#160;</td><td class="fielddoc">
4466<p>1 channel, 1 U8 per channel </p>
4467</td></tr>
4468<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2"></a>U16&#160;</td><td class="fielddoc">
4469<p>1 channel, 1 S16 per channel </p>
4470</td></tr>
4471<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c"></a>S32&#160;</td><td class="fielddoc">
4472<p>1 channel, 1 U16 per channel </p>
4473</td></tr>
4474<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee"></a>U32&#160;</td><td class="fielddoc">
4475<p>1 channel, 1 S32 per channel </p>
4476</td></tr>
4477<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94"></a>F16&#160;</td><td class="fielddoc">
4478<p>1 channel, 1 U32 per channel </p>
4479</td></tr>
4480<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda"></a>F32&#160;</td><td class="fielddoc">
4481<p>1 channel, 1 F16 per channel </p>
4482</td></tr>
4483<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825"></a>UV88&#160;</td><td class="fielddoc">
4484<p>1 channel, 1 F32 per channel </p>
4485</td></tr>
4486<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0"></a>RGB888&#160;</td><td class="fielddoc">
4487<p>2 channel, 1 U8 per channel </p>
4488</td></tr>
4489<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619"></a>RGBA8888&#160;</td><td class="fielddoc">
4490<p>3 channels, 1 U8 per channel </p>
4491</td></tr>
4492<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c"></a>YUV444&#160;</td><td class="fielddoc">
4493<p>4 channels, 1 U8 per channel </p>
4494</td></tr>
4495<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164"></a>YUYV422&#160;</td><td class="fielddoc">
4496<p>A 3 plane of 8 bit 4:4:4 sampled Y, U, V planes. </p>
4497</td></tr>
4498<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755"></a>NV12&#160;</td><td class="fielddoc">
4499<p>A single plane of 32-bit macro pixel of Y0, U0, Y1, V0 bytes. </p>
4500</td></tr>
4501<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4"></a>NV21&#160;</td><td class="fielddoc">
4502<p>A 2 plane YUV format of Luma (Y) and interleaved UV data at 4:2:0 sampling. </p>
4503</td></tr>
4504<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778"></a>IYUV&#160;</td><td class="fielddoc">
4505<p>A 2 plane YUV format of Luma (Y) and interleaved VU data at 4:2:0 sampling. </p>
4506</td></tr>
4507<tr><td class="fieldname"><a class="anchor" id="ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa"></a>UYVY422&#160;</td><td class="fielddoc">
4508<p>A 3 plane of 8-bit 4:2:0 sampled Y, U, V planes. </p>
4509<p>A single plane of 32-bit macro pixel of U0, Y0, V0, Y1 byte </p>
4510</td></tr>
4511</table>
4512
Anthony Barbierdbdab852017-06-23 15:42:00 +01004513<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00038">38</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
Anthony Barbier46d59272017-05-04 09:15:15 +01004514<div class="fragment"><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; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>, </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>, </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">S16</a>, </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>, </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">S32</a>, </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">U32</a>, </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">F16</a>, </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">F32</a>, </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a079eb95759d2ad31254f659d63651825">UV88</a>, </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">RGB888</a>, </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a165f06116e7b8d9b2481dfc805db4619">RGBA8888</a>, </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>, </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a481e7a6945eb9f23e87f2de780b2e164">YUYV422</a>, </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a202f5d8c2c70d31048154d8b8b28e755">NV12</a>, </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a8e9f6aa1af7e0abbc7e64521e6ffe1b4">NV21</a>, </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ab08f0cb36474118c5bbc03b3a172a778">IYUV</a>, </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58af557448a61ad2927194f63442e131dfa">UYVY422</a> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</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 3 plane of 8-bit 4:2:0 sampled Y, U, V planes. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00004515<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">Unknown image format. </div></div>
4516<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 F16 per channel </div></div>
4517<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 single plane of 32-bit macro pixel of Y0, U0, Y1, V0 bytes. </div></div>
4518<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 S16 per channel </div></div>
4519<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">arm_compute::Format::UNKNOWN</a></div></div>
4520<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 UV data at 4:2:0 sampling. </div></div>
4521<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 U32 per channel </div></div>
4522<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 U16 per channel </div></div>
4523<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">2 channel, 1 U8 per channel </div></div>
4524<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 S32 per channel </div></div>
4525<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">4 channels, 1 U8 per channel </div></div>
4526<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 U8 per channel </div></div>
4527<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 2 plane YUV format of Luma (Y) and interleaved VU data at 4:2:0 sampling. </div></div>
4528<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">3 channels, 1 U8 per channel </div></div>
4529<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">1 channel, 1 F32 per channel </div></div>
4530<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 3 plane of 8 bit 4:4:4 sampled Y, U, V planes. </div></div>
4531</div><!-- fragment -->
4532</div>
4533</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01004534<a class="anchor" id="a735ac6c2a02e320969625308810444f3"></a>
4535<div class="memitem">
4536<div class="memproto">
4537<table class="mlabels">
4538 <tr>
4539 <td class="mlabels-left">
4540 <table class="memname">
4541 <tr>
4542 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a></td>
4543 </tr>
4544 </table>
4545 </td>
4546 <td class="mlabels-right">
4547<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4548 </tr>
4549</table>
4550</div><div class="memdoc">
4551
4552<p>Available GPU Targets. </p>
4553<table class="fieldtable">
4554<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">
4555</td></tr>
4556<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38"></a>MIDGARD&#160;</td><td class="fielddoc">
4557</td></tr>
4558<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e"></a>BIFROST&#160;</td><td class="fielddoc">
4559</td></tr>
4560<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673"></a>T600&#160;</td><td class="fielddoc">
4561</td></tr>
4562<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd"></a>T700&#160;</td><td class="fielddoc">
4563</td></tr>
4564<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048"></a>T800&#160;</td><td class="fielddoc">
4565</td></tr>
4566<tr><td class="fieldname"><a class="anchor" id="a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298"></a>G70&#160;</td><td class="fielddoc">
4567</td></tr>
4568</table>
4569
4570<p>Definition at line <a class="el" href="_c_l_types_8h_source.xhtml#l00030">30</a> of file <a class="el" href="_c_l_types_8h_source.xhtml">CLTypes.h</a>.</p>
4571<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#a735ac6c2a02e320969625308810444f3a57a3b40730a5af7ea3e13eb4bba56d82">GPU_ARCH_MASK</a> = 0xF00,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">MIDGARD</a> = 0x100,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e">BIFROST</a> = 0x200,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">T600</a> = 0x110,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd">T700</a> = 0x120,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">T800</a> = 0x130,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298">G70</a> = 0x210</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</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>
4572<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">arm_compute::GPUTarget::T800</a></div></div>
4573<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>
4574<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">arm_compute::GPUTarget::T600</a></div></div>
4575<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a0a91b0ff027767625b7d1a924e10c298">arm_compute::GPUTarget::G70</a></div></div>
4576<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">arm_compute::GPUTarget::MIDGARD</a></div></div>
4577<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aa78cc0fd1cab24af0fad71dc4c256f8e">arm_compute::GPUTarget::BIFROST</a></div></div>
4578</div><!-- fragment -->
4579</div>
4580</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00004581<a class="anchor" id="a673665b4587a2956fcbad5f0e9ba89d3"></a>
4582<div class="memitem">
4583<div class="memproto">
4584<table class="mlabels">
4585 <tr>
4586 <td class="mlabels-left">
4587 <table class="memname">
4588 <tr>
4589 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3">HOGNormType</a></td>
4590 </tr>
4591 </table>
4592 </td>
4593 <td class="mlabels-right">
4594<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4595 </tr>
4596</table>
4597</div><div class="memdoc">
4598
4599<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>
4600<table class="fieldtable">
4601<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a673665b4587a2956fcbad5f0e9ba89d3a80485e54c7a3c93a0f74637c6b918ce5"></a>L2_NORM&#160;</td><td class="fielddoc">
4602<p>L2-norm. </p>
4603</td></tr>
4604<tr><td class="fieldname"><a class="anchor" id="a673665b4587a2956fcbad5f0e9ba89d3ac9e68c0594494ec85805b225a7acb9c2"></a>L2HYS_NORM&#160;</td><td class="fielddoc">
4605<p>L2-norm followed by clipping. </p>
4606</td></tr>
4607<tr><td class="fieldname"><a class="anchor" id="a673665b4587a2956fcbad5f0e9ba89d3a68616ae21712c00705b962f4eff06eaa"></a>L1_NORM&#160;</td><td class="fielddoc">
4608<p>L1 norm. </p>
4609</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00004610</table>
4611
Anthony Barbierdbdab852017-06-23 15:42:00 +01004612<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00346">346</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4613<div class="fragment"><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a80485e54c7a3c93a0f74637c6b918ce5">L2_NORM</a> = 1, </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3ac9e68c0594494ec85805b225a7acb9c2">L2HYS_NORM</a> = 2, </div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a673665b4587a2956fcbad5f0e9ba89d3a68616ae21712c00705b962f4eff06eaa">L1_NORM</a> = 3 </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</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 +00004614<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>
4615<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 +00004616</div><!-- fragment -->
4617</div>
4618</div>
4619<a class="anchor" id="a966a9c417ce5e94dca08d9b5e745c0c9"></a>
4620<div class="memitem">
4621<div class="memproto">
4622<table class="mlabels">
4623 <tr>
4624 <td class="mlabels-left">
4625 <table class="memname">
4626 <tr>
4627 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a></td>
4628 </tr>
4629 </table>
4630 </td>
4631 <td class="mlabels-right">
4632<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4633 </tr>
4634</table>
4635</div><div class="memdoc">
4636
4637<p>Interpolation method. </p>
4638<table class="fieldtable">
4639<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2"></a>NEAREST_NEIGHBOR&#160;</td><td class="fielddoc">
4640<p>Output values are defined to match the source pixel whose center is nearest to the sample position. </p>
4641</td></tr>
4642<tr><td class="fieldname"><a class="anchor" id="a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65"></a>BILINEAR&#160;</td><td class="fielddoc">
4643<p>Output values are defined by bilinear interpolation between the pixels. </p>
4644</td></tr>
4645<tr><td class="fieldname"><a class="anchor" id="a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4"></a>AREA&#160;</td><td class="fielddoc">
4646<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>
4647</td></tr>
4648</table>
4649
Anthony Barbierdbdab852017-06-23 15:42:00 +01004650<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00211">211</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4651<div class="fragment"><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; <a class="code" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a7f5ccbc3d30c2cd3fd04d567946cbde2">NEAREST_NEIGHBOR</a>, </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9aad6fddf718ad19b063e02fdd7e8e3e65">BILINEAR</a>, </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">AREA</a>, </div><div class="line"><a name="l00216"></a><span class="lineno"> 216</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 +00004652<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>
4653<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>
4654</div><!-- fragment -->
4655</div>
4656</div>
4657<a class="anchor" id="a7b3ec6413f000b02fdb4e39a951d9f8a"></a>
4658<div class="memitem">
4659<div class="memproto">
4660<table class="mlabels">
4661 <tr>
4662 <td class="mlabels-left">
4663 <table class="memname">
4664 <tr>
4665 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8a">MagnitudeType</a></td>
4666 </tr>
4667 </table>
4668 </td>
4669 <td class="mlabels-right">
4670<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4671 </tr>
4672</table>
4673</div><div class="memdoc">
4674
4675<p>Magnitude calculation type. </p>
4676<table class="fieldtable">
4677<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a7b3ec6413f000b02fdb4e39a951d9f8aac2f1be73bf576190d1f42bdaf5162ae8"></a>L1NORM&#160;</td><td class="fielddoc">
4678<p>L1 normalization type. </p>
4679</td></tr>
4680<tr><td class="fieldname"><a class="anchor" id="a7b3ec6413f000b02fdb4e39a951d9f8aad927ac799e8b24f80fc80d89b2eb7131"></a>L2NORM&#160;</td><td class="fielddoc">
4681<p>L2 normalization type. </p>
4682</td></tr>
4683</table>
4684
Anthony Barbierdbdab852017-06-23 15:42:00 +01004685<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00249">249</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4686<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; <a class="code" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aac2f1be73bf576190d1f42bdaf5162ae8">L1NORM</a>, </div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a7b3ec6413f000b02fdb4e39a951d9f8aad927ac799e8b24f80fc80d89b2eb7131">L2NORM</a> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</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 +00004687<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>
4688</div><!-- fragment -->
4689</div>
4690</div>
4691<a class="anchor" id="afdda916edc7502967bbec17ea3c06c02"></a>
4692<div class="memitem">
4693<div class="memproto">
4694<table class="mlabels">
4695 <tr>
4696 <td class="mlabels-left">
4697 <table class="memname">
4698 <tr>
4699 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a></td>
4700 </tr>
4701 </table>
4702 </td>
4703 <td class="mlabels-right">
4704<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4705 </tr>
4706</table>
4707</div><div class="memdoc">
4708
4709<p>Available matrix patterns. </p>
4710<table class="fieldtable">
4711<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="afdda916edc7502967bbec17ea3c06c02ae657cce1913c857166b0475f18668ef5"></a>BOX&#160;</td><td class="fielddoc">
4712<p>Box pattern matrix. </p>
4713</td></tr>
4714<tr><td class="fieldname"><a class="anchor" id="afdda916edc7502967bbec17ea3c06c02a04dd53a8e6c2306e9bbf944c1d6047f2"></a>CROSS&#160;</td><td class="fielddoc">
4715<p>Cross pattern matrix. </p>
4716</td></tr>
4717<tr><td class="fieldname"><a class="anchor" id="afdda916edc7502967bbec17ea3c06c02a290d4b81f4e2b47d86fd1b0170e9aab7"></a>DISK&#160;</td><td class="fielddoc">
4718<p>Disk pattern matrix. </p>
4719</td></tr>
4720<tr><td class="fieldname"><a class="anchor" id="afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb"></a>OTHER&#160;</td><td class="fielddoc">
4721<p>Any other matrix pattern. </p>
4722</td></tr>
4723</table>
4724
Anthony Barbierdbdab852017-06-23 15:42:00 +01004725<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00321">321</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4726<div class="fragment"><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; <a class="code" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02ae657cce1913c857166b0475f18668ef5">BOX</a>, </div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a04dd53a8e6c2306e9bbf944c1d6047f2">CROSS</a>, </div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a290d4b81f4e2b47d86fd1b0170e9aab7">DISK</a>, </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02a03570470bad94692ce93e32700d2e1cb">OTHER</a> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</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 +00004727<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>
4728<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>
4729<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>
4730</div><!-- fragment -->
4731</div>
4732</div>
4733<a class="anchor" id="adf2ced65e536375a1c96425d9fced858"></a>
4734<div class="memitem">
4735<div class="memproto">
4736<table class="mlabels">
4737 <tr>
4738 <td class="mlabels-left">
4739 <table class="memname">
4740 <tr>
4741 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a> : unsigned</td>
4742 </tr>
4743 </table>
4744 </td>
4745 <td class="mlabels-right">
4746<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4747 </tr>
4748</table>
4749</div><div class="memdoc">
4750
4751<p>Available non linear functions. </p>
4752<table class="fieldtable">
4753<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="adf2ced65e536375a1c96425d9fced858a8ab0c3a037e882577dec378985477074"></a>MEDIAN&#160;</td><td class="fielddoc">
4754<p>Non linear median filter. </p>
4755</td></tr>
4756<tr><td class="fieldname"><a class="anchor" id="adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653"></a>MIN&#160;</td><td class="fielddoc">
4757<p>Non linear erode. </p>
4758</td></tr>
4759<tr><td class="fieldname"><a class="anchor" id="adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5"></a>MAX&#160;</td><td class="fielddoc">
4760<p>Non linear dilate. </p>
4761</td></tr>
4762</table>
4763
Anthony Barbierdbdab852017-06-23 15:42:00 +01004764<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00330">330</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4765<div class="fragment"><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; : <span class="keywordtype">unsigned</span></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; <a class="code" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a8ab0c3a037e882577dec378985477074">MEDIAN</a> = 0, </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858ace31e2a082d17e038fcc6e3006166653">MIN</a> = 1, </div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">MAX</a> = 2, </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</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 +00004766<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>
4767<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>
4768</div><!-- fragment -->
4769</div>
4770</div>
4771<a class="anchor" id="ad4bb8dabdbf8ad75e34220cc666b59ca"></a>
4772<div class="memitem">
4773<div class="memproto">
4774<table class="mlabels">
4775 <tr>
4776 <td class="mlabels-left">
4777 <table class="memname">
4778 <tr>
4779 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a></td>
4780 </tr>
4781 </table>
4782 </td>
4783 <td class="mlabels-right">
4784<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4785 </tr>
4786</table>
4787</div><div class="memdoc">
4788
4789<p>The normalization type used for the normalization layer. </p>
4790<table class="fieldtable">
Anthony Barbierdbdab852017-06-23 15:42:00 +01004791<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">
4792<p>Normalization applied within the same map in 1D region. </p>
4793</td></tr>
4794<tr><td class="fieldname"><a class="anchor" id="ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e"></a>IN_MAP_2D&#160;</td><td class="fielddoc">
4795<p>Normalization applied within the same map in 2D region. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004796</td></tr>
4797<tr><td class="fieldname"><a class="anchor" id="ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5"></a>CROSS_MAP&#160;</td><td class="fielddoc">
Anthony Barbierdbdab852017-06-23 15:42:00 +01004798<p>Normalization applied cross maps. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004799</td></tr>
4800</table>
4801
Anthony Barbierdbdab852017-06-23 15:42:00 +01004802<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00338">338</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4803<div class="fragment"><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; <a class="code" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caaca2475ab7883ebb9f125241141896190">IN_MAP_1D</a>, </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa6ff8bd96743aae9fd283cd822b84278e">IN_MAP_2D</a>, </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5">CROSS_MAP</a> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</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>
4804<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>
4805<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 +00004806</div><!-- fragment -->
4807</div>
4808</div>
4809<a class="anchor" id="af00a42ecad444bbda75cde1b64bd7e72"></a>
4810<div class="memitem">
4811<div class="memproto">
4812<table class="mlabels">
4813 <tr>
4814 <td class="mlabels-left">
4815 <table class="memname">
4816 <tr>
4817 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72">PhaseType</a></td>
4818 </tr>
4819 </table>
4820 </td>
4821 <td class="mlabels-right">
4822<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4823 </tr>
4824</table>
4825</div><div class="memdoc">
4826
4827<p>Phase calculation type. </p>
4828<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>
4829<table class="fieldtable">
4830<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="af00a42ecad444bbda75cde1b64bd7e72a6898b46a1cde8a1572e2722c44c5ab07"></a>SIGNED&#160;</td><td class="fielddoc">
4831<p>Angle range: [0, 360]. </p>
4832</td></tr>
4833<tr><td class="fieldname"><a class="anchor" id="af00a42ecad444bbda75cde1b64bd7e72aaf36b47f395cd01f48b8fc1013665054"></a>UNSIGNED&#160;</td><td class="fielddoc">
4834<p>Angle range: [0, 180]. </p>
4835</td></tr>
4836</table>
4837
Anthony Barbierdbdab852017-06-23 15:42:00 +01004838<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00259">259</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4839<div class="fragment"><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; <a class="code" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72a6898b46a1cde8a1572e2722c44c5ab07">SIGNED</a>, </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="namespacearm__compute.xhtml#af00a42ecad444bbda75cde1b64bd7e72aaf36b47f395cd01f48b8fc1013665054">UNSIGNED</a> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</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 +00004840<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>
4841</div><!-- fragment -->
4842</div>
4843</div>
4844<a class="anchor" id="a9172da722f0a434e5cc07c0a3c115d93"></a>
4845<div class="memitem">
4846<div class="memproto">
4847<table class="mlabels">
4848 <tr>
4849 <td class="mlabels-left">
4850 <table class="memname">
4851 <tr>
4852 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a></td>
4853 </tr>
4854 </table>
4855 </td>
4856 <td class="mlabels-right">
4857<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4858 </tr>
4859</table>
4860</div><div class="memdoc">
4861
4862<p>Available pooling types. </p>
4863<table class="fieldtable">
4864<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a9172da722f0a434e5cc07c0a3c115d93a26a4b44a837bf97b972628509912b4a5"></a>MAX&#160;</td><td class="fielddoc">
4865<p>Max Pooling. </p>
4866</td></tr>
4867<tr><td class="fieldname"><a class="anchor" id="a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a"></a>AVG&#160;</td><td class="fielddoc">
4868<p>Average Pooling. </p>
4869</td></tr>
4870</table>
4871
Anthony Barbierdbdab852017-06-23 15:42:00 +01004872<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00379">379</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4873<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; <a class="code" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">MAX</a>, </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a">AVG</a> </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;};</div><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 +00004874<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>
4875</div><!-- fragment -->
4876</div>
4877</div>
4878<a class="anchor" id="add6426cbf2e057a195846d4ba09a50be"></a>
4879<div class="memitem">
4880<div class="memproto">
4881<table class="mlabels">
4882 <tr>
4883 <td class="mlabels-left">
4884 <table class="memname">
4885 <tr>
4886 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a></td>
4887 </tr>
4888 </table>
4889 </td>
4890 <td class="mlabels-right">
4891<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4892 </tr>
4893</table>
4894</div><div class="memdoc">
4895
4896<p>Rounding method. </p>
4897<table class="fieldtable">
4898<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="add6426cbf2e057a195846d4ba09a50bea5631ad8e27788edfca7e13535d862c06"></a>TO_ZERO&#160;</td><td class="fielddoc">
4899<p>Truncates the least significand values that are lost in operations. </p>
4900</td></tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01004901<tr><td class="fieldname"><a class="anchor" id="add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95"></a>TO_NEAREST_UP&#160;</td><td class="fielddoc">
4902<p>Rounds to nearest value; half rounds up. </p>
4903</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00004904<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 +01004905<p>Rounds to nearest value; half rounds to nearest even. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00004906</td></tr>
4907</table>
4908
Anthony Barbierdbdab852017-06-23 15:42:00 +01004909<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00233">233</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4910<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; <a class="code" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea5631ad8e27788edfca7e13535d862c06">TO_ZERO</a>, </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea8c0084566b290fa9e5e429f4ae241f95">TO_NEAREST_UP</a>, </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50bea02ff1fff1812f84c89547fcd6c176150">TO_NEAREST_EVEN</a> </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</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 up. </div></div>
4911<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 +00004912<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>
4913</div><!-- fragment -->
4914</div>
4915</div>
4916<a class="anchor" id="a08c1503414e23f5dd10ff83492685453"></a>
4917<div class="memitem">
4918<div class="memproto">
4919<table class="mlabels">
4920 <tr>
4921 <td class="mlabels-left">
4922 <table class="memname">
4923 <tr>
4924 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453">Termination</a></td>
4925 </tr>
4926 </table>
4927 </td>
4928 <td class="mlabels-right">
4929<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4930 </tr>
4931</table>
4932</div><div class="memdoc">
4933
4934<p>Termination criteria. </p>
4935<table class="fieldtable">
4936<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">
4937</td></tr>
4938<tr><td class="fieldname"><a class="anchor" id="a08c1503414e23f5dd10ff83492685453a43f2a8b688fb96e5ad8ba08308bbcdfd"></a>TERM_CRITERIA_ITERATIONS&#160;</td><td class="fielddoc">
4939</td></tr>
4940<tr><td class="fieldname"><a class="anchor" id="a08c1503414e23f5dd10ff83492685453a788740b1ba2d6463dae318a332513b29"></a>TERM_CRITERIA_BOTH&#160;</td><td class="fielddoc">
4941</td></tr>
4942</table>
4943
Anthony Barbierdbdab852017-06-23 15:42:00 +01004944<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00241">241</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4945<div class="fragment"><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; <a class="code" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a5a2e12b6baf7ad91a2ce32f19c36bd1b">TERM_CRITERIA_EPSILON</a>,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a43f2a8b688fb96e5ad8ba08308bbcdfd">TERM_CRITERIA_ITERATIONS</a>,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a08c1503414e23f5dd10ff83492685453a788740b1ba2d6463dae318a332513b29">TERM_CRITERIA_BOTH</a></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</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 +00004946<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>
4947<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>
4948</div><!-- fragment -->
4949</div>
4950</div>
4951<a class="anchor" id="a3e6b23e675649b83240691abbc42a649"></a>
4952<div class="memitem">
4953<div class="memproto">
4954<table class="mlabels">
4955 <tr>
4956 <td class="mlabels-left">
4957 <table class="memname">
4958 <tr>
4959 <td class="memname">enum <a class="el" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649">ThresholdType</a></td>
4960 </tr>
4961 </table>
4962 </td>
4963 <td class="mlabels-right">
4964<span class="mlabels"><span class="mlabel">strong</span></span> </td>
4965 </tr>
4966</table>
4967</div><div class="memdoc">
4968
4969<p>Threshold mode. </p>
4970<table class="fieldtable">
4971<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a3e6b23e675649b83240691abbc42a649a98ad0e8750ae10ad556ed7a62affb452"></a>BINARY&#160;</td><td class="fielddoc">
4972<p>Threshold with one value. </p>
4973</td></tr>
4974<tr><td class="fieldname"><a class="anchor" id="a3e6b23e675649b83240691abbc42a649a01036ddcc971d02f6c32c3da31a119f2"></a>RANGE&#160;</td><td class="fielddoc">
4975<p>Threshold with two values. </p>
4976</td></tr>
4977</table>
4978
Anthony Barbierdbdab852017-06-23 15:42:00 +01004979<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00226">226</a> of file <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">Types.h</a>.</p>
4980<div class="fragment"><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;{</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a98ad0e8750ae10ad556ed7a62affb452">BINARY</a>, </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a3e6b23e675649b83240691abbc42a649a01036ddcc971d02f6c32c3da31a119f2">RANGE</a> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</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 +00004981<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>
4982</div><!-- fragment -->
4983</div>
4984</div>
4985<h2 class="groupheader">Function Documentation</h2>
4986<a class="anchor" id="a41c1523098580451b378f76b8c37a0f0"></a>
4987<div class="memitem">
4988<div class="memproto">
4989<table class="mlabels">
4990 <tr>
4991 <td class="mlabels-left">
4992 <table class="memname">
4993 <tr>
4994 <td class="memname">int arm_compute::adjust_down </td>
4995 <td>(</td>
4996 <td class="paramtype">int&#160;</td>
4997 <td class="paramname"><em>required</em>, </td>
4998 </tr>
4999 <tr>
5000 <td class="paramkey"></td>
5001 <td></td>
5002 <td class="paramtype">int&#160;</td>
5003 <td class="paramname"><em>available</em>, </td>
5004 </tr>
5005 <tr>
5006 <td class="paramkey"></td>
5007 <td></td>
5008 <td class="paramtype">int&#160;</td>
5009 <td class="paramname"><em>step</em>&#160;</td>
5010 </tr>
5011 <tr>
5012 <td></td>
5013 <td>)</td>
5014 <td></td><td></td>
5015 </tr>
5016 </table>
5017 </td>
5018 <td class="mlabels-right">
5019<span class="mlabels"><span class="mlabel">inline</span></span> </td>
5020 </tr>
5021</table>
5022</div><div class="memdoc">
5023
5024<p>Decrease <code>required</code> in steps of <code>step</code> until it's less than <code>available</code>. </p>
5025<dl class="params"><dt>Parameters</dt><dd>
5026 <table class="params">
5027 <tr><td class="paramdir">[in]</td><td class="paramname">required</td><td>Number of required bytes. </td></tr>
5028 <tr><td class="paramdir">[in]</td><td class="paramname">available</td><td>Number of available bytes. </td></tr>
5029 <tr><td class="paramdir">[in]</td><td class="paramname">step</td><td>Step size used to decrease required bytes.</td></tr>
5030 </table>
5031 </dd>
5032</dl>
5033<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>
5034
5035<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>
5036
Anthony Barbierdbdab852017-06-23 15:42:00 +01005037<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>.</p>
5038<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="_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> required - step * ((required - available + step - 1) / step);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005039</div><!-- fragment -->
5040</div>
5041</div>
5042<a class="anchor" id="ab16fcfbfc3ee6dbc0c112f0bc9b3d9c2"></a>
5043<div class="memitem">
5044<div class="memproto">
5045<table class="mlabels">
5046 <tr>
5047 <td class="mlabels-left">
5048 <table class="memname">
5049 <tr>
5050 <td class="memname">int arm_compute::adjust_up </td>
5051 <td>(</td>
5052 <td class="paramtype">int&#160;</td>
5053 <td class="paramname"><em>required</em>, </td>
5054 </tr>
5055 <tr>
5056 <td class="paramkey"></td>
5057 <td></td>
5058 <td class="paramtype">int&#160;</td>
5059 <td class="paramname"><em>available</em>, </td>
5060 </tr>
5061 <tr>
5062 <td class="paramkey"></td>
5063 <td></td>
5064 <td class="paramtype">int&#160;</td>
5065 <td class="paramname"><em>step</em>&#160;</td>
5066 </tr>
5067 <tr>
5068 <td></td>
5069 <td>)</td>
5070 <td></td><td></td>
5071 </tr>
5072 </table>
5073 </td>
5074 <td class="mlabels-right">
5075<span class="mlabels"><span class="mlabel">inline</span></span> </td>
5076 </tr>
5077</table>
5078</div><div class="memdoc">
5079
5080<p>Increase <code>required</code> in steps of <code>step</code> until it's greater than <code>available</code>. </p>
5081<dl class="params"><dt>Parameters</dt><dd>
5082 <table class="params">
5083 <tr><td class="paramdir">[in]</td><td class="paramname">required</td><td>Number of required bytes. </td></tr>
5084 <tr><td class="paramdir">[in]</td><td class="paramname">available</td><td>Number of available bytes. </td></tr>
5085 <tr><td class="paramdir">[in]</td><td class="paramname">step</td><td>Step size used to increase required bytes.</td></tr>
5086 </table>
5087 </dd>
5088</dl>
5089<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>
5090
5091<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>
5092
Anthony Barbierdbdab852017-06-23 15:42:00 +01005093<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>.</p>
5094<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="_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> required + step * ((available - required + step - 1) / step);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005095</div><!-- fragment -->
5096</div>
5097</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005098<a class="anchor" id="a1c9627ac3d73a67e9312c2c9740ff0a3"></a>
5099<div class="memitem">
5100<div class="memproto">
5101<table class="mlabels">
5102 <tr>
5103 <td class="mlabels-left">
5104 <table class="memname">
5105 <tr>
5106 <td class="memname">bool auto_init_if_empty </td>
5107 <td>(</td>
5108 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
5109 <td class="paramname"><em>info</em>, </td>
5110 </tr>
5111 <tr>
5112 <td class="paramkey"></td>
5113 <td></td>
5114 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
5115 <td class="paramname"><em>shape</em>, </td>
5116 </tr>
5117 <tr>
5118 <td class="paramkey"></td>
5119 <td></td>
5120 <td class="paramtype">int&#160;</td>
5121 <td class="paramname"><em>num_channels</em>, </td>
5122 </tr>
5123 <tr>
5124 <td class="paramkey"></td>
5125 <td></td>
5126 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
5127 <td class="paramname"><em>data_type</em>, </td>
5128 </tr>
5129 <tr>
5130 <td class="paramkey"></td>
5131 <td></td>
5132 <td class="paramtype">int&#160;</td>
5133 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
5134 </tr>
5135 <tr>
5136 <td></td>
5137 <td>)</td>
5138 <td></td><td></td>
5139 </tr>
5140 </table>
5141 </td>
5142 <td class="mlabels-right">
5143<span class="mlabels"><span class="mlabel">inline</span></span> </td>
5144 </tr>
5145</table>
5146</div><div class="memdoc">
5147
5148<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00249">249</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
5149
5150<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a4b622a0346ec30baf0b9a387e00c9ace">ITensorInfo::set_data_type()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#aec2c125ece3cc6593a0be7f1fef3d97f">ITensorInfo::set_fixed_point_position()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ae05139a48d9360e44f5ef2eef64b23ec">ITensorInfo::set_num_channels()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a40deec9ef7e7c892bef6b11b4d81c38e">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#l00106">TensorShape::total_size()</a>.</p>
5151
5152<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00449">compute_strides()</a>.</p>
5153<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="keywordflow">if</span>(info.tensor_shape().total_size() == 0)</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; info.set_data_type(data_type);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; info.set_tensor_shape(shape);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; info.set_num_channels(num_channels);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; info.set_fixed_point_position(fixed_point_position);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;}</div></div><!-- fragment -->
5154</div>
5155</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005156<a class="anchor" id="a64c17a5a42d2499a1626222ff9753b4d"></a>
5157<div class="memitem">
5158<div class="memproto">
5159 <table class="memname">
5160 <tr>
5161 <td class="memname">std::string arm_compute::build_information </td>
5162 <td>(</td>
5163 <td class="paramname"></td><td>)</td>
5164 <td></td>
5165 </tr>
5166 </table>
5167</div><div class="memdoc">
5168
5169<p>Returns the <a class="el" href="namespacearm__compute.xhtml">arm_compute</a> library build information. </p>
5170<p>Contains the version number and the build options used to build the library</p>
5171<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="namespacearm__compute.xhtml">arm_compute</a> library build information </dd></dl>
5172
Anthony Barbierdbdab852017-06-23 15:42:00 +01005173<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00059">DIV_CEIL()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005174
5175</div>
5176</div>
5177<a class="anchor" id="a0101a40c4a6acc2af3b55afa7632f16a"></a>
5178<div class="memitem">
5179<div class="memproto">
5180<table class="mlabels">
5181 <tr>
5182 <td class="mlabels-left">
5183 <table class="memname">
5184 <tr>
5185 <td class="memname">uint32_t arm_compute::calculate_matrix_scale </td>
5186 <td>(</td>
5187 <td class="paramtype">const int16_t *&#160;</td>
5188 <td class="paramname"><em>matrix</em>, </td>
5189 </tr>
5190 <tr>
5191 <td class="paramkey"></td>
5192 <td></td>
5193 <td class="paramtype">unsigned int&#160;</td>
5194 <td class="paramname"><em>matrix_size</em>&#160;</td>
5195 </tr>
5196 <tr>
5197 <td></td>
5198 <td>)</td>
5199 <td></td><td></td>
5200 </tr>
5201 </table>
5202 </td>
5203 <td class="mlabels-right">
5204<span class="mlabels"><span class="mlabel">inline</span></span> </td>
5205 </tr>
5206</table>
5207</div><div class="memdoc">
5208
5209<p>Calculate the scale of the given square matrix. </p>
5210<p>The scale is the absolute value of the sum of all the coefficients in the matrix.</p>
5211<dl class="section note"><dt>Note</dt><dd>If the coefficients add up to 0 then the scale is set to 1.</dd></dl>
5212<dl class="params"><dt>Parameters</dt><dd>
5213 <table class="params">
5214 <tr><td class="paramdir">[in]</td><td class="paramname">matrix</td><td>Matrix coefficients </td></tr>
5215 <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>
5216 </table>
5217 </dd>
5218</dl>
5219<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>
5220
Anthony Barbierdbdab852017-06-23 15:42:00 +01005221<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00425">425</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 +00005222
Anthony Barbierdbdab852017-06-23 15:42:00 +01005223<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00905">arm_compute::test::fixed_point_arithmetic::detail::abs()</a>, <a class="el" href="accumulate_8cl_source.xhtml#l00041">accumulate()</a>, and <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00880">arm_compute::test::fixed_point_arithmetic::detail::max()</a>.</p>
5224<div class="fragment"><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;{</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> size = matrix_size * matrix_size;</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; <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="l00430"></a><span class="lineno"> 430</span>&#160;}</div><div class="ttc" id="accumulate_8cl_xhtml_a00e540076dd545ad59ac7482f8cdf514"><div class="ttname"><a href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">accumulate</a></div><div class="ttdeci">__kernel void accumulate(__global uchar *input_ptr, uint input_stride_x, uint input_step_x, uint input_stride_y, uint input_step_y, uint input_offset_first_element_in_bytes, __global uchar *accu_ptr, uint accu_stride_x, uint accu_step_x, uint accu_stride_y, uint accu_step_y, uint accu_offset_first_element_in_bytes)</div><div class="ttdoc">This function accumulates an input image into output image. </div><div class="ttdef"><b>Definition:</b> <a href="accumulate_8cl_source.xhtml#l00041">accumulate.cl:41</a></div></div>
5225<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#l00880">FixedPoint.h:880</a></div></div>
5226<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#l00905">FixedPoint.h:905</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005227</div><!-- fragment -->
5228</div>
5229</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005230<a class="anchor" id="afcdda83b6a85d5798f08d92c0e235e2e"></a>
5231<div class="memitem">
5232<div class="memproto">
5233 <table class="memname">
5234 <tr>
5235 <td class="memname"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> arm_compute::calculate_max_enlarged_window </td>
5236 <td>(</td>
5237 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
5238 <td class="paramname"><em>info</em>, </td>
5239 </tr>
5240 <tr>
5241 <td class="paramkey"></td>
5242 <td></td>
5243 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;&#160;</td>
5244 <td class="paramname"><em>steps</em> = <code><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>()</code>, </td>
5245 </tr>
5246 <tr>
5247 <td class="paramkey"></td>
5248 <td></td>
5249 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
5250 <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>()</code>&#160;</td>
5251 </tr>
5252 <tr>
5253 <td></td>
5254 <td>)</td>
5255 <td></td><td></td>
5256 </tr>
5257 </table>
5258</div><div class="memdoc">
5259
5260<p>Calculate the maximum window for a given tensor shape and border setting. </p>
5261<p>The window will also includes the border.</p>
5262<dl class="params"><dt>Parameters</dt><dd>
5263 <table class="params">
5264 <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>
5265 <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>(Optional) Number of elements processed for each step. </td></tr>
5266 <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>
5267 </table>
5268 </dd>
5269</dl>
5270<dl class="section return"><dt>Returns</dt><dd>The maximum window the kernel can be executed on. </dd></dl>
5271
5272<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00335">update_window_and_padding()</a>.</p>
5273
5274</div>
5275</div>
5276<a class="anchor" id="aa2117aef4381edbdf81e17ec088df7f1"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00005277<div class="memitem">
5278<div class="memproto">
5279 <table class="memname">
5280 <tr>
5281 <td class="memname"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> arm_compute::calculate_max_window </td>
5282 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005283 <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 +00005284 <td class="paramname"><em>info</em>, </td>
5285 </tr>
5286 <tr>
5287 <td class="paramkey"></td>
5288 <td></td>
5289 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;&#160;</td>
5290 <td class="paramname"><em>steps</em> = <code><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>()</code>, </td>
5291 </tr>
5292 <tr>
5293 <td class="paramkey"></td>
5294 <td></td>
5295 <td class="paramtype">bool&#160;</td>
5296 <td class="paramname"><em>skip_border</em> = <code>false</code>, </td>
5297 </tr>
5298 <tr>
5299 <td class="paramkey"></td>
5300 <td></td>
5301 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
5302 <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>()</code>&#160;</td>
5303 </tr>
5304 <tr>
5305 <td></td>
5306 <td>)</td>
5307 <td></td><td></td>
5308 </tr>
5309 </table>
5310</div><div class="memdoc">
5311
5312<p>Calculate the maximum window for a given tensor shape and border setting. </p>
5313<dl class="params"><dt>Parameters</dt><dd>
5314 <table class="params">
5315 <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>
5316 <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>(Optional) Number of elements processed for each step. </td></tr>
5317 <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>
5318 <tr><td class="paramdir">[in]</td><td class="paramname">border_size</td><td>(Optional) Border size.</td></tr>
5319 </table>
5320 </dd>
5321</dl>
5322<dl class="section return"><dt>Returns</dt><dd>The maximum window the kernel can be executed on. </dd></dl>
5323
Anthony Barbierdbdab852017-06-23 15:42:00 +01005324<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00335">update_window_and_padding()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005325
5326</div>
5327</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005328<a class="anchor" id="a47456b4d520aee1cba80bf6e20f6685a"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00005329<div class="memitem">
5330<div class="memproto">
5331 <table class="memname">
5332 <tr>
5333 <td class="memname"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> arm_compute::calculate_max_window_horizontal </td>
5334 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005335 <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 +00005336 <td class="paramname"><em>info</em>, </td>
5337 </tr>
5338 <tr>
5339 <td class="paramkey"></td>
5340 <td></td>
5341 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a> &amp;&#160;</td>
5342 <td class="paramname"><em>steps</em> = <code><a class="el" href="classarm__compute_1_1_steps.xhtml">Steps</a>()</code>, </td>
5343 </tr>
5344 <tr>
5345 <td class="paramkey"></td>
5346 <td></td>
5347 <td class="paramtype">bool&#160;</td>
5348 <td class="paramname"><em>skip_border</em> = <code>false</code>, </td>
5349 </tr>
5350 <tr>
5351 <td class="paramkey"></td>
5352 <td></td>
5353 <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
5354 <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>()</code>&#160;</td>
5355 </tr>
5356 <tr>
5357 <td></td>
5358 <td>)</td>
5359 <td></td><td></td>
5360 </tr>
5361 </table>
5362</div><div class="memdoc">
5363
5364<p>Calculate the maximum window used by a horizontal kernel for a given tensor shape and border setting. </p>
5365<dl class="params"><dt>Parameters</dt><dd>
5366 <table class="params">
5367 <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>
5368 <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>(Optional) Number of elements processed for each step. </td></tr>
5369 <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>
5370 <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>
5371 </table>
5372 </dd>
5373</dl>
5374<dl class="section return"><dt>Returns</dt><dd>The maximum window the kernel can be executed on. </dd></dl>
5375
Anthony Barbierdbdab852017-06-23 15:42:00 +01005376<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00335">update_window_and_padding()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005377
5378</div>
5379</div>
5380<a class="anchor" id="adf0c6059174045f80af46a0f1fb57bc6"></a>
5381<div class="memitem">
5382<div class="memproto">
5383<table class="mlabels">
5384 <tr>
5385 <td class="mlabels-left">
5386 <table class="memname">
5387 <tr>
5388 <td class="memname">auto arm_compute::ceil_to_multiple </td>
5389 <td>(</td>
5390 <td class="paramtype">S&#160;</td>
5391 <td class="paramname"><em>value</em>, </td>
5392 </tr>
5393 <tr>
5394 <td class="paramkey"></td>
5395 <td></td>
5396 <td class="paramtype">T&#160;</td>
5397 <td class="paramname"><em>divisor</em>&#160;</td>
5398 </tr>
5399 <tr>
5400 <td></td>
5401 <td>)</td>
5402 <td></td><td> -&gt; decltype(((value + divisor - 1) / divisor) * divisor)
5403</td>
5404 </tr>
5405 </table>
5406 </td>
5407 <td class="mlabels-right">
5408<span class="mlabels"><span class="mlabel">inline</span></span> </td>
5409 </tr>
5410</table>
5411</div><div class="memdoc">
5412
5413<p>Computes the smallest number larger or equal to value that is a multiple of divisor. </p>
5414
Anthony Barbierdbdab852017-06-23 15:42:00 +01005415<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00043">43</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 +00005416
Anthony Barbierdbdab852017-06-23 15:42:00 +01005417<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00005418
Anthony Barbierdbdab852017-06-23 15:42:00 +01005419<p>Referenced by <a class="el" href="_window_8inl_source.xhtml#l00068">Window::scale()</a>.</p>
5420<div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(value &lt; 0 || divisor &lt;= 0);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> ((value + divisor - 1) / divisor) * divisor;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5421</div><!-- fragment -->
5422</div>
5423</div>
5424<a class="anchor" id="a1c0b9414fe3a6ef6a7a23bd324ae9e67"></a>
5425<div class="memitem">
5426<div class="memproto">
5427<table class="mlabels">
5428 <tr>
5429 <td class="mlabels-left">
5430 <table class="memname">
5431 <tr>
5432 <td class="memname">T arm_compute::clamp </td>
5433 <td>(</td>
5434 <td class="paramtype">const T &amp;&#160;</td>
5435 <td class="paramname"><em>n</em>, </td>
5436 </tr>
5437 <tr>
5438 <td class="paramkey"></td>
5439 <td></td>
5440 <td class="paramtype">const T &amp;&#160;</td>
5441 <td class="paramname"><em>lower</em>, </td>
5442 </tr>
5443 <tr>
5444 <td class="paramkey"></td>
5445 <td></td>
5446 <td class="paramtype">const T &amp;&#160;</td>
5447 <td class="paramname"><em>upper</em>&#160;</td>
5448 </tr>
5449 <tr>
5450 <td></td>
5451 <td>)</td>
5452 <td></td><td></td>
5453 </tr>
5454 </table>
5455 </td>
5456 <td class="mlabels-right">
5457<span class="mlabels"><span class="mlabel">inline</span></span> </td>
5458 </tr>
5459</table>
5460</div><div class="memdoc">
5461
5462<p>Performs clamping among a lower and upper value. </p>
5463<dl class="params"><dt>Parameters</dt><dd>
5464 <table class="params">
5465 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Value to clamp. </td></tr>
5466 <tr><td class="paramdir">[in]</td><td class="paramname">lower</td><td>Lower threshold. </td></tr>
5467 <tr><td class="paramdir">[in]</td><td class="paramname">upper</td><td>Upper threshold.</td></tr>
5468 </table>
5469 </dd>
5470</dl>
5471<dl class="section return"><dt>Returns</dt><dd>Clamped value. </dd></dl>
5472
5473<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00193">193</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
5474
5475<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00880">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, and <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00875">arm_compute::test::fixed_point_arithmetic::detail::min()</a>.</p>
5476
5477<p>Referenced by <a class="el" href="warp__helpers_8h_source.xhtml#l00033">clamp_to_border()</a>.</p>
5478<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> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(lower, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(n, upper));</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</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#l00875">FixedPoint.h:875</a></div></div>
5479<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#l00880">FixedPoint.h:880</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005480</div><!-- fragment -->
5481</div>
5482</div>
5483<a class="anchor" id="af2be1325decaa34a8a1199af177148c6"></a>
5484<div class="memitem">
5485<div class="memproto">
5486 <table class="memname">
5487 <tr>
5488 <td class="memname">void arm_compute::colorconvert_iyuv_to_nv12 </td>
5489 <td>(</td>
5490 <td class="paramtype">const void *__restrict&#160;</td>
5491 <td class="paramname"><em>input</em>, </td>
5492 </tr>
5493 <tr>
5494 <td class="paramkey"></td>
5495 <td></td>
5496 <td class="paramtype">void *__restrict&#160;</td>
5497 <td class="paramname"><em>output</em>, </td>
5498 </tr>
5499 <tr>
5500 <td class="paramkey"></td>
5501 <td></td>
5502 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5503 <td class="paramname"><em>win</em>&#160;</td>
5504 </tr>
5505 <tr>
5506 <td></td>
5507 <td>)</td>
5508 <td></td><td></td>
5509 </tr>
5510 </table>
5511</div><div class="memdoc">
5512
5513<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>
5514
Anthony Barbierdbdab852017-06-23 15:42:00 +01005515<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">execute_window_loop()</a>, <a class="el" href="_window_8inl_source.xhtml#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00137">Window::y()</a>.</p>
5516<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="_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="_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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5517<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005518</div><!-- fragment -->
5519</div>
5520</div>
5521<a class="anchor" id="a6e42fac1baa264b033ac430b63ebd145"></a>
5522<div class="memitem">
5523<div class="memproto">
5524 <table class="memname">
5525 <tr>
5526 <td class="memname">void arm_compute::colorconvert_iyuv_to_rgb </td>
5527 <td>(</td>
5528 <td class="paramtype">const void *__restrict&#160;</td>
5529 <td class="paramname"><em>input</em>, </td>
5530 </tr>
5531 <tr>
5532 <td class="paramkey"></td>
5533 <td></td>
5534 <td class="paramtype">void *__restrict&#160;</td>
5535 <td class="paramname"><em>output</em>, </td>
5536 </tr>
5537 <tr>
5538 <td class="paramkey"></td>
5539 <td></td>
5540 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5541 <td class="paramname"><em>win</em>&#160;</td>
5542 </tr>
5543 <tr>
5544 <td></td>
5545 <td>)</td>
5546 <td></td><td></td>
5547 </tr>
5548 </table>
5549</div><div class="memdoc">
5550
5551<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>
5552
Anthony Barbierdbdab852017-06-23 15:42:00 +01005553<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">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#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">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#l00137">Window::y()</a>.</p>
5554<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="_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="_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 = alpha ? 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;<a class="code" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">info</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_tensor_info.xhtml#a6b14f175bf5281f57b561e2d4e4b1f1f">strides_in_bytes</a>().<a class="code" href="classarm__compute_1_1_dimensions.xhtml#a691c9cb93365c2e33f3429de43244098">y</a>();</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5555<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#l00176">Helpers.inl:176</a></div></div>
5556<div class="ttc" id="classarm__compute_1_1_i_tensor_xhtml_a0e95dc1e53c361348314873b168ae237"><div class="ttname"><a href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">arm_compute::ITensor::info</a></div><div class="ttdeci">virtual ITensorInfo * info() const =0</div><div class="ttdoc">Interface to be implemented by the child class to return the tensor&amp;#39;s metadata. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005557<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>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005558<div class="ttc" id="classarm__compute_1_1_dimensions_xhtml_a691c9cb93365c2e33f3429de43244098"><div class="ttname"><a href="classarm__compute_1_1_dimensions.xhtml#a691c9cb93365c2e33f3429de43244098">arm_compute::Dimensions::y</a></div><div class="ttdeci">T y() const </div><div class="ttdoc">Alias to access the size of the second dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_dimensions_8h_source.xhtml#l00086">Dimensions.h:86</a></div></div>
5559<div class="ttc" id="classarm__compute_1_1_i_tensor_info_xhtml_a6b14f175bf5281f57b561e2d4e4b1f1f"><div class="ttname"><a href="classarm__compute_1_1_i_tensor_info.xhtml#a6b14f175bf5281f57b561e2d4e4b1f1f">arm_compute::ITensorInfo::strides_in_bytes</a></div><div class="ttdeci">virtual const Strides &amp; strides_in_bytes() const =0</div><div class="ttdoc">The strides in bytes for accessing each dimension of the tensor. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005560</div><!-- fragment -->
5561</div>
5562</div>
5563<a class="anchor" id="a08e9d88293a5cef787bb324c2dc0a6bf"></a>
5564<div class="memitem">
5565<div class="memproto">
5566 <table class="memname">
5567 <tr>
5568 <td class="memname">void arm_compute::colorconvert_iyuv_to_yuv4 </td>
5569 <td>(</td>
5570 <td class="paramtype">const void *__restrict&#160;</td>
5571 <td class="paramname"><em>input</em>, </td>
5572 </tr>
5573 <tr>
5574 <td class="paramkey"></td>
5575 <td></td>
5576 <td class="paramtype">void *__restrict&#160;</td>
5577 <td class="paramname"><em>output</em>, </td>
5578 </tr>
5579 <tr>
5580 <td class="paramkey"></td>
5581 <td></td>
5582 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5583 <td class="paramname"><em>win</em>&#160;</td>
5584 </tr>
5585 <tr>
5586 <td></td>
5587 <td>)</td>
5588 <td></td><td></td>
5589 </tr>
5590 </table>
5591</div><div class="memdoc">
5592
5593<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>
5594
Anthony Barbierdbdab852017-06-23 15:42:00 +01005595<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">execute_window_loop()</a>, <a class="el" href="_window_8inl_source.xhtml#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00137">Window::y()</a>.</p>
5596<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="_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="_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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5597<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005598</div><!-- fragment -->
5599</div>
5600</div>
5601<a class="anchor" id="a199d36780fbb4a70168f290480673650"></a>
5602<div class="memitem">
5603<div class="memproto">
5604 <table class="memname">
5605 <tr>
5606 <td class="memname">void arm_compute::colorconvert_nv12_to_iyuv </td>
5607 <td>(</td>
5608 <td class="paramtype">const void *__restrict&#160;</td>
5609 <td class="paramname"><em>input</em>, </td>
5610 </tr>
5611 <tr>
5612 <td class="paramkey"></td>
5613 <td></td>
5614 <td class="paramtype">void *__restrict&#160;</td>
5615 <td class="paramname"><em>output</em>, </td>
5616 </tr>
5617 <tr>
5618 <td class="paramkey"></td>
5619 <td></td>
5620 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5621 <td class="paramname"><em>win</em>&#160;</td>
5622 </tr>
5623 <tr>
5624 <td></td>
5625 <td>)</td>
5626 <td></td><td></td>
5627 </tr>
5628 </table>
5629</div><div class="memdoc">
5630
5631<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>
5632
Anthony Barbierdbdab852017-06-23 15:42:00 +01005633<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">execute_window_loop()</a>, <a class="el" href="_window_8inl_source.xhtml#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00137">Window::y()</a>.</p>
5634<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="_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="_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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5635<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005636</div><!-- fragment -->
5637</div>
5638</div>
5639<a class="anchor" id="ae6a44e412bccc0705a720708b0692218"></a>
5640<div class="memitem">
5641<div class="memproto">
5642 <table class="memname">
5643 <tr>
5644 <td class="memname">void arm_compute::colorconvert_nv12_to_rgb </td>
5645 <td>(</td>
5646 <td class="paramtype">const void *__restrict&#160;</td>
5647 <td class="paramname"><em>input</em>, </td>
5648 </tr>
5649 <tr>
5650 <td class="paramkey"></td>
5651 <td></td>
5652 <td class="paramtype">void *__restrict&#160;</td>
5653 <td class="paramname"><em>output</em>, </td>
5654 </tr>
5655 <tr>
5656 <td class="paramkey"></td>
5657 <td></td>
5658 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5659 <td class="paramname"><em>win</em>&#160;</td>
5660 </tr>
5661 <tr>
5662 <td></td>
5663 <td>)</td>
5664 <td></td><td></td>
5665 </tr>
5666 </table>
5667</div><div class="memdoc">
5668
5669<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>
5670
Anthony Barbierdbdab852017-06-23 15:42:00 +01005671<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">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#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">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#l00137">Window::y()</a>.</p>
5672<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="_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="_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 = alpha ? 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;<a class="code" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">info</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_tensor_info.xhtml#a6b14f175bf5281f57b561e2d4e4b1f1f">strides_in_bytes</a>().<a class="code" href="classarm__compute_1_1_dimensions.xhtml#a691c9cb93365c2e33f3429de43244098">y</a>();</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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, alpha);</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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5673<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#l00176">Helpers.inl:176</a></div></div>
5674<div class="ttc" id="classarm__compute_1_1_i_tensor_xhtml_a0e95dc1e53c361348314873b168ae237"><div class="ttname"><a href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">arm_compute::ITensor::info</a></div><div class="ttdeci">virtual ITensorInfo * info() const =0</div><div class="ttdoc">Interface to be implemented by the child class to return the tensor&amp;#39;s metadata. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005675<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>
Anthony Barbierdbdab852017-06-23 15:42:00 +01005676<div class="ttc" id="classarm__compute_1_1_dimensions_xhtml_a691c9cb93365c2e33f3429de43244098"><div class="ttname"><a href="classarm__compute_1_1_dimensions.xhtml#a691c9cb93365c2e33f3429de43244098">arm_compute::Dimensions::y</a></div><div class="ttdeci">T y() const </div><div class="ttdoc">Alias to access the size of the second dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_dimensions_8h_source.xhtml#l00086">Dimensions.h:86</a></div></div>
5677<div class="ttc" id="classarm__compute_1_1_i_tensor_info_xhtml_a6b14f175bf5281f57b561e2d4e4b1f1f"><div class="ttname"><a href="classarm__compute_1_1_i_tensor_info.xhtml#a6b14f175bf5281f57b561e2d4e4b1f1f">arm_compute::ITensorInfo::strides_in_bytes</a></div><div class="ttdeci">virtual const Strides &amp; strides_in_bytes() const =0</div><div class="ttdoc">The strides in bytes for accessing each dimension of the tensor. </div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005678</div><!-- fragment -->
5679</div>
5680</div>
5681<a class="anchor" id="a587a54c85dcc72838b8f4b5575ebafe4"></a>
5682<div class="memitem">
5683<div class="memproto">
5684 <table class="memname">
5685 <tr>
5686 <td class="memname">void arm_compute::colorconvert_nv12_to_yuv4 </td>
5687 <td>(</td>
5688 <td class="paramtype">const void *__restrict&#160;</td>
5689 <td class="paramname"><em>input</em>, </td>
5690 </tr>
5691 <tr>
5692 <td class="paramkey"></td>
5693 <td></td>
5694 <td class="paramtype">void *__restrict&#160;</td>
5695 <td class="paramname"><em>output</em>, </td>
5696 </tr>
5697 <tr>
5698 <td class="paramkey"></td>
5699 <td></td>
5700 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5701 <td class="paramname"><em>win</em>&#160;</td>
5702 </tr>
5703 <tr>
5704 <td></td>
5705 <td>)</td>
5706 <td></td><td></td>
5707 </tr>
5708 </table>
5709</div><div class="memdoc">
5710
5711<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>
5712
Anthony Barbierdbdab852017-06-23 15:42:00 +01005713<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">execute_window_loop()</a>, <a class="el" href="_window_8inl_source.xhtml#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00137">Window::y()</a>.</p>
5714<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="_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="_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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5715<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005716</div><!-- fragment -->
5717</div>
5718</div>
5719<a class="anchor" id="a49b7a8e217ba7aad821fdeaab86bad53"></a>
5720<div class="memitem">
5721<div class="memproto">
5722 <table class="memname">
5723 <tr>
5724 <td class="memname">void arm_compute::colorconvert_rgb_to_iyuv </td>
5725 <td>(</td>
5726 <td class="paramtype">const void *__restrict&#160;</td>
5727 <td class="paramname"><em>input</em>, </td>
5728 </tr>
5729 <tr>
5730 <td class="paramkey"></td>
5731 <td></td>
5732 <td class="paramtype">void *__restrict&#160;</td>
5733 <td class="paramname"><em>output</em>, </td>
5734 </tr>
5735 <tr>
5736 <td class="paramkey"></td>
5737 <td></td>
5738 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5739 <td class="paramname"><em>win</em>&#160;</td>
5740 </tr>
5741 <tr>
5742 <td></td>
5743 <td>)</td>
5744 <td></td><td></td>
5745 </tr>
5746 </table>
5747</div><div class="memdoc">
5748
5749<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>
5750
Anthony Barbierdbdab852017-06-23 15:42:00 +01005751<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00232">Iterator::ptr()</a>, <a class="el" href="_window_8inl_source.xhtml#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00137">Window::y()</a>.</p>
5752<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="_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="_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(), alpha);</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(), alpha);</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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5753<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005754<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>
5755</div><!-- fragment -->
5756</div>
5757</div>
5758<a class="anchor" id="a14fd899b732509e245976b9967b8931d"></a>
5759<div class="memitem">
5760<div class="memproto">
5761 <table class="memname">
5762 <tr>
5763 <td class="memname">void arm_compute::colorconvert_rgb_to_nv12 </td>
5764 <td>(</td>
5765 <td class="paramtype">const void *__restrict&#160;</td>
5766 <td class="paramname"><em>input</em>, </td>
5767 </tr>
5768 <tr>
5769 <td class="paramkey"></td>
5770 <td></td>
5771 <td class="paramtype">void *__restrict&#160;</td>
5772 <td class="paramname"><em>output</em>, </td>
5773 </tr>
5774 <tr>
5775 <td class="paramkey"></td>
5776 <td></td>
5777 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5778 <td class="paramname"><em>win</em>&#160;</td>
5779 </tr>
5780 <tr>
5781 <td></td>
5782 <td>)</td>
5783 <td></td><td></td>
5784 </tr>
5785 </table>
5786</div><div class="memdoc">
5787
5788<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>
5789
Anthony Barbierdbdab852017-06-23 15:42:00 +01005790<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00232">Iterator::ptr()</a>, <a class="el" href="_window_8inl_source.xhtml#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00137">Window::y()</a>.</p>
5791<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="_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="_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(), alpha);</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(), alpha);</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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5792<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005793<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>
5794</div><!-- fragment -->
5795</div>
5796</div>
5797<a class="anchor" id="a93cc303c8ae098d264f07d37890412de"></a>
5798<div class="memitem">
5799<div class="memproto">
5800 <table class="memname">
5801 <tr>
5802 <td class="memname">void arm_compute::colorconvert_rgb_to_rgbx </td>
5803 <td>(</td>
5804 <td class="paramtype">const void *__restrict&#160;</td>
5805 <td class="paramname"><em>input</em>, </td>
5806 </tr>
5807 <tr>
5808 <td class="paramkey"></td>
5809 <td></td>
5810 <td class="paramtype">void *__restrict&#160;</td>
5811 <td class="paramname"><em>output</em>, </td>
5812 </tr>
5813 <tr>
5814 <td class="paramkey"></td>
5815 <td></td>
5816 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5817 <td class="paramname"><em>win</em>&#160;</td>
5818 </tr>
5819 <tr>
5820 <td></td>
5821 <td>)</td>
5822 <td></td><td></td>
5823 </tr>
5824 </table>
5825</div><div class="memdoc">
5826
5827<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>
5828
Anthony Barbierdbdab852017-06-23 15:42:00 +01005829<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00176">execute_window_loop()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00232">Iterator::ptr()</a>.</p>
5830<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="_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="_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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5831<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005832<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>
5833</div><!-- fragment -->
5834</div>
5835</div>
5836<a class="anchor" id="ad304c0b0a72ed3f65c24fa69ab3cd53e"></a>
5837<div class="memitem">
5838<div class="memproto">
5839 <table class="memname">
5840 <tr>
5841 <td class="memname">void arm_compute::colorconvert_rgb_to_yuv4 </td>
5842 <td>(</td>
5843 <td class="paramtype">const void *__restrict&#160;</td>
5844 <td class="paramname"><em>input</em>, </td>
5845 </tr>
5846 <tr>
5847 <td class="paramkey"></td>
5848 <td></td>
5849 <td class="paramtype">void *__restrict&#160;</td>
5850 <td class="paramname"><em>output</em>, </td>
5851 </tr>
5852 <tr>
5853 <td class="paramkey"></td>
5854 <td></td>
5855 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5856 <td class="paramname"><em>win</em>&#160;</td>
5857 </tr>
5858 <tr>
5859 <td></td>
5860 <td>)</td>
5861 <td></td><td></td>
5862 </tr>
5863 </table>
5864</div><div class="memdoc">
5865
5866<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>
5867
Anthony Barbierdbdab852017-06-23 15:42:00 +01005868<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00176">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00232">Iterator::ptr()</a>, and <a class="el" href="_window_8inl_source.xhtml#l00083">Window::validate()</a>.</p>
5869<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="_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="_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(), alpha);</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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5870<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005871<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>
5872</div><!-- fragment -->
5873</div>
5874</div>
5875<a class="anchor" id="acf7451c0d0f8a4b1cfbb60d7531a43aa"></a>
5876<div class="memitem">
5877<div class="memproto">
5878 <table class="memname">
5879 <tr>
5880 <td class="memname">void arm_compute::colorconvert_rgbx_to_rgb </td>
5881 <td>(</td>
5882 <td class="paramtype">const void *&#160;</td>
5883 <td class="paramname"><em>input</em>, </td>
5884 </tr>
5885 <tr>
5886 <td class="paramkey"></td>
5887 <td></td>
5888 <td class="paramtype">void *&#160;</td>
5889 <td class="paramname"><em>output</em>, </td>
5890 </tr>
5891 <tr>
5892 <td class="paramkey"></td>
5893 <td></td>
5894 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5895 <td class="paramname"><em>win</em>&#160;</td>
5896 </tr>
5897 <tr>
5898 <td></td>
5899 <td>)</td>
5900 <td></td><td></td>
5901 </tr>
5902 </table>
5903</div><div class="memdoc">
5904
5905<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>
5906
Anthony Barbierdbdab852017-06-23 15:42:00 +01005907<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00176">execute_window_loop()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00232">Iterator::ptr()</a>.</p>
5908<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="_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="_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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5909<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005910<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>
5911</div><!-- fragment -->
5912</div>
5913</div>
5914<a class="anchor" id="ae43e8f0463c0289169025c3041688d36"></a>
5915<div class="memitem">
5916<div class="memproto">
5917 <table class="memname">
5918 <tr>
5919 <td class="memname">void arm_compute::colorconvert_yuyv_to_iyuv </td>
5920 <td>(</td>
5921 <td class="paramtype">const void *__restrict&#160;</td>
5922 <td class="paramname"><em>input</em>, </td>
5923 </tr>
5924 <tr>
5925 <td class="paramkey"></td>
5926 <td></td>
5927 <td class="paramtype">void *__restrict&#160;</td>
5928 <td class="paramname"><em>output</em>, </td>
5929 </tr>
5930 <tr>
5931 <td class="paramkey"></td>
5932 <td></td>
5933 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5934 <td class="paramname"><em>win</em>&#160;</td>
5935 </tr>
5936 <tr>
5937 <td></td>
5938 <td>)</td>
5939 <td></td><td></td>
5940 </tr>
5941 </table>
5942</div><div class="memdoc">
5943
5944<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>
5945
Anthony Barbierdbdab852017-06-23 15:42:00 +01005946<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00232">Iterator::ptr()</a>, <a class="el" href="_window_8inl_source.xhtml#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00137">Window::y()</a>.</p>
5947<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="_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="_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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5948<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005949<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>
5950</div><!-- fragment -->
5951</div>
5952</div>
5953<a class="anchor" id="a8ee13904a3f5ba84b28cb53d956021d7"></a>
5954<div class="memitem">
5955<div class="memproto">
5956 <table class="memname">
5957 <tr>
5958 <td class="memname">void arm_compute::colorconvert_yuyv_to_nv12 </td>
5959 <td>(</td>
5960 <td class="paramtype">const void *__restrict&#160;</td>
5961 <td class="paramname"><em>input</em>, </td>
5962 </tr>
5963 <tr>
5964 <td class="paramkey"></td>
5965 <td></td>
5966 <td class="paramtype">void *__restrict&#160;</td>
5967 <td class="paramname"><em>output</em>, </td>
5968 </tr>
5969 <tr>
5970 <td class="paramkey"></td>
5971 <td></td>
5972 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
5973 <td class="paramname"><em>win</em>&#160;</td>
5974 </tr>
5975 <tr>
5976 <td></td>
5977 <td>)</td>
5978 <td></td><td></td>
5979 </tr>
5980 </table>
5981</div><div class="memdoc">
5982
5983<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>
5984
Anthony Barbierdbdab852017-06-23 15:42:00 +01005985<p>References <a class="el" href="_error_8h_source.xhtml#l00124">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#l00176">execute_window_loop()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00232">Iterator::ptr()</a>, <a class="el" href="_window_8inl_source.xhtml#l00040">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#l00083">Window::validate()</a>, <a class="el" href="_window_8h_source.xhtml#l00128">Window::x()</a>, and <a class="el" href="_window_8h_source.xhtml#l00137">Window::y()</a>.</p>
5986<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="_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="_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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
5987<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00005988<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>
5989</div><!-- fragment -->
5990</div>
5991</div>
5992<a class="anchor" id="a3c22c0d3494660b72b4fc04fec76f92d"></a>
5993<div class="memitem">
5994<div class="memproto">
5995 <table class="memname">
5996 <tr>
5997 <td class="memname">void arm_compute::colorconvert_yuyv_to_rgb </td>
5998 <td>(</td>
5999 <td class="paramtype">const void *__restrict&#160;</td>
6000 <td class="paramname"><em>input</em>, </td>
6001 </tr>
6002 <tr>
6003 <td class="paramkey"></td>
6004 <td></td>
6005 <td class="paramtype">void *__restrict&#160;</td>
6006 <td class="paramname"><em>output</em>, </td>
6007 </tr>
6008 <tr>
6009 <td class="paramkey"></td>
6010 <td></td>
6011 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
6012 <td class="paramname"><em>win</em>&#160;</td>
6013 </tr>
6014 <tr>
6015 <td></td>
6016 <td>)</td>
6017 <td></td><td></td>
6018 </tr>
6019 </table>
6020</div><div class="memdoc">
6021
6022<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>
6023
Anthony Barbierdbdab852017-06-23 15:42:00 +01006024<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00176">execute_window_loop()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00232">Iterator::ptr()</a>.</p>
6025<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="_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="_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 = alpha ? 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, alpha);</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, alpha);</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, alpha);</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, alpha);</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="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
6026<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#l00176">Helpers.inl:176</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006027<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>
6028</div><!-- fragment -->
6029</div>
6030</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006031<a class="anchor" id="a35178800b82e07a49da5a81cdeda9a0c"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00006032<div class="memitem">
6033<div class="memproto">
6034<table class="mlabels">
6035 <tr>
6036 <td class="mlabels-left">
6037 <table class="memname">
6038 <tr>
6039 <td class="memname"><a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a> arm_compute::compute_strides </td>
6040 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006041 <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 +00006042 <td class="paramname"><em>info</em>, </td>
6043 </tr>
6044 <tr>
6045 <td class="paramkey"></td>
6046 <td></td>
6047 <td class="paramtype">T&#160;</td>
6048 <td class="paramname"><em>stride_x</em>, </td>
6049 </tr>
6050 <tr>
6051 <td class="paramkey"></td>
6052 <td></td>
6053 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
6054 <td class="paramname"><em>fixed_strides</em>&#160;</td>
6055 </tr>
6056 <tr>
6057 <td></td>
6058 <td>)</td>
6059 <td></td><td></td>
6060 </tr>
6061 </table>
6062 </td>
6063 <td class="mlabels-right">
6064<span class="mlabels"><span class="mlabel">inline</span></span> </td>
6065 </tr>
6066</table>
6067</div><div class="memdoc">
6068
6069<p>Create a strides object based on the provided strides and the tensor dimensions. </p>
6070<dl class="params"><dt>Parameters</dt><dd>
6071 <table class="params">
6072 <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>
6073 <tr><td class="paramdir">[in]</td><td class="paramname">stride_x</td><td>Stride to be used in X dimension (in bytes). </td></tr>
6074 <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>
6075 </table>
6076 </dd>
6077</dl>
6078<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>
6079
Anthony Barbierdbdab852017-06-23 15:42:00 +01006080<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00427">427</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 +00006081
Anthony Barbierdbdab852017-06-23 15:42:00 +01006082<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>, 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 +00006083
Anthony Barbierdbdab852017-06-23 15:42:00 +01006084<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00449">compute_strides()</a>.</p>
6085<div class="fragment"><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; <span class="keyword">const</span> TensorShape &amp;shape = info.tensor_shape();</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; <span class="comment">// Create strides object</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; Strides strides(stride_x, fixed_strides...);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 1 + <span class="keyword">sizeof</span>...(Ts); i &lt; info.num_dimensions(); ++i)</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; strides.set(i, shape[i - 1] * strides[i - 1]);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> strides;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +00006086</div>
6087</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006088<a class="anchor" id="a8c35748731709927597cb5a2c227e682"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00006089<div class="memitem">
6090<div class="memproto">
6091<table class="mlabels">
6092 <tr>
6093 <td class="mlabels-left">
6094 <table class="memname">
6095 <tr>
6096 <td class="memname"><a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a> arm_compute::compute_strides </td>
6097 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006098 <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 +00006099 <td class="paramname"><em>info</em></td><td>)</td>
6100 <td></td>
6101 </tr>
6102 </table>
6103 </td>
6104 <td class="mlabels-right">
6105<span class="mlabels"><span class="mlabel">inline</span></span> </td>
6106 </tr>
6107</table>
6108</div><div class="memdoc">
6109
6110<p>Create a strides object based on the tensor dimensions. </p>
6111<dl class="params"><dt>Parameters</dt><dd>
6112 <table class="params">
6113 <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>
6114 </table>
6115 </dd>
6116</dl>
6117<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>
6118
Anthony Barbierdbdab852017-06-23 15:42:00 +01006119<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00449">449</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 +00006120
Anthony Barbierdbdab852017-06-23 15:42:00 +01006121<p>References <a class="el" href="_helpers_8inl_source.xhtml#l00249">auto_init_if_empty()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00427">compute_strides()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#aa459796b5489eca8a9160cb5dcf1a103">ITensorInfo::element_size()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00285">set_data_type_if_unknown()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00296">set_fixed_point_position_if_zero()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00274">set_format_if_unknown()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00263">set_shape_if_empty()</a>.</p>
6122<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> <a class="code" href="namespacearm__compute.xhtml#a8c35748731709927597cb5a2c227e682">compute_strides</a>(info, info.element_size());</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;}</div><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#l00449">Helpers.h:449</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006123</div><!-- fragment -->
6124</div>
6125</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006126<a class="anchor" id="a35fb9d1dde1b976f4b7d361aabcc7c0d"></a>
6127<div class="memitem">
6128<div class="memproto">
6129 <table class="memname">
6130 <tr>
6131 <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>
6132 <td>(</td>
6133 <td class="paramtype">T &amp;&amp;...&#160;</td>
6134 <td class="paramname"><em>args</em></td><td>)</td>
6135 <td></td>
6136 </tr>
6137 </table>
6138</div><div class="memdoc">
6139
6140<p>Helper function to create and return a unique_ptr pointed to a CL kernel object It also calls the kernel's configuration. </p>
6141<dl class="params"><dt>Parameters</dt><dd>
6142 <table class="params">
6143 <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>All the arguments that need pass to kernel's configuration.</td></tr>
6144 </table>
6145 </dd>
6146</dl>
6147<dl class="section return"><dt>Returns</dt><dd>A unique pointer pointed to a CL kernel object </dd></dl>
6148
6149<p>Definition at line <a class="el" href="_c_l_helpers_8h_source.xhtml#l00071">71</a> of file <a class="el" href="_c_l_helpers_8h_source.xhtml">CLHelpers.h</a>.</p>
6150<div class="fragment"><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; std::unique_ptr&lt;Kernel&gt; k = arm_compute::cpp14::make_unique&lt;Kernel&gt;();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; k-&gt;configure(std::forward&lt;T&gt;(args)...);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> k;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div></div><!-- fragment -->
6151</div>
6152</div>
6153<a class="anchor" id="abc72c95941485d8a068fa38372308574"></a>
6154<div class="memitem">
6155<div class="memproto">
6156 <table class="memname">
6157 <tr>
6158 <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>
6159 <td>(</td>
6160 <td class="paramname"></td><td>)</td>
6161 <td></td>
6162 </tr>
6163 </table>
6164</div><div class="memdoc">
6165
6166<p>Helper function to create and return a unique_ptr pointed to a CL kernel object. </p>
6167<dl class="section return"><dt>Returns</dt><dd>A unique pointer pointed to a CL kernel object </dd></dl>
6168
6169<p>Definition at line <a class="el" href="_c_l_helpers_8h_source.xhtml#l00083">83</a> of file <a class="el" href="_c_l_helpers_8h_source.xhtml">CLHelpers.h</a>.</p>
6170
6171<p>References <a class="el" href="namespacearm__compute.xhtml#a4a351d5c39dec88af98a671da1c43fd6">get_arch_from_target()</a>, and <a class="el" href="namespacearm__compute.xhtml#a9d0143bdde8255313aae6ac020dd629c">get_target_from_device()</a>.</p>
6172
6173<p>Referenced by <a class="el" href="_c_l_kernel_library_8h_source.xhtml#l00203">CLKernelLibrary::set_device()</a>.</p>
6174<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; std::unique_ptr&lt;Kernel&gt; k = arm_compute::cpp14::make_unique&lt;Kernel&gt;();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> k;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div></div><!-- fragment -->
6175</div>
6176</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006177<a class="anchor" id="abb7e0f23a4f2e63f39433f158dad47ab"></a>
6178<div class="memitem">
6179<div class="memproto">
6180<table class="mlabels">
6181 <tr>
6182 <td class="mlabels-left">
6183 <table class="memname">
6184 <tr>
6185 <td class="memname">size_t arm_compute::data_size_from_type </td>
6186 <td>(</td>
6187 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
6188 <td class="paramname"><em>data_type</em></td><td>)</td>
6189 <td></td>
6190 </tr>
6191 </table>
6192 </td>
6193 <td class="mlabels-right">
6194<span class="mlabels"><span class="mlabel">inline</span></span> </td>
6195 </tr>
6196</table>
6197</div><div class="memdoc">
6198
6199<p>The size in bytes of the data type. </p>
6200<dl class="params"><dt>Parameters</dt><dd>
6201 <table class="params">
6202 <tr><td class="paramdir">[in]</td><td class="paramname">data_type</td><td>Input data type</td></tr>
6203 </table>
6204 </dd>
6205</dl>
6206<dl class="section return"><dt>Returns</dt><dd>The size in bytes of the data type </dd></dl>
6207
Anthony Barbierdbdab852017-06-23 15:42:00 +01006208<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00099">99</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 +00006209
Anthony Barbierdbdab852017-06-23 15:42:00 +01006210<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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#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>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">U8</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006211
Anthony Barbierdbdab852017-06-23 15:42:00 +01006212<p>Referenced by <a class="el" href="_tensor_info_8h_source.xhtml#l00227">TensorInfo::element_size()</a>, and <a class="el" href="model__objects_2_alex_net_8h_source.xhtml#l00062">AlexNet&lt; ITensorType, TensorType, SubTensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, FullyConnectedLayerFunction, NormalizationLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction, dt &gt;::init_weights()</a>.</p>
6213<div class="fragment"><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="keywordflow">switch</span>(data_type)</div><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; <span class="keywordflow">case</span> DataType::U8:</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">case</span> DataType::S8:</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">case</span> DataType::U16:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">case</span> DataType::S16:</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">case</span> DataType::U32:</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">case</span> DataType::S32:</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">case</span> DataType::F64:</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">case</span> DataType::U64:</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">case</span> DataType::S64:</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> 8;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">case</span> DataType::SIZET:</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(size_t);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Invalid data type&quot;</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> 0;</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;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006214</div><!-- fragment -->
6215</div>
6216</div>
6217<a class="anchor" id="a01adc12d8e07c06cdb0f03c56a455bf3"></a>
6218<div class="memitem">
6219<div class="memproto">
6220<table class="mlabels">
6221 <tr>
6222 <td class="mlabels-left">
6223 <table class="memname">
6224 <tr>
6225 <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>
6226 <td>(</td>
6227 <td class="paramtype">const int16_t *&#160;</td>
6228 <td class="paramname"><em>conv_col</em>, </td>
6229 </tr>
6230 <tr>
6231 <td class="paramkey"></td>
6232 <td></td>
6233 <td class="paramtype">const int16_t *&#160;</td>
6234 <td class="paramname"><em>conv_row</em>, </td>
6235 </tr>
6236 <tr>
6237 <td class="paramkey"></td>
6238 <td></td>
6239 <td class="paramtype">size_t&#160;</td>
6240 <td class="paramname"><em>size</em>&#160;</td>
6241 </tr>
6242 <tr>
6243 <td></td>
6244 <td>)</td>
6245 <td></td><td></td>
6246 </tr>
6247 </table>
6248 </td>
6249 <td class="mlabels-right">
6250<span class="mlabels"><span class="mlabel">inline</span></span> </td>
6251 </tr>
6252</table>
6253</div><div class="memdoc">
6254
6255<p>Calculate accurary required by the horizontal and vertical convolution computations. </p>
6256<dl class="params"><dt>Parameters</dt><dd>
6257 <table class="params">
6258 <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>
6259 <tr><td class="paramdir">[in]</td><td class="paramname">conv_row</td><td>Pointer to the horizontal vector of the convolution filter </td></tr>
6260 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Number of elements per vector of the separated matrix</td></tr>
6261 </table>
6262 </dd>
6263</dl>
6264<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>
6265
Anthony Barbierdbdab852017-06-23 15:42:00 +01006266<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00441">441</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 +00006267
6268<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#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006269<div class="fragment"><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;{</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> first_stage = DataType::UNKNOWN;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> second_stage = DataType::UNKNOWN;</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; <span class="keyword">auto</span> gez = [](<span class="keyword">const</span> int16_t &amp;v)</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">return</span> v &gt;= 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="line"><a name="l00451"></a><span class="lineno"> 451</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="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">return</span> first + (second &lt; 0 ? second : 0);</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;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</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="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> first + (second &gt; 0 ? second : 0);</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="keyword">const</span> <span class="keywordtype">bool</span> only_positive_coefficients = std::all_of(conv_row, conv_row + size, gez) &amp;&amp; std::all_of(conv_col, conv_col + size, gez);</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; <span class="keywordflow">if</span>(only_positive_coefficients)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; {</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</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 + size, 0) * UINT8_MAX;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</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 + size, 0) * max_row_value;</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; first_stage = (max_row_value &lt;= UINT16_MAX) ? DataType::U16 : DataType::S32;</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; second_stage = (max_value &lt;= UINT16_MAX) ? DataType::U16 : DataType::S32;</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="keywordflow">else</span></div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</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 + size, 0, accu_neg) * UINT8_MAX;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</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 + size, 0, accu_pos) * UINT8_MAX;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</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 + size, 0, accu_neg);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</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 + size, 0, accu_pos);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</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="l00479"></a><span class="lineno"> 479</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="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</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="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</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="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> std::make_pair(first_stage, second_stage);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;}</div><div class="ttc" id="accumulate_8cl_xhtml_a00e540076dd545ad59ac7482f8cdf514"><div class="ttname"><a href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">accumulate</a></div><div class="ttdeci">__kernel void accumulate(__global uchar *input_ptr, uint input_stride_x, uint input_step_x, uint input_stride_y, uint input_step_y, uint input_offset_first_element_in_bytes, __global uchar *accu_ptr, uint accu_stride_x, uint accu_step_x, uint accu_stride_y, uint accu_step_y, uint accu_offset_first_element_in_bytes)</div><div class="ttdoc">This function accumulates an input image into output image. </div><div class="ttdef"><b>Definition:</b> <a href="accumulate_8cl_source.xhtml#l00041">accumulate.cl:41</a></div></div>
6270<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#l00060">Types.h:60</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006271</div><!-- fragment -->
6272</div>
6273</div>
6274<a class="anchor" id="a3992df9e8723140a53e49dc194d89ef5"></a>
6275<div class="memitem">
6276<div class="memproto">
6277<table class="mlabels">
6278 <tr>
6279 <td class="mlabels-left">
6280 <table class="memname">
6281 <tr>
6282 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> arm_compute::data_type_for_convolution_matrix </td>
6283 <td>(</td>
6284 <td class="paramtype">const int16_t *&#160;</td>
6285 <td class="paramname"><em>conv</em>, </td>
6286 </tr>
6287 <tr>
6288 <td class="paramkey"></td>
6289 <td></td>
6290 <td class="paramtype">size_t&#160;</td>
6291 <td class="paramname"><em>size</em>&#160;</td>
6292 </tr>
6293 <tr>
6294 <td></td>
6295 <td>)</td>
6296 <td></td><td></td>
6297 </tr>
6298 </table>
6299 </td>
6300 <td class="mlabels-right">
6301<span class="mlabels"><span class="mlabel">inline</span></span> </td>
6302 </tr>
6303</table>
6304</div><div class="memdoc">
6305
6306<p>Calculate the accuracy required by the squared convolution calculation. </p>
6307<dl class="params"><dt>Parameters</dt><dd>
6308 <table class="params">
6309 <tr><td class="paramdir">[in]</td><td class="paramname">conv</td><td>Pointer to the squared convolution matrix </td></tr>
6310 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The total size of the convolution matrix</td></tr>
6311 </table>
6312 </dd>
6313</dl>
6314<dl class="section return"><dt>Returns</dt><dd>The return is the biggest data type needed to do the convolution </dd></dl>
6315
Anthony Barbierdbdab852017-06-23 15:42:00 +01006316<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">497</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 +00006317
Anthony Barbierdbdab852017-06-23 15:42:00 +01006318<p>References <a class="el" href="accumulate_8cl_source.xhtml#l00041">accumulate()</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#a6fd2c972d67298469a6aad75879fffab">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>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">U16</a>.</p>
6319<div class="fragment"><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;{</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">auto</span> gez = [](<span class="keyword">const</span> int16_t v)</div><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">return</span> v &gt;= 0;</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;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> only_positive_coefficients = std::all_of(conv, conv + size, gez);</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="keywordflow">if</span>(only_positive_coefficients)</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="keywordtype">int</span> max_conv_value = <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(conv, conv + size, 0) * UINT8_MAX;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">if</span>(max_conv_value &lt;= UINT16_MAX)</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; <span class="keywordflow">return</span> DataType::U16;</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="keywordflow">else</span></div><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="keywordflow">return</span> DataType::S32;</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 class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</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>(conv, conv + size, 0, [](<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b)</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; <span class="keywordflow">return</span> b &lt; 0 ? a + b : a;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; })</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; * UINT8_MAX;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</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, conv + size, 0, [](<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b)</div><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="keywordflow">return</span> b &gt; 0 ? a + b : a;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; })</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; * UINT8_MAX;</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>((INT16_MIN &lt;= min_value) &amp;&amp; (INT16_MAX &gt;= max_value))</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> DataType::S16;</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; <span class="keywordflow">else</span></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">return</span> DataType::S32;</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; }</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;}</div><div class="ttc" id="accumulate_8cl_xhtml_a00e540076dd545ad59ac7482f8cdf514"><div class="ttname"><a href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">accumulate</a></div><div class="ttdeci">__kernel void accumulate(__global uchar *input_ptr, uint input_stride_x, uint input_step_x, uint input_stride_y, uint input_step_y, uint input_offset_first_element_in_bytes, __global uchar *accu_ptr, uint accu_stride_x, uint accu_step_x, uint accu_stride_y, uint accu_step_y, uint accu_offset_first_element_in_bytes)</div><div class="ttdoc">This function accumulates an input image into output image. </div><div class="ttdef"><b>Definition:</b> <a href="accumulate_8cl_source.xhtml#l00041">accumulate.cl:41</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006320</div><!-- fragment -->
6321</div>
6322</div>
6323<a class="anchor" id="a59846ef5ca75cd81cdb7e8a1ce08f9db"></a>
6324<div class="memitem">
6325<div class="memproto">
6326<table class="mlabels">
6327 <tr>
6328 <td class="mlabels-left">
6329 <table class="memname">
6330 <tr>
6331 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> arm_compute::data_type_from_format </td>
6332 <td>(</td>
6333 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
6334 <td class="paramname"><em>format</em></td><td>)</td>
6335 <td></td>
6336 </tr>
6337 </table>
6338 </td>
6339 <td class="mlabels-right">
6340<span class="mlabels"><span class="mlabel">inline</span></span> </td>
6341 </tr>
6342</table>
6343</div><div class="memdoc">
6344
6345<p>Return the data type used by a given single-planar pixel format. </p>
6346<dl class="params"><dt>Parameters</dt><dd>
6347 <table class="params">
6348 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format</td></tr>
6349 </table>
6350 </dd>
6351</dl>
6352<dl class="section return"><dt>Returns</dt><dd>The size in bytes of the pixel format </dd></dl>
6353
Anthony Barbierdbdab852017-06-23 15:42:00 +01006354<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00201">201</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 +00006355
6356<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">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 +01006357
6358<p>Referenced by <a class="el" href="_raw_tensor_8cpp_source.xhtml#l00112">RawTensor::data_type()</a>.</p>
6359<div class="fragment"><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="keywordflow">switch</span>(format)</div><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; <span class="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">case</span> Format::UV88:</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> DataType::U8;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> DataType::U16;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> DataType::S16;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> DataType::U32;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> DataType::S32;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> DataType::F16;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> DataType::F32;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">//Doesn&#39;t make sense for planar formats:</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="_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="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> DataType::UNKNOWN;</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;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
6360</div><!-- fragment -->
6361</div>
6362</div>
6363<a class="anchor" id="a5930b66fce0674d707fbf4f2dfcacc8f"></a>
6364<div class="memitem">
6365<div class="memproto">
6366 <table class="memname">
6367 <tr>
6368 <td class="memname">void arm_compute::debug </td>
6369 <td>(</td>
6370 <td class="paramtype">const char *&#160;</td>
6371 <td class="paramname"><em>function</em>, </td>
6372 </tr>
6373 <tr>
6374 <td class="paramkey"></td>
6375 <td></td>
6376 <td class="paramtype">const char *&#160;</td>
6377 <td class="paramname"><em>file</em>, </td>
6378 </tr>
6379 <tr>
6380 <td class="paramkey"></td>
6381 <td></td>
6382 <td class="paramtype">const int&#160;</td>
6383 <td class="paramname"><em>line</em>, </td>
6384 </tr>
6385 <tr>
6386 <td class="paramkey"></td>
6387 <td></td>
6388 <td class="paramtype">const char *&#160;</td>
6389 <td class="paramname"><em>msg</em>, </td>
6390 </tr>
6391 <tr>
6392 <td class="paramkey"></td>
6393 <td></td>
6394 <td class="paramtype">&#160;</td>
6395 <td class="paramname"><em>...</em>&#160;</td>
6396 </tr>
6397 <tr>
6398 <td></td>
6399 <td>)</td>
6400 <td></td><td></td>
6401 </tr>
6402 </table>
6403</div><div class="memdoc">
6404
6405<p>Print a debug message. </p>
6406<dl class="params"><dt>Parameters</dt><dd>
6407 <table class="params">
6408 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
6409 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
6410 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
6411 <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Message to display before aborting. </td></tr>
6412 <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>Variable number of arguments of the message. </td></tr>
6413 </table>
6414 </dd>
6415</dl>
6416
6417</div>
6418</div>
6419<a class="anchor" id="aceaaf77291e83ca0dfaed677c93ce350"></a>
6420<div class="memitem">
6421<div class="memproto">
6422<table class="mlabels">
6423 <tr>
6424 <td class="mlabels-left">
6425 <table class="memname">
6426 <tr>
6427 <td class="memname">uint8_t delta_bilinear_c1u8 </td>
6428 <td>(</td>
6429 <td class="paramtype">const uint8_t *&#160;</td>
6430 <td class="paramname"><em>pixel_ptr</em>, </td>
6431 </tr>
6432 <tr>
6433 <td class="paramkey"></td>
6434 <td></td>
6435 <td class="paramtype">size_t&#160;</td>
6436 <td class="paramname"><em>stride</em>, </td>
6437 </tr>
6438 <tr>
6439 <td class="paramkey"></td>
6440 <td></td>
6441 <td class="paramtype">float&#160;</td>
6442 <td class="paramname"><em>dx</em>, </td>
6443 </tr>
6444 <tr>
6445 <td class="paramkey"></td>
6446 <td></td>
6447 <td class="paramtype">float&#160;</td>
6448 <td class="paramname"><em>dy</em>&#160;</td>
6449 </tr>
6450 <tr>
6451 <td></td>
6452 <td>)</td>
6453 <td></td><td></td>
6454 </tr>
6455 </table>
6456 </td>
6457 <td class="mlabels-right">
6458<span class="mlabels"><span class="mlabel">inline</span></span> </td>
6459 </tr>
6460</table>
6461</div><div class="memdoc">
6462
6463<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>
6464<dl class="params"><dt>Parameters</dt><dd>
6465 <table class="params">
6466 <tr><td class="paramdir">[in]</td><td class="paramname">pixel_ptr</td><td>Pointer to the top-left pixel value. Format: Single channel U8 </td></tr>
6467 <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>
6468 <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>
6469 <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>
6470 </table>
6471 </dd>
6472</dl>
6473<dl class="section note"><dt>Note</dt><dd>dx and dy must be in the range [0, 1.0]</dd></dl>
6474<dl class="section return"><dt>Returns</dt><dd>The bilinear interpolated pixel value </dd></dl>
6475
6476<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>
6477
6478<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>.</p>
6479
6480<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00052">pixel_bilinear_c1u8()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00065">pixel_bilinear_c1u8_clamp()</a>.</p>
6481<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="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(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="keyword">const</span> <span class="keywordtype">float</span> dx1 = 1.0f - dx;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dy1 = 1.0f - dy;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> a00 = *pixel_ptr;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> a01 = *(pixel_ptr + 1);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> a10 = *(pixel_ptr + stride);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> a11 = *(pixel_ptr + stride + 1);</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="keyword">const</span> <span class="keywordtype">float</span> w1 = dx1 * dy1;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w2 = dx * dy1;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w3 = dx1 * dy;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> w4 = dx * dy;</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; <span class="keywordflow">return</span> a00 * w1 + a01 * w2 + a10 * w3 + a11 * w4;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006482</div><!-- fragment -->
6483</div>
6484</div>
6485<a class="anchor" id="a12705a88669cb9fb90451ebe0db53c41"></a>
6486<div class="memitem">
6487<div class="memproto">
6488 <table class="memname">
6489 <tr>
6490 <td class="memname">constexpr auto arm_compute::DIV_CEIL </td>
6491 <td>(</td>
6492 <td class="paramtype">S&#160;</td>
6493 <td class="paramname"><em>val</em>, </td>
6494 </tr>
6495 <tr>
6496 <td class="paramkey"></td>
6497 <td></td>
6498 <td class="paramtype">T&#160;</td>
6499 <td class="paramname"><em>m</em>&#160;</td>
6500 </tr>
6501 <tr>
6502 <td></td>
6503 <td>)</td>
6504 <td></td><td> -&gt; decltype((val + m - 1) / m)
6505</td>
6506 </tr>
6507 </table>
6508</div><div class="memdoc">
6509
6510<p>Calculate the rounded up quotient of val / m. </p>
6511
Anthony Barbierdbdab852017-06-23 15:42:00 +01006512<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00059">59</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 +00006513
6514<p>References <a class="el" href="namespacearm__compute.xhtml#a64c17a5a42d2499a1626222ff9753b4d">build_information()</a>, and <a class="el" href="namespacearm__compute.xhtml#aefa4a4d3136d77b85cccfce344f9f37f">read_file()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006515<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="keywordflow">return</span> (val + m - 1) / m;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +00006516</div>
6517</div>
6518<a class="anchor" id="a34b06c0cd94808a77b697e79880b84b0"></a>
6519<div class="memitem">
6520<div class="memproto">
6521<table class="mlabels">
6522 <tr>
6523 <td class="mlabels-left">
6524 <table class="memname">
6525 <tr>
6526 <td class="memname">size_t arm_compute::element_size_from_data_type </td>
6527 <td>(</td>
6528 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
6529 <td class="paramname"><em>dt</em></td><td>)</td>
6530 <td></td>
6531 </tr>
6532 </table>
6533 </td>
6534 <td class="mlabels-right">
6535<span class="mlabels"><span class="mlabel">inline</span></span> </td>
6536 </tr>
6537</table>
6538</div><div class="memdoc">
6539
6540<p>The size in bytes of the data type. </p>
6541<dl class="params"><dt>Parameters</dt><dd>
6542 <table class="params">
6543 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Input data type</td></tr>
6544 </table>
6545 </dd>
6546</dl>
6547<dl class="section return"><dt>Returns</dt><dd>The size in bytes of the data type </dd></dl>
6548
Anthony Barbierdbdab852017-06-23 15:42:00 +01006549<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00172">172</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 +00006550
Anthony Barbierdbdab852017-06-23 15:42:00 +01006551<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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#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#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>
6552
6553<p>Referenced by <a class="el" href="_raw_tensor_8cpp_source.xhtml#l00091">RawTensor::element_size()</a>, <a class="el" href="_validate_8h_source.xhtml#l00549">error_on_value_not_representable_in_fixed_point()</a>, and <a class="el" href="_validation_8cpp_source.xhtml#l00196">arm_compute::test::validation::validate()</a>.</p>
6554<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>(dt)</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> DataType::S8:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">case</span> DataType::U8:</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">case</span> DataType::U16:</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">case</span> DataType::S16:</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> DataType::U32:</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">case</span> DataType::S32:</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="_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="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> 0;</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;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006555</div><!-- fragment -->
6556</div>
6557</div>
6558<a class="anchor" id="a22af22ebac966b76e8553127064201a2"></a>
6559<div class="memitem">
6560<div class="memproto">
6561 <table class="memname">
6562 <tr>
6563 <td class="memname">void arm_compute::enqueue </td>
6564 <td>(</td>
6565 <td class="paramtype">cl::CommandQueue &amp;&#160;</td>
6566 <td class="paramname"><em>queue</em>, </td>
6567 </tr>
6568 <tr>
6569 <td class="paramkey"></td>
6570 <td></td>
6571 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml">ICLKernel</a> &amp;&#160;</td>
6572 <td class="paramname"><em>kernel</em>, </td>
6573 </tr>
6574 <tr>
6575 <td class="paramkey"></td>
6576 <td></td>
6577 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
6578 <td class="paramname"><em>window</em>, </td>
6579 </tr>
6580 <tr>
6581 <td class="paramkey"></td>
6582 <td></td>
6583 <td class="paramtype">const cl::NDRange &amp;&#160;</td>
6584 <td class="paramname"><em>lws_hint</em> = <code>cl::Range_128_1</code>&#160;</td>
6585 </tr>
6586 <tr>
6587 <td></td>
6588 <td>)</td>
6589 <td></td><td></td>
6590 </tr>
6591 </table>
6592</div><div class="memdoc">
6593
6594<p>Add the kernel to the command queue with the given window. </p>
6595<dl class="section note"><dt>Note</dt><dd>Depending on the size of the window, this might translate into several jobs being enqueued.</dd>
6596<dd>
6597If kernel-&gt;kernel() is empty then the function will return without adding anything to the queue.</dd></dl>
6598<dl class="params"><dt>Parameters</dt><dd>
6599 <table class="params">
6600 <tr><td class="paramdir">[in,out]</td><td class="paramname">queue</td><td>OpenCL command queue. </td></tr>
6601 <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>
6602 <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>
6603 <tr><td class="paramdir">[in]</td><td class="paramname">lws_hint</td><td>Local workgroup size requested, by default (128,1)</td></tr>
6604 </table>
6605 </dd>
6606</dl>
6607<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>
6608
Anthony Barbierdbdab852017-06-23 15:42:00 +01006609<p>Referenced by <a class="el" href="_i_c_l_kernel_8h_source.xhtml#l00097">ICLKernel::add_argument()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006610
6611</div>
6612</div>
6613<a class="anchor" id="a568b0fbfa3d903099d9c9f7b6acf188d"></a>
6614<div class="memitem">
6615<div class="memproto">
6616 <table class="memname">
6617 <tr>
6618 <td class="memname">void arm_compute::error </td>
6619 <td>(</td>
6620 <td class="paramtype">const char *&#160;</td>
6621 <td class="paramname"><em>function</em>, </td>
6622 </tr>
6623 <tr>
6624 <td class="paramkey"></td>
6625 <td></td>
6626 <td class="paramtype">const char *&#160;</td>
6627 <td class="paramname"><em>file</em>, </td>
6628 </tr>
6629 <tr>
6630 <td class="paramkey"></td>
6631 <td></td>
6632 <td class="paramtype">const int&#160;</td>
6633 <td class="paramname"><em>line</em>, </td>
6634 </tr>
6635 <tr>
6636 <td class="paramkey"></td>
6637 <td></td>
6638 <td class="paramtype">const char *&#160;</td>
6639 <td class="paramname"><em>msg</em>, </td>
6640 </tr>
6641 <tr>
6642 <td class="paramkey"></td>
6643 <td></td>
6644 <td class="paramtype">&#160;</td>
6645 <td class="paramname"><em>...</em>&#160;</td>
6646 </tr>
6647 <tr>
6648 <td></td>
6649 <td>)</td>
6650 <td></td><td></td>
6651 </tr>
6652 </table>
6653</div><div class="memdoc">
6654
6655<p>Print an error message then throw an std::runtime_error. </p>
6656<dl class="params"><dt>Parameters</dt><dd>
6657 <table class="params">
6658 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
6659 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
6660 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
6661 <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Message to display before aborting. </td></tr>
6662 <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>Variable number of arguments of the message. </td></tr>
6663 </table>
6664 </dd>
6665</dl>
6666
6667</div>
6668</div>
6669<a class="anchor" id="a593d972357b3bcfeecb87207dc925417"></a>
6670<div class="memitem">
6671<div class="memproto">
6672 <table class="memname">
6673 <tr>
6674 <td class="memname">void arm_compute::error_on_channel_not_in </td>
6675 <td>(</td>
6676 <td class="paramtype">const char *&#160;</td>
6677 <td class="paramname"><em>function</em>, </td>
6678 </tr>
6679 <tr>
6680 <td class="paramkey"></td>
6681 <td></td>
6682 <td class="paramtype">const char *&#160;</td>
6683 <td class="paramname"><em>file</em>, </td>
6684 </tr>
6685 <tr>
6686 <td class="paramkey"></td>
6687 <td></td>
6688 <td class="paramtype">const int&#160;</td>
6689 <td class="paramname"><em>line</em>, </td>
6690 </tr>
6691 <tr>
6692 <td class="paramkey"></td>
6693 <td></td>
6694 <td class="paramtype">T&#160;</td>
6695 <td class="paramname"><em>cn</em>, </td>
6696 </tr>
6697 <tr>
6698 <td class="paramkey"></td>
6699 <td></td>
6700 <td class="paramtype">T &amp;&amp;&#160;</td>
6701 <td class="paramname"><em>channel</em>, </td>
6702 </tr>
6703 <tr>
6704 <td class="paramkey"></td>
6705 <td></td>
6706 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
6707 <td class="paramname"><em>channels</em>&#160;</td>
6708 </tr>
6709 <tr>
6710 <td></td>
6711 <td>)</td>
6712 <td></td><td></td>
6713 </tr>
6714 </table>
6715</div><div class="memdoc">
6716
6717<p>Throw an error if the channel is not in channels. </p>
6718<dl class="params"><dt>Parameters</dt><dd>
6719 <table class="params">
6720 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
6721 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
6722 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
6723 <tr><td class="paramdir">[in]</td><td class="paramname">cn</td><td>Input channel </td></tr>
6724 <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>First channel allowed. </td></tr>
6725 <tr><td class="paramdir">[in]</td><td class="paramname">channels</td><td>(Optional) Further allowed channels. </td></tr>
6726 </table>
6727 </dd>
6728</dl>
6729
Anthony Barbierdbdab852017-06-23 15:42:00 +01006730<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00436">436</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006731
Anthony Barbierdbdab852017-06-23 15:42:00 +01006732<p>References <a class="el" href="_error_8h_source.xhtml#l00134">ARM_COMPUTE_ERROR_ON_LOC</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
6733<div class="fragment"><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;{</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_ERROR_ON_LOC</a>(cn == Channel::UNKNOWN, <span class="keyword">function</span>, file, line);</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; <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="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(channels_array);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_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="l00444"></a><span class="lineno"> 444</span>&#160; {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">return</span> f == cn;</div><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; <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
6734<div class="ttc" id="_error_8h_xhtml_ac90c3bce005225cbaa4a43740917bb58"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00134">Error.h:134</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006735</div><!-- fragment -->
6736</div>
6737</div>
6738<a class="anchor" id="ad0d001a84424d440f9a11fc1b80ed2ff"></a>
6739<div class="memitem">
6740<div class="memproto">
6741 <table class="memname">
6742 <tr>
6743 <td class="memname">void arm_compute::error_on_channel_not_in_known_format </td>
6744 <td>(</td>
6745 <td class="paramtype">const char *&#160;</td>
6746 <td class="paramname"><em>function</em>, </td>
6747 </tr>
6748 <tr>
6749 <td class="paramkey"></td>
6750 <td></td>
6751 <td class="paramtype">const char *&#160;</td>
6752 <td class="paramname"><em>file</em>, </td>
6753 </tr>
6754 <tr>
6755 <td class="paramkey"></td>
6756 <td></td>
6757 <td class="paramtype">const int&#160;</td>
6758 <td class="paramname"><em>line</em>, </td>
6759 </tr>
6760 <tr>
6761 <td class="paramkey"></td>
6762 <td></td>
6763 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
6764 <td class="paramname"><em>fmt</em>, </td>
6765 </tr>
6766 <tr>
6767 <td class="paramkey"></td>
6768 <td></td>
6769 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
6770 <td class="paramname"><em>cn</em>&#160;</td>
6771 </tr>
6772 <tr>
6773 <td></td>
6774 <td>)</td>
6775 <td></td><td></td>
6776 </tr>
6777 </table>
6778</div><div class="memdoc">
6779
6780<p>Throw an error if the channel is not in format. </p>
6781<dl class="params"><dt>Parameters</dt><dd>
6782 <table class="params">
6783 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
6784 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
6785 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
6786 <tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>Input channel </td></tr>
6787 <tr><td class="paramdir">[in]</td><td class="paramname">cn</td><td>First channel allowed. </td></tr>
6788 </table>
6789 </dd>
6790</dl>
6791
6792</div>
6793</div>
6794<a class="anchor" id="a130822528598f21a48f7ee0e6d8438a0"></a>
6795<div class="memitem">
6796<div class="memproto">
6797 <table class="memname">
6798 <tr>
6799 <td class="memname">void arm_compute::error_on_coordinates_dimensions_gte </td>
6800 <td>(</td>
6801 <td class="paramtype">const char *&#160;</td>
6802 <td class="paramname"><em>function</em>, </td>
6803 </tr>
6804 <tr>
6805 <td class="paramkey"></td>
6806 <td></td>
6807 <td class="paramtype">const char *&#160;</td>
6808 <td class="paramname"><em>file</em>, </td>
6809 </tr>
6810 <tr>
6811 <td class="paramkey"></td>
6812 <td></td>
6813 <td class="paramtype">const int&#160;</td>
6814 <td class="paramname"><em>line</em>, </td>
6815 </tr>
6816 <tr>
6817 <td class="paramkey"></td>
6818 <td></td>
6819 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;&#160;</td>
6820 <td class="paramname"><em>pos</em>, </td>
6821 </tr>
6822 <tr>
6823 <td class="paramkey"></td>
6824 <td></td>
6825 <td class="paramtype">unsigned int&#160;</td>
6826 <td class="paramname"><em>max_dim</em>&#160;</td>
6827 </tr>
6828 <tr>
6829 <td></td>
6830 <td>)</td>
6831 <td></td><td></td>
6832 </tr>
6833 </table>
6834</div><div class="memdoc">
6835
6836<p>Throw an error if the passed coordinates have too many dimensions. </p>
6837<p>The coordinates have too many dimensions if any of the dimensions greater or equal to max_dim is different from 0.</p>
6838<dl class="params"><dt>Parameters</dt><dd>
6839 <table class="params">
6840 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
6841 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
6842 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
6843 <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>
6844 <tr><td class="paramdir">[in]</td><td class="paramname">max_dim</td><td>Maximum number of dimensions allowed. </td></tr>
6845 </table>
6846 </dd>
6847</dl>
6848
6849</div>
6850</div>
6851<a class="anchor" id="a690ce072b4480f4a5bad433f23c9fe05"></a>
6852<div class="memitem">
6853<div class="memproto">
6854 <table class="memname">
6855 <tr>
6856 <td class="memname">void arm_compute::error_on_data_type_channel_not_in </td>
6857 <td>(</td>
6858 <td class="paramtype">const char *&#160;</td>
6859 <td class="paramname"><em>function</em>, </td>
6860 </tr>
6861 <tr>
6862 <td class="paramkey"></td>
6863 <td></td>
6864 <td class="paramtype">const char *&#160;</td>
6865 <td class="paramname"><em>file</em>, </td>
6866 </tr>
6867 <tr>
6868 <td class="paramkey"></td>
6869 <td></td>
6870 <td class="paramtype">const int&#160;</td>
6871 <td class="paramname"><em>line</em>, </td>
6872 </tr>
6873 <tr>
6874 <td class="paramkey"></td>
6875 <td></td>
6876 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
6877 <td class="paramname"><em>tensor</em>, </td>
6878 </tr>
6879 <tr>
6880 <td class="paramkey"></td>
6881 <td></td>
6882 <td class="paramtype">size_t&#160;</td>
6883 <td class="paramname"><em>num_channels</em>, </td>
6884 </tr>
6885 <tr>
6886 <td class="paramkey"></td>
6887 <td></td>
6888 <td class="paramtype">T &amp;&amp;&#160;</td>
6889 <td class="paramname"><em>dt</em>, </td>
6890 </tr>
6891 <tr>
6892 <td class="paramkey"></td>
6893 <td></td>
6894 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
6895 <td class="paramname"><em>dts</em>&#160;</td>
6896 </tr>
6897 <tr>
6898 <td></td>
6899 <td>)</td>
6900 <td></td><td></td>
6901 </tr>
6902 </table>
6903</div><div class="memdoc">
6904
6905<p>Throw 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>
6906<dl class="params"><dt>Parameters</dt><dd>
6907 <table class="params">
6908 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
6909 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
6910 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
6911 <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>
6912 <tr><td class="paramdir">[in]</td><td class="paramname">num_channels</td><td>Number of channels to check </td></tr>
6913 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>First data type allowed. </td></tr>
6914 <tr><td class="paramdir">[in]</td><td class="paramname">dts</td><td>(Optional) Further allowed data types. </td></tr>
6915 </table>
6916 </dd>
6917</dl>
6918
Anthony Barbierdbdab852017-06-23 15:42:00 +01006919<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00403">403</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006920
Anthony Barbierdbdab852017-06-23 15:42:00 +01006921<p>References <a class="el" href="_error_8h_source.xhtml#l00116">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, <a class="el" href="_validate_8h_source.xhtml#l00371">error_on_data_type_not_in()</a>, <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ad7829ae79223ab87f9da4c0bd7d229ba">ITensorInfo::num_channels()</a>.</p>
6922<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; <a class="code" href="namespacearm__compute.xhtml#a0c52339d3cb372d145deeafb5a313807">error_on_data_type_not_in</a>(<span class="keyword">function</span>, file, line, tensor, std::forward&lt;T&gt;(dt), std::forward&lt;Ts&gt;(dts)...);</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; <span class="keyword">const</span> <span class="keywordtype">size_t</span> tensor_nc = tensor-&gt;info()-&gt;num_channels();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensor_nc);</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; <a class="code" href="_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_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="l00412"></a><span class="lineno"> 412</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a1b62e396a1789909dadda61ea4cda96f"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00116">Error.h:116</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006923<div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01006924<div class="ttc" id="namespacearm__compute_xhtml_a0c52339d3cb372d145deeafb5a313807"><div class="ttname"><a href="namespacearm__compute.xhtml#a0c52339d3cb372d145deeafb5a313807">arm_compute::error_on_data_type_not_in</a></div><div class="ttdeci">void error_on_data_type_not_in(const char *function, const char *file, const int line, const ITensor *tensor, T &amp;&amp;dt, Ts &amp;&amp;...dts)</div><div class="ttdoc">Throw an error if the data type of the passed tensor does not match any of the data types provided...</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00371">Validate.h:371</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006925</div><!-- fragment -->
6926</div>
6927</div>
6928<a class="anchor" id="a0c52339d3cb372d145deeafb5a313807"></a>
6929<div class="memitem">
6930<div class="memproto">
6931 <table class="memname">
6932 <tr>
6933 <td class="memname">void arm_compute::error_on_data_type_not_in </td>
6934 <td>(</td>
6935 <td class="paramtype">const char *&#160;</td>
6936 <td class="paramname"><em>function</em>, </td>
6937 </tr>
6938 <tr>
6939 <td class="paramkey"></td>
6940 <td></td>
6941 <td class="paramtype">const char *&#160;</td>
6942 <td class="paramname"><em>file</em>, </td>
6943 </tr>
6944 <tr>
6945 <td class="paramkey"></td>
6946 <td></td>
6947 <td class="paramtype">const int&#160;</td>
6948 <td class="paramname"><em>line</em>, </td>
6949 </tr>
6950 <tr>
6951 <td class="paramkey"></td>
6952 <td></td>
6953 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
6954 <td class="paramname"><em>tensor</em>, </td>
6955 </tr>
6956 <tr>
6957 <td class="paramkey"></td>
6958 <td></td>
6959 <td class="paramtype">T &amp;&amp;&#160;</td>
6960 <td class="paramname"><em>dt</em>, </td>
6961 </tr>
6962 <tr>
6963 <td class="paramkey"></td>
6964 <td></td>
6965 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
6966 <td class="paramname"><em>dts</em>&#160;</td>
6967 </tr>
6968 <tr>
6969 <td></td>
6970 <td>)</td>
6971 <td></td><td></td>
6972 </tr>
6973 </table>
6974</div><div class="memdoc">
6975
6976<p>Throw an error if the data type of the passed tensor does not match any of the data types provided. </p>
6977<dl class="params"><dt>Parameters</dt><dd>
6978 <table class="params">
6979 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
6980 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
6981 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
6982 <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>
6983 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>First data type allowed. </td></tr>
6984 <tr><td class="paramdir">[in]</td><td class="paramname">dts</td><td>(Optional) Further allowed data types. </td></tr>
6985 </table>
6986 </dd>
6987</dl>
6988
Anthony Barbierdbdab852017-06-23 15:42:00 +01006989<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00371">371</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006990
Anthony Barbierdbdab852017-06-23 15:42:00 +01006991<p>References <a class="el" href="_error_8h_source.xhtml#l00134">ARM_COMPUTE_ERROR_ON_LOC</a>, <a class="el" href="_error_8h_source.xhtml#l00116">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</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.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>, <a class="el" href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">string_from_data_type()</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00006992
Anthony Barbierdbdab852017-06-23 15:42:00 +01006993<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00403">error_on_data_type_channel_not_in()</a>.</p>
6994<div class="fragment"><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; <a class="code" href="_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_ERROR_ON_LOC</a>(tensor == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><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="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;tensor_dt = tensor-&gt;info()-&gt;data_type(); <span class="comment">//NOLINT</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensor_dt);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <a class="code" href="_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_ERROR_ON_LOC</a>(tensor_dt == DataType::UNKNOWN, <span class="keyword">function</span>, file, line);</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="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="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(dts_array);</div><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="_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_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="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> d == tensor_dt;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }),</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</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="l00389"></a><span class="lineno"> 389</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a1b62e396a1789909dadda61ea4cda96f"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00116">Error.h:116</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006995<div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
6996<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 Barbierdbdab852017-06-23 15:42:00 +01006997<div class="ttc" id="_error_8h_xhtml_ac90c3bce005225cbaa4a43740917bb58"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00134">Error.h:134</a></div></div>
6998<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#l00060">Types.h:60</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00006999</div><!-- fragment -->
7000</div>
7001</div>
7002<a class="anchor" id="a0b360558b516e256f0af005a164c674e"></a>
7003<div class="memitem">
7004<div class="memproto">
7005 <table class="memname">
7006 <tr>
7007 <td class="memname">void arm_compute::error_on_format_not_in </td>
7008 <td>(</td>
7009 <td class="paramtype">const char *&#160;</td>
7010 <td class="paramname"><em>function</em>, </td>
7011 </tr>
7012 <tr>
7013 <td class="paramkey"></td>
7014 <td></td>
7015 <td class="paramtype">const char *&#160;</td>
7016 <td class="paramname"><em>file</em>, </td>
7017 </tr>
7018 <tr>
7019 <td class="paramkey"></td>
7020 <td></td>
7021 <td class="paramtype">const int&#160;</td>
7022 <td class="paramname"><em>line</em>, </td>
7023 </tr>
7024 <tr>
7025 <td class="paramkey"></td>
7026 <td></td>
7027 <td class="paramtype">const T *&#160;</td>
7028 <td class="paramname"><em>object</em>, </td>
7029 </tr>
7030 <tr>
7031 <td class="paramkey"></td>
7032 <td></td>
7033 <td class="paramtype">F &amp;&amp;&#160;</td>
7034 <td class="paramname"><em>format</em>, </td>
7035 </tr>
7036 <tr>
7037 <td class="paramkey"></td>
7038 <td></td>
7039 <td class="paramtype">Fs &amp;&amp;...&#160;</td>
7040 <td class="paramname"><em>formats</em>&#160;</td>
7041 </tr>
7042 <tr>
7043 <td></td>
7044 <td>)</td>
7045 <td></td><td></td>
7046 </tr>
7047 </table>
7048</div><div class="memdoc">
7049
7050<p>Throw an error if the format of the passed tensor/multi-image does not match any of the formats provided. </p>
7051<dl class="params"><dt>Parameters</dt><dd>
7052 <table class="params">
7053 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7054 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7055 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7056 <tr><td class="paramdir">[in]</td><td class="paramname">object</td><td>Tensor/multi-image to validate. </td></tr>
7057 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>First format allowed. </td></tr>
7058 <tr><td class="paramdir">[in]</td><td class="paramname">formats</td><td>(Optional) Further allowed formats. </td></tr>
7059 </table>
7060 </dd>
7061</dl>
7062
Anthony Barbierdbdab852017-06-23 15:42:00 +01007063<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00340">340</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00007064
Anthony Barbierdbdab852017-06-23 15:42:00 +01007065<p>References <a class="el" href="_error_8h_source.xhtml#l00134">ARM_COMPUTE_ERROR_ON_LOC</a>, <a class="el" href="_error_8h_source.xhtml#l00116">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, <a class="el" href="namespacearm__compute.xhtml#a9c92c867fc64454545668d87b20979eb">string_from_format()</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
7066<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; <a class="code" href="_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="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.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> &amp;&amp;object_format = <span class="keywordtype">object</span>-&gt;info()-&gt;format();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(object_format);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="_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="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</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="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(formats_array);</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="_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="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">return</span> f == object_format;</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; <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="l00358"></a><span class="lineno"> 358</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a1b62e396a1789909dadda61ea4cda96f"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00116">Error.h:116</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007067<div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007068<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#l00038">Types.h:38</a></div></div>
7069<div class="ttc" id="_error_8h_xhtml_ac90c3bce005225cbaa4a43740917bb58"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00134">Error.h:134</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007070<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>
7071</div><!-- fragment -->
7072</div>
7073</div>
7074<a class="anchor" id="a307666ca482a84d5a64251d78889a818"></a>
7075<div class="memitem">
7076<div class="memproto">
7077 <table class="memname">
7078 <tr>
7079 <td class="memname">void arm_compute::error_on_invalid_multi_hog </td>
7080 <td>(</td>
7081 <td class="paramtype">const char *&#160;</td>
7082 <td class="paramname"><em>function</em>, </td>
7083 </tr>
7084 <tr>
7085 <td class="paramkey"></td>
7086 <td></td>
7087 <td class="paramtype">const char *&#160;</td>
7088 <td class="paramname"><em>file</em>, </td>
7089 </tr>
7090 <tr>
7091 <td class="paramkey"></td>
7092 <td></td>
7093 <td class="paramtype">const int&#160;</td>
7094 <td class="paramname"><em>line</em>, </td>
7095 </tr>
7096 <tr>
7097 <td class="paramkey"></td>
7098 <td></td>
7099 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml">IMultiHOG</a> *&#160;</td>
7100 <td class="paramname"><em>multi_hog</em>&#160;</td>
7101 </tr>
7102 <tr>
7103 <td></td>
7104 <td>)</td>
7105 <td></td><td></td>
7106 </tr>
7107 </table>
7108</div><div class="memdoc">
7109
7110<p>Throw an error if the <a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml">IMultiHOG</a> container is invalid. </p>
7111<p>An <a class="el" href="classarm__compute_1_1_i_multi_h_o_g.xhtml">IMultiHOG</a> container is invalid if:</p>
7112<ol type="1">
7113<li>it is a nullptr</li>
7114<li>it doesn't contain models</li>
7115<li><p class="startli">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)</p>
7116<dl class="params"><dt>Parameters</dt><dd>
7117 <table class="params">
7118 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7119 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7120 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7121 <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>
7122 </table>
7123 </dd>
7124</dl>
7125</li>
7126</ol>
7127
7128</div>
7129</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007130<a class="anchor" id="a36ffb104aed50deb360db6f3afa4c394"></a>
7131<div class="memitem">
7132<div class="memproto">
7133 <table class="memname">
7134 <tr>
7135 <td class="memname">void arm_compute::error_on_invalid_subtensor </td>
7136 <td>(</td>
7137 <td class="paramtype">const char *&#160;</td>
7138 <td class="paramname"><em>function</em>, </td>
7139 </tr>
7140 <tr>
7141 <td class="paramkey"></td>
7142 <td></td>
7143 <td class="paramtype">const char *&#160;</td>
7144 <td class="paramname"><em>file</em>, </td>
7145 </tr>
7146 <tr>
7147 <td class="paramkey"></td>
7148 <td></td>
7149 <td class="paramtype">const int&#160;</td>
7150 <td class="paramname"><em>line</em>, </td>
7151 </tr>
7152 <tr>
7153 <td class="paramkey"></td>
7154 <td></td>
7155 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
7156 <td class="paramname"><em>parent_shape</em>, </td>
7157 </tr>
7158 <tr>
7159 <td class="paramkey"></td>
7160 <td></td>
7161 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;&#160;</td>
7162 <td class="paramname"><em>coords</em>, </td>
7163 </tr>
7164 <tr>
7165 <td class="paramkey"></td>
7166 <td></td>
7167 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
7168 <td class="paramname"><em>shape</em>&#160;</td>
7169 </tr>
7170 <tr>
7171 <td></td>
7172 <td>)</td>
7173 <td></td><td></td>
7174 </tr>
7175 </table>
7176</div><div class="memdoc">
7177
7178<p>Throw an error if if the coordinates and shape of the subtensor are within the parent tensor. </p>
7179<dl class="params"><dt>Parameters</dt><dd>
7180 <table class="params">
7181 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7182 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7183 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7184 <tr><td class="paramdir">[in]</td><td class="paramname">parent_shape</td><td>Parent tensor shape </td></tr>
7185 <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>
7186 <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>Shape of the subtensor </td></tr>
7187 </table>
7188 </dd>
7189</dl>
7190
7191</div>
7192</div>
7193<a class="anchor" id="a858e835f22c359080a09709c6dd950b1"></a>
7194<div class="memitem">
7195<div class="memproto">
7196 <table class="memname">
7197 <tr>
7198 <td class="memname">void arm_compute::error_on_invalid_subtensor_valid_region </td>
7199 <td>(</td>
7200 <td class="paramtype">const char *&#160;</td>
7201 <td class="paramname"><em>function</em>, </td>
7202 </tr>
7203 <tr>
7204 <td class="paramkey"></td>
7205 <td></td>
7206 <td class="paramtype">const char *&#160;</td>
7207 <td class="paramname"><em>file</em>, </td>
7208 </tr>
7209 <tr>
7210 <td class="paramkey"></td>
7211 <td></td>
7212 <td class="paramtype">const int&#160;</td>
7213 <td class="paramname"><em>line</em>, </td>
7214 </tr>
7215 <tr>
7216 <td class="paramkey"></td>
7217 <td></td>
7218 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
7219 <td class="paramname"><em>parent_valid_region</em>, </td>
7220 </tr>
7221 <tr>
7222 <td class="paramkey"></td>
7223 <td></td>
7224 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
7225 <td class="paramname"><em>valid_region</em>&#160;</td>
7226 </tr>
7227 <tr>
7228 <td></td>
7229 <td>)</td>
7230 <td></td><td></td>
7231 </tr>
7232 </table>
7233</div><div class="memdoc">
7234
7235<p>Throw an error if the valid region of a subtensor is not inside the valid region of the parent tensor. </p>
7236<dl class="params"><dt>Parameters</dt><dd>
7237 <table class="params">
7238 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7239 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7240 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7241 <tr><td class="paramdir">[in]</td><td class="paramname">parent_valid_region</td><td>Parent valid region. </td></tr>
7242 <tr><td class="paramdir">[in]</td><td class="paramname">valid_region</td><td>Valid region of subtensor. </td></tr>
7243 </table>
7244 </dd>
7245</dl>
7246
7247</div>
7248</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007249<a class="anchor" id="a0916477887763c20822b43be144963eb"></a>
7250<div class="memitem">
7251<div class="memproto">
7252 <table class="memname">
7253 <tr>
7254 <td class="memname">void arm_compute::error_on_invalid_subwindow </td>
7255 <td>(</td>
7256 <td class="paramtype">const char *&#160;</td>
7257 <td class="paramname"><em>function</em>, </td>
7258 </tr>
7259 <tr>
7260 <td class="paramkey"></td>
7261 <td></td>
7262 <td class="paramtype">const char *&#160;</td>
7263 <td class="paramname"><em>file</em>, </td>
7264 </tr>
7265 <tr>
7266 <td class="paramkey"></td>
7267 <td></td>
7268 <td class="paramtype">const int&#160;</td>
7269 <td class="paramname"><em>line</em>, </td>
7270 </tr>
7271 <tr>
7272 <td class="paramkey"></td>
7273 <td></td>
7274 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
7275 <td class="paramname"><em>full</em>, </td>
7276 </tr>
7277 <tr>
7278 <td class="paramkey"></td>
7279 <td></td>
7280 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
7281 <td class="paramname"><em>sub</em>&#160;</td>
7282 </tr>
7283 <tr>
7284 <td></td>
7285 <td>)</td>
7286 <td></td><td></td>
7287 </tr>
7288 </table>
7289</div><div class="memdoc">
7290
7291<p>Throw an error if the passed subwindow is invalid. </p>
7292<p>The subwindow is invalid if:</p><ul>
7293<li>It is not a valid window.</li>
7294<li>It is not fully contained inside the full window</li>
7295<li><p class="startli">The step for each of its dimension is not identical to the corresponding one of the full window.</p>
7296<dl class="params"><dt>Parameters</dt><dd>
7297 <table class="params">
7298 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7299 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7300 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7301 <tr><td class="paramdir">[in]</td><td class="paramname">full</td><td>Full size window </td></tr>
7302 <tr><td class="paramdir">[in]</td><td class="paramname">sub</td><td>Sub-window to validate. </td></tr>
7303 </table>
7304 </dd>
7305</dl>
7306</li>
7307</ul>
7308
7309</div>
7310</div>
7311<a class="anchor" id="ad35d92af32949e38ec38b3d8e46b566c"></a>
7312<div class="memitem">
7313<div class="memproto">
7314 <table class="memname">
7315 <tr>
7316 <td class="memname">void arm_compute::error_on_mismatching_data_types </td>
7317 <td>(</td>
7318 <td class="paramtype">const char *&#160;</td>
7319 <td class="paramname"><em>function</em>, </td>
7320 </tr>
7321 <tr>
7322 <td class="paramkey"></td>
7323 <td></td>
7324 <td class="paramtype">const char *&#160;</td>
7325 <td class="paramname"><em>file</em>, </td>
7326 </tr>
7327 <tr>
7328 <td class="paramkey"></td>
7329 <td></td>
7330 <td class="paramtype">const int&#160;</td>
7331 <td class="paramname"><em>line</em>, </td>
7332 </tr>
7333 <tr>
7334 <td class="paramkey"></td>
7335 <td></td>
7336 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7337 <td class="paramname"><em>tensor_1</em>, </td>
7338 </tr>
7339 <tr>
7340 <td class="paramkey"></td>
7341 <td></td>
7342 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7343 <td class="paramname"><em>tensor_2</em>, </td>
7344 </tr>
7345 <tr>
7346 <td class="paramkey"></td>
7347 <td></td>
7348 <td class="paramtype">Ts...&#160;</td>
7349 <td class="paramname"><em>tensors</em>&#160;</td>
7350 </tr>
7351 <tr>
7352 <td></td>
7353 <td>)</td>
7354 <td></td><td></td>
7355 </tr>
7356 </table>
7357</div><div class="memdoc">
7358
7359<p>Throw an error if the passed two tensors have different data types. </p>
7360<dl class="params"><dt>Parameters</dt><dd>
7361 <table class="params">
7362 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7363 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7364 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7365 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
7366 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
7367 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors. </td></tr>
7368 </table>
7369 </dd>
7370</dl>
7371
Anthony Barbierdbdab852017-06-23 15:42:00 +01007372<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00257">257</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00007373
Anthony Barbierdbdab852017-06-23 15:42:00 +01007374<p>References <a class="el" href="_error_8h_source.xhtml#l00116">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">ITensorInfo::data_type()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
7375<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; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(<span class="keyword">function</span>);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(file);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(line);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensor_1);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensor_2);</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; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&amp;first_data_type = tensor_1-&gt;info()-&gt;data_type();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(first_data_type);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">const</span> std::array&lt;<span class="keyword">const</span> ITensor *, <span class="keyword">sizeof</span>...(Ts)&gt; tensors_array{ { std::forward&lt;Ts&gt;(tensors)... } };</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensors_array);</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; <a class="code" href="_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>(tensor_2-&gt;info()-&gt;data_type() != first_data_type || std::any_of(tensors_array.begin(), tensors_array.end(), [&amp;](<span class="keyword">const</span> ITensor * tensor)</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">return</span> tensor-&gt;info()-&gt;data_type() != first_data_type;</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="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different data types&quot;</span>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a1b62e396a1789909dadda61ea4cda96f"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00116">Error.h:116</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007376<div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007377<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#l00060">Types.h:60</a></div></div>
7378</div><!-- fragment -->
7379</div>
7380</div>
7381<a class="anchor" id="aff062b84c57c614a2de4d54db2cbc31c"></a>
7382<div class="memitem">
7383<div class="memproto">
7384 <table class="memname">
7385 <tr>
7386 <td class="memname">void arm_compute::error_on_mismatching_dimensions </td>
7387 <td>(</td>
7388 <td class="paramtype">const char *&#160;</td>
7389 <td class="paramname"><em>function</em>, </td>
7390 </tr>
7391 <tr>
7392 <td class="paramkey"></td>
7393 <td></td>
7394 <td class="paramtype">const char *&#160;</td>
7395 <td class="paramname"><em>file</em>, </td>
7396 </tr>
7397 <tr>
7398 <td class="paramkey"></td>
7399 <td></td>
7400 <td class="paramtype">int&#160;</td>
7401 <td class="paramname"><em>line</em>, </td>
7402 </tr>
7403 <tr>
7404 <td class="paramkey"></td>
7405 <td></td>
7406 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
7407 <td class="paramname"><em>dim1</em>, </td>
7408 </tr>
7409 <tr>
7410 <td class="paramkey"></td>
7411 <td></td>
7412 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
7413 <td class="paramname"><em>dim2</em>, </td>
7414 </tr>
7415 <tr>
7416 <td class="paramkey"></td>
7417 <td></td>
7418 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
7419 <td class="paramname"><em>dims</em>&#160;</td>
7420 </tr>
7421 <tr>
7422 <td></td>
7423 <td>)</td>
7424 <td></td><td></td>
7425 </tr>
7426 </table>
7427</div><div class="memdoc">
7428
7429<p>Throw an error if the passed dimension objects differ. </p>
7430<dl class="params"><dt>Parameters</dt><dd>
7431 <table class="params">
7432 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7433 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7434 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7435 <tr><td class="paramdir">[in]</td><td class="paramname">dim1</td><td>The first object to be compared. </td></tr>
7436 <tr><td class="paramdir">[in]</td><td class="paramname">dim2</td><td>The second object to be compared. </td></tr>
7437 <tr><td class="paramdir">[in]</td><td class="paramname">dims</td><td>(Optional) Further allowed objects. </td></tr>
7438 </table>
7439 </dd>
7440</dl>
7441
7442<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00188">188</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
7443
7444<p>References <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00200">for_each()</a>.</p>
7445<div class="fragment"><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; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(<span class="keyword">function</span>);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(file);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(line);</div><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; <a class="code" href="namespacearm__compute.xhtml#a76e58198af8e930a851637e7e3eccbd2">for_each</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="l00196"></a><span class="lineno"> 196</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
7446<div class="ttc" id="namespacearm__compute_xhtml_a76e58198af8e930a851637e7e3eccbd2"><div class="ttname"><a href="namespacearm__compute.xhtml#a76e58198af8e930a851637e7e3eccbd2">arm_compute::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="arm__compute_2core_2_helpers_8h_source.xhtml#l00200">Helpers.h:200</a></div></div>
7447</div><!-- fragment -->
7448</div>
7449</div>
7450<a class="anchor" id="a526ed43a37ba0faf2c1789175ec1a350"></a>
7451<div class="memitem">
7452<div class="memproto">
7453 <table class="memname">
7454 <tr>
7455 <td class="memname">void arm_compute::error_on_mismatching_fixed_point </td>
7456 <td>(</td>
7457 <td class="paramtype">const char *&#160;</td>
7458 <td class="paramname"><em>function</em>, </td>
7459 </tr>
7460 <tr>
7461 <td class="paramkey"></td>
7462 <td></td>
7463 <td class="paramtype">const char *&#160;</td>
7464 <td class="paramname"><em>file</em>, </td>
7465 </tr>
7466 <tr>
7467 <td class="paramkey"></td>
7468 <td></td>
7469 <td class="paramtype">const int&#160;</td>
7470 <td class="paramname"><em>line</em>, </td>
7471 </tr>
7472 <tr>
7473 <td class="paramkey"></td>
7474 <td></td>
7475 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7476 <td class="paramname"><em>tensor_1</em>, </td>
7477 </tr>
7478 <tr>
7479 <td class="paramkey"></td>
7480 <td></td>
7481 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7482 <td class="paramname"><em>tensor_2</em>, </td>
7483 </tr>
7484 <tr>
7485 <td class="paramkey"></td>
7486 <td></td>
7487 <td class="paramtype">Ts...&#160;</td>
7488 <td class="paramname"><em>tensors</em>&#160;</td>
7489 </tr>
7490 <tr>
7491 <td></td>
7492 <td>)</td>
7493 <td></td><td></td>
7494 </tr>
7495 </table>
7496</div><div class="memdoc">
7497
7498<p>Throw an error if the passed tensors have different fixed point data types or different fixed point positions. </p>
7499<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>
7500<dl class="params"><dt>Parameters</dt><dd>
7501 <table class="params">
7502 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7503 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7504 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7505 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
7506 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
7507 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors. </td></tr>
7508 </table>
7509 </dd>
7510</dl>
7511
7512<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00293">293</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
7513
7514<p>References <a class="el" href="_error_8h_source.xhtml#l00116">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</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>, <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>, and <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>.</p>
7515<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; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(<span class="keyword">function</span>);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(file);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(line);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensor_1);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensor_2);</div><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; <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&amp;first_data_type = tensor_1-&gt;info()-&gt;data_type();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> first_fixed_point_position = tensor_1-&gt;info()-&gt;fixed_point_position();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(first_data_type);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(first_fixed_point_position);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>((first_data_type != DataType::QS8) &amp;&amp; (first_data_type != DataType::QS16))</div><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="keywordflow">return</span>;</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;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</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_array{ { tensor_2, std::forward&lt;Ts&gt;(tensors)... } };</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensors_array);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>(std::any_of(tensors_array.begin(), tensors_array.end(), [&amp;](<span class="keyword">const</span> ITensor * tensor)</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">return</span> tensor-&gt;info()-&gt;data_type() != first_data_type;</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="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different fixed point data types&quot;</span>);</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; <a class="code" href="_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>(std::any_of(tensors_array.begin(), tensors_array.end(), [&amp;](<span class="keyword">const</span> ITensor * tensor)</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> tensor-&gt;info()-&gt;fixed_point_position() != first_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; <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="l00326"></a><span class="lineno"> 326</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a1b62e396a1789909dadda61ea4cda96f"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00116">Error.h:116</a></div></div>
7516<div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
7517<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#l00060">Types.h:60</a></div></div>
7518</div><!-- fragment -->
7519</div>
7520</div>
7521<a class="anchor" id="a064db352a2f4153e6237054343d5fe7a"></a>
7522<div class="memitem">
7523<div class="memproto">
7524 <table class="memname">
7525 <tr>
7526 <td class="memname">void arm_compute::error_on_mismatching_fixed_point_position </td>
7527 <td>(</td>
7528 <td class="paramtype">const char *&#160;</td>
7529 <td class="paramname"><em>function</em>, </td>
7530 </tr>
7531 <tr>
7532 <td class="paramkey"></td>
7533 <td></td>
7534 <td class="paramtype">const char *&#160;</td>
7535 <td class="paramname"><em>file</em>, </td>
7536 </tr>
7537 <tr>
7538 <td class="paramkey"></td>
7539 <td></td>
7540 <td class="paramtype">const int&#160;</td>
7541 <td class="paramname"><em>line</em>, </td>
7542 </tr>
7543 <tr>
7544 <td class="paramkey"></td>
7545 <td></td>
7546 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7547 <td class="paramname"><em>tensor_1</em>, </td>
7548 </tr>
7549 <tr>
7550 <td class="paramkey"></td>
7551 <td></td>
7552 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7553 <td class="paramname"><em>tensor_2</em>, </td>
7554 </tr>
7555 <tr>
7556 <td class="paramkey"></td>
7557 <td></td>
7558 <td class="paramtype">Ts...&#160;</td>
7559 <td class="paramname"><em>tensors</em>&#160;</td>
7560 </tr>
7561 <tr>
7562 <td></td>
7563 <td>)</td>
7564 <td></td><td></td>
7565 </tr>
7566 </table>
7567</div><div class="memdoc">
7568
7569<p>Throw an error if the input fixed-point positions are different. </p>
7570<dl class="params"><dt>Parameters</dt><dd>
7571 <table class="params">
7572 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7573 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7574 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7575 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
7576 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
7577 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors. </td></tr>
7578 </table>
7579 </dd>
7580</dl>
7581
7582<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>
7583
7584<p>References <a class="el" href="_error_8h_source.xhtml#l00116">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ab21a362740e892b6e913bd8db03b0e67">ITensorInfo::fixed_point_position()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>.</p>
7585<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; <span class="keyword">const</span> std::array &lt; <span class="keyword">const</span> ITensor *, 1 + <span class="keyword">sizeof</span>...(Ts) &gt; tensors_array{ { tensor_2, std::forward&lt;Ts&gt;(tensors)... } };</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensors_array);</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; <a class="code" href="_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>(std::any_of(tensors_array.begin(), tensors_array.end(), [&amp;](<span class="keyword">const</span> ITensor * tensor)</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> tensor-&gt;info()-&gt;fixed_point_position() != tensor_1-&gt;info()-&gt;fixed_point_position();</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; <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="l00537"></a><span class="lineno"> 537</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a1b62e396a1789909dadda61ea4cda96f"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00116">Error.h:116</a></div></div>
7586<div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007587</div><!-- fragment -->
7588</div>
7589</div>
7590<a class="anchor" id="a7b689868b627ba9e22c8473c5f985512"></a>
7591<div class="memitem">
7592<div class="memproto">
7593 <table class="memname">
7594 <tr>
7595 <td class="memname">void arm_compute::error_on_mismatching_shapes </td>
7596 <td>(</td>
7597 <td class="paramtype">const char *&#160;</td>
7598 <td class="paramname"><em>function</em>, </td>
7599 </tr>
7600 <tr>
7601 <td class="paramkey"></td>
7602 <td></td>
7603 <td class="paramtype">const char *&#160;</td>
7604 <td class="paramname"><em>file</em>, </td>
7605 </tr>
7606 <tr>
7607 <td class="paramkey"></td>
7608 <td></td>
7609 <td class="paramtype">const int&#160;</td>
7610 <td class="paramname"><em>line</em>, </td>
7611 </tr>
7612 <tr>
7613 <td class="paramkey"></td>
7614 <td></td>
7615 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7616 <td class="paramname"><em>tensor_1</em>, </td>
7617 </tr>
7618 <tr>
7619 <td class="paramkey"></td>
7620 <td></td>
7621 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7622 <td class="paramname"><em>tensor_2</em>, </td>
7623 </tr>
7624 <tr>
7625 <td class="paramkey"></td>
7626 <td></td>
7627 <td class="paramtype">Ts...&#160;</td>
7628 <td class="paramname"><em>tensors</em>&#160;</td>
7629 </tr>
7630 <tr>
7631 <td></td>
7632 <td>)</td>
7633 <td></td><td></td>
7634 </tr>
7635 </table>
7636</div><div class="memdoc">
7637
Anthony Barbierdbdab852017-06-23 15:42:00 +01007638<p>Throw an error if the passed two tensors have different shapes from the given dimension. </p>
Anthony Barbier871448e2017-03-24 14:54:29 +00007639<dl class="params"><dt>Parameters</dt><dd>
7640 <table class="params">
7641 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7642 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7643 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7644 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
7645 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
7646 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors. </td></tr>
7647 </table>
7648 </dd>
7649</dl>
7650
Anthony Barbierdbdab852017-06-23 15:42:00 +01007651<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00209">209</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00007652
Anthony Barbierdbdab852017-06-23 15:42:00 +01007653<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>.</p>
7654<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="namespacearm__compute.xhtml#a496e03102bca40f666c12a575d4a6157">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="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a496e03102bca40f666c12a575d4a6157"><div class="ttname"><a href="namespacearm__compute.xhtml#a496e03102bca40f666c12a575d4a6157">arm_compute::error_on_mismatching_shapes</a></div><div class="ttdeci">void 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">Throw 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#l00226">Validate.h:226</a></div></div>
7655</div><!-- fragment -->
7656</div>
7657</div>
7658<a class="anchor" id="a496e03102bca40f666c12a575d4a6157"></a>
7659<div class="memitem">
7660<div class="memproto">
7661 <table class="memname">
7662 <tr>
7663 <td class="memname">void arm_compute::error_on_mismatching_shapes </td>
7664 <td>(</td>
7665 <td class="paramtype">const char *&#160;</td>
7666 <td class="paramname"><em>function</em>, </td>
7667 </tr>
7668 <tr>
7669 <td class="paramkey"></td>
7670 <td></td>
7671 <td class="paramtype">const char *&#160;</td>
7672 <td class="paramname"><em>file</em>, </td>
7673 </tr>
7674 <tr>
7675 <td class="paramkey"></td>
7676 <td></td>
7677 <td class="paramtype">const int&#160;</td>
7678 <td class="paramname"><em>line</em>, </td>
7679 </tr>
7680 <tr>
7681 <td class="paramkey"></td>
7682 <td></td>
7683 <td class="paramtype">unsigned int&#160;</td>
7684 <td class="paramname"><em>upper_dim</em>, </td>
7685 </tr>
7686 <tr>
7687 <td class="paramkey"></td>
7688 <td></td>
7689 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7690 <td class="paramname"><em>tensor_1</em>, </td>
7691 </tr>
7692 <tr>
7693 <td class="paramkey"></td>
7694 <td></td>
7695 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7696 <td class="paramname"><em>tensor_2</em>, </td>
7697 </tr>
7698 <tr>
7699 <td class="paramkey"></td>
7700 <td></td>
7701 <td class="paramtype">Ts...&#160;</td>
7702 <td class="paramname"><em>tensors</em>&#160;</td>
7703 </tr>
7704 <tr>
7705 <td></td>
7706 <td>)</td>
7707 <td></td><td></td>
7708 </tr>
7709 </table>
7710</div><div class="memdoc">
7711
7712<p>Throw an error if the passed two tensors have different shapes from the given dimension. </p>
7713<dl class="params"><dt>Parameters</dt><dd>
7714 <table class="params">
7715 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7716 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7717 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7718 <tr><td class="paramdir">[in]</td><td class="paramname">upper_dim</td><td>The dimension from which to check. </td></tr>
7719 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_1</td><td>The first tensor to be compared. </td></tr>
7720 <tr><td class="paramdir">[in]</td><td class="paramname">tensor_2</td><td>The second tensor to be compared. </td></tr>
7721 <tr><td class="paramdir">[in]</td><td class="paramname">tensors</td><td>(Optional) Further allowed tensors. </td></tr>
7722 </table>
7723 </dd>
7724</dl>
7725
7726<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00226">226</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
7727
7728<p>References <a class="el" href="_error_8h_source.xhtml#l00134">ARM_COMPUTE_ERROR_ON_LOC</a>, <a class="el" href="_error_8h_source.xhtml#l00116">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</a>, and <a class="el" href="_validate_8h_source.xhtml#l00051">arm_compute::detail::have_different_dimensions()</a>.</p>
7729<div class="fragment"><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; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(<span class="keyword">function</span>);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(file);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(line);</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> std::array &lt; <span class="keyword">const</span> ITensor *, 2 + <span class="keyword">sizeof</span>...(Ts) &gt; tensors_array{ { tensor_1, tensor_2, std::forward&lt;Ts&gt;(tensors)... } };</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(tensors_array);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_ERROR_ON_LOC</a>(tensors_array.cbegin() == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><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; <a class="code" href="_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>(std::any_of(std::next(tensors_array.cbegin()), tensors_array.cend(), [&amp;](<span class="keyword">const</span> ITensor * tensor)</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="_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_ERROR_ON_LOC</a>(tensor == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1detail.xhtml#a45d610a8bc262f7007c934293361e888">detail::have_different_dimensions</a>((*tensors_array.cbegin())-&gt;info()-&gt;tensor_shape(), tensor-&gt;info()-&gt;tensor_shape(), upper_dim);</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; <span class="keyword">function</span>, file, line, <span class="stringliteral">&quot;Tensors have different shapes&quot;</span>);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a1b62e396a1789909dadda61ea4cda96f"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00116">Error.h:116</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007730<div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007731<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>
7732<div class="ttc" id="_error_8h_xhtml_ac90c3bce005225cbaa4a43740917bb58"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00134">Error.h:134</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007733</div><!-- fragment -->
7734</div>
7735</div>
7736<a class="anchor" id="a26a9847c05c48bd1470f22f898ee254d"></a>
7737<div class="memitem">
7738<div class="memproto">
7739 <table class="memname">
7740 <tr>
7741 <td class="memname">void arm_compute::error_on_mismatching_windows </td>
7742 <td>(</td>
7743 <td class="paramtype">const char *&#160;</td>
7744 <td class="paramname"><em>function</em>, </td>
7745 </tr>
7746 <tr>
7747 <td class="paramkey"></td>
7748 <td></td>
7749 <td class="paramtype">const char *&#160;</td>
7750 <td class="paramname"><em>file</em>, </td>
7751 </tr>
7752 <tr>
7753 <td class="paramkey"></td>
7754 <td></td>
7755 <td class="paramtype">const int&#160;</td>
7756 <td class="paramname"><em>line</em>, </td>
7757 </tr>
7758 <tr>
7759 <td class="paramkey"></td>
7760 <td></td>
7761 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
7762 <td class="paramname"><em>full</em>, </td>
7763 </tr>
7764 <tr>
7765 <td class="paramkey"></td>
7766 <td></td>
7767 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
7768 <td class="paramname"><em>win</em>&#160;</td>
7769 </tr>
7770 <tr>
7771 <td></td>
7772 <td>)</td>
7773 <td></td><td></td>
7774 </tr>
7775 </table>
7776</div><div class="memdoc">
7777
7778<p>Throw an error if the passed window is invalid. </p>
7779<p>The subwindow is invalid if:</p><ul>
7780<li>It is not a valid window.</li>
7781<li>Its dimensions don't match the full window's ones</li>
7782<li><p class="startli">The step for each of its dimension is not identical to the corresponding one of the full window.</p>
7783<dl class="params"><dt>Parameters</dt><dd>
7784 <table class="params">
7785 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7786 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7787 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7788 <tr><td class="paramdir">[in]</td><td class="paramname">full</td><td>Full size window </td></tr>
7789 <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>
7790 </table>
7791 </dd>
7792</dl>
7793</li>
7794</ul>
7795
7796</div>
7797</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007798<a class="anchor" id="a078507835115009a81ee2974d6073bb9"></a>
7799<div class="memitem">
7800<div class="memproto">
7801 <table class="memname">
7802 <tr>
7803 <td class="memname">void arm_compute::error_on_nullptr </td>
7804 <td>(</td>
7805 <td class="paramtype">const char *&#160;</td>
7806 <td class="paramname"><em>function</em>, </td>
7807 </tr>
7808 <tr>
7809 <td class="paramkey"></td>
7810 <td></td>
7811 <td class="paramtype">const char *&#160;</td>
7812 <td class="paramname"><em>file</em>, </td>
7813 </tr>
7814 <tr>
7815 <td class="paramkey"></td>
7816 <td></td>
7817 <td class="paramtype">const int&#160;</td>
7818 <td class="paramname"><em>line</em>, </td>
7819 </tr>
7820 <tr>
7821 <td class="paramkey"></td>
7822 <td></td>
7823 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
7824 <td class="paramname"><em>pointers</em>&#160;</td>
7825 </tr>
7826 <tr>
7827 <td></td>
7828 <td>)</td>
7829 <td></td><td></td>
7830 </tr>
7831 </table>
7832</div><div class="memdoc">
7833
7834<p>Throw an error if one of the pointers is a nullptr. </p>
7835<dl class="params"><dt>Parameters</dt><dd>
7836 <table class="params">
7837 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7838 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7839 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7840 <tr><td class="paramdir">[in]</td><td class="paramname">pointers</td><td>Pointers to check against nullptr. </td></tr>
7841 </table>
7842 </dd>
7843</dl>
7844
7845<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00105">105</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
7846
7847<p>References <a class="el" href="_error_8h_source.xhtml#l00134">ARM_COMPUTE_ERROR_ON_LOC</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00200">for_each()</a>.</p>
7848<div class="fragment"><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">auto</span> is_nullptr = [&amp;](<span class="keyword">const</span> <span class="keywordtype">void</span> *ptr)</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; <a class="code" href="_error_8h.xhtml#ac90c3bce005225cbaa4a43740917bb58">ARM_COMPUTE_ERROR_ON_LOC</a>(ptr == <span class="keyword">nullptr</span>, <span class="keyword">function</span>, file, line);</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;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a76e58198af8e930a851637e7e3eccbd2">for_each</a>(is_nullptr, std::forward&lt;Ts&gt;(pointers)...);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a76e58198af8e930a851637e7e3eccbd2"><div class="ttname"><a href="namespacearm__compute.xhtml#a76e58198af8e930a851637e7e3eccbd2">arm_compute::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="arm__compute_2core_2_helpers_8h_source.xhtml#l00200">Helpers.h:200</a></div></div>
7849<div class="ttc" id="_error_8h_xhtml_ac90c3bce005225cbaa4a43740917bb58"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00134">Error.h:134</a></div></div>
7850</div><!-- fragment -->
7851</div>
7852</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00007853<a class="anchor" id="a65c8e0610dff27ecf1ef30214f08d19e"></a>
7854<div class="memitem">
7855<div class="memproto">
7856 <table class="memname">
7857 <tr>
7858 <td class="memname">void arm_compute::error_on_tensor_not_2d </td>
7859 <td>(</td>
7860 <td class="paramtype">const char *&#160;</td>
7861 <td class="paramname"><em>function</em>, </td>
7862 </tr>
7863 <tr>
7864 <td class="paramkey"></td>
7865 <td></td>
7866 <td class="paramtype">const char *&#160;</td>
7867 <td class="paramname"><em>file</em>, </td>
7868 </tr>
7869 <tr>
7870 <td class="paramkey"></td>
7871 <td></td>
7872 <td class="paramtype">const int&#160;</td>
7873 <td class="paramname"><em>line</em>, </td>
7874 </tr>
7875 <tr>
7876 <td class="paramkey"></td>
7877 <td></td>
7878 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7879 <td class="paramname"><em>tensor</em>&#160;</td>
7880 </tr>
7881 <tr>
7882 <td></td>
7883 <td>)</td>
7884 <td></td><td></td>
7885 </tr>
7886 </table>
7887</div><div class="memdoc">
7888
7889<p>Throw an error if the tensor is not 2D. </p>
7890<dl class="params"><dt>Parameters</dt><dd>
7891 <table class="params">
7892 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7893 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7894 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7895 <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>
7896 </table>
7897 </dd>
7898</dl>
7899
7900</div>
7901</div>
7902<a class="anchor" id="a21a4884cd1dbfa83351b8efa265f526a"></a>
7903<div class="memitem">
7904<div class="memproto">
7905 <table class="memname">
7906 <tr>
7907 <td class="memname">void arm_compute::error_on_unconfigured_kernel </td>
7908 <td>(</td>
7909 <td class="paramtype">const char *&#160;</td>
7910 <td class="paramname"><em>function</em>, </td>
7911 </tr>
7912 <tr>
7913 <td class="paramkey"></td>
7914 <td></td>
7915 <td class="paramtype">const char *&#160;</td>
7916 <td class="paramname"><em>file</em>, </td>
7917 </tr>
7918 <tr>
7919 <td class="paramkey"></td>
7920 <td></td>
7921 <td class="paramtype">const int&#160;</td>
7922 <td class="paramname"><em>line</em>, </td>
7923 </tr>
7924 <tr>
7925 <td class="paramkey"></td>
7926 <td></td>
7927 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_kernel.xhtml">IKernel</a> *&#160;</td>
7928 <td class="paramname"><em>kernel</em>&#160;</td>
7929 </tr>
7930 <tr>
7931 <td></td>
7932 <td>)</td>
7933 <td></td><td></td>
7934 </tr>
7935 </table>
7936</div><div class="memdoc">
7937
7938<p>Throw an error if the kernel is not configured. </p>
7939<dl class="params"><dt>Parameters</dt><dd>
7940 <table class="params">
7941 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7942 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7943 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7944 <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>
7945 </table>
7946 </dd>
7947</dl>
7948
7949</div>
7950</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01007951<a class="anchor" id="a9afdaa4d8bbb78938110ada1daf87f8b"></a>
7952<div class="memitem">
7953<div class="memproto">
7954 <table class="memname">
7955 <tr>
7956 <td class="memname">void arm_compute::error_on_value_not_representable_in_fixed_point </td>
7957 <td>(</td>
7958 <td class="paramtype">const char *&#160;</td>
7959 <td class="paramname"><em>function</em>, </td>
7960 </tr>
7961 <tr>
7962 <td class="paramkey"></td>
7963 <td></td>
7964 <td class="paramtype">const char *&#160;</td>
7965 <td class="paramname"><em>file</em>, </td>
7966 </tr>
7967 <tr>
7968 <td class="paramkey"></td>
7969 <td></td>
7970 <td class="paramtype">int&#160;</td>
7971 <td class="paramname"><em>line</em>, </td>
7972 </tr>
7973 <tr>
7974 <td class="paramkey"></td>
7975 <td></td>
7976 <td class="paramtype">float&#160;</td>
7977 <td class="paramname"><em>value</em>, </td>
7978 </tr>
7979 <tr>
7980 <td class="paramkey"></td>
7981 <td></td>
7982 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> *&#160;</td>
7983 <td class="paramname"><em>tensor</em>&#160;</td>
7984 </tr>
7985 <tr>
7986 <td></td>
7987 <td>)</td>
7988 <td></td><td></td>
7989 </tr>
7990 </table>
7991</div><div class="memdoc">
7992
7993<p>Throw an error if the fixed-point value is not representable in the specified Q format. </p>
7994<dl class="params"><dt>Parameters</dt><dd>
7995 <table class="params">
7996 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
7997 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
7998 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
7999 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The floating point value to be checked. </td></tr>
8000 <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>
8001 </table>
8002 </dd>
8003</dl>
8004
8005<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00549">549</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
8006
8007<p>References <a class="el" href="_error_8h_source.xhtml#l00116">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>, <a class="el" href="_error_8h_source.xhtml#l00049">ARM_COMPUTE_UNUSED</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#l00172">element_size_from_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.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>, and <a class="el" href="namespacearm__compute.xhtml#aefa1d9648995e5eccc693c690e27aa88">string_from_data_type()</a>.</p>
8008<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; <span class="keyword">const</span> <span class="keywordtype">int</span> fixed_point_position = tensor-&gt;info()-&gt;fixed_point_position();</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> dt = tensor-&gt;info()-&gt;data_type();</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</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="l00555"></a><span class="lineno"> 555</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="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a>(max_range);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <a class="code" href="_error_8h.xhtml#a1b62e396a1789909dadda61ea4cda96f">ARM_COMPUTE_ERROR_ON_LOC_MSG</a>(value &gt; max_range, <span class="keyword">function</span>, file, line,</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="stringliteral">&quot;Value %f is not representable in %s with fixed-point position %d&quot;</span>, value, <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="l00560"></a><span class="lineno"> 560</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a1b62e396a1789909dadda61ea4cda96f"><div class="ttname"><a href="_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="_error_8h_source.xhtml#l00116">Error.h:116</a></div></div>
8009<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#l00172">Utils.h:172</a></div></div>
8010<div class="ttc" id="_error_8h_xhtml_a4103adbb45806b2f2002d44b91d0d206"><div class="ttname"><a href="_error_8h.xhtml#a4103adbb45806b2f2002d44b91d0d206">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(var)</div><div class="ttdoc">To avoid unused variables warnings. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00049">Error.h:49</a></div></div>
8011<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>
8012<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#l00060">Types.h:60</a></div></div>
8013</div><!-- fragment -->
8014</div>
8015</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008016<a class="anchor" id="a6fed5543ae383442a51362e6607c4e65"></a>
8017<div class="memitem">
8018<div class="memproto">
8019 <table class="memname">
8020 <tr>
8021 <td class="memname">void arm_compute::error_on_window_dimensions_gte </td>
8022 <td>(</td>
8023 <td class="paramtype">const char *&#160;</td>
8024 <td class="paramname"><em>function</em>, </td>
8025 </tr>
8026 <tr>
8027 <td class="paramkey"></td>
8028 <td></td>
8029 <td class="paramtype">const char *&#160;</td>
8030 <td class="paramname"><em>file</em>, </td>
8031 </tr>
8032 <tr>
8033 <td class="paramkey"></td>
8034 <td></td>
8035 <td class="paramtype">const int&#160;</td>
8036 <td class="paramname"><em>line</em>, </td>
8037 </tr>
8038 <tr>
8039 <td class="paramkey"></td>
8040 <td></td>
8041 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
8042 <td class="paramname"><em>win</em>, </td>
8043 </tr>
8044 <tr>
8045 <td class="paramkey"></td>
8046 <td></td>
8047 <td class="paramtype">unsigned int&#160;</td>
8048 <td class="paramname"><em>max_dim</em>&#160;</td>
8049 </tr>
8050 <tr>
8051 <td></td>
8052 <td>)</td>
8053 <td></td><td></td>
8054 </tr>
8055 </table>
8056</div><div class="memdoc">
8057
8058<p>Throw an error if the passed window has too many dimensions. </p>
8059<p>The window has too many dimensions if any of the dimension greater or equal to max_dim is different from 0.</p>
8060<dl class="params"><dt>Parameters</dt><dd>
8061 <table class="params">
8062 <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Function in which the error occurred. </td></tr>
8063 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the file where the error occurred. </td></tr>
8064 <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line on which the error occurred. </td></tr>
8065 <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>
8066 <tr><td class="paramdir">[in]</td><td class="paramname">max_dim</td><td>Maximum number of dimensions allowed. </td></tr>
8067 </table>
8068 </dd>
8069</dl>
8070
8071</div>
8072</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008073<a class="anchor" id="a6c0dcc38187027dcb89cd9724bc5a823"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00008074<div class="memitem">
8075<div class="memproto">
8076<table class="mlabels">
8077 <tr>
8078 <td class="mlabels-left">
8079 <table class="memname">
8080 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008081 <td class="memname">void execute_window_loop </td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008082 <td>(</td>
8083 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
8084 <td class="paramname"><em>w</em>, </td>
8085 </tr>
8086 <tr>
8087 <td class="paramkey"></td>
8088 <td></td>
8089 <td class="paramtype">L &amp;&amp;&#160;</td>
8090 <td class="paramname"><em>lambda_function</em>, </td>
8091 </tr>
8092 <tr>
8093 <td class="paramkey"></td>
8094 <td></td>
8095 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
8096 <td class="paramname"><em>iterators</em>&#160;</td>
8097 </tr>
8098 <tr>
8099 <td></td>
8100 <td>)</td>
8101 <td></td><td></td>
8102 </tr>
8103 </table>
8104 </td>
8105 <td class="mlabels-right">
8106<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8107 </tr>
8108</table>
8109</div><div class="memdoc">
8110
8111<p>Iterate through the passed window, automatically adjusting the iterators and calling the lambda_functino for each element. </p>
8112<p>It passes the x and y positions to the lambda_function for each iteration</p>
8113<dl class="params"><dt>Parameters</dt><dd>
8114 <table class="params">
8115 <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>
8116 <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>
8117 <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>
8118 </table>
8119 </dd>
8120</dl>
8121
Anthony Barbierdbdab852017-06-23 15:42:00 +01008122<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00176">176</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00008123
Anthony Barbierdbdab852017-06-23 15:42:00 +01008124<p>References <a class="el" href="_window_8inl_source.xhtml#l00083">Window::validate()</a>.</p>
8125
8126<p>Referenced by <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="_tensor_library_8h_source.xhtml#l00368">TensorLibrary::fill()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00142">PPMLoader::fill_image()</a>, <a class="el" href="_tensor_library_8h_source.xhtml#l00621">TensorLibrary::fill_layer_data()</a>, <a class="el" href="model__objects_2_le_net5_8h_source.xhtml#l00150">LeNet5&lt; TensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, FullyConnectedLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::get_classifications()</a>, <a class="el" href="model__objects_2_alex_net_8h_source.xhtml#l00374">AlexNet&lt; ITensorType, TensorType, SubTensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, FullyConnectedLayerFunction, NormalizationLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction, dt &gt;::get_classifications()</a>, <a class="el" href="neon__copy__objects_8cpp_source.xhtml#l00035">main_neon_copy_objects()</a>, and <a class="el" href="utils_2_utils_8h_source.xhtml#l00245">arm_compute::utils::save_to_ppm()</a>.</p>
8127<div class="fragment"><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; w.validate();</div><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; Coordinates id;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</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="l00182"></a><span class="lineno"> 182</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +00008128</div>
8129</div>
8130<a class="anchor" id="a6959e681668a37a9242d2aae4e8b4375"></a>
8131<div class="memitem">
8132<div class="memproto">
8133<table class="mlabels">
8134 <tr>
8135 <td class="mlabels-left">
8136 <table class="memname">
8137 <tr>
8138 <td class="memname">auto arm_compute::floor_to_multiple </td>
8139 <td>(</td>
8140 <td class="paramtype">S&#160;</td>
8141 <td class="paramname"><em>value</em>, </td>
8142 </tr>
8143 <tr>
8144 <td class="paramkey"></td>
8145 <td></td>
8146 <td class="paramtype">T&#160;</td>
8147 <td class="paramname"><em>divisor</em>&#160;</td>
8148 </tr>
8149 <tr>
8150 <td></td>
8151 <td>)</td>
8152 <td></td><td> -&gt; decltype((value / divisor) * divisor)
8153</td>
8154 </tr>
8155 </table>
8156 </td>
8157 <td class="mlabels-right">
8158<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8159 </tr>
8160</table>
8161</div><div class="memdoc">
8162
8163<p>Computes the largest number smaller or equal to value that is a multiple of divisor. </p>
8164
Anthony Barbierdbdab852017-06-23 15:42:00 +01008165<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00051">51</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 +00008166
Anthony Barbierdbdab852017-06-23 15:42:00 +01008167<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>.</p>
8168<div class="fragment"><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; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(value &lt; 0 || divisor &lt;= 0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> (value / divisor) * divisor;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008169</div><!-- fragment -->
8170</div>
8171</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008172<a class="anchor" id="a6905c41fd996c479e46791ef58e440aa"></a>
8173<div class="memitem">
8174<div class="memproto">
8175<table class="mlabels">
8176 <tr>
8177 <td class="mlabels-left">
8178 <table class="memname">
8179 <tr>
8180 <td class="memname">T arm_compute::foldl </td>
8181 <td>(</td>
8182 <td class="paramtype">F &amp;&amp;&#160;</td>
8183 <td class="paramname">, </td>
8184 </tr>
8185 <tr>
8186 <td class="paramkey"></td>
8187 <td></td>
8188 <td class="paramtype">const T &amp;&#160;</td>
8189 <td class="paramname"><em>value</em>&#160;</td>
8190 </tr>
8191 <tr>
8192 <td></td>
8193 <td>)</td>
8194 <td></td><td></td>
8195 </tr>
8196 </table>
8197 </td>
8198 <td class="mlabels-right">
8199<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8200 </tr>
8201</table>
8202</div><div class="memdoc">
8203
8204<p>Base case of foldl. </p>
8205<dl class="section return"><dt>Returns</dt><dd>value. </dd></dl>
8206
8207<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00222">222</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
8208
8209<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00245">foldl()</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00395">intersect_valid_regions()</a>.</p>
8210<div class="fragment"><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; <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;}</div></div><!-- fragment -->
8211</div>
8212</div>
8213<a class="anchor" id="a7f8e5c5fc77465cf3ac58b3d15305a5f"></a>
8214<div class="memitem">
8215<div class="memproto">
8216<table class="mlabels">
8217 <tr>
8218 <td class="mlabels-left">
8219 <table class="memname">
8220 <tr>
8221 <td class="memname">auto arm_compute::foldl </td>
8222 <td>(</td>
8223 <td class="paramtype">F &amp;&amp;&#160;</td>
8224 <td class="paramname"><em>func</em>, </td>
8225 </tr>
8226 <tr>
8227 <td class="paramkey"></td>
8228 <td></td>
8229 <td class="paramtype">T &amp;&amp;&#160;</td>
8230 <td class="paramname"><em>value1</em>, </td>
8231 </tr>
8232 <tr>
8233 <td class="paramkey"></td>
8234 <td></td>
8235 <td class="paramtype">U &amp;&amp;&#160;</td>
8236 <td class="paramname"><em>value2</em>&#160;</td>
8237 </tr>
8238 <tr>
8239 <td></td>
8240 <td>)</td>
8241 <td></td><td> -&gt; decltype(func(value1, value2))
8242</td>
8243 </tr>
8244 </table>
8245 </td>
8246 <td class="mlabels-right">
8247<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8248 </tr>
8249</table>
8250</div><div class="memdoc">
8251
8252<p>Base case of foldl. </p>
8253<dl class="section return"><dt>Returns</dt><dd>Function evaluation for value1 and value2 </dd></dl>
8254
8255<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00232">232</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
8256<div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;{</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> func(value1, value2);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;}</div></div><!-- fragment -->
8257</div>
8258</div>
8259<a class="anchor" id="a05d0de315da2ecf1fa7d22ffad49b254"></a>
8260<div class="memitem">
8261<div class="memproto">
8262<table class="mlabels">
8263 <tr>
8264 <td class="mlabels-left">
8265 <table class="memname">
8266 <tr>
8267 <td class="memname">I arm_compute::foldl </td>
8268 <td>(</td>
8269 <td class="paramtype">F &amp;&amp;&#160;</td>
8270 <td class="paramname"><em>func</em>, </td>
8271 </tr>
8272 <tr>
8273 <td class="paramkey"></td>
8274 <td></td>
8275 <td class="paramtype">I &amp;&amp;&#160;</td>
8276 <td class="paramname"><em>initial</em>, </td>
8277 </tr>
8278 <tr>
8279 <td class="paramkey"></td>
8280 <td></td>
8281 <td class="paramtype">T &amp;&amp;&#160;</td>
8282 <td class="paramname"><em>value</em>, </td>
8283 </tr>
8284 <tr>
8285 <td class="paramkey"></td>
8286 <td></td>
8287 <td class="paramtype">Vs &amp;&amp;...&#160;</td>
8288 <td class="paramname"><em>values</em>&#160;</td>
8289 </tr>
8290 <tr>
8291 <td></td>
8292 <td>)</td>
8293 <td></td><td></td>
8294 </tr>
8295 </table>
8296 </td>
8297 <td class="mlabels-right">
8298<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8299 </tr>
8300</table>
8301</div><div class="memdoc">
8302
8303<p>Fold left. </p>
8304<dl class="params"><dt>Parameters</dt><dd>
8305 <table class="params">
8306 <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>Function to be called </td></tr>
8307 <tr><td class="paramdir">[in]</td><td class="paramname">initial</td><td>Initial value </td></tr>
8308 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Argument passed to the function </td></tr>
8309 <tr><td class="paramdir">[in]</td><td class="paramname">values</td><td>Remaining arguments </td></tr>
8310 </table>
8311 </dd>
8312</dl>
8313
8314<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00245">245</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
8315
8316<p>References <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00222">foldl()</a>.</p>
8317<div class="fragment"><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;{</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a05d0de315da2ecf1fa7d22ffad49b254">foldl</a>(std::forward&lt;F&gt;(func), func(std::forward&lt;I&gt;(initial), std::forward&lt;T&gt;(value)), std::forward&lt;Vs&gt;(values)...);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a05d0de315da2ecf1fa7d22ffad49b254"><div class="ttname"><a href="namespacearm__compute.xhtml#a05d0de315da2ecf1fa7d22ffad49b254">arm_compute::foldl</a></div><div class="ttdeci">I foldl(F &amp;&amp;func, I &amp;&amp;initial, T &amp;&amp;value, Vs &amp;&amp;...values)</div><div class="ttdoc">Fold left. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00245">Helpers.h:245</a></div></div>
8318</div><!-- fragment -->
8319</div>
8320</div>
8321<a class="anchor" id="a76e58198af8e930a851637e7e3eccbd2"></a>
8322<div class="memitem">
8323<div class="memproto">
8324<table class="mlabels">
8325 <tr>
8326 <td class="mlabels-left">
8327 <table class="memname">
8328 <tr>
8329 <td class="memname">void arm_compute::for_each </td>
8330 <td>(</td>
8331 <td class="paramtype">F &amp;&amp;&#160;</td>
8332 <td class="paramname"></td><td>)</td>
8333 <td></td>
8334 </tr>
8335 </table>
8336 </td>
8337 <td class="mlabels-right">
8338<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8339 </tr>
8340</table>
8341</div><div class="memdoc">
8342
8343<p>Base case of for_each. </p>
8344<p>Does nothing. </p>
8345
8346<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00200">200</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
8347
8348<p>Referenced by <a class="el" href="_validate_8h_source.xhtml#l00188">error_on_mismatching_dimensions()</a>, <a class="el" href="_validate_8h_source.xhtml#l00105">error_on_nullptr()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00211">for_each()</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00335">update_window_and_padding()</a>.</p>
8349<div class="fragment"><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;{</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}</div></div><!-- fragment -->
8350</div>
8351</div>
8352<a class="anchor" id="ab951ff3c9484cd4b243344b3a0f12d95"></a>
8353<div class="memitem">
8354<div class="memproto">
8355<table class="mlabels">
8356 <tr>
8357 <td class="mlabels-left">
8358 <table class="memname">
8359 <tr>
8360 <td class="memname">void arm_compute::for_each </td>
8361 <td>(</td>
8362 <td class="paramtype">F &amp;&amp;&#160;</td>
8363 <td class="paramname"><em>func</em>, </td>
8364 </tr>
8365 <tr>
8366 <td class="paramkey"></td>
8367 <td></td>
8368 <td class="paramtype">T &amp;&amp;&#160;</td>
8369 <td class="paramname"><em>arg</em>, </td>
8370 </tr>
8371 <tr>
8372 <td class="paramkey"></td>
8373 <td></td>
8374 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
8375 <td class="paramname"><em>args</em>&#160;</td>
8376 </tr>
8377 <tr>
8378 <td></td>
8379 <td>)</td>
8380 <td></td><td></td>
8381 </tr>
8382 </table>
8383 </td>
8384 <td class="mlabels-right">
8385<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8386 </tr>
8387</table>
8388</div><div class="memdoc">
8389
8390<p>Call the function for each of the arguments. </p>
8391<dl class="params"><dt>Parameters</dt><dd>
8392 <table class="params">
8393 <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>Function to be called </td></tr>
8394 <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>Argument passed to the function </td></tr>
8395 <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>Remaining arguments </td></tr>
8396 </table>
8397 </dd>
8398</dl>
8399
8400<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00211">211</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
8401
8402<p>References <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00200">for_each()</a>.</p>
8403<div class="fragment"><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; func(arg);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespacearm__compute.xhtml#ab951ff3c9484cd4b243344b3a0f12d95">for_each</a>(func, args...);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_ab951ff3c9484cd4b243344b3a0f12d95"><div class="ttname"><a href="namespacearm__compute.xhtml#ab951ff3c9484cd4b243344b3a0f12d95">arm_compute::for_each</a></div><div class="ttdeci">void for_each(F &amp;&amp;func, T &amp;&amp;arg, Ts &amp;&amp;...args)</div><div class="ttdoc">Call the function for each of the arguments. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00211">Helpers.h:211</a></div></div>
8404</div><!-- fragment -->
8405</div>
8406</div>
8407<a class="anchor" id="a4a351d5c39dec88af98a671da1c43fd6"></a>
8408<div class="memitem">
8409<div class="memproto">
8410 <table class="memname">
8411 <tr>
8412 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> arm_compute::get_arch_from_target </td>
8413 <td>(</td>
8414 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a>&#160;</td>
8415 <td class="paramname"><em>target</em></td><td>)</td>
8416 <td></td>
8417 </tr>
8418 </table>
8419</div><div class="memdoc">
8420
8421<p>Helper function to get the GPU arch. </p>
8422<dl class="params"><dt>Parameters</dt><dd>
8423 <table class="params">
8424 <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>GPU target</td></tr>
8425 </table>
8426 </dd>
8427</dl>
8428<dl class="section return"><dt>Returns</dt><dd>the GPU target which shows the arch </dd></dl>
8429
8430<p>Referenced by <a class="el" href="_c_l_helpers_8h_source.xhtml#l00083">create_kernel()</a>.</p>
8431
8432</div>
8433</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008434<a class="anchor" id="ab04905b0c6c0e4091160561eae870101"></a>
8435<div class="memitem">
8436<div class="memproto">
8437 <table class="memname">
8438 <tr>
8439 <td class="memname">std::string arm_compute::get_cl_type_from_data_type </td>
8440 <td>(</td>
8441 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&#160;</td>
8442 <td class="paramname"><em>dt</em></td><td>)</td>
8443 <td></td>
8444 </tr>
8445 </table>
8446</div><div class="memdoc">
8447
8448<p>Translates a tensor data type to the appropriate OpenCL type. </p>
8449<dl class="params"><dt>Parameters</dt><dd>
8450 <table class="params">
8451 <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>
8452 </table>
8453 </dd>
8454</dl>
8455<dl class="section return"><dt>Returns</dt><dd>The string specifying the OpenCL type to be used. </dd></dl>
8456
8457</div>
8458</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008459<a class="anchor" id="a9d0143bdde8255313aae6ac020dd629c"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00008460<div class="memitem">
8461<div class="memproto">
Anthony Barbier871448e2017-03-24 14:54:29 +00008462 <table class="memname">
8463 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008464 <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 +00008465 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008466 <td class="paramtype">cl::Device &amp;&#160;</td>
8467 <td class="paramname"><em>device</em></td><td>)</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008468 <td></td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008469 </tr>
8470 </table>
Anthony Barbier871448e2017-03-24 14:54:29 +00008471</div><div class="memdoc">
8472
Anthony Barbierdbdab852017-06-23 15:42:00 +01008473<p>Helper function to get the GPU target from CL device. </p>
8474<dl class="params"><dt>Parameters</dt><dd>
8475 <table class="params">
8476 <tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>A CL device</td></tr>
8477 </table>
8478 </dd>
8479</dl>
8480<dl class="section return"><dt>Returns</dt><dd>the GPU target </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +00008481
Anthony Barbierdbdab852017-06-23 15:42:00 +01008482<p>Referenced by <a class="el" href="_c_l_helpers_8h_source.xhtml#l00083">create_kernel()</a>, and <a class="el" href="_c_l_scheduler_8h_source.xhtml#l00072">CLScheduler::init()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00008483
Anthony Barbier871448e2017-03-24 14:54:29 +00008484</div>
8485</div>
8486<a class="anchor" id="a3bb1b3d01f14dbc0beb1e826eefeddc6"></a>
8487<div class="memitem">
8488<div class="memproto">
8489 <table class="memname">
8490 <tr>
8491 <td class="memname"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> arm_compute::intersect_valid_regions </td>
8492 <td>(</td>
8493 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
8494 <td class="paramname"><em>regions</em></td><td>)</td>
8495 <td></td>
8496 </tr>
8497 </table>
8498</div><div class="memdoc">
8499
8500<p>Intersect multiple valid regions. </p>
8501<dl class="params"><dt>Parameters</dt><dd>
8502 <table class="params">
8503 <tr><td class="paramdir">[in]</td><td class="paramname">regions</td><td>Valid regions.</td></tr>
8504 </table>
8505 </dd>
8506</dl>
8507<dl class="section return"><dt>Returns</dt><dd>Intersection of all regions. </dd></dl>
8508
Anthony Barbierdbdab852017-06-23 15:42:00 +01008509<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00395">395</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 +00008510
Anthony Barbierdbdab852017-06-23 15:42:00 +01008511<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00118">ValidRegion::anchor</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00222">foldl()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00880">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00875">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00109">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#l00074">TensorShape::set()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00119">ValidRegion::shape</a>.</p>
8512<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="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="l00398"></a><span class="lineno"> 398</span>&#160; {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; ValidRegion region;</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">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="l00402"></a><span class="lineno"> 402</span>&#160; {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</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="l00404"></a><span class="lineno"> 404</span>&#160; }</div><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">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="l00407"></a><span class="lineno"> 407</span>&#160; {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</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="l00409"></a><span class="lineno"> 409</span>&#160; }</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; <span class="keywordflow">return</span> region;</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;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a05d0de315da2ecf1fa7d22ffad49b254">foldl</a>(intersect, std::forward&lt;Ts&gt;(regions)...);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</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#l00875">FixedPoint.h:875</a></div></div>
8513<div class="ttc" id="namespacearm__compute_xhtml_a05d0de315da2ecf1fa7d22ffad49b254"><div class="ttname"><a href="namespacearm__compute.xhtml#a05d0de315da2ecf1fa7d22ffad49b254">arm_compute::foldl</a></div><div class="ttdeci">I foldl(F &amp;&amp;func, I &amp;&amp;initial, T &amp;&amp;value, Vs &amp;&amp;...values)</div><div class="ttdoc">Fold left. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00245">Helpers.h:245</a></div></div>
8514<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#l00880">FixedPoint.h:880</a></div></div>
8515</div><!-- fragment -->
8516</div>
8517</div>
8518<a class="anchor" id="ab6bb62694ae8369d18a9c9687040975e"></a>
8519<div class="memitem">
8520<div class="memproto">
8521<table class="mlabels">
8522 <tr>
8523 <td class="mlabels-left">
8524 <table class="memname">
8525 <tr>
8526 <td class="memname">bool arm_compute::is_data_type_fixed_point </td>
8527 <td>(</td>
8528 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
8529 <td class="paramname"><em>dt</em></td><td>)</td>
8530 <td></td>
8531 </tr>
8532 </table>
8533 </td>
8534 <td class="mlabels-right">
8535<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8536 </tr>
8537</table>
8538</div><div class="memdoc">
8539
8540<p>Check if a given data type is of fixed point type. </p>
8541<dl class="params"><dt>Parameters</dt><dd>
8542 <table class="params">
8543 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Input data type.</td></tr>
8544 </table>
8545 </dd>
8546</dl>
8547<dl class="section return"><dt>Returns</dt><dd>True if data type is of fixed point type, else false. </dd></dl>
8548
8549<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00658">658</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
8550
8551<p>References <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>, and <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>.</p>
8552<div class="fragment"><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="keywordflow">switch</span>(dt)</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><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;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +00008553</div>
8554</div>
8555<a class="anchor" id="af5982a092e9eb743fce2d6392bdd8897"></a>
8556<div class="memitem">
8557<div class="memproto">
8558<table class="mlabels">
8559 <tr>
8560 <td class="mlabels-left">
8561 <table class="memname">
8562 <tr>
8563 <td class="memname">bool arm_compute::is_data_type_float </td>
8564 <td>(</td>
8565 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
8566 <td class="paramname"><em>dt</em></td><td>)</td>
8567 <td></td>
8568 </tr>
8569 </table>
8570 </td>
8571 <td class="mlabels-right">
8572<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8573 </tr>
8574</table>
8575</div><div class="memdoc">
8576
Anthony Barbierdbdab852017-06-23 15:42:00 +01008577<p>Check if a given data type is of floating point type. </p>
8578<dl class="params"><dt>Parameters</dt><dd>
8579 <table class="params">
8580 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Input data type.</td></tr>
8581 </table>
8582 </dd>
8583</dl>
8584<dl class="section return"><dt>Returns</dt><dd>True if data type is of floating point type, else false. </dd></dl>
8585
8586<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00640">640</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 +00008587
8588<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 Barbierdbdab852017-06-23 15:42:00 +01008589
8590<p>Referenced by <a class="el" href="_reference_8cpp_source.xhtml#l00530">Reference::compute_reference_softmax_layer()</a>.</p>
8591<div class="fragment"><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; <span class="keywordflow">switch</span>(dt)</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="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +00008592</div>
8593</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008594<a class="anchor" id="a532fb45c0261724a4c2e755cfd3a44e6"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +00008595<div class="memitem">
8596<div class="memproto">
8597 <table class="memname">
8598 <tr>
8599 <td class="memname">std::string arm_compute::lower_string </td>
8600 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008601 <td class="paramtype">const std::string &amp;&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +00008602 <td class="paramname"><em>val</em></td><td>)</td>
8603 <td></td>
8604 </tr>
8605 </table>
8606</div><div class="memdoc">
8607
8608<p>Lower a given string. </p>
8609<dl class="params"><dt>Parameters</dt><dd>
8610 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +01008611 <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 +00008612 </table>
8613 </dd>
8614</dl>
8615<dl class="section return"><dt>Returns</dt><dd>The lowered string </dd></dl>
8616
Anthony Barbierdbdab852017-06-23 15:42:00 +01008617<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00008618
8619</div>
8620</div>
Anthony Barbiera4376382017-04-12 15:12:46 +01008621<a class="anchor" id="ac3f2de3a35ff8d9a47b5b793637784e7"></a>
8622<div class="memitem">
8623<div class="memproto">
8624 <table class="memname">
8625 <tr>
8626 <td class="memname">int arm_compute::max_consecutive_elements_display_width </td>
8627 <td>(</td>
8628 <td class="paramtype">std::ostream &amp;&#160;</td>
8629 <td class="paramname"><em>s</em>, </td>
8630 </tr>
8631 <tr>
8632 <td class="paramkey"></td>
8633 <td></td>
8634 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
8635 <td class="paramname"><em>dt</em>, </td>
8636 </tr>
8637 <tr>
8638 <td class="paramkey"></td>
8639 <td></td>
8640 <td class="paramtype">const uint8_t *&#160;</td>
8641 <td class="paramname"><em>ptr</em>, </td>
8642 </tr>
8643 <tr>
8644 <td class="paramkey"></td>
8645 <td></td>
8646 <td class="paramtype">unsigned int&#160;</td>
8647 <td class="paramname"><em>n</em>&#160;</td>
8648 </tr>
8649 <tr>
8650 <td></td>
8651 <td>)</td>
8652 <td></td><td></td>
8653 </tr>
8654 </table>
8655</div><div class="memdoc">
8656
8657<p>Identify the maximum width of n consecutive elements. </p>
8658<dl class="params"><dt>Parameters</dt><dd>
8659 <table class="params">
8660 <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Output stream to print the elements to. </td></tr>
8661 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Data type of the elements </td></tr>
8662 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to print the elements from. </td></tr>
8663 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements to print.</td></tr>
8664 </table>
8665 </dd>
8666</dl>
8667<dl class="section return"><dt>Returns</dt><dd>The maximum width of the elements. </dd></dl>
8668
Anthony Barbierdbdab852017-06-23 15:42:00 +01008669<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00703">max_consecutive_elements_display_width_impl()</a>.</p>
Anthony Barbiera4376382017-04-12 15:12:46 +01008670
8671</div>
8672</div>
8673<a class="anchor" id="aaecee617b967dd96f27d2f36732fb68e"></a>
8674<div class="memitem">
8675<div class="memproto">
8676 <table class="memname">
8677 <tr>
8678 <td class="memname">int arm_compute::max_consecutive_elements_display_width_impl </td>
8679 <td>(</td>
8680 <td class="paramtype">std::ostream &amp;&#160;</td>
8681 <td class="paramname"><em>s</em>, </td>
8682 </tr>
8683 <tr>
8684 <td class="paramkey"></td>
8685 <td></td>
8686 <td class="paramtype">const T *&#160;</td>
8687 <td class="paramname"><em>ptr</em>, </td>
8688 </tr>
8689 <tr>
8690 <td class="paramkey"></td>
8691 <td></td>
8692 <td class="paramtype">unsigned int&#160;</td>
8693 <td class="paramname"><em>n</em>&#160;</td>
8694 </tr>
8695 <tr>
8696 <td></td>
8697 <td>)</td>
8698 <td></td><td></td>
8699 </tr>
8700 </table>
8701</div><div class="memdoc">
8702
8703<p>Identify the maximum width of n consecutive elements. </p>
8704<dl class="params"><dt>Parameters</dt><dd>
8705 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +01008706 <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>
8707 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to the elements. </td></tr>
8708 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements.</td></tr>
Anthony Barbiera4376382017-04-12 15:12:46 +01008709 </table>
8710 </dd>
8711</dl>
8712<dl class="section return"><dt>Returns</dt><dd>The maximum width of the elements. </dd></dl>
8713
Anthony Barbierdbdab852017-06-23 15:42:00 +01008714<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00703">703</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 +01008715
8716<p>References <a class="el" href="namespacearm__compute.xhtml#ac3f2de3a35ff8d9a47b5b793637784e7">max_consecutive_elements_display_width()</a>, and <a class="el" href="namespacearm__compute.xhtml#a51a0d2ae440bc8cab3fbbe84bfea8b1d">print_consecutive_elements()</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008717<div class="fragment"><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;{</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keyword">using</span> print_type = <span class="keyword">typename</span> std::conditional&lt;std::is_floating_point&lt;T&gt;::value, T, <span class="keywordtype">int</span>&gt;::type;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordtype">int</span> max_width = -1;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</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="l00709"></a><span class="lineno"> 709</span>&#160; {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; std::stringstream ss;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; ss.copyfmt(s);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; ss &lt;&lt; static_cast&lt;print_type&gt;(ptr[i]);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; max_width = std::max&lt;int&gt;(max_width, ss.str().size());</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; <span class="keywordflow">return</span> max_width;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;}</div></div><!-- fragment -->
Anthony Barbiera4376382017-04-12 15:12:46 +01008718</div>
8719</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008720<a class="anchor" id="ab14153fb809c18823af3c9c8bc4286cb"></a>
8721<div class="memitem">
8722<div class="memproto">
8723<table class="mlabels">
8724 <tr>
8725 <td class="mlabels-left">
8726 <table class="memname">
8727 <tr>
8728 <td class="memname">size_t arm_compute::num_channels_from_format </td>
8729 <td>(</td>
8730 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
8731 <td class="paramname"><em>format</em></td><td>)</td>
8732 <td></td>
8733 </tr>
8734 </table>
8735 </td>
8736 <td class="mlabels-right">
8737<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8738 </tr>
8739</table>
8740</div><div class="memdoc">
8741
8742<p>Return the number of channels for a given single-planar pixel format. </p>
8743<dl class="params"><dt>Parameters</dt><dd>
8744 <table class="params">
8745 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format</td></tr>
8746 </table>
8747 </dd>
8748</dl>
8749<dl class="section return"><dt>Returns</dt><dd>The number of channels for a given image format. </dd></dl>
8750
Anthony Barbierdbdab852017-06-23 15:42:00 +01008751<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00323">323</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 +00008752
8753<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 Barbierdbdab852017-06-23 15:42:00 +01008754<div class="fragment"><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; <span class="keywordflow">switch</span>(format)</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="comment">// Because the U and V channels are subsampled</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="comment">// these formats appear like having only 2 channels:</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">case</span> Format::UV88:</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> 3;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="comment">//Doesn&#39;t make sense for planar formats:</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">default</span>:</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;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +00008755</div>
8756</div>
8757<a class="anchor" id="a2a71659def659c8b1c164023a99a25a9"></a>
8758<div class="memitem">
8759<div class="memproto">
8760<table class="mlabels">
8761 <tr>
8762 <td class="mlabels-left">
8763 <table class="memname">
8764 <tr>
8765 <td class="memname">size_t arm_compute::num_planes_from_format </td>
8766 <td>(</td>
8767 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
8768 <td class="paramname"><em>format</em></td><td>)</td>
8769 <td></td>
8770 </tr>
8771 </table>
8772 </td>
8773 <td class="mlabels-right">
8774<span class="mlabels"><span class="mlabel">inline</span></span> </td>
8775 </tr>
8776</table>
8777</div><div class="memdoc">
8778
8779<p>Return the number of planes for a given format. </p>
8780<dl class="params"><dt>Parameters</dt><dd>
8781 <table class="params">
8782 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format</td></tr>
8783 </table>
8784 </dd>
8785</dl>
8786<dl class="section return"><dt>Returns</dt><dd>The number of planes for a given image format. </dd></dl>
8787
Anthony Barbierdbdab852017-06-23 15:42:00 +01008788<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00289">289</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 +00008789
8790<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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 Barbierdbdab852017-06-23 15:42:00 +01008791<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">switch</span>(format)</div><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="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> 3;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported format&quot;</span>);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00008792</div><!-- fragment -->
8793</div>
8794</div>
Anthony Barbier46d59272017-05-04 09:15:15 +01008795<a class="anchor" id="aa4f4d7a58287017588fc338965873f14"></a>
8796<div class="memitem">
8797<div class="memproto">
8798 <table class="memname">
8799 <tr>
8800 <td class="memname">bool arm_compute::opencl_is_available </td>
8801 <td>(</td>
8802 <td class="paramname"></td><td>)</td>
8803 <td></td>
8804 </tr>
8805 </table>
8806</div><div class="memdoc">
8807
8808</div>
8809</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01008810<a class="anchor" id="adfe7525e3cd542da6c043a98f93a8d3c"></a>
8811<div class="memitem">
8812<div class="memproto">
8813 <table class="memname">
8814 <tr>
8815 <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;::value, T&gt;::type arm_compute::operator&amp; </td>
8816 <td>(</td>
8817 <td class="paramtype">T&#160;</td>
8818 <td class="paramname"><em>lhs</em>, </td>
8819 </tr>
8820 <tr>
8821 <td class="paramkey"></td>
8822 <td></td>
8823 <td class="paramtype">T&#160;</td>
8824 <td class="paramname"><em>rhs</em>&#160;</td>
8825 </tr>
8826 <tr>
8827 <td></td>
8828 <td>)</td>
8829 <td></td><td></td>
8830 </tr>
8831 </table>
8832</div><div class="memdoc">
8833
8834<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00096">96</a> of file <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml">Helpers.h</a>.</p>
8835<div class="fragment"><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">using</span> underlying_type = <span class="keyword">typename</span> std::underlying_type&lt;T&gt;::type;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</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="l00100"></a><span class="lineno"> 100</span>&#160;}</div></div><!-- fragment -->
8836</div>
8837</div>
8838<a class="anchor" id="a18d43401e8f84ed020429b41ec4e99f5"></a>
8839<div class="memitem">
8840<div class="memproto">
8841 <table class="memname">
8842 <tr>
8843 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
8844 <td>(</td>
8845 <td class="paramtype">::std::ostream &amp;&#160;</td>
8846 <td class="paramname"><em>os</em>, </td>
8847 </tr>
8848 <tr>
8849 <td class="paramkey"></td>
8850 <td></td>
8851 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a>&lt; T &gt; &amp;&#160;</td>
8852 <td class="paramname"><em>dimensions</em>&#160;</td>
8853 </tr>
8854 <tr>
8855 <td></td>
8856 <td>)</td>
8857 <td></td><td></td>
8858 </tr>
8859 </table>
8860</div><div class="memdoc">
8861
8862<p>Formatted output of the <a class="el" href="classarm__compute_1_1_dimensions.xhtml" title="Dimensions with dimensionality. ">Dimensions</a> type. </p>
8863
8864<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00037">37</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
8865<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;(&quot;</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(dimensions.num_dimensions() &gt; 0)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; os &lt;&lt; dimensions[0];</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</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="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; dimensions[d];</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; }</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; os &lt;&lt; <span class="stringliteral">&quot;)&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; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div></div><!-- fragment -->
8866</div>
8867</div>
8868<a class="anchor" id="a8af36ae3a3613112c3a95e57f606359a"></a>
8869<div class="memitem">
8870<div class="memproto">
8871 <table class="memname">
8872 <tr>
8873 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
8874 <td>(</td>
8875 <td class="paramtype">::std::ostream &amp;&#160;</td>
8876 <td class="paramname"><em>os</em>, </td>
8877 </tr>
8878 <tr>
8879 <td class="paramkey"></td>
8880 <td></td>
8881 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a> &amp;&#160;</td>
8882 <td class="paramname"><em>pad_stride_info</em>&#160;</td>
8883 </tr>
8884 <tr>
8885 <td></td>
8886 <td>)</td>
8887 <td></td><td></td>
8888 </tr>
8889 </table>
8890</div><div class="memdoc">
8891
8892<p>Formatted output of the PadStridInfo type. </p>
8893
8894<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00057">57</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
8895
8896<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00409">PadStrideInfo::pad()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00405">PadStrideInfo::stride()</a>.</p>
8897<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; os &lt;&lt; <span class="stringliteral">&quot;(&quot;</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</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="l00061"></a><span class="lineno"> 61</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; os &lt;&lt; pad_stride_info.pad().first &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; pad_stride_info.pad().second;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</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="keywordflow">return</span> os;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div></div><!-- fragment -->
8898</div>
8899</div>
8900<a class="anchor" id="a7929032d41d5f23cd1778a70508d0219"></a>
8901<div class="memitem">
8902<div class="memproto">
8903 <table class="memname">
8904 <tr>
8905 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
8906 <td>(</td>
8907 <td class="paramtype">::std::ostream &amp;&#160;</td>
8908 <td class="paramname"><em>os</em>, </td>
8909 </tr>
8910 <tr>
8911 <td class="paramkey"></td>
8912 <td></td>
8913 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> &amp;&#160;</td>
8914 <td class="paramname"><em>mode</em>&#160;</td>
8915 </tr>
8916 <tr>
8917 <td></td>
8918 <td>)</td>
8919 <td></td><td></td>
8920 </tr>
8921 </table>
8922</div><div class="memdoc">
8923
8924<p>Formatted output of the BorderMode type. </p>
8925
8926<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00069">69</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
8927
8928<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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>
8929<div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">switch</span>(mode)</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">case</span> BorderMode::UNDEFINED:</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UNDEFINED&quot;</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">case</span> BorderMode::CONSTANT:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;CONSTANT&quot;</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">case</span> BorderMode::REPLICATE:</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;REPLICATE&quot;</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
8930</div><!-- fragment -->
8931</div>
8932</div>
8933<a class="anchor" id="a509047aefc691398f1bb60b1f967a98b"></a>
8934<div class="memitem">
8935<div class="memproto">
8936 <table class="memname">
8937 <tr>
8938 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
8939 <td>(</td>
8940 <td class="paramtype">::std::ostream &amp;&#160;</td>
8941 <td class="paramname"><em>os</em>, </td>
8942 </tr>
8943 <tr>
8944 <td class="paramkey"></td>
8945 <td></td>
8946 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a> &amp;&#160;</td>
8947 <td class="paramname"><em>policy</em>&#160;</td>
8948 </tr>
8949 <tr>
8950 <td></td>
8951 <td>)</td>
8952 <td></td><td></td>
8953 </tr>
8954 </table>
8955</div><div class="memdoc">
8956
8957<p>Formatted output of the InterpolationPolicy type. </p>
8958
8959<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>
8960
8961<p>References <a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9a639aaa22a784d5e5cb03a522267e79c4">AREA</a>, <a class="el" href="_error_8h_source.xhtml#l00031">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>
8962<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>(policy)</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> InterpolationPolicy::NEAREST_NEIGHBOR:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;NEAREST_NEIGHBOR&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> InterpolationPolicy::BILINEAR:</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;BILINEAR&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> InterpolationPolicy::AREA:</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;AREA&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">default</span>:</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</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="keywordflow">return</span> os;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
8963</div><!-- fragment -->
8964</div>
8965</div>
8966<a class="anchor" id="a4287c6842a60e5f6bf309e55f8813527"></a>
8967<div class="memitem">
8968<div class="memproto">
8969 <table class="memname">
8970 <tr>
8971 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
8972 <td>(</td>
8973 <td class="paramtype">::std::ostream &amp;&#160;</td>
8974 <td class="paramname"><em>os</em>, </td>
8975 </tr>
8976 <tr>
8977 <td class="paramkey"></td>
8978 <td></td>
8979 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6f">ConvertPolicy</a> &amp;&#160;</td>
8980 <td class="paramname"><em>policy</em>&#160;</td>
8981 </tr>
8982 <tr>
8983 <td></td>
8984 <td>)</td>
8985 <td></td><td></td>
8986 </tr>
8987 </table>
8988</div><div class="memdoc">
8989
8990<p>Formatted output of the ConversionPolicy type. </p>
8991
8992<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00111">111</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
8993
8994<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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>
8995<div class="fragment"><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">switch</span>(policy)</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; <span class="keywordflow">case</span> ConvertPolicy::WRAP:</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;WRAP&quot;</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">case</span> ConvertPolicy::SATURATE:</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SATURATE&quot;</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</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> os;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
8996</div><!-- fragment -->
8997</div>
8998</div>
8999<a class="anchor" id="a9d79efe2673aeb3f9a9160b6a78de50c"></a>
9000<div class="memitem">
9001<div class="memproto">
9002 <table class="memname">
9003 <tr>
9004 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
9005 <td>(</td>
9006 <td class="paramtype">::std::ostream &amp;&#160;</td>
9007 <td class="paramname"><em>os</em>, </td>
9008 </tr>
9009 <tr>
9010 <td class="paramkey"></td>
9011 <td></td>
9012 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9ea">ActivationLayerInfo::ActivationFunction</a> &amp;&#160;</td>
9013 <td class="paramname"><em>act_function</em>&#160;</td>
9014 </tr>
9015 <tr>
9016 <td></td>
9017 <td>)</td>
9018 <td></td><td></td>
9019 </tr>
9020 </table>
9021</div><div class="memdoc">
9022
9023<p>Formatted output of the activation function type. </p>
9024
9025<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00129">129</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
9026
9027<p>References <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaa7d8a220d2262f9d6c658d549ee12cf2c">ActivationLayerInfo::ABS</a>, <a class="el" href="_error_8h_source.xhtml#l00031">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#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#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>
9028<div class="fragment"><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">switch</span>(act_function)</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="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::ABS:</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;ABS&quot;</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::BOUNDED_RELU:</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;BOUNDED_RELU&quot;</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LINEAR:</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;LINEAR&quot;</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::LOGISTIC:</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;LOGISTIC&quot;</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::RELU:</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;RELU&quot;</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::SOFT_RELU:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SOFT_RELU&quot;</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::SQRT:</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SQRT&quot;</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::SQUARE:</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SQUARE&quot;</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">case</span> ActivationLayerInfo::ActivationFunction::TANH:</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;TANH&quot;</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><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;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
9029</div><!-- fragment -->
9030</div>
9031</div>
9032<a class="anchor" id="a2ab7370aab6e5698990c50c8871fa6fb"></a>
9033<div class="memitem">
9034<div class="memproto">
9035 <table class="memname">
9036 <tr>
9037 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
9038 <td>(</td>
9039 <td class="paramtype">::std::ostream &amp;&#160;</td>
9040 <td class="paramname"><em>os</em>, </td>
9041 </tr>
9042 <tr>
9043 <td class="paramkey"></td>
9044 <td></td>
9045 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a> &amp;&#160;</td>
9046 <td class="paramname"><em>norm_type</em>&#160;</td>
9047 </tr>
9048 <tr>
9049 <td></td>
9050 <td>)</td>
9051 <td></td><td></td>
9052 </tr>
9053 </table>
9054</div><div class="memdoc">
9055
9056<p>Formatted output of the NormType type. </p>
9057
9058<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00168">168</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
9059
9060<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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>
9061<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">switch</span>(norm_type)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">case</span> NormType::CROSS_MAP:</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;CROSS_MAP&quot;</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> NormType::IN_MAP_1D:</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;IN_MAP_1D&quot;</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">case</span> NormType::IN_MAP_2D:</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;IN_MAP_2D&quot;</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><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> os;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
9062</div><!-- fragment -->
9063</div>
9064</div>
9065<a class="anchor" id="a336cf1e870f467e44c184587a13feeec"></a>
9066<div class="memitem">
9067<div class="memproto">
9068 <table class="memname">
9069 <tr>
9070 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
9071 <td>(</td>
9072 <td class="paramtype">::std::ostream &amp;&#160;</td>
9073 <td class="paramname"><em>os</em>, </td>
9074 </tr>
9075 <tr>
9076 <td class="paramkey"></td>
9077 <td></td>
9078 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93">PoolingType</a> &amp;&#160;</td>
9079 <td class="paramname"><em>pool_type</em>&#160;</td>
9080 </tr>
9081 <tr>
9082 <td></td>
9083 <td>)</td>
9084 <td></td><td></td>
9085 </tr>
9086 </table>
9087</div><div class="memdoc">
9088
9089<p>Formatted output of the PoolingType type. </p>
9090
9091<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00189">189</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
9092
9093<p>References <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a">AVG</a>, and <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">MAX</a>.</p>
9094<div class="fragment"><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="keywordflow">switch</span>(pool_type)</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">case</span> PoolingType::AVG:</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;AVG&quot;</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> PoolingType::MAX:</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;MAX&quot;</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</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="keywordflow">return</span> os;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
9095</div><!-- fragment -->
9096</div>
9097</div>
9098<a class="anchor" id="a295edc9f8caf95838db2c5e251153514"></a>
9099<div class="memitem">
9100<div class="memproto">
9101 <table class="memname">
9102 <tr>
9103 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
9104 <td>(</td>
9105 <td class="paramtype">::std::ostream &amp;&#160;</td>
9106 <td class="paramname"><em>os</em>, </td>
9107 </tr>
9108 <tr>
9109 <td class="paramkey"></td>
9110 <td></td>
9111 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#add6426cbf2e057a195846d4ba09a50be">RoundingPolicy</a> &amp;&#160;</td>
9112 <td class="paramname"><em>rounding_policy</em>&#160;</td>
9113 </tr>
9114 <tr>
9115 <td></td>
9116 <td>)</td>
9117 <td></td><td></td>
9118 </tr>
9119 </table>
9120</div><div class="memdoc">
9121
9122<p>Formatted output of the RoundingPolicy type. </p>
9123
9124<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00207">207</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
9125
9126<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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>
9127<div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;{</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">switch</span>(rounding_policy)</div><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">case</span> RoundingPolicy::TO_ZERO:</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;TO_ZERO&quot;</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">case</span> RoundingPolicy::TO_NEAREST_UP:</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;TO_NEAREST_UP&quot;</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">case</span> RoundingPolicy::TO_NEAREST_EVEN:</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;TO_NEAREST_EVEN&quot;</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</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; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
9128</div><!-- fragment -->
9129</div>
9130</div>
9131<a class="anchor" id="a685af15532d70b8682bcc52f06f034f9"></a>
9132<div class="memitem">
9133<div class="memproto">
9134 <table class="memname">
9135 <tr>
9136 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
9137 <td>(</td>
9138 <td class="paramtype">::std::ostream &amp;&#160;</td>
9139 <td class="paramname"><em>os</em>, </td>
9140 </tr>
9141 <tr>
9142 <td class="paramkey"></td>
9143 <td></td>
9144 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> &amp;&#160;</td>
9145 <td class="paramname"><em>data_type</em>&#160;</td>
9146 </tr>
9147 <tr>
9148 <td></td>
9149 <td>)</td>
9150 <td></td><td></td>
9151 </tr>
9152 </table>
9153</div><div class="memdoc">
9154
9155<p>Formatted output of the DataType type. </p>
9156
9157<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00228">228</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
9158
9159<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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#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#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
9160<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">switch</span>(data_type)</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; <span class="keywordflow">case</span> DataType::UNKNOWN:</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UNKNOWN&quot;</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">case</span> DataType::U8:</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U8&quot;</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;QS8&quot;</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">case</span> DataType::S8:</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S8&quot;</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> DataType::U16:</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U16&quot;</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">case</span> DataType::S16:</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S16&quot;</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">case</span> DataType::U32:</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U32&quot;</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">case</span> DataType::S32:</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S32&quot;</span>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">case</span> DataType::U64:</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U64&quot;</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">case</span> DataType::S64:</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S64&quot;</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F16&quot;</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F32&quot;</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">case</span> DataType::F64:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F64&quot;</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">case</span> DataType::SIZET:</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;SIZET&quot;</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</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;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
9161</div><!-- fragment -->
9162</div>
9163</div>
9164<a class="anchor" id="a3b22e54b0ac0204c3b89aebcd695fa03"></a>
9165<div class="memitem">
9166<div class="memproto">
9167 <table class="memname">
9168 <tr>
9169 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
9170 <td>(</td>
9171 <td class="paramtype">::std::ostream &amp;&#160;</td>
9172 <td class="paramname"><em>os</em>, </td>
9173 </tr>
9174 <tr>
9175 <td class="paramkey"></td>
9176 <td></td>
9177 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> &amp;&#160;</td>
9178 <td class="paramname"><em>format</em>&#160;</td>
9179 </tr>
9180 <tr>
9181 <td></td>
9182 <td>)</td>
9183 <td></td><td></td>
9184 </tr>
9185 </table>
9186</div><div class="memdoc">
9187
9188<p>Formatted output of the Format type. </p>
9189
9190<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00282">282</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
9191
9192<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">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>
9193<div class="fragment"><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; <span class="keywordflow">switch</span>(format)</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; <span class="keywordflow">case</span> Format::UNKNOWN:</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UNKNOWN&quot;</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">case</span> Format::U8:</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U8&quot;</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S16&quot;</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U16&quot;</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;S32&quot;</span>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U32&quot;</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F16&quot;</span>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;F32&quot;</span>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">case</span> Format::UV88:</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UV88&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> Format::RGB888:</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;RGB888&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> Format::RGBA8888:</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;RGBA8888&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">case</span> Format::YUV444:</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;YUV444&quot;</span>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;YUYV422&quot;</span>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;NV12&quot;</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;NV21&quot;</span>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;IYUV&quot;</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UYVY422&quot;</span>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</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;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
9194</div><!-- fragment -->
9195</div>
9196</div>
9197<a class="anchor" id="aa66be15c012986ebd4c1934b97e08a36"></a>
9198<div class="memitem">
9199<div class="memproto">
9200 <table class="memname">
9201 <tr>
9202 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
9203 <td>(</td>
9204 <td class="paramtype">::std::ostream &amp;&#160;</td>
9205 <td class="paramname"><em>os</em>, </td>
9206 </tr>
9207 <tr>
9208 <td class="paramkey"></td>
9209 <td></td>
9210 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> &amp;&#160;</td>
9211 <td class="paramname"><em>channel</em>&#160;</td>
9212 </tr>
9213 <tr>
9214 <td></td>
9215 <td>)</td>
9216 <td></td><td></td>
9217 </tr>
9218 </table>
9219</div><div class="memdoc">
9220
9221<p>Formatted output of the Channel type. </p>
9222
9223<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00345">345</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
9224
9225<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, <a class="el" href="_error_8h_source.xhtml#l00031">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#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">Y</a>.</p>
9226<div class="fragment"><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; <span class="keywordflow">switch</span>(channel)</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="keywordflow">case</span> Channel::UNKNOWN:</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;UNKNOWN&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> Channel::C0:</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;C0&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> Channel::C1:</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;C1&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> Channel::C2:</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;C2&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> Channel::C3:</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;C3&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> Channel::R:</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;R&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> Channel::G:</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;G&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> Channel::B:</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;B&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> Channel::A:</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;A&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> Channel::Y:</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;Y&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> Channel::U:</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;U&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> Channel::V:</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; os &lt;&lt; <span class="stringliteral">&quot;V&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">default</span>:</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT_SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
9227</div><!-- fragment -->
9228</div>
9229</div>
9230<a class="anchor" id="af32c4c5cdd0efde09774eb803bc8a0bd"></a>
9231<div class="memitem">
9232<div class="memproto">
9233 <table class="memname">
9234 <tr>
9235 <td class="memname">inline ::std::ostream&amp; arm_compute::operator&lt;&lt; </td>
9236 <td>(</td>
9237 <td class="paramtype">::std::ostream &amp;&#160;</td>
9238 <td class="paramname"><em>os</em>, </td>
9239 </tr>
9240 <tr>
9241 <td class="paramkey"></td>
9242 <td></td>
9243 <td class="paramtype">const <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> &amp;&#160;</td>
9244 <td class="paramname"><em>border</em>&#160;</td>
9245 </tr>
9246 <tr>
9247 <td></td>
9248 <td>)</td>
9249 <td></td><td></td>
9250 </tr>
9251 </table>
9252</div><div class="memdoc">
9253
9254<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>
9255
9256<p>Definition at line <a class="el" href="_type_printer_8h_source.xhtml#l00393">393</a> of file <a class="el" href="_type_printer_8h_source.xhtml">TypePrinter.h</a>.</p>
9257
9258<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00197">BorderSize::bottom</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00198">BorderSize::left</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00196">BorderSize::right</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00195">BorderSize::top</a>.</p>
9259<div class="fragment"><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; os &lt;&lt; <span class="stringliteral">&quot;{&quot;</span> &lt;&lt; border.top &lt;&lt; <span class="stringliteral">&quot;, &quot;</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; &lt;&lt; border.right &lt;&lt; <span class="stringliteral">&quot;, &quot;</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; &lt;&lt; border.bottom &lt;&lt; <span class="stringliteral">&quot;, &quot;</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; &lt;&lt; border.left &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;}</div></div><!-- fragment -->
9260</div>
9261</div>
9262<a class="anchor" id="a1379e5f8a8b4640d7a52d901f0539ccd"></a>
9263<div class="memitem">
9264<div class="memproto">
9265 <table class="memname">
9266 <tr>
9267 <td class="memname">inline ::std::istream&amp; arm_compute::operator&gt;&gt; </td>
9268 <td>(</td>
9269 <td class="paramtype">::std::istream &amp;&#160;</td>
9270 <td class="paramname"><em>is</em>, </td>
9271 </tr>
9272 <tr>
9273 <td class="paramkey"></td>
9274 <td></td>
9275 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> &amp;&#160;</td>
9276 <td class="paramname"><em>mode</em>&#160;</td>
9277 </tr>
9278 <tr>
9279 <td></td>
9280 <td>)</td>
9281 <td></td><td></td>
9282 </tr>
9283 </table>
9284</div><div class="memdoc">
9285
9286<p>Formatted input of the BorderMode type. </p>
9287
9288<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>
9289
9290<p>References <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>
9291<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 value;</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; value;</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> c)</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(c);</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><!-- fragment -->
9292</div>
9293</div>
9294<a class="anchor" id="ab7b3af731907e85fcaf72555c446176b"></a>
9295<div class="memitem">
9296<div class="memproto">
9297<table class="mlabels">
9298 <tr>
9299 <td class="mlabels-left">
9300 <table class="memname">
9301 <tr>
9302 <td class="memname">uint8_t pixel_area_c1u8_clamp </td>
9303 <td>(</td>
9304 <td class="paramtype">const uint8_t *&#160;</td>
9305 <td class="paramname"><em>first_pixel_ptr</em>, </td>
9306 </tr>
9307 <tr>
9308 <td class="paramkey"></td>
9309 <td></td>
9310 <td class="paramtype">size_t&#160;</td>
9311 <td class="paramname"><em>stride</em>, </td>
9312 </tr>
9313 <tr>
9314 <td class="paramkey"></td>
9315 <td></td>
9316 <td class="paramtype">size_t&#160;</td>
9317 <td class="paramname"><em>width</em>, </td>
9318 </tr>
9319 <tr>
9320 <td class="paramkey"></td>
9321 <td></td>
9322 <td class="paramtype">size_t&#160;</td>
9323 <td class="paramname"><em>height</em>, </td>
9324 </tr>
9325 <tr>
9326 <td class="paramkey"></td>
9327 <td></td>
9328 <td class="paramtype">float&#160;</td>
9329 <td class="paramname"><em>wr</em>, </td>
9330 </tr>
9331 <tr>
9332 <td class="paramkey"></td>
9333 <td></td>
9334 <td class="paramtype">float&#160;</td>
9335 <td class="paramname"><em>hr</em>, </td>
9336 </tr>
9337 <tr>
9338 <td class="paramkey"></td>
9339 <td></td>
9340 <td class="paramtype">int&#160;</td>
9341 <td class="paramname"><em>x</em>, </td>
9342 </tr>
9343 <tr>
9344 <td class="paramkey"></td>
9345 <td></td>
9346 <td class="paramtype">int&#160;</td>
9347 <td class="paramname"><em>y</em>&#160;</td>
9348 </tr>
9349 <tr>
9350 <td></td>
9351 <td>)</td>
9352 <td></td><td></td>
9353 </tr>
9354 </table>
9355 </td>
9356 <td class="mlabels-right">
9357<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9358 </tr>
9359</table>
9360</div><div class="memdoc">
9361
9362<p>Return the pixel at (x,y) using area interpolation by clamping when out of borders. </p>
9363<p>The image must be single channel U8</p>
9364<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>
9365<dd>
9366Currently average of the contributing pixels is calculated</dd></dl>
9367<dl class="params"><dt>Parameters</dt><dd>
9368 <table class="params">
9369 <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>
9370 <tr><td class="paramdir">[in]</td><td class="paramname">stride</td><td>Stride in bytes of the image </td></tr>
9371 <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>Width of the image </td></tr>
9372 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Height of the image </td></tr>
9373 <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>
9374 <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>
9375 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X position of the wanted pixel </td></tr>
9376 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y position of the wanted pixel</td></tr>
9377 </table>
9378 </dd>
9379</dl>
9380<dl class="section return"><dt>Returns</dt><dd>The pixel at (x, y) using area interpolation. </dd></dl>
9381
9382<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00081">81</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
9383
9384<p>References <a class="el" href="accumulate_8cl_source.xhtml#l00041">accumulate()</a>, <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00880">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00875">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, and <a class="el" href="_window_8inl_source.xhtml#l00040">Window::set()</a>.</p>
9385<div class="fragment"><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; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(first_pixel_ptr == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Calculate sampling position</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">float</span> in_x = (x + 0.5f) * wr - 0.5f;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">float</span> in_y = (y + 0.5f) * hr - 0.5f;</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">// Get bounding box offsets</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">int</span> x_from = std::floor(x * wr - 0.5f - in_x);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> y_from = std::floor(y * hr - 0.5f - in_y);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">int</span> x_to = std::ceil((x + 1) * wr - 0.5f - in_x);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">int</span> y_to = std::ceil((y + 1) * hr - 0.5f - in_y);</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">// Clamp position to borders</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</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="l00097"></a><span class="lineno"> 97</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="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// Clamp bounding box offsets to borders</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; x_from = ((in_x + x_from) &lt; -1) ? -1 : x_from;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; y_from = ((in_y + y_from) &lt; -1) ? -1 : y_from;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; x_to = ((in_x + x_to) &gt; width) ? (width - in_x) : x_to;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; y_to = ((in_y + y_to) &gt; height) ? (height - in_y) : y_to;</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">// Get pixel index</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> xi = std::floor(in_x);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> yi = std::floor(in_y);</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; <span class="comment">// Bounding box elements in each dimension</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</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="l00111"></a><span class="lineno"> 111</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="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(x_elements == 0 || y_elements == 0);</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; <span class="comment">// Sum pixels in area</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">int</span> sum = 0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</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="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">const</span> uint8_t *ptr = first_pixel_ptr + j * stride + xi + x_from;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</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="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Return average</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> sum / (x_elements * y_elements);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</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#l00875">FixedPoint.h:875</a></div></div>
9386<div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
9387<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>
9388<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#l00880">FixedPoint.h:880</a></div></div>
9389</div><!-- fragment -->
9390</div>
9391</div>
9392<a class="anchor" id="a49560b7b7e0095fd7501b0a6d7042f2b"></a>
9393<div class="memitem">
9394<div class="memproto">
9395<table class="mlabels">
9396 <tr>
9397 <td class="mlabels-left">
9398 <table class="memname">
9399 <tr>
9400 <td class="memname">uint8_t pixel_bilinear_c1u8 </td>
9401 <td>(</td>
9402 <td class="paramtype">const uint8_t *&#160;</td>
9403 <td class="paramname"><em>first_pixel_ptr</em>, </td>
9404 </tr>
9405 <tr>
9406 <td class="paramkey"></td>
9407 <td></td>
9408 <td class="paramtype">size_t&#160;</td>
9409 <td class="paramname"><em>stride</em>, </td>
9410 </tr>
9411 <tr>
9412 <td class="paramkey"></td>
9413 <td></td>
9414 <td class="paramtype">float&#160;</td>
9415 <td class="paramname"><em>x</em>, </td>
9416 </tr>
9417 <tr>
9418 <td class="paramkey"></td>
9419 <td></td>
9420 <td class="paramtype">float&#160;</td>
9421 <td class="paramname"><em>y</em>&#160;</td>
9422 </tr>
9423 <tr>
9424 <td></td>
9425 <td>)</td>
9426 <td></td><td></td>
9427 </tr>
9428 </table>
9429 </td>
9430 <td class="mlabels-right">
9431<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9432 </tr>
9433</table>
9434</div><div class="memdoc">
9435
9436<p>Return the pixel at (x,y) using bilinear interpolation. </p>
9437<p>The image must be single channel U8</p>
9438<dl class="section warning"><dt>Warning</dt><dd>Only works if the iterator was created with an IImage</dd></dl>
9439<dl class="params"><dt>Parameters</dt><dd>
9440 <table class="params">
9441 <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>
9442 <tr><td class="paramdir">[in]</td><td class="paramname">stride</td><td>Stride in bytes of the image; </td></tr>
9443 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X position of the wanted pixel </td></tr>
9444 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y position of the wanted pixel</td></tr>
9445 </table>
9446 </dd>
9447</dl>
9448<dl class="section return"><dt>Returns</dt><dd>The pixel at (x, y) using bilinear interpolation. </dd></dl>
9449
9450<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00052">52</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
9451
9452<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00032">delta_bilinear_c1u8()</a>.</p>
9453<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="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(first_pixel_ptr == <span class="keyword">nullptr</span>);</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="keyword">const</span> int32_t xi = x;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">const</span> int32_t yi = y;</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="keyword">const</span> <span class="keywordtype">float</span> dx = x - xi;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dy = y - yi;</div><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; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#aceaaf77291e83ca0dfaed677c93ce350">delta_bilinear_c1u8</a>(first_pixel_ptr + xi + yi * stride, stride, dx, dy);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
9454<div class="ttc" id="namespacearm__compute_xhtml_aceaaf77291e83ca0dfaed677c93ce350"><div class="ttname"><a href="namespacearm__compute.xhtml#aceaaf77291e83ca0dfaed677c93ce350">arm_compute::delta_bilinear_c1u8</a></div><div class="ttdeci">uint8_t delta_bilinear_c1u8(const uint8_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="_helpers_8inl_source.xhtml#l00032">Helpers.inl:32</a></div></div>
9455</div><!-- fragment -->
9456</div>
9457</div>
9458<a class="anchor" id="a7c3fa3051dcd3570157d121b6cb0e56a"></a>
9459<div class="memitem">
9460<div class="memproto">
9461<table class="mlabels">
9462 <tr>
9463 <td class="mlabels-left">
9464 <table class="memname">
9465 <tr>
9466 <td class="memname">uint8_t pixel_bilinear_c1u8_clamp </td>
9467 <td>(</td>
9468 <td class="paramtype">const uint8_t *&#160;</td>
9469 <td class="paramname"><em>first_pixel_ptr</em>, </td>
9470 </tr>
9471 <tr>
9472 <td class="paramkey"></td>
9473 <td></td>
9474 <td class="paramtype">size_t&#160;</td>
9475 <td class="paramname"><em>stride</em>, </td>
9476 </tr>
9477 <tr>
9478 <td class="paramkey"></td>
9479 <td></td>
9480 <td class="paramtype">size_t&#160;</td>
9481 <td class="paramname"><em>width</em>, </td>
9482 </tr>
9483 <tr>
9484 <td class="paramkey"></td>
9485 <td></td>
9486 <td class="paramtype">size_t&#160;</td>
9487 <td class="paramname"><em>height</em>, </td>
9488 </tr>
9489 <tr>
9490 <td class="paramkey"></td>
9491 <td></td>
9492 <td class="paramtype">float&#160;</td>
9493 <td class="paramname"><em>x</em>, </td>
9494 </tr>
9495 <tr>
9496 <td class="paramkey"></td>
9497 <td></td>
9498 <td class="paramtype">float&#160;</td>
9499 <td class="paramname"><em>y</em>&#160;</td>
9500 </tr>
9501 <tr>
9502 <td></td>
9503 <td>)</td>
9504 <td></td><td></td>
9505 </tr>
9506 </table>
9507 </td>
9508 <td class="mlabels-right">
9509<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9510 </tr>
9511</table>
9512</div><div class="memdoc">
9513
9514<p>Return the pixel at (x,y) using bilinear interpolation by clamping when out of borders. </p>
9515<p>The image must be single channel U8</p>
9516<dl class="section warning"><dt>Warning</dt><dd>Only works if the iterator was created with an IImage</dd></dl>
9517<dl class="params"><dt>Parameters</dt><dd>
9518 <table class="params">
9519 <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>
9520 <tr><td class="paramdir">[in]</td><td class="paramname">stride</td><td>Stride in bytes of the image </td></tr>
9521 <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>Width of the image </td></tr>
9522 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Height of the image </td></tr>
9523 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X position of the wanted pixel </td></tr>
9524 <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y position of the wanted pixel</td></tr>
9525 </table>
9526 </dd>
9527</dl>
9528<dl class="section return"><dt>Returns</dt><dd>The pixel at (x, y) using bilinear interpolation. </dd></dl>
9529
9530<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00065">65</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
9531
9532<p>References <a class="el" href="_error_8h_source.xhtml#l00124">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00032">delta_bilinear_c1u8()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00880">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, and <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00875">arm_compute::test::fixed_point_arithmetic::detail::min()</a>.</p>
9533<div class="fragment"><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; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(first_pixel_ptr == <span class="keyword">nullptr</span>);</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; 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="l00070"></a><span class="lineno"> 70</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="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> xi = std::floor(x);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> yi = std::floor(y);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dx = x - xi;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> dy = y - yi;</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; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#aceaaf77291e83ca0dfaed677c93ce350">delta_bilinear_c1u8</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="l00079"></a><span class="lineno"> 79</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#l00875">FixedPoint.h:875</a></div></div>
9534<div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00124">Error.h:124</a></div></div>
9535<div class="ttc" id="namespacearm__compute_xhtml_aceaaf77291e83ca0dfaed677c93ce350"><div class="ttname"><a href="namespacearm__compute.xhtml#aceaaf77291e83ca0dfaed677c93ce350">arm_compute::delta_bilinear_c1u8</a></div><div class="ttdeci">uint8_t delta_bilinear_c1u8(const uint8_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="_helpers_8inl_source.xhtml#l00032">Helpers.inl:32</a></div></div>
9536<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#l00880">FixedPoint.h:880</a></div></div>
9537</div><!-- fragment -->
9538</div>
9539</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009540<a class="anchor" id="a4823543d67a2520c98669e2a5608ef6a"></a>
9541<div class="memitem">
9542<div class="memproto">
9543<table class="mlabels">
9544 <tr>
9545 <td class="mlabels-left">
9546 <table class="memname">
9547 <tr>
9548 <td class="memname">size_t arm_compute::pixel_size_from_format </td>
9549 <td>(</td>
9550 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
9551 <td class="paramname"><em>format</em></td><td>)</td>
9552 <td></td>
9553 </tr>
9554 </table>
9555 </td>
9556 <td class="mlabels-right">
9557<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9558 </tr>
9559</table>
9560</div><div class="memdoc">
9561
9562<p>The size in bytes of the pixel format. </p>
9563<dl class="params"><dt>Parameters</dt><dd>
9564 <table class="params">
9565 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format</td></tr>
9566 </table>
9567 </dd>
9568</dl>
9569<dl class="section return"><dt>Returns</dt><dd>The size in bytes of the pixel format </dd></dl>
9570
Anthony Barbierdbdab852017-06-23 15:42:00 +01009571<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00134">134</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 +00009572
9573<p>References <a class="el" href="_error_8h_source.xhtml#l00031">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>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009574<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="keywordflow">switch</span>(format)</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">case</span> Format::U8:</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">case</span> Format::U16:</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">case</span> Format::S16:</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">case</span> Format::F16:</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">case</span> Format::UV88:</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">case</span> Format::YUYV422:</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">case</span> Format::UYVY422:</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">case</span> Format::RGB888:</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> 3;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">case</span> Format::RGBA8888:</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">case</span> Format::U32:</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">case</span> Format::S32:</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">case</span> Format::F32:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> 4;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">//Doesn&#39;t make sense for planar formats:</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">case</span> Format::NV12:</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="_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="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> 0;</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;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009575</div><!-- fragment -->
9576</div>
9577</div>
9578<a class="anchor" id="a4f6fe18760340bcec02d095b7099e923"></a>
9579<div class="memitem">
9580<div class="memproto">
9581<table class="mlabels">
9582 <tr>
9583 <td class="mlabels-left">
9584 <table class="memname">
9585 <tr>
9586 <td class="memname">int arm_compute::plane_idx_from_channel </td>
9587 <td>(</td>
9588 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
9589 <td class="paramname"><em>format</em>, </td>
9590 </tr>
9591 <tr>
9592 <td class="paramkey"></td>
9593 <td></td>
9594 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
9595 <td class="paramname"><em>channel</em>&#160;</td>
9596 </tr>
9597 <tr>
9598 <td></td>
9599 <td>)</td>
9600 <td></td><td></td>
9601 </tr>
9602 </table>
9603 </td>
9604 <td class="mlabels-right">
9605<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9606 </tr>
9607</table>
9608</div><div class="memdoc">
9609
9610<p>Return the plane index of a given channel given an input format. </p>
9611<dl class="params"><dt>Parameters</dt><dd>
9612 <table class="params">
9613 <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Input format </td></tr>
9614 <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Input channel</td></tr>
9615 </table>
9616 </dd>
9617</dl>
9618<dl class="section return"><dt>Returns</dt><dd>The plane index of the specific channel of the specific format </dd></dl>
9619
Anthony Barbierdbdab852017-06-23 15:42:00 +01009620<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00242">242</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 +00009621
9622<p>References <a class="el" href="_error_8h_source.xhtml#l00031">ARM_COMPUTE_ERROR</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#a1ce9b523fd4f3b5bbcadcd796183455aa4c614360da93c0a041b22e537de151eb">U</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa5206560a306a2e085a437fd258eb57ce">V</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa57cec4137b614c87cb4e24a3d003a3e0">Y</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a11cfa56ee0ddbbc30a2fd189d7475f4c">YUV444</a>.</p>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009623<div class="fragment"><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">switch</span>(format)</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">case</span> Format::NV12:</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">case</span> Format::NV21:</div><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">switch</span>(channel)</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; <span class="keywordflow">case</span> Channel::Y:</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> 0;</div><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; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">case</span> Format::IYUV:</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">case</span> Format::YUV444:</div><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; <span class="keywordflow">switch</span>(channel)</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">case</span> Channel::Y:</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">case</span> Channel::U:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">case</span> Channel::V:</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported channel&quot;</span>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> 0;</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">default</span>:</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Not supported format&quot;</span>);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> 0;</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;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00031">Error.h:31</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009624</div><!-- fragment -->
9625</div>
9626</div>
Anthony Barbiera4376382017-04-12 15:12:46 +01009627<a class="anchor" id="a51a0d2ae440bc8cab3fbbe84bfea8b1d"></a>
9628<div class="memitem">
9629<div class="memproto">
9630 <table class="memname">
9631 <tr>
9632 <td class="memname">void arm_compute::print_consecutive_elements </td>
9633 <td>(</td>
9634 <td class="paramtype">std::ostream &amp;&#160;</td>
9635 <td class="paramname"><em>s</em>, </td>
9636 </tr>
9637 <tr>
9638 <td class="paramkey"></td>
9639 <td></td>
9640 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
9641 <td class="paramname"><em>dt</em>, </td>
9642 </tr>
9643 <tr>
9644 <td class="paramkey"></td>
9645 <td></td>
9646 <td class="paramtype">const uint8_t *&#160;</td>
9647 <td class="paramname"><em>ptr</em>, </td>
9648 </tr>
9649 <tr>
9650 <td class="paramkey"></td>
9651 <td></td>
9652 <td class="paramtype">unsigned int&#160;</td>
9653 <td class="paramname"><em>n</em>, </td>
9654 </tr>
9655 <tr>
9656 <td class="paramkey"></td>
9657 <td></td>
9658 <td class="paramtype">int&#160;</td>
9659 <td class="paramname"><em>stream_width</em>, </td>
9660 </tr>
9661 <tr>
9662 <td class="paramkey"></td>
9663 <td></td>
9664 <td class="paramtype">const std::string &amp;&#160;</td>
9665 <td class="paramname"><em>element_delim</em> = <code>&quot;&#160;&quot;</code>&#160;</td>
9666 </tr>
9667 <tr>
9668 <td></td>
9669 <td>)</td>
9670 <td></td><td></td>
9671 </tr>
9672 </table>
9673</div><div class="memdoc">
9674
9675<p>Print consecutive elements to an output stream. </p>
9676<dl class="params"><dt>Parameters</dt><dd>
9677 <table class="params">
9678 <tr><td class="paramdir">[out]</td><td class="paramname">s</td><td>Output stream to print the elements to. </td></tr>
9679 <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Data type of the elements </td></tr>
9680 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to print the elements from. </td></tr>
9681 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements to print. </td></tr>
9682 <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>
9683 <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>
9684 </table>
9685 </dd>
9686</dl>
9687
Anthony Barbierdbdab852017-06-23 15:42:00 +01009688<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00703">max_consecutive_elements_display_width_impl()</a>.</p>
Anthony Barbiera4376382017-04-12 15:12:46 +01009689
9690</div>
9691</div>
9692<a class="anchor" id="aa3a28b8acd21301990e06377c64e1276"></a>
9693<div class="memitem">
9694<div class="memproto">
9695 <table class="memname">
9696 <tr>
9697 <td class="memname">void arm_compute::print_consecutive_elements_impl </td>
9698 <td>(</td>
9699 <td class="paramtype">std::ostream &amp;&#160;</td>
9700 <td class="paramname"><em>s</em>, </td>
9701 </tr>
9702 <tr>
9703 <td class="paramkey"></td>
9704 <td></td>
9705 <td class="paramtype">const T *&#160;</td>
9706 <td class="paramname"><em>ptr</em>, </td>
9707 </tr>
9708 <tr>
9709 <td class="paramkey"></td>
9710 <td></td>
9711 <td class="paramtype">unsigned int&#160;</td>
9712 <td class="paramname"><em>n</em>, </td>
9713 </tr>
9714 <tr>
9715 <td class="paramkey"></td>
9716 <td></td>
9717 <td class="paramtype">int&#160;</td>
9718 <td class="paramname"><em>stream_width</em> = <code>0</code>, </td>
9719 </tr>
9720 <tr>
9721 <td class="paramkey"></td>
9722 <td></td>
9723 <td class="paramtype">const std::string &amp;&#160;</td>
9724 <td class="paramname"><em>element_delim</em> = <code>&quot;&#160;&quot;</code>&#160;</td>
9725 </tr>
9726 <tr>
9727 <td></td>
9728 <td>)</td>
9729 <td></td><td></td>
9730 </tr>
9731 </table>
9732</div><div class="memdoc">
9733
9734<p>Print consecutive elements to an output stream. </p>
9735<dl class="params"><dt>Parameters</dt><dd>
9736 <table class="params">
9737 <tr><td class="paramdir">[out]</td><td class="paramname">s</td><td>Output stream to print the elements to. </td></tr>
9738 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to print the elements from. </td></tr>
9739 <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of elements to print. </td></tr>
9740 <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>
9741 <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>
9742 </table>
9743 </dd>
9744</dl>
9745
Anthony Barbierdbdab852017-06-23 15:42:00 +01009746<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00679">679</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
9747<div class="fragment"><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;{</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keyword">using</span> print_type = <span class="keyword">typename</span> std::conditional&lt;std::is_floating_point&lt;T&gt;::value, T, <span class="keywordtype">int</span>&gt;::type;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</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="l00684"></a><span class="lineno"> 684</span>&#160; {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</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="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">if</span>(stream_width != 0)</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; s.width(stream_width);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</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="l00691"></a><span class="lineno"> 691</span>&#160; }</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;}</div></div><!-- fragment -->
Anthony Barbiera4376382017-04-12 15:12:46 +01009748</div>
9749</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009750<a class="anchor" id="aefa4a4d3136d77b85cccfce344f9f37f"></a>
9751<div class="memitem">
9752<div class="memproto">
9753 <table class="memname">
9754 <tr>
9755 <td class="memname">std::string arm_compute::read_file </td>
9756 <td>(</td>
9757 <td class="paramtype">const std::string &amp;&#160;</td>
9758 <td class="paramname"><em>filename</em>, </td>
9759 </tr>
9760 <tr>
9761 <td class="paramkey"></td>
9762 <td></td>
9763 <td class="paramtype">bool&#160;</td>
9764 <td class="paramname"><em>binary</em>&#160;</td>
9765 </tr>
9766 <tr>
9767 <td></td>
9768 <td>)</td>
9769 <td></td><td></td>
9770 </tr>
9771 </table>
9772</div><div class="memdoc">
9773
9774<p>Load an entire file in memory. </p>
9775<dl class="params"><dt>Parameters</dt><dd>
9776 <table class="params">
9777 <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>Name of the file to read. </td></tr>
9778 <tr><td class="paramdir">[in]</td><td class="paramname">binary</td><td>Is it a binary file ?</td></tr>
9779 </table>
9780 </dd>
9781</dl>
9782<dl class="section return"><dt>Returns</dt><dd>The content of the file. </dd></dl>
9783
Anthony Barbierdbdab852017-06-23 15:42:00 +01009784<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00059">DIV_CEIL()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009785
9786</div>
9787</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009788<a class="anchor" id="a43315c66c4d00207f70143233b189085"></a>
9789<div class="memitem">
9790<div class="memproto">
9791<table class="mlabels">
9792 <tr>
9793 <td class="mlabels-left">
9794 <table class="memname">
9795 <tr>
9796 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sabs_qs8 </td>
9797 <td>(</td>
9798 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
9799 <td class="paramname"><em>a</em></td><td>)</td>
9800 <td></td>
9801 </tr>
9802 </table>
9803 </td>
9804 <td class="mlabels-right">
9805<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9806 </tr>
9807</table>
9808</div><div class="memdoc">
9809
9810<p>8 bit fixed point scalar absolute value </p>
9811<dl class="params"><dt>Parameters</dt><dd>
9812 <table class="params">
9813 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input</td></tr>
9814 </table>
9815 </dd>
9816</dl>
9817<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point absolute value </dd></dl>
9818
9819<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00053">53</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
9820
9821<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00169">sqexp_qs8()</a>.</p>
9822<div class="fragment"><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">return</span> a &amp; 0x7F;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div></div><!-- fragment -->
9823</div>
9824</div>
9825<a class="anchor" id="aa8cee074ec68e2ae7830a9472efd8429"></a>
9826<div class="memitem">
9827<div class="memproto">
9828<table class="mlabels">
9829 <tr>
9830 <td class="mlabels-left">
9831 <table class="memname">
9832 <tr>
9833 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sadd_qs8 </td>
9834 <td>(</td>
9835 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
9836 <td class="paramname"><em>a</em>, </td>
9837 </tr>
9838 <tr>
9839 <td class="paramkey"></td>
9840 <td></td>
9841 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
9842 <td class="paramname"><em>b</em>&#160;</td>
9843 </tr>
9844 <tr>
9845 <td></td>
9846 <td>)</td>
9847 <td></td><td></td>
9848 </tr>
9849 </table>
9850 </td>
9851 <td class="mlabels-right">
9852<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9853 </tr>
9854</table>
9855</div><div class="memdoc">
9856
9857<p>8 bit fixed point scalar add </p>
9858<dl class="params"><dt>Parameters</dt><dd>
9859 <table class="params">
9860 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
9861 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input</td></tr>
9862 </table>
9863 </dd>
9864</dl>
9865<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point addition </dd></dl>
9866
9867<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00058">58</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
9868
9869<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00192">slog_qs8()</a>.</p>
9870<div class="fragment"><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="keywordflow">return</span> a + b;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div></div><!-- fragment -->
9871</div>
9872</div>
Anthony Barbier871448e2017-03-24 14:54:29 +00009873<a class="anchor" id="a6fd2c972d67298469a6aad75879fffab"></a>
9874<div class="memitem">
9875<div class="memproto">
9876 <table class="memname">
9877 <tr>
9878 <td class="memname">const std::pair&lt;unsigned int, unsigned int&gt; arm_compute::scaled_dimensions </td>
9879 <td>(</td>
9880 <td class="paramtype">unsigned int&#160;</td>
9881 <td class="paramname"><em>width</em>, </td>
9882 </tr>
9883 <tr>
9884 <td class="paramkey"></td>
9885 <td></td>
9886 <td class="paramtype">unsigned int&#160;</td>
9887 <td class="paramname"><em>height</em>, </td>
9888 </tr>
9889 <tr>
9890 <td class="paramkey"></td>
9891 <td></td>
9892 <td class="paramtype">unsigned int&#160;</td>
9893 <td class="paramname"><em>kernel_size</em>, </td>
9894 </tr>
9895 <tr>
9896 <td class="paramkey"></td>
9897 <td></td>
9898 <td class="paramtype">unsigned int&#160;</td>
9899 <td class="paramname"><em>stride_x</em>, </td>
9900 </tr>
9901 <tr>
9902 <td class="paramkey"></td>
9903 <td></td>
9904 <td class="paramtype">unsigned int&#160;</td>
9905 <td class="paramname"><em>stride_y</em>, </td>
9906 </tr>
9907 <tr>
9908 <td class="paramkey"></td>
9909 <td></td>
9910 <td class="paramtype">unsigned int&#160;</td>
9911 <td class="paramname"><em>pad_x</em>, </td>
9912 </tr>
9913 <tr>
9914 <td class="paramkey"></td>
9915 <td></td>
9916 <td class="paramtype">unsigned int&#160;</td>
9917 <td class="paramname"><em>pad_y</em>, </td>
9918 </tr>
9919 <tr>
9920 <td class="paramkey"></td>
9921 <td></td>
9922 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849a">DimensionRoundingType</a>&#160;</td>
9923 <td class="paramname"><em>round_type</em>&#160;</td>
9924 </tr>
9925 <tr>
9926 <td></td>
9927 <td>)</td>
9928 <td></td><td></td>
9929 </tr>
9930 </table>
9931</div><div class="memdoc">
9932
9933<p>Returns expected width and height of output scaled tensor depending on dimensions rounding mode. </p>
9934<dl class="params"><dt>Parameters</dt><dd>
9935 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +01009936 <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>Width of input tensor (Number of columns) </td></tr>
9937 <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Height of input tensor (Number of rows) </td></tr>
9938 <tr><td class="paramdir">[in]</td><td class="paramname">kernel_size</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class. ">Kernel</a> size. </td></tr>
9939 <tr><td class="paramdir">[in]</td><td class="paramname">stride_x</td><td>Stride of the operation in the x dimension. </td></tr>
9940 <tr><td class="paramdir">[in]</td><td class="paramname">stride_y</td><td>Stride of the operation in the y dimension. </td></tr>
9941 <tr><td class="paramdir">[in]</td><td class="paramname">pad_x</td><td>Padding size in the x dimension. </td></tr>
9942 <tr><td class="paramdir">[in]</td><td class="paramname">pad_y</td><td>Padding size in the y dimension. </td></tr>
9943 <tr><td class="paramdir">[in]</td><td class="paramname">round_type</td><td><a class="el" href="classarm__compute_1_1_dimensions.xhtml" title="Dimensions with dimensionality. ">Dimensions</a> rounding mode.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +00009944 </table>
9945 </dd>
9946</dl>
9947<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>
9948
Anthony Barbierdbdab852017-06-23 15:42:00 +01009949<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +00009950
9951</div>
9952</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +01009953<a class="anchor" id="a55e8e161b9a16d750a6cff3fba6cd480"></a>
9954<div class="memitem">
9955<div class="memproto">
9956<table class="mlabels">
9957 <tr>
9958 <td class="mlabels-left">
9959 <table class="memname">
9960 <tr>
9961 <td class="memname">float scvt_f32_qs16 </td>
9962 <td>(</td>
9963 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
9964 <td class="paramname"><em>a</em>, </td>
9965 </tr>
9966 <tr>
9967 <td class="paramkey"></td>
9968 <td></td>
9969 <td class="paramtype">int&#160;</td>
9970 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
9971 </tr>
9972 <tr>
9973 <td></td>
9974 <td>)</td>
9975 <td></td><td></td>
9976 </tr>
9977 </table>
9978 </td>
9979 <td class="mlabels-right">
9980<span class="mlabels"><span class="mlabel">inline</span></span> </td>
9981 </tr>
9982</table>
9983</div><div class="memdoc">
9984
9985<p>Convert a 16 bit fixed point to float. </p>
9986<dl class="params"><dt>Parameters</dt><dd>
9987 <table class="params">
9988 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert </td></tr>
9989 <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>
9990 </table>
9991 </dd>
9992</dl>
9993<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 16 bit fixed point -&gt; float </dd></dl>
9994
9995<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00236">236</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
9996<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">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(a) / (1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div></div><!-- fragment -->
9997</div>
9998</div>
9999<a class="anchor" id="a62232512d049619479b670c58a607924"></a>
10000<div class="memitem">
10001<div class="memproto">
10002<table class="mlabels">
10003 <tr>
10004 <td class="mlabels-left">
10005 <table class="memname">
10006 <tr>
10007 <td class="memname">float scvt_f32_qs8 </td>
10008 <td>(</td>
10009 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10010 <td class="paramname"><em>a</em>, </td>
10011 </tr>
10012 <tr>
10013 <td class="paramkey"></td>
10014 <td></td>
10015 <td class="paramtype">int&#160;</td>
10016 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10017 </tr>
10018 <tr>
10019 <td></td>
10020 <td>)</td>
10021 <td></td><td></td>
10022 </tr>
10023 </table>
10024 </td>
10025 <td class="mlabels-right">
10026<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10027 </tr>
10028</table>
10029</div><div class="memdoc">
10030
10031<p>Convert an 8 bit fixed point to float. </p>
10032<dl class="params"><dt>Parameters</dt><dd>
10033 <table class="params">
10034 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert </td></tr>
10035 <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>
10036 </table>
10037 </dd>
10038</dl>
10039<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 8 bit fixed point -&gt; float </dd></dl>
10040
10041<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00225">225</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10042<div class="fragment"><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><span class="keywordtype">float</span><span class="keyword">&gt;</span>(a) / (1 &lt;&lt; fixed_point_position);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div></div><!-- fragment -->
10043</div>
10044</div>
10045<a class="anchor" id="aacd9632313e7c7341b403155575a48ed"></a>
10046<div class="memitem">
10047<div class="memproto">
10048<table class="mlabels">
10049 <tr>
10050 <td class="mlabels-left">
10051 <table class="memname">
10052 <tr>
10053 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> scvt_qs16_f32 </td>
10054 <td>(</td>
10055 <td class="paramtype">float&#160;</td>
10056 <td class="paramname"><em>a</em>, </td>
10057 </tr>
10058 <tr>
10059 <td class="paramkey"></td>
10060 <td></td>
10061 <td class="paramtype">int&#160;</td>
10062 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10063 </tr>
10064 <tr>
10065 <td></td>
10066 <td>)</td>
10067 <td></td><td></td>
10068 </tr>
10069 </table>
10070 </td>
10071 <td class="mlabels-right">
10072<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10073 </tr>
10074</table>
10075</div><div class="memdoc">
10076
10077<p>Convert a float to 16 bit fixed point. </p>
10078<dl class="params"><dt>Parameters</dt><dd>
10079 <table class="params">
10080 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert </td></tr>
10081 <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>
10082 </table>
10083 </dd>
10084</dl>
10085<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 16 bit fixed point </dd></dl>
10086
10087<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00241">241</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10088<div class="fragment"><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; <span class="comment">// round_nearest_integer(a * 2^(fixed_point_position))</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</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>(<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(a) * (1 &lt;&lt; fixed_point_position) + 0.5f);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;}</div><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>
10089</div><!-- fragment -->
10090</div>
10091</div>
10092<a class="anchor" id="a85574c36b0854c1f988a3be4f7db6b6d"></a>
10093<div class="memitem">
10094<div class="memproto">
10095<table class="mlabels">
10096 <tr>
10097 <td class="mlabels-left">
10098 <table class="memname">
10099 <tr>
10100 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> scvt_qs8_f32 </td>
10101 <td>(</td>
10102 <td class="paramtype">float&#160;</td>
10103 <td class="paramname"><em>a</em>, </td>
10104 </tr>
10105 <tr>
10106 <td class="paramkey"></td>
10107 <td></td>
10108 <td class="paramtype">int&#160;</td>
10109 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10110 </tr>
10111 <tr>
10112 <td></td>
10113 <td>)</td>
10114 <td></td><td></td>
10115 </tr>
10116 </table>
10117 </td>
10118 <td class="mlabels-right">
10119<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10120 </tr>
10121</table>
10122</div><div class="memdoc">
10123
10124<p>Convert a float to 8 bit fixed point. </p>
10125<dl class="params"><dt>Parameters</dt><dd>
10126 <table class="params">
10127 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert </td></tr>
10128 <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>
10129 </table>
10130 </dd>
10131</dl>
10132<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 8 bit fixed point </dd></dl>
10133
10134<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00230">230</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10135<div class="fragment"><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; <span class="comment">// round_nearest_integer(a * 2^(fixed_point_position))</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</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>(<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(a) * (1 &lt;&lt; fixed_point_position) + 0.5f);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;}</div><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>
10136</div><!-- fragment -->
10137</div>
10138</div>
10139<a class="anchor" id="ae39636f0e83dd3b854b89181a230216f"></a>
10140<div class="memitem">
10141<div class="memproto">
10142<table class="mlabels">
10143 <tr>
10144 <td class="mlabels-left">
10145 <table class="memname">
10146 <tr>
10147 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sdiv_qs8 </td>
10148 <td>(</td>
10149 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10150 <td class="paramname"><em>a</em>, </td>
10151 </tr>
10152 <tr>
10153 <td class="paramkey"></td>
10154 <td></td>
10155 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10156 <td class="paramname"><em>b</em>, </td>
10157 </tr>
10158 <tr>
10159 <td class="paramkey"></td>
10160 <td></td>
10161 <td class="paramtype">int&#160;</td>
10162 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10163 </tr>
10164 <tr>
10165 <td></td>
10166 <td>)</td>
10167 <td></td><td></td>
10168 </tr>
10169 </table>
10170 </td>
10171 <td class="mlabels-right">
10172<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10173 </tr>
10174</table>
10175</div><div class="memdoc">
10176
10177<p>8 bit fixed point scalar division </p>
10178<dl class="params"><dt>Parameters</dt><dd>
10179 <table class="params">
10180 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
10181 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input </td></tr>
10182 <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>
10183 </table>
10184 </dd>
10185</dl>
10186<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point division. </dd></dl>
10187
10188<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00163">163</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10189
10190<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00192">slog_qs8()</a>.</p>
10191<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; <a class="code" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> temp = a &lt;&lt; fixed_point_position;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>)(temp / b);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div><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>
10192<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>
10193</div><!-- fragment -->
10194</div>
10195</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000010196<a class="anchor" id="a18ec57dffc5c26864be77318111dfb2a"></a>
10197<div class="memitem">
10198<div class="memproto">
10199<table class="mlabels">
10200 <tr>
10201 <td class="mlabels-left">
10202 <table class="memname">
10203 <tr>
10204 <td class="memname">bool arm_compute::separate_matrix </td>
10205 <td>(</td>
10206 <td class="paramtype">const int16_t *&#160;</td>
10207 <td class="paramname"><em>conv</em>, </td>
10208 </tr>
10209 <tr>
10210 <td class="paramkey"></td>
10211 <td></td>
10212 <td class="paramtype">int16_t *&#160;</td>
10213 <td class="paramname"><em>conv_col</em>, </td>
10214 </tr>
10215 <tr>
10216 <td class="paramkey"></td>
10217 <td></td>
10218 <td class="paramtype">int16_t *&#160;</td>
10219 <td class="paramname"><em>conv_row</em>, </td>
10220 </tr>
10221 <tr>
10222 <td class="paramkey"></td>
10223 <td></td>
10224 <td class="paramtype">uint8_t&#160;</td>
10225 <td class="paramname"><em>size</em>&#160;</td>
10226 </tr>
10227 <tr>
10228 <td></td>
10229 <td>)</td>
10230 <td></td><td></td>
10231 </tr>
10232 </table>
10233 </td>
10234 <td class="mlabels-right">
10235<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10236 </tr>
10237</table>
10238</div><div class="memdoc">
10239
10240<p>Separate a 2D convolution into two 1D convolutions. </p>
10241<dl class="params"><dt>Parameters</dt><dd>
10242 <table class="params">
10243 <tr><td class="paramdir">[in]</td><td class="paramname">conv</td><td>2D convolution </td></tr>
10244 <tr><td class="paramdir">[out]</td><td class="paramname">conv_col</td><td>1D vertical convolution </td></tr>
10245 <tr><td class="paramdir">[out]</td><td class="paramname">conv_row</td><td>1D horizontal convolution </td></tr>
10246 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of the 2D convolution</td></tr>
10247 </table>
10248 </dd>
10249</dl>
10250<dl class="section return"><dt>Returns</dt><dd>true if the separation was successful </dd></dl>
10251
Anthony Barbierdbdab852017-06-23 15:42:00 +010010252<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00365">365</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
10253
10254<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00905">arm_compute::test::fixed_point_arithmetic::detail::abs()</a>.</p>
10255<div class="fragment"><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; int32_t min_col = -1;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; int16_t min_col_val = -1;</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">for</span>(int32_t i = 0; i &lt; size; ++i)</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(conv[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>(conv[i])))</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; min_col = i;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; min_col_val = conv[i];</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span>(min_col &lt; 0)</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">return</span> <span class="keyword">false</span>;</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;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">for</span>(uint32_t j = 0; j &lt; size; ++j)</div><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; conv_col[j] = conv[min_col + j * size];</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">for</span>(uint32_t i = 0; i &lt; size; i++)</div><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">if</span>(static_cast&lt;int&gt;(i) == min_col)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; conv_row[i] = 1;</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="keywordflow">else</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; int16_t coeff = conv[i] / conv[min_col];</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">for</span>(uint32_t j = 1; j &lt; size; ++j)</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">if</span>(conv[i + j * size] != (conv_col[j] * coeff))</div><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="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }</div><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;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; conv_row[i] = coeff;</div><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; }</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; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ae115fc750a92fb6a5e094998b56fcc56"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ae115fc750a92fb6a5e094998b56fcc56">arm_compute::test::fixed_point_arithmetic::detail::abs</a></div><div class="ttdeci">fixed_point&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#l00905">FixedPoint.h:905</a></div></div>
10256</div><!-- fragment -->
10257</div>
10258</div>
10259<a class="anchor" id="ad19446be52c2c162fa678b9ae236f445"></a>
10260<div class="memitem">
10261<div class="memproto">
10262<table class="mlabels">
10263 <tr>
10264 <td class="mlabels-left">
10265 <table class="memname">
10266 <tr>
10267 <td class="memname">bool set_data_type_if_unknown </td>
10268 <td>(</td>
10269 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
10270 <td class="paramname"><em>info</em>, </td>
10271 </tr>
10272 <tr>
10273 <td class="paramkey"></td>
10274 <td></td>
10275 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
10276 <td class="paramname"><em>data_type</em>&#160;</td>
10277 </tr>
10278 <tr>
10279 <td></td>
10280 <td>)</td>
10281 <td></td><td></td>
10282 </tr>
10283 </table>
10284 </td>
10285 <td class="mlabels-right">
10286<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10287 </tr>
10288</table>
10289</div><div class="memdoc">
10290
10291<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00285">285</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
10292
10293<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#a4b622a0346ec30baf0b9a387e00c9ace">ITensorInfo::set_data_type()</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
10294
10295<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00449">compute_strides()</a>.</p>
10296<div class="fragment"><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">if</span>(info.data_type() == DataType::UNKNOWN)</div><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; info.set_data_type(data_type);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><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="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;}</div></div><!-- fragment -->
10297</div>
10298</div>
10299<a class="anchor" id="a0894ed18ca6f55d6053882676cc2c95c"></a>
10300<div class="memitem">
10301<div class="memproto">
10302<table class="mlabels">
10303 <tr>
10304 <td class="mlabels-left">
10305 <table class="memname">
10306 <tr>
10307 <td class="memname">bool set_fixed_point_position_if_zero </td>
10308 <td>(</td>
10309 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
10310 <td class="paramname"><em>info</em>, </td>
10311 </tr>
10312 <tr>
10313 <td class="paramkey"></td>
10314 <td></td>
10315 <td class="paramtype">int&#160;</td>
10316 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10317 </tr>
10318 <tr>
10319 <td></td>
10320 <td>)</td>
10321 <td></td><td></td>
10322 </tr>
10323 </table>
10324 </td>
10325 <td class="mlabels-right">
10326<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10327 </tr>
10328</table>
10329</div><div class="memdoc">
10330
10331<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00296">296</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
10332
10333<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#aec2c125ece3cc6593a0be7f1fef3d97f">ITensorInfo::set_fixed_point_position()</a>.</p>
10334
10335<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00449">compute_strides()</a>.</p>
10336<div class="fragment"><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; <span class="keywordflow">if</span>(info.fixed_point_position() == 0 &amp;&amp; (info.data_type() == DataType::QS8 || info.data_type() == DataType::QS16))</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; info.set_fixed_point_position(fixed_point_position);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</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> <span class="keyword">false</span>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;}</div></div><!-- fragment -->
10337</div>
10338</div>
10339<a class="anchor" id="a8076ba239b6681067b6cfea7f773a39f"></a>
10340<div class="memitem">
10341<div class="memproto">
10342<table class="mlabels">
10343 <tr>
10344 <td class="mlabels-left">
10345 <table class="memname">
10346 <tr>
10347 <td class="memname">bool set_format_if_unknown </td>
10348 <td>(</td>
10349 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
10350 <td class="paramname"><em>info</em>, </td>
10351 </tr>
10352 <tr>
10353 <td class="paramkey"></td>
10354 <td></td>
10355 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
10356 <td class="paramname"><em>format</em>&#160;</td>
10357 </tr>
10358 <tr>
10359 <td></td>
10360 <td>)</td>
10361 <td></td><td></td>
10362 </tr>
10363 </table>
10364 </td>
10365 <td class="mlabels-right">
10366<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10367 </tr>
10368</table>
10369</div><div class="memdoc">
10370
10371<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00274">274</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
10372
10373<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#a43bf980bc1ac27efa062386baa506380">ITensorInfo::set_format()</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a696b031073e74bf2cb98e5ef201d4aa3">UNKNOWN</a>.</p>
10374
10375<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00449">compute_strides()</a>.</p>
10376<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">if</span>(info.data_type() == DataType::UNKNOWN)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; info.set_format(format);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;}</div></div><!-- fragment -->
10377</div>
10378</div>
10379<a class="anchor" id="a9d1a839c51134b2ae171a2264c541b6f"></a>
10380<div class="memitem">
10381<div class="memproto">
10382<table class="mlabels">
10383 <tr>
10384 <td class="mlabels-left">
10385 <table class="memname">
10386 <tr>
10387 <td class="memname">bool set_shape_if_empty </td>
10388 <td>(</td>
10389 <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td>
10390 <td class="paramname"><em>info</em>, </td>
10391 </tr>
10392 <tr>
10393 <td class="paramkey"></td>
10394 <td></td>
10395 <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
10396 <td class="paramname"><em>shape</em>&#160;</td>
10397 </tr>
10398 <tr>
10399 <td></td>
10400 <td>)</td>
10401 <td></td><td></td>
10402 </tr>
10403 </table>
10404 </td>
10405 <td class="mlabels-right">
10406<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10407 </tr>
10408</table>
10409</div><div class="memdoc">
10410
10411<p>Definition at line <a class="el" href="_helpers_8inl_source.xhtml#l00263">263</a> of file <a class="el" href="_helpers_8inl_source.xhtml">Helpers.inl</a>.</p>
10412
10413<p>References <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a40deec9ef7e7c892bef6b11b4d81c38e">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#l00106">TensorShape::total_size()</a>.</p>
10414
10415<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00449">compute_strides()</a>.</p>
10416<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; <span class="keywordflow">if</span>(info.tensor_shape().total_size() == 0)</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; info.set_tensor_shape(shape);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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> <span class="keyword">false</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;}</div></div><!-- fragment -->
10417</div>
10418</div>
10419<a class="anchor" id="a31f807a33c1ad8f1b92f6bdf8f8e960a"></a>
10420<div class="memitem">
10421<div class="memproto">
10422 <table class="memname">
10423 <tr>
10424 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> arm_compute::sexp_qs8 </td>
10425 <td>(</td>
10426 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10427 <td class="paramname"><em>a</em>, </td>
10428 </tr>
10429 <tr>
10430 <td class="paramkey"></td>
10431 <td></td>
10432 <td class="paramtype">int&#160;</td>
10433 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10434 </tr>
10435 <tr>
10436 <td></td>
10437 <td>)</td>
10438 <td></td><td></td>
10439 </tr>
10440 </table>
10441</div><div class="memdoc">
10442
10443<p>8 bit fixed point scalar exponential </p>
10444<dl class="params"><dt>Parameters</dt><dd>
10445 <table class="params">
10446 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input </td></tr>
10447 <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>
10448 </table>
10449 </dd>
10450</dl>
10451<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point exponential. </dd></dl>
10452
10453</div>
10454</div>
10455<a class="anchor" id="ab768d7001612a149c0bf695b773d659b"></a>
10456<div class="memitem">
10457<div class="memproto">
10458<table class="mlabels">
10459 <tr>
10460 <td class="mlabels-left">
10461 <table class="memname">
10462 <tr>
10463 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sinvsqrt_qs8 </td>
10464 <td>(</td>
10465 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10466 <td class="paramname"><em>a</em>, </td>
10467 </tr>
10468 <tr>
10469 <td class="paramkey"></td>
10470 <td></td>
10471 <td class="paramtype">int&#160;</td>
10472 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10473 </tr>
10474 <tr>
10475 <td></td>
10476 <td>)</td>
10477 <td></td><td></td>
10478 </tr>
10479 </table>
10480 </td>
10481 <td class="mlabels-right">
10482<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10483 </tr>
10484</table>
10485</div><div class="memdoc">
10486
10487<p>8 bit fixed point scalar inverse square root </p>
10488<dl class="params"><dt>Parameters</dt><dd>
10489 <table class="params">
10490 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input </td></tr>
10491 <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>
10492 </table>
10493 </dd>
10494</dl>
10495<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point inverse square root. </dd></dl>
10496
10497<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00143">143</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10498
10499<p>References <a class="el" href="_fixed_point_8inl_source.xhtml#l00095">smul_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00081">ssub_qs8()</a>.</p>
10500<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; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> shift = 8 - (fixed_point_position + (__builtin_clz(a) - 24));</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; <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="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> temp = shift &lt; 0 ? (a &lt;&lt; -shift) : (a &gt;&gt; shift);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> x2 = temp;</div><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="comment">// We need three iterations to find the result</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><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; <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="l00155"></a><span class="lineno"> 155</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="l00156"></a><span class="lineno"> 156</span>&#160; }</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; temp = shift &lt; 0 ? (x2 &lt;&lt; (-shift &gt;&gt; 1)) : (x2 &gt;&gt; (shift &gt;&gt; 1));</div><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> temp;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</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#l00095">FixedPoint.inl:95</a></div></div>
10501<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#l00081">FixedPoint.inl:81</a></div></div>
10502<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>
10503</div><!-- fragment -->
10504</div>
10505</div>
10506<a class="anchor" id="a596a7e3c63f80e67ea7cb713e8fc9992"></a>
10507<div class="memitem">
10508<div class="memproto">
10509<table class="mlabels">
10510 <tr>
10511 <td class="mlabels-left">
10512 <table class="memname">
10513 <tr>
10514 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> slog_qs8 </td>
10515 <td>(</td>
10516 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10517 <td class="paramname"><em>a</em>, </td>
10518 </tr>
10519 <tr>
10520 <td class="paramkey"></td>
10521 <td></td>
10522 <td class="paramtype">int&#160;</td>
10523 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10524 </tr>
10525 <tr>
10526 <td></td>
10527 <td>)</td>
10528 <td></td><td></td>
10529 </tr>
10530 </table>
10531 </td>
10532 <td class="mlabels-right">
10533<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10534 </tr>
10535</table>
10536</div><div class="memdoc">
10537
10538<p>8 bit fixed point scalar logarithm </p>
10539<dl class="params"><dt>Parameters</dt><dd>
10540 <table class="params">
10541 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input </td></tr>
10542 <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>
10543 </table>
10544 </dd>
10545</dl>
10546<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point logarithm. </dd></dl>
10547
10548<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00192">192</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10549
10550<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#l00058">sadd_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00163">sdiv_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00095">smul_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00063">sqadd_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00107">sqmul_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00081">ssub_qs8()</a>.</p>
10551<div class="fragment"><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="comment">// Constants</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</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="l00196"></a><span class="lineno"> 196</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="l00197"></a><span class="lineno"> 197</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="l00198"></a><span class="lineno"> 198</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="l00199"></a><span class="lineno"> 199</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="l00200"></a><span class="lineno"> 200</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="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>((const_one == a) || (a &lt; 0))</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> 0;</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">else</span> <span class="keywordflow">if</span>(a &lt; const_one)</div><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">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, fixed_point_position), fixed_point_position);</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;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// Remove even powers of 2</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> shift_val = 31 - __builtin_clz(a &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; a &gt;&gt;= shift_val;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; a = <a class="code" href="namespacearm__compute.xhtml#ab97841950d268532e51f28a208ddafd4">ssub_qs8</a>(a, const_one);</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="comment">// Polynomial expansion</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">auto</span> sum = <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(a, D, fixed_point_position), C);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</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, sum, fixed_point_position), B);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</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, sum, fixed_point_position), A);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(a, sum, fixed_point_position);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</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="l00223"></a><span class="lineno"> 223</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>
10552<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#l00095">FixedPoint.inl:95</a></div></div>
10553<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#l00081">FixedPoint.inl:81</a></div></div>
10554<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>
10555<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#l00058">FixedPoint.inl:58</a></div></div>
10556<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#l00163">FixedPoint.inl:163</a></div></div>
10557<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#l00107">FixedPoint.inl:107</a></div></div>
10558<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#l00192">FixedPoint.inl:192</a></div></div>
10559<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>
10560<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#l00063">FixedPoint.inl:63</a></div></div>
10561</div><!-- fragment -->
10562</div>
10563</div>
10564<a class="anchor" id="aec48f137adc904d648dd7eba0d828fab"></a>
10565<div class="memitem">
10566<div class="memproto">
10567<table class="mlabels">
10568 <tr>
10569 <td class="mlabels-left">
10570 <table class="memname">
10571 <tr>
10572 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> smul_qs8 </td>
10573 <td>(</td>
10574 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10575 <td class="paramname"><em>a</em>, </td>
10576 </tr>
10577 <tr>
10578 <td class="paramkey"></td>
10579 <td></td>
10580 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10581 <td class="paramname"><em>b</em>, </td>
10582 </tr>
10583 <tr>
10584 <td class="paramkey"></td>
10585 <td></td>
10586 <td class="paramtype">int&#160;</td>
10587 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10588 </tr>
10589 <tr>
10590 <td></td>
10591 <td>)</td>
10592 <td></td><td></td>
10593 </tr>
10594 </table>
10595 </td>
10596 <td class="mlabels-right">
10597<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10598 </tr>
10599</table>
10600</div><div class="memdoc">
10601
10602<p>8 bit fixed point scalar multiply </p>
10603<dl class="params"><dt>Parameters</dt><dd>
10604 <table class="params">
10605 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
10606 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input </td></tr>
10607 <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>
10608 </table>
10609 </dd>
10610</dl>
10611<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point multiplication. </dd></dl>
10612
10613<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00095">95</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10614
10615<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00143">sinvsqrt_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00192">slog_qs8()</a>.</p>
10616<div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;{</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</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="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</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) * static_cast&lt;qint16_t&gt;(b);</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">// Rounding up</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; tmp += round_up_const;</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="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="l00105"></a><span class="lineno"> 105</span>&#160;}</div><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>
10617<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>
10618</div><!-- fragment -->
10619</div>
10620</div>
10621<a class="anchor" id="a45669fcc0f31fce521179510e85dcb62"></a>
10622<div class="memitem">
10623<div class="memproto">
10624<table class="mlabels">
10625 <tr>
10626 <td class="mlabels-left">
10627 <table class="memname">
10628 <tr>
10629 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqadd_qs16 </td>
10630 <td>(</td>
10631 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
10632 <td class="paramname"><em>a</em>, </td>
10633 </tr>
10634 <tr>
10635 <td class="paramkey"></td>
10636 <td></td>
10637 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
10638 <td class="paramname"><em>b</em>&#160;</td>
10639 </tr>
10640 <tr>
10641 <td></td>
10642 <td>)</td>
10643 <td></td><td></td>
10644 </tr>
10645 </table>
10646 </td>
10647 <td class="mlabels-right">
10648<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10649 </tr>
10650</table>
10651</div><div class="memdoc">
10652
10653<p>16 bit fixed point scalar saturating add </p>
10654<dl class="params"><dt>Parameters</dt><dd>
10655 <table class="params">
10656 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
10657 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input</td></tr>
10658 </table>
10659 </dd>
10660</dl>
10661<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>
10662
10663<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>
10664<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="comment">// We need to store the temporary result in qint16_t otherwise we cannot evaluate the overflow</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</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) + static_cast&lt;qint32_t&gt;(b));</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint16_t</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> saturate_convert&lt;qint32_t, qint16_t&gt;(tmp);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><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>
10665</div><!-- fragment -->
10666</div>
10667</div>
10668<a class="anchor" id="a532d90e007d0cb6f3d43107229c40c32"></a>
10669<div class="memitem">
10670<div class="memproto">
10671<table class="mlabels">
10672 <tr>
10673 <td class="mlabels-left">
10674 <table class="memname">
10675 <tr>
10676 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqadd_qs8 </td>
10677 <td>(</td>
10678 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10679 <td class="paramname"><em>a</em>, </td>
10680 </tr>
10681 <tr>
10682 <td class="paramkey"></td>
10683 <td></td>
10684 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10685 <td class="paramname"><em>b</em>&#160;</td>
10686 </tr>
10687 <tr>
10688 <td></td>
10689 <td>)</td>
10690 <td></td><td></td>
10691 </tr>
10692 </table>
10693 </td>
10694 <td class="mlabels-right">
10695<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10696 </tr>
10697</table>
10698</div><div class="memdoc">
10699
10700<p>8 bit fixed point scalar saturating add </p>
10701<dl class="params"><dt>Parameters</dt><dd>
10702 <table class="params">
10703 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
10704 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input</td></tr>
10705 </table>
10706 </dd>
10707</dl>
10708<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>
10709
10710<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00063">63</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10711
10712<p>Referenced by <a class="el" href="_tensor_operations_8h_source.xhtml#l01123">arm_compute::test::validation::tensor_operations::pooling_layer()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00192">slog_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00169">sqexp_qs8()</a>.</p>
10713<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; <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="l00066"></a><span class="lineno"> 66</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) + static_cast&lt;qint16_t&gt;(b));</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint8_t</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> saturate_convert&lt;qint16_t, qint8_t&gt;(tmp);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><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>
10714</div><!-- fragment -->
10715</div>
10716</div>
10717<a class="anchor" id="a6458ccaf13f1c225d6b60672754f2c72"></a>
10718<div class="memitem">
10719<div class="memproto">
10720<table class="mlabels">
10721 <tr>
10722 <td class="mlabels-left">
10723 <table class="memname">
10724 <tr>
10725 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> arm_compute::sqexp_qs8 </td>
10726 <td>(</td>
10727 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10728 <td class="paramname"><em>a</em>, </td>
10729 </tr>
10730 <tr>
10731 <td class="paramkey"></td>
10732 <td></td>
10733 <td class="paramtype">int&#160;</td>
10734 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10735 </tr>
10736 <tr>
10737 <td></td>
10738 <td>)</td>
10739 <td></td><td></td>
10740 </tr>
10741 </table>
10742 </td>
10743 <td class="mlabels-right">
10744<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10745 </tr>
10746</table>
10747</div><div class="memdoc">
10748
10749<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00169">169</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10750
10751<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#l00053">sabs_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00063">sqadd_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00107">sqmul_qs8()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00046">sqshl_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00086">sqsub_qs8()</a>.</p>
10752<div class="fragment"><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// Constants</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</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="l00173"></a><span class="lineno"> 173</span>&#160; <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="l00174"></a><span class="lineno"> 174</span>&#160; <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="l00175"></a><span class="lineno"> 175</span>&#160; <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="l00176"></a><span class="lineno"> 176</span>&#160; <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="l00177"></a><span class="lineno"> 177</span>&#160; <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="l00178"></a><span class="lineno"> 178</span>&#160; <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="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// Polynomial expansion</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">int</span> dec_a = (<a class="code" href="namespacearm__compute.xhtml#af0b73b0c4980a551d7cd4edec43ffd92">sqmul_qs8</a>(a, inv_ln2, fixed_point_position) &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> alpha = <a class="code" href="namespacearm__compute.xhtml#a43315c66c4d00207f70143233b189085">sabs_qs8</a>(<a class="code" href="namespacearm__compute.xhtml#ae74bbb6e25cc1b774428722b2faad00c">sqsub_qs8</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="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sum = <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="l00184"></a><span class="lineno"> 184</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="l00185"></a><span class="lineno"> 185</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="l00186"></a><span class="lineno"> 186</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="l00187"></a><span class="lineno"> 187</span>&#160; sum = <a class="code" href="namespacearm__compute.xhtml#a532d90e007d0cb6f3d43107229c40c32">sqadd_qs8</a>(sum, const_one);</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; <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="l00190"></a><span class="lineno"> 190</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>
10753<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>
10754<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#l00046">FixedPoint.inl:46</a></div></div>
10755<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#l00086">FixedPoint.inl:86</a></div></div>
10756<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#l00107">FixedPoint.inl:107</a></div></div>
10757<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>
10758<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#l00053">FixedPoint.inl:53</a></div></div>
10759<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#l00063">FixedPoint.inl:63</a></div></div>
10760</div><!-- fragment -->
10761</div>
10762</div>
10763<a class="anchor" id="ad555b251940cba2ca1c6eb168f0bbea4"></a>
10764<div class="memitem">
10765<div class="memproto">
10766<table class="mlabels">
10767 <tr>
10768 <td class="mlabels-left">
10769 <table class="memname">
10770 <tr>
10771 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqmovn_qs16 </td>
10772 <td>(</td>
10773 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
10774 <td class="paramname"><em>a</em></td><td>)</td>
10775 <td></td>
10776 </tr>
10777 </table>
10778 </td>
10779 <td class="mlabels-right">
10780<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10781 </tr>
10782</table>
10783</div><div class="memdoc">
10784
10785<p>Scalar saturating move and narrow. </p>
10786<dl class="params"><dt>Parameters</dt><dd>
10787 <table class="params">
10788 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Input to convert to 8 bit fixed point</td></tr>
10789 </table>
10790 </dd>
10791</dl>
10792<dl class="section return"><dt>Returns</dt><dd>The narrowing conversion to 8 bit </dd></dl>
10793
10794<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00247">247</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10795<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="comment">// Saturate the result in case of overflow and cast to qint8_t</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> saturate_convert&lt;qint16_t, qint8_t&gt;(a);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div></div><!-- fragment -->
10796</div>
10797</div>
10798<a class="anchor" id="a55c8a365b4242664f8c0f19e91bcee92"></a>
10799<div class="memitem">
10800<div class="memproto">
10801<table class="mlabels">
10802 <tr>
10803 <td class="mlabels-left">
10804 <table class="memname">
10805 <tr>
10806 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqmul_qs16 </td>
10807 <td>(</td>
10808 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
10809 <td class="paramname"><em>a</em>, </td>
10810 </tr>
10811 <tr>
10812 <td class="paramkey"></td>
10813 <td></td>
10814 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
10815 <td class="paramname"><em>b</em>, </td>
10816 </tr>
10817 <tr>
10818 <td class="paramkey"></td>
10819 <td></td>
10820 <td class="paramtype">int&#160;</td>
10821 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10822 </tr>
10823 <tr>
10824 <td></td>
10825 <td>)</td>
10826 <td></td><td></td>
10827 </tr>
10828 </table>
10829 </td>
10830 <td class="mlabels-right">
10831<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10832 </tr>
10833</table>
10834</div><div class="memdoc">
10835
10836<p>16 bit fixed point scalar saturating multiply </p>
10837<dl class="params"><dt>Parameters</dt><dd>
10838 <table class="params">
10839 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input </td></tr>
10840 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input </td></tr>
10841 <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>
10842 </table>
10843 </dd>
10844</dl>
10845<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>
10846
10847<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>
10848<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="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="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</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) * static_cast&lt;qint32_t&gt;(b);</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="comment">// Rounding up</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; tmp += round_up_const;</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; <span class="keywordflow">return</span> saturate_convert&lt;qint32_t, qint16_t&gt;(tmp &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;}</div><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>
10849</div><!-- fragment -->
10850</div>
10851</div>
10852<a class="anchor" id="af0b73b0c4980a551d7cd4edec43ffd92"></a>
10853<div class="memitem">
10854<div class="memproto">
10855<table class="mlabels">
10856 <tr>
10857 <td class="mlabels-left">
10858 <table class="memname">
10859 <tr>
10860 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqmul_qs8 </td>
10861 <td>(</td>
10862 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10863 <td class="paramname"><em>a</em>, </td>
10864 </tr>
10865 <tr>
10866 <td class="paramkey"></td>
10867 <td></td>
10868 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10869 <td class="paramname"><em>b</em>, </td>
10870 </tr>
10871 <tr>
10872 <td class="paramkey"></td>
10873 <td></td>
10874 <td class="paramtype">int&#160;</td>
10875 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10876 </tr>
10877 <tr>
10878 <td></td>
10879 <td>)</td>
10880 <td></td><td></td>
10881 </tr>
10882 </table>
10883 </td>
10884 <td class="mlabels-right">
10885<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10886 </tr>
10887</table>
10888</div><div class="memdoc">
10889
10890<p>8 bit fixed point scalar saturating multiply </p>
10891<dl class="params"><dt>Parameters</dt><dd>
10892 <table class="params">
10893 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
10894 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input </td></tr>
10895 <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>
10896 </table>
10897 </dd>
10898</dl>
10899<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>
10900
10901<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00107">107</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10902
10903<p>Referenced by <a class="el" href="_tensor_operations_8h_source.xhtml#l01123">arm_compute::test::validation::tensor_operations::pooling_layer()</a>, <a class="el" href="_fixed_point_8inl_source.xhtml#l00192">slog_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00169">sqexp_qs8()</a>.</p>
10904<div class="fragment"><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; <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="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</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) * static_cast&lt;qint16_t&gt;(b);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Rounding up</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; tmp += round_up_const;</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="keywordflow">return</span> saturate_convert&lt;qint16_t, qint8_t&gt;(tmp &gt;&gt; fixed_point_position);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><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>
10905</div><!-- fragment -->
10906</div>
10907</div>
10908<a class="anchor" id="a0721e062e6d7a90f07fd08aeda5e7eda"></a>
10909<div class="memitem">
10910<div class="memproto">
10911<table class="mlabels">
10912 <tr>
10913 <td class="mlabels-left">
10914 <table class="memname">
10915 <tr>
10916 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> sqmull_qs8 </td>
10917 <td>(</td>
10918 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10919 <td class="paramname"><em>a</em>, </td>
10920 </tr>
10921 <tr>
10922 <td class="paramkey"></td>
10923 <td></td>
10924 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10925 <td class="paramname"><em>b</em>, </td>
10926 </tr>
10927 <tr>
10928 <td class="paramkey"></td>
10929 <td></td>
10930 <td class="paramtype">int&#160;</td>
10931 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
10932 </tr>
10933 <tr>
10934 <td></td>
10935 <td>)</td>
10936 <td></td><td></td>
10937 </tr>
10938 </table>
10939 </td>
10940 <td class="mlabels-right">
10941<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10942 </tr>
10943</table>
10944</div><div class="memdoc">
10945
10946<p>8 bit fixed point scalar multiply long </p>
10947<dl class="params"><dt>Parameters</dt><dd>
10948 <table class="params">
10949 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
10950 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input </td></tr>
10951 <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>
10952 </table>
10953 </dd>
10954</dl>
10955<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>
10956
10957<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00131">131</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
10958<div class="fragment"><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="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="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</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) * static_cast&lt;qint16_t&gt;(b);</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; <span class="comment">// Rounding up</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; tmp += round_up_const;</div><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> tmp &gt;&gt; fixed_point_position;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><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>
10959</div><!-- fragment -->
10960</div>
10961</div>
10962<a class="anchor" id="a203882febb616f5468d1b63b60ffb331"></a>
10963<div class="memitem">
10964<div class="memproto">
10965<table class="mlabels">
10966 <tr>
10967 <td class="mlabels-left">
10968 <table class="memname">
10969 <tr>
10970 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqshl_qs8 </td>
10971 <td>(</td>
10972 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
10973 <td class="paramname"><em>a</em>, </td>
10974 </tr>
10975 <tr>
10976 <td class="paramkey"></td>
10977 <td></td>
10978 <td class="paramtype">int&#160;</td>
10979 <td class="paramname"><em>shift</em>&#160;</td>
10980 </tr>
10981 <tr>
10982 <td></td>
10983 <td>)</td>
10984 <td></td><td></td>
10985 </tr>
10986 </table>
10987 </td>
10988 <td class="mlabels-right">
10989<span class="mlabels"><span class="mlabel">inline</span></span> </td>
10990 </tr>
10991</table>
10992</div><div class="memdoc">
10993
10994<p>8 bit fixed point scalar saturating shift left </p>
10995<dl class="params"><dt>Parameters</dt><dd>
10996 <table class="params">
10997 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
10998 <tr><td class="paramdir">[in]</td><td class="paramname">shift</td><td>Shift amount</td></tr>
10999 </table>
11000 </dd>
11001</dl>
11002<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>
11003
11004<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00046">46</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
11005
11006<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00169">sqexp_qs8()</a>.</p>
11007<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; <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) &lt;&lt; shift;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Saturate the result in case of overflow and cast to qint8_t</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> saturate_convert&lt;qint16_t, qint8_t&gt;(tmp);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><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>
11008</div><!-- fragment -->
11009</div>
11010</div>
11011<a class="anchor" id="ae74bbb6e25cc1b774428722b2faad00c"></a>
11012<div class="memitem">
11013<div class="memproto">
11014<table class="mlabels">
11015 <tr>
11016 <td class="mlabels-left">
11017 <table class="memname">
11018 <tr>
11019 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> sqsub_qs8 </td>
11020 <td>(</td>
11021 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
11022 <td class="paramname"><em>a</em>, </td>
11023 </tr>
11024 <tr>
11025 <td class="paramkey"></td>
11026 <td></td>
11027 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
11028 <td class="paramname"><em>b</em>&#160;</td>
11029 </tr>
11030 <tr>
11031 <td></td>
11032 <td>)</td>
11033 <td></td><td></td>
11034 </tr>
11035 </table>
11036 </td>
11037 <td class="mlabels-right">
11038<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11039 </tr>
11040</table>
11041</div><div class="memdoc">
11042
11043<p>8 bit fixed point scalar saturating subtraction </p>
11044<dl class="params"><dt>Parameters</dt><dd>
11045 <table class="params">
11046 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
11047 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input</td></tr>
11048 </table>
11049 </dd>
11050</dl>
11051<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>
11052
11053<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00086">86</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
11054
11055<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00169">sqexp_qs8()</a>.</p>
11056<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</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="l00089"></a><span class="lineno"> 89</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) - static_cast&lt;qint16_t&gt;(b);</div><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="comment">// Saturate the result in case of overflow and cast to qint8_t</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> saturate_convert&lt;qint16_t, qint8_t&gt;(tmp);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}</div><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>
11057</div><!-- fragment -->
11058</div>
11059</div>
11060<a class="anchor" id="ab97841950d268532e51f28a208ddafd4"></a>
11061<div class="memitem">
11062<div class="memproto">
11063<table class="mlabels">
11064 <tr>
11065 <td class="mlabels-left">
11066 <table class="memname">
11067 <tr>
11068 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> ssub_qs8 </td>
11069 <td>(</td>
11070 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
11071 <td class="paramname"><em>a</em>, </td>
11072 </tr>
11073 <tr>
11074 <td class="paramkey"></td>
11075 <td></td>
11076 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
11077 <td class="paramname"><em>b</em>&#160;</td>
11078 </tr>
11079 <tr>
11080 <td></td>
11081 <td>)</td>
11082 <td></td><td></td>
11083 </tr>
11084 </table>
11085 </td>
11086 <td class="mlabels-right">
11087<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11088 </tr>
11089</table>
11090</div><div class="memdoc">
11091
11092<p>8 bit fixed point scalar subtraction </p>
11093<dl class="params"><dt>Parameters</dt><dd>
11094 <table class="params">
11095 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input </td></tr>
11096 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input</td></tr>
11097 </table>
11098 </dd>
11099</dl>
11100<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point subtraction </dd></dl>
11101
11102<p>Definition at line <a class="el" href="_fixed_point_8inl_source.xhtml#l00081">81</a> of file <a class="el" href="_fixed_point_8inl_source.xhtml">FixedPoint.inl</a>.</p>
11103
11104<p>Referenced by <a class="el" href="_fixed_point_8inl_source.xhtml#l00143">sinvsqrt_qs8()</a>, and <a class="el" href="_fixed_point_8inl_source.xhtml#l00192">slog_qs8()</a>.</p>
11105<div class="fragment"><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="keywordflow">return</span> a - b;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000011106</div>
11107</div>
11108<a class="anchor" id="ac955c978e18cc9bf6daea31f13076fba"></a>
11109<div class="memitem">
11110<div class="memproto">
11111 <table class="memname">
11112 <tr>
11113 <td class="memname">const std::string&amp; arm_compute::string_from_activation_func </td>
11114 <td>(</td>
11115 <td class="paramtype"><a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9ea">ActivationLayerInfo::ActivationFunction</a>&#160;</td>
11116 <td class="paramname"><em>act</em></td><td>)</td>
11117 <td></td>
11118 </tr>
11119 </table>
11120</div><div class="memdoc">
11121
11122<p>Translates a given activation function to a string. </p>
11123<dl class="params"><dt>Parameters</dt><dd>
11124 <table class="params">
11125 <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>
11126 </table>
11127 </dd>
11128</dl>
11129<dl class="section return"><dt>Returns</dt><dd>The string describing the activation function. </dd></dl>
11130
Anthony Barbierdbdab852017-06-23 15:42:00 +010011131<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011132
11133</div>
11134</div>
11135<a class="anchor" id="abd15add5c6c7de5c8205ce236875aadd"></a>
11136<div class="memitem">
11137<div class="memproto">
11138 <table class="memname">
11139 <tr>
11140 <td class="memname">const std::string&amp; arm_compute::string_from_border_mode </td>
11141 <td>(</td>
11142 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a>&#160;</td>
11143 <td class="paramname"><em>border_mode</em></td><td>)</td>
11144 <td></td>
11145 </tr>
11146 </table>
11147</div><div class="memdoc">
11148
11149<p>Translates a given border mode policy to a string. </p>
11150<dl class="params"><dt>Parameters</dt><dd>
11151 <table class="params">
11152 <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>
11153 </table>
11154 </dd>
11155</dl>
11156<dl class="section return"><dt>Returns</dt><dd>The string describing the border mode. </dd></dl>
11157
Anthony Barbierdbdab852017-06-23 15:42:00 +010011158<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011159
11160</div>
11161</div>
11162<a class="anchor" id="a106c203dd6af234d38452ea0ee7b2ddc"></a>
11163<div class="memitem">
11164<div class="memproto">
11165 <table class="memname">
11166 <tr>
11167 <td class="memname">const std::string&amp; arm_compute::string_from_channel </td>
11168 <td>(</td>
11169 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
11170 <td class="paramname"><em>channel</em></td><td>)</td>
11171 <td></td>
11172 </tr>
11173 </table>
11174</div><div class="memdoc">
11175
11176<p>Convert a channel identity into a string. </p>
11177<dl class="params"><dt>Parameters</dt><dd>
11178 <table class="params">
11179 <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>
11180 </table>
11181 </dd>
11182</dl>
11183<dl class="section return"><dt>Returns</dt><dd>The string describing the channel. </dd></dl>
11184
Anthony Barbierdbdab852017-06-23 15:42:00 +010011185<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011186
11187</div>
11188</div>
11189<a class="anchor" id="aefa1d9648995e5eccc693c690e27aa88"></a>
11190<div class="memitem">
11191<div class="memproto">
11192 <table class="memname">
11193 <tr>
11194 <td class="memname">const std::string&amp; arm_compute::string_from_data_type </td>
11195 <td>(</td>
11196 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
11197 <td class="paramname"><em>dt</em></td><td>)</td>
11198 <td></td>
11199 </tr>
11200 </table>
11201</div><div class="memdoc">
11202
11203<p>Convert a data type identity into a string. </p>
11204<dl class="params"><dt>Parameters</dt><dd>
11205 <table class="params">
11206 <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>
11207 </table>
11208 </dd>
11209</dl>
11210<dl class="section return"><dt>Returns</dt><dd>The string describing the data type. </dd></dl>
11211
Anthony Barbierdbdab852017-06-23 15:42:00 +010011212<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>, <a class="el" href="_validate_8h_source.xhtml#l00371">error_on_data_type_not_in()</a>, and <a class="el" href="_validate_8h_source.xhtml#l00549">error_on_value_not_representable_in_fixed_point()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011213
11214</div>
11215</div>
11216<a class="anchor" id="a9c92c867fc64454545668d87b20979eb"></a>
11217<div class="memitem">
11218<div class="memproto">
11219 <table class="memname">
11220 <tr>
11221 <td class="memname">const std::string&amp; arm_compute::string_from_format </td>
11222 <td>(</td>
11223 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
11224 <td class="paramname"><em>format</em></td><td>)</td>
11225 <td></td>
11226 </tr>
11227 </table>
11228</div><div class="memdoc">
11229
11230<p>Convert a tensor format into a string. </p>
11231<dl class="params"><dt>Parameters</dt><dd>
11232 <table class="params">
11233 <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>
11234 </table>
11235 </dd>
11236</dl>
11237<dl class="section return"><dt>Returns</dt><dd>The string describing the format. </dd></dl>
11238
Anthony Barbierdbdab852017-06-23 15:42:00 +010011239<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>, and <a class="el" href="_validate_8h_source.xhtml#l00340">error_on_format_not_in()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011240
11241</div>
11242</div>
11243<a class="anchor" id="ade34f5e72f050fd3665f3294dfb15850"></a>
11244<div class="memitem">
11245<div class="memproto">
11246 <table class="memname">
11247 <tr>
11248 <td class="memname">const std::string&amp; arm_compute::string_from_interpolation_policy </td>
11249 <td>(</td>
11250 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a966a9c417ce5e94dca08d9b5e745c0c9">InterpolationPolicy</a>&#160;</td>
11251 <td class="paramname"><em>policy</em></td><td>)</td>
11252 <td></td>
11253 </tr>
11254 </table>
11255</div><div class="memdoc">
11256
11257<p>Translates a given interpolation policy to a string. </p>
11258<dl class="params"><dt>Parameters</dt><dd>
11259 <table class="params">
11260 <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>
11261 </table>
11262 </dd>
11263</dl>
11264<dl class="section return"><dt>Returns</dt><dd>The string describing the interpolation policy. </dd></dl>
11265
Anthony Barbierdbdab852017-06-23 15:42:00 +010011266<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011267
11268</div>
11269</div>
11270<a class="anchor" id="a018795ab2489d17309e158ff5c060ab1"></a>
11271<div class="memitem">
11272<div class="memproto">
11273 <table class="memname">
11274 <tr>
11275 <td class="memname">const std::string&amp; arm_compute::string_from_matrix_pattern </td>
11276 <td>(</td>
11277 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#afdda916edc7502967bbec17ea3c06c02">MatrixPattern</a>&#160;</td>
11278 <td class="paramname"><em>pattern</em></td><td>)</td>
11279 <td></td>
11280 </tr>
11281 </table>
11282</div><div class="memdoc">
11283
11284<p>Convert a matrix pattern into a string. </p>
11285<dl class="params"><dt>Parameters</dt><dd>
11286 <table class="params">
11287 <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>
11288 </table>
11289 </dd>
11290</dl>
11291<dl class="section return"><dt>Returns</dt><dd>The string describing the matrix pattern. </dd></dl>
11292
Anthony Barbierdbdab852017-06-23 15:42:00 +010011293<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000011294
11295</div>
11296</div>
11297<a class="anchor" id="a14831547f57ecf5f0deef888ad41ad30"></a>
11298<div class="memitem">
11299<div class="memproto">
11300 <table class="memname">
11301 <tr>
11302 <td class="memname">const std::string&amp; arm_compute::string_from_non_linear_filter_function </td>
11303 <td>(</td>
11304 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858">NonLinearFilterFunction</a>&#160;</td>
11305 <td class="paramname"><em>function</em></td><td>)</td>
11306 <td></td>
11307 </tr>
11308 </table>
11309</div><div class="memdoc">
11310
11311<p>Translates a given non linear function to a string. </p>
11312<dl class="params"><dt>Parameters</dt><dd>
11313 <table class="params">
11314 <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>
11315 </table>
11316 </dd>
11317</dl>
11318<dl class="section return"><dt>Returns</dt><dd>The string describing the non linear function. </dd></dl>
11319
Anthony Barbierdbdab852017-06-23 15:42:00 +010011320<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>.</p>
11321
11322</div>
11323</div>
11324<a class="anchor" id="afb5698af5404d5d11e3516c87b6e7041"></a>
11325<div class="memitem">
11326<div class="memproto">
11327 <table class="memname">
11328 <tr>
11329 <td class="memname">const std::string&amp; arm_compute::string_from_norm_type </td>
11330 <td>(</td>
11331 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59ca">NormType</a>&#160;</td>
11332 <td class="paramname"><em>type</em></td><td>)</td>
11333 <td></td>
11334 </tr>
11335 </table>
11336</div><div class="memdoc">
11337
11338<p>Translates a given normalization type to a string. </p>
11339<dl class="params"><dt>Parameters</dt><dd>
11340 <table class="params">
11341 <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>
11342 </table>
11343 </dd>
11344</dl>
11345<dl class="section return"><dt>Returns</dt><dd>The string describing the normalization type. </dd></dl>
11346
11347<p>Referenced by <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00497">data_type_for_convolution_matrix()</a>.</p>
11348
11349</div>
11350</div>
11351<a class="anchor" id="aa5191117dc677a74552769b87131b1b6"></a>
11352<div class="memitem">
11353<div class="memproto">
11354 <table class="memname">
11355 <tr>
11356 <td class="memname">const std::string&amp; arm_compute::string_from_scheduler_type </td>
11357 <td>(</td>
11358 <td class="paramtype"><a class="el" href="classarm__compute_1_1_scheduler.xhtml#a1d1cfd8ffb84e947f82999c682b666a7">Scheduler::Type</a>&#160;</td>
11359 <td class="paramname"><em>t</em></td><td>)</td>
11360 <td></td>
11361 </tr>
11362 </table>
11363</div><div class="memdoc">
11364
11365<p>Convert a <a class="el" href="classarm__compute_1_1_scheduler.xhtml#a1d1cfd8ffb84e947f82999c682b666a7">Scheduler::Type</a> into a string. </p>
11366<dl class="params"><dt>Parameters</dt><dd>
11367 <table class="params">
11368 <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>
11369 </table>
11370 </dd>
11371</dl>
11372<dl class="section return"><dt>Returns</dt><dd>The string describing the scheduler type. </dd></dl>
11373
11374</div>
11375</div>
11376<a class="anchor" id="afab814721e78cbfc34e7e7fe2874fa56"></a>
11377<div class="memitem">
11378<div class="memproto">
11379 <table class="memname">
11380 <tr>
11381 <td class="memname">const std::string&amp; arm_compute::string_from_target </td>
11382 <td>(</td>
11383 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a>&#160;</td>
11384 <td class="paramname"><em>target</em></td><td>)</td>
11385 <td></td>
11386 </tr>
11387 </table>
11388</div><div class="memdoc">
11389
11390<p>Translates a given gpu device target to string. </p>
11391<dl class="params"><dt>Parameters</dt><dd>
11392 <table class="params">
11393 <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>Given gpu target.</td></tr>
11394 </table>
11395 </dd>
11396</dl>
11397<dl class="section return"><dt>Returns</dt><dd>The string describing the target. </dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +000011398
11399</div>
11400</div>
11401<a class="anchor" id="ac2a92cae51d2734a65676052adb33c22"></a>
11402<div class="memitem">
11403<div class="memproto">
11404 <table class="memname">
11405 <tr>
11406 <td class="memname">bool arm_compute::update_window_and_padding </td>
11407 <td>(</td>
11408 <td class="paramtype"><a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td>
11409 <td class="paramname"><em>win</em>, </td>
11410 </tr>
11411 <tr>
11412 <td class="paramkey"></td>
11413 <td></td>
11414 <td class="paramtype">Ts &amp;&amp;...&#160;</td>
11415 <td class="paramname"><em>patterns</em>&#160;</td>
11416 </tr>
11417 <tr>
11418 <td></td>
11419 <td>)</td>
11420 <td></td><td></td>
11421 </tr>
11422 </table>
11423</div><div class="memdoc">
11424
11425<p>Update window and padding size for each of the access patterns. </p>
11426<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>
11427<dl class="params"><dt>Parameters</dt><dd>
11428 <table class="params">
11429 <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>
11430 <tr><td class="paramdir">[in]</td><td class="paramname">patterns</td><td>Access patterns used to calculate the final window and padding.</td></tr>
11431 </table>
11432 </dd>
11433</dl>
11434<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>
11435
Anthony Barbierdbdab852017-06-23 15:42:00 +010011436<p>Definition at line <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00335">335</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 +000011437
Anthony Barbierdbdab852017-06-23 15:42:00 +010011438<p>References <a class="el" href="namespacearm__compute.xhtml#afcdda83b6a85d5798f08d92c0e235e2e">calculate_max_enlarged_window()</a>, <a class="el" href="namespacearm__compute.xhtml#aa2117aef4381edbdf81e17ec088df7f1">calculate_max_window()</a>, <a class="el" href="namespacearm__compute.xhtml#a47456b4d520aee1cba80bf6e20f6685a">calculate_max_window_horizontal()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00200">for_each()</a>, <a class="el" href="classarm__compute_1_1_i_access_window.xhtml#abd645498a7cbaebd88b257083e459dd6">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>
11439<div class="fragment"><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="keywordtype">bool</span> window_changed = <span class="keyword">false</span>;</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; <a class="code" href="namespacearm__compute.xhtml#ab951ff3c9484cd4b243344b3a0f12d95">for_each</a>([&amp;](<span class="keyword">const</span> IAccessWindow &amp; w)</div><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; window_changed |= w.update_window_if_needed(win);</div><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; patterns...);</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; <span class="keywordtype">bool</span> padding_changed = <span class="keyword">false</span>;</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; <a class="code" href="namespacearm__compute.xhtml#ab951ff3c9484cd4b243344b3a0f12d95">for_each</a>([&amp;](<span class="keyword">const</span> IAccessWindow &amp; w)</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; padding_changed |= w.update_padding_if_needed(win);</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; patterns...);</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">return</span> window_changed;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_ab951ff3c9484cd4b243344b3a0f12d95"><div class="ttname"><a href="namespacearm__compute.xhtml#ab951ff3c9484cd4b243344b3a0f12d95">arm_compute::for_each</a></div><div class="ttdeci">void for_each(F &amp;&amp;func, T &amp;&amp;arg, Ts &amp;&amp;...args)</div><div class="ttdoc">Call the function for each of the arguments. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00211">Helpers.h:211</a></div></div>
11440</div><!-- fragment -->
11441</div>
11442</div>
11443<a class="anchor" id="ab62f4e080614df358423180767cffefd"></a>
11444<div class="memitem">
11445<div class="memproto">
11446<table class="mlabels">
11447 <tr>
11448 <td class="mlabels-left">
11449 <table class="memname">
11450 <tr>
11451 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vabs_qs8 </td>
11452 <td>(</td>
11453 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
11454 <td class="paramname"><em>a</em></td><td>)</td>
11455 <td></td>
11456 </tr>
11457 </table>
11458 </td>
11459 <td class="mlabels-right">
11460<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11461 </tr>
11462</table>
11463</div><div class="memdoc">
11464
11465<p>Absolute value of 8 bit fixed point vector (8 elements) </p>
11466<dl class="params"><dt>Parameters</dt><dd>
11467 <table class="params">
11468 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
11469 </table>
11470 </dd>
11471</dl>
11472<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector absolute value </dd></dl>
11473
11474<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00169">169</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11475<div class="fragment"><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> vabs_s8(a);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div></div><!-- fragment -->
11476</div>
11477</div>
11478<a class="anchor" id="a3e4c45da2bef323158955d7c3b9d148d"></a>
11479<div class="memitem">
11480<div class="memproto">
11481<table class="mlabels">
11482 <tr>
11483 <td class="mlabels-left">
11484 <table class="memname">
11485 <tr>
11486 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vabsq_qs8 </td>
11487 <td>(</td>
11488 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
11489 <td class="paramname"><em>a</em></td><td>)</td>
11490 <td></td>
11491 </tr>
11492 </table>
11493 </td>
11494 <td class="mlabels-right">
11495<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11496 </tr>
11497</table>
11498</div><div class="memdoc">
11499
11500<p>Absolute value of 8 bit fixed point vector (16 elements) </p>
11501<dl class="params"><dt>Parameters</dt><dd>
11502 <table class="params">
11503 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
11504 </table>
11505 </dd>
11506</dl>
11507<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector absolute value </dd></dl>
11508
11509<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00174">174</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11510<div class="fragment"><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">return</span> vabsq_s8(a);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div></div><!-- fragment -->
11511</div>
11512</div>
11513<a class="anchor" id="ad91fc981c1b7b04a1975de3aefc6a4f7"></a>
11514<div class="memitem">
11515<div class="memproto">
11516<table class="mlabels">
11517 <tr>
11518 <td class="mlabels-left">
11519 <table class="memname">
11520 <tr>
11521 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vadd_qs8 </td>
11522 <td>(</td>
11523 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
11524 <td class="paramname"><em>a</em>, </td>
11525 </tr>
11526 <tr>
11527 <td class="paramkey"></td>
11528 <td></td>
11529 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
11530 <td class="paramname"><em>b</em>&#160;</td>
11531 </tr>
11532 <tr>
11533 <td></td>
11534 <td>)</td>
11535 <td></td><td></td>
11536 </tr>
11537 </table>
11538 </td>
11539 <td class="mlabels-right">
11540<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11541 </tr>
11542</table>
11543</div><div class="memdoc">
11544
11545<p>8 bit fixed point vector add (8 elements) </p>
11546<dl class="params"><dt>Parameters</dt><dd>
11547 <table class="params">
11548 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
11549 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
11550 </table>
11551 </dd>
11552</dl>
11553<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector addition </dd></dl>
11554
11555<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00219">219</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11556<div class="fragment"><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;{</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> vadd_s8(a, b);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;}</div></div><!-- fragment -->
11557</div>
11558</div>
11559<a class="anchor" id="a30eeb53208a2f67d4b0cf73a81b09467"></a>
11560<div class="memitem">
11561<div class="memproto">
11562<table class="mlabels">
11563 <tr>
11564 <td class="mlabels-left">
11565 <table class="memname">
11566 <tr>
11567 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vaddq_qs8 </td>
11568 <td>(</td>
11569 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
11570 <td class="paramname"><em>a</em>, </td>
11571 </tr>
11572 <tr>
11573 <td class="paramkey"></td>
11574 <td></td>
11575 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
11576 <td class="paramname"><em>b</em>&#160;</td>
11577 </tr>
11578 <tr>
11579 <td></td>
11580 <td>)</td>
11581 <td></td><td></td>
11582 </tr>
11583 </table>
11584 </td>
11585 <td class="mlabels-right">
11586<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11587 </tr>
11588</table>
11589</div><div class="memdoc">
11590
11591<p>8 bit fixed point vector add (16 elements) </p>
11592<dl class="params"><dt>Parameters</dt><dd>
11593 <table class="params">
11594 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
11595 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
11596 </table>
11597 </dd>
11598</dl>
11599<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector addition </dd></dl>
11600
11601<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00224">224</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11602<div class="fragment"><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> vaddq_s8(a, b);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000011603</div>
11604</div>
11605<a class="anchor" id="ae350823b5c93227dc33f1105ece06d68"></a>
11606<div class="memitem">
11607<div class="memproto">
11608 <table class="memname">
11609 <tr>
11610 <td class="memname">const std::string arm_compute::val_to_string </td>
11611 <td>(</td>
11612 <td class="paramtype">T&#160;</td>
11613 <td class="paramname"><em>val</em></td><td>)</td>
11614 <td></td>
11615 </tr>
11616 </table>
11617</div><div class="memdoc">
11618
11619<p>Return a value as a string. </p>
11620<dl class="params"><dt>Parameters</dt><dd>
11621 <table class="params">
11622 <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Input value.</td></tr>
11623 </table>
11624 </dd>
11625</dl>
11626<dl class="section return"><dt>Returns</dt><dd>Value represented as a string </dd></dl>
11627
Anthony Barbierdbdab852017-06-23 15:42:00 +010011628<p>Definition at line <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml#l00088">88</a> of file <a class="el" href="arm__compute_2core_2_utils_8h_source.xhtml">Utils.h</a>.</p>
11629<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; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>std::ostringstream &amp;<span class="keyword">&gt;</span>(std::ostringstream() &lt;&lt; val).str();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000011630</div>
11631</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011632<a class="anchor" id="a14a78befffd5c48b43554fdc28d654ff"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000011633<div class="memitem">
11634<div class="memproto">
11635<table class="mlabels">
11636 <tr>
11637 <td class="mlabels-left">
11638 <table class="memname">
11639 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011640 <td class="memname">float32x4x2_t vcvt_f32_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000011641 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010011642 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
11643 <td class="paramname"><em>a</em>, </td>
11644 </tr>
11645 <tr>
11646 <td class="paramkey"></td>
11647 <td></td>
11648 <td class="paramtype">int&#160;</td>
11649 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
11650 </tr>
11651 <tr>
11652 <td></td>
11653 <td>)</td>
11654 <td></td><td></td>
11655 </tr>
11656 </table>
11657 </td>
11658 <td class="mlabels-right">
11659<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11660 </tr>
11661</table>
11662</div><div class="memdoc">
11663
11664<p>Convert a 8 bit fixed point vector with 8 elements to a float vector with 4x2 elements. </p>
11665<dl class="params"><dt>Parameters</dt><dd>
11666 <table class="params">
11667 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector </td></tr>
11668 <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>
11669 </table>
11670 </dd>
11671</dl>
11672<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 8 bit fixed point -&gt; float32x2x4 </dd></dl>
11673
11674<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00534">534</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11675<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="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(1.0f / (1 &lt;&lt; fixed_point_position));</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="keyword">const</span> int16x8_t res_s16 = vmovl_s8(a);</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="keyword">const</span> int32x4x2_t res_s32 =</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; {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; vmovl_s16(vget_low_s16(res_s16)),</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; vmovl_s16(vget_high_s16(res_s16))</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</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;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; float32x4x2_t res_f32 =</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; vcvtq_f32_s32(res_s32.val[0]),</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; vcvtq_f32_s32(res_s32.val[1])</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; }</div><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;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; res_f32.val[0] = vmulq_f32(res_f32.val[0], pow2);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; res_f32.val[1] = vmulq_f32(res_f32.val[1], pow2);</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="keywordflow">return</span> res_f32;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;}</div></div><!-- fragment -->
11676</div>
11677</div>
11678<a class="anchor" id="a9f1ff9f119f659c10a90d0a9091811b0"></a>
11679<div class="memitem">
11680<div class="memproto">
11681<table class="mlabels">
11682 <tr>
11683 <td class="mlabels-left">
11684 <table class="memname">
11685 <tr>
11686 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vcvt_qs8_f32 </td>
11687 <td>(</td>
11688 <td class="paramtype">const float32x4x2_t &amp;&#160;</td>
11689 <td class="paramname"><em>a</em>, </td>
11690 </tr>
11691 <tr>
11692 <td class="paramkey"></td>
11693 <td></td>
11694 <td class="paramtype">int&#160;</td>
11695 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
11696 </tr>
11697 <tr>
11698 <td></td>
11699 <td>)</td>
11700 <td></td><td></td>
11701 </tr>
11702 </table>
11703 </td>
11704 <td class="mlabels-right">
11705<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11706 </tr>
11707</table>
11708</div><div class="memdoc">
11709
11710<p>Convert a float vector with 4x2 elements to 8 bit fixed point vector with 8 elements. </p>
11711<dl class="params"><dt>Parameters</dt><dd>
11712 <table class="params">
11713 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Float input vector </td></tr>
11714 <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>
11715 </table>
11716 </dd>
11717</dl>
11718<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 8 bit fixed point </dd></dl>
11719
11720<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00466">466</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11721<div class="fragment"><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="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="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; float32x4x2_t res_f32 =</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; {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; vdupq_n_f32(0.5f),</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; vdupq_n_f32(0.5f)</div><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; };</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; res_f32.val[0] = vmlaq_f32(res_f32.val[0], a.val[0], pow2);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; res_f32.val[1] = vmlaq_f32(res_f32.val[1], a.val[1], pow2);</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="keyword">const</span> int32x4x2_t res_s32 =</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; {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; vcvtq_s32_f32(res_f32.val[0]),</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; vcvtq_s32_f32(res_f32.val[1]),</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</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;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</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="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">return</span> vqmovn_s16(res_s16);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;}</div></div><!-- fragment -->
11722</div>
11723</div>
11724<a class="anchor" id="ac18aedae4207e681f6f833281d2395a0"></a>
11725<div class="memitem">
11726<div class="memproto">
11727<table class="mlabels">
11728 <tr>
11729 <td class="mlabels-left">
11730 <table class="memname">
11731 <tr>
11732 <td class="memname">float32x4x4_t arm_compute::vcvtq_f32_qs8 </td>
11733 <td>(</td>
11734 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
11735 <td class="paramname"><em>a</em>, </td>
11736 </tr>
11737 <tr>
11738 <td class="paramkey"></td>
11739 <td></td>
11740 <td class="paramtype">int&#160;</td>
11741 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
11742 </tr>
11743 <tr>
11744 <td></td>
11745 <td>)</td>
11746 <td></td><td></td>
11747 </tr>
11748 </table>
11749 </td>
11750 <td class="mlabels-right">
11751<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11752 </tr>
11753</table>
11754</div><div class="memdoc">
11755
11756<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00562">562</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11757<div class="fragment"><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="keyword">const</span> float32x4_t pow2 = vdupq_n_f32(1.0f / (1 &lt;&lt; fixed_point_position));</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="keyword">const</span> int16x8x2_t res_s16 =</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; {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; vmovl_s8(vget_low_s8(a)),</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; vmovl_s8(vget_high_s8(a)),</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;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keyword">const</span> int32x4x4_t res_s32 =</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {</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; vmovl_s16(vget_low_s16(res_s16.val[0])),</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; vmovl_s16(vget_high_s16(res_s16.val[0])),</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; vmovl_s16(vget_low_s16(res_s16.val[1])),</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; vmovl_s16(vget_high_s16(res_s16.val[1])),</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;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; float32x4x4_t res_f32 =</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; {</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; vcvtq_f32_s32(res_s32.val[0]),</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; vcvtq_f32_s32(res_s32.val[1]),</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; vcvtq_f32_s32(res_s32.val[2]),</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; vcvtq_f32_s32(res_s32.val[3])</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; };</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; res_f32.val[0] = vmulq_f32(res_f32.val[0], pow2);</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; res_f32.val[1] = vmulq_f32(res_f32.val[1], pow2);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; res_f32.val[2] = vmulq_f32(res_f32.val[2], pow2);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; res_f32.val[3] = vmulq_f32(res_f32.val[3], pow2);</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="keywordflow">return</span> res_f32;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;}</div></div><!-- fragment -->
11758</div>
11759</div>
11760<a class="anchor" id="ac2c526cae11f55c15d9e04e8767cb6db"></a>
11761<div class="memitem">
11762<div class="memproto">
11763<table class="mlabels">
11764 <tr>
11765 <td class="mlabels-left">
11766 <table class="memname">
11767 <tr>
11768 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vcvtq_qs8_f32 </td>
11769 <td>(</td>
11770 <td class="paramtype">const float32x4x4_t &amp;&#160;</td>
11771 <td class="paramname"><em>a</em>, </td>
11772 </tr>
11773 <tr>
11774 <td class="paramkey"></td>
11775 <td></td>
11776 <td class="paramtype">int&#160;</td>
11777 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
11778 </tr>
11779 <tr>
11780 <td></td>
11781 <td>)</td>
11782 <td></td><td></td>
11783 </tr>
11784 </table>
11785 </td>
11786 <td class="mlabels-right">
11787<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11788 </tr>
11789</table>
11790</div><div class="memdoc">
11791
11792<p>Convert a float vector with 4x4 elements to 8 bit fixed point vector with 16 elements. </p>
11793<dl class="params"><dt>Parameters</dt><dd>
11794 <table class="params">
11795 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Float input vector </td></tr>
11796 <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>
11797 </table>
11798 </dd>
11799</dl>
11800<dl class="section return"><dt>Returns</dt><dd>The result of the conversion float -&gt; 8 bit fixed point </dd></dl>
11801
11802<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00494">494</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11803
11804<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00150">vdupq_n_qs8_f32()</a>.</p>
11805<div class="fragment"><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;{</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</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="l00497"></a><span class="lineno"> 497</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; float32x4x4_t res_f32 =</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; {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; vdupq_n_f32(0.5f),</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; vdupq_n_f32(0.5f),</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; vdupq_n_f32(0.5f),</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; vdupq_n_f32(0.5f)</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; };</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; res_f32.val[0] = vmlaq_f32(res_f32.val[0], a.val[0], pow2);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; res_f32.val[1] = vmlaq_f32(res_f32.val[1], a.val[1], pow2);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; res_f32.val[2] = vmlaq_f32(res_f32.val[2], a.val[2], pow2);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; res_f32.val[3] = vmlaq_f32(res_f32.val[3], a.val[3], pow2);</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="keyword">const</span> int32x4x4_t res_s32 =</div><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; {</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; vcvtq_s32_f32(res_f32.val[0]),</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; vcvtq_s32_f32(res_f32.val[1]),</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; vcvtq_s32_f32(res_f32.val[2]),</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; vcvtq_s32_f32(res_f32.val[3]),</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; };</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="keyword">const</span> int16x8x2_t res_s16 =</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; {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; vcombine_s16(vqmovn_s32(res_s32.val[0]), vqmovn_s32(res_s32.val[1])),</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; vcombine_s16(vqmovn_s32(res_s32.val[2]), vqmovn_s32(res_s32.val[3])),</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; };</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="keywordflow">return</span> vcombine_s8(vqmovn_s16(res_s16.val[0]), vqmovn_s16(res_s16.val[1]));</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;}</div></div><!-- fragment -->
11806</div>
11807</div>
11808<a class="anchor" id="a19e68f6a298ae587a491df52d6859350"></a>
11809<div class="memitem">
11810<div class="memproto">
11811 <table class="memname">
11812 <tr>
11813 <td class="memname">float32x4x4_t arm_compute::vcvtq_qs8_f32 </td>
11814 <td>(</td>
11815 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
11816 <td class="paramname"><em>a</em>, </td>
11817 </tr>
11818 <tr>
11819 <td class="paramkey"></td>
11820 <td></td>
11821 <td class="paramtype">int&#160;</td>
11822 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
11823 </tr>
11824 <tr>
11825 <td></td>
11826 <td>)</td>
11827 <td></td><td></td>
11828 </tr>
11829 </table>
11830</div><div class="memdoc">
11831
11832<p>Convert a 8 bit fixed point vector with 16 elements to a float vector with 4x4 elements. </p>
11833<dl class="params"><dt>Parameters</dt><dd>
11834 <table class="params">
11835 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector </td></tr>
11836 <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>
11837 </table>
11838 </dd>
11839</dl>
11840<dl class="section return"><dt>Returns</dt><dd>The result of the conversion 8 bit fixed point -&gt; float32x4x4 </dd></dl>
11841
11842</div>
11843</div>
11844<a class="anchor" id="aeab4c6963804a85c9ea6c319f4e95a0b"></a>
11845<div class="memitem">
11846<div class="memproto">
11847<table class="mlabels">
11848 <tr>
11849 <td class="mlabels-left">
11850 <table class="memname">
11851 <tr>
11852 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vdiv_qs8 </td>
11853 <td>(</td>
11854 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
11855 <td class="paramname"><em>a</em>, </td>
11856 </tr>
11857 <tr>
11858 <td class="paramkey"></td>
11859 <td></td>
11860 <td class="paramtype">int8x8_t&#160;</td>
11861 <td class="paramname"><em>b</em>, </td>
11862 </tr>
11863 <tr>
11864 <td class="paramkey"></td>
11865 <td></td>
11866 <td class="paramtype">int&#160;</td>
11867 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
11868 </tr>
11869 <tr>
11870 <td></td>
11871 <td>)</td>
11872 <td></td><td></td>
11873 </tr>
11874 </table>
11875 </td>
11876 <td class="mlabels-right">
11877<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11878 </tr>
11879</table>
11880</div><div class="memdoc">
11881
11882<p>Division fixed point 8bit (8 elements) </p>
11883<dl class="params"><dt>Parameters</dt><dd>
11884 <table class="params">
11885 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8bit fixed point input vector </td></tr>
11886 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8bit fixed point input vector </td></tr>
11887 <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>
11888 </table>
11889 </dd>
11890</dl>
11891<dl class="section return"><dt>Returns</dt><dd>The quotient and remainder number in fixed point format. </dd></dl>
11892
11893<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00676">676</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11894
11895<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00274">vmul_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00602">vrecip_qs8()</a>.</p>
11896<div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(a, <a class="code" href="namespacearm__compute.xhtml#aa24b270b0193ad8983dfecd6105c4936">vrecip_qs8</a>(b, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;}</div><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#l00274">NEFixedPoint.inl:274</a></div></div>
11897<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#l00602">NEFixedPoint.inl:602</a></div></div>
11898</div><!-- fragment -->
11899</div>
11900</div>
11901<a class="anchor" id="aebc9202dc76554d81b3b082e74016197"></a>
11902<div class="memitem">
11903<div class="memproto">
11904<table class="mlabels">
11905 <tr>
11906 <td class="mlabels-left">
11907 <table class="memname">
11908 <tr>
11909 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vdivq_qs8 </td>
11910 <td>(</td>
11911 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
11912 <td class="paramname"><em>a</em>, </td>
11913 </tr>
11914 <tr>
11915 <td class="paramkey"></td>
11916 <td></td>
11917 <td class="paramtype">int8x16_t&#160;</td>
11918 <td class="paramname"><em>b</em>, </td>
11919 </tr>
11920 <tr>
11921 <td class="paramkey"></td>
11922 <td></td>
11923 <td class="paramtype">int&#160;</td>
11924 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
11925 </tr>
11926 <tr>
11927 <td></td>
11928 <td>)</td>
11929 <td></td><td></td>
11930 </tr>
11931 </table>
11932 </td>
11933 <td class="mlabels-right">
11934<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11935 </tr>
11936</table>
11937</div><div class="memdoc">
11938
11939<p>Division fixed point 8bit (16 elements) </p>
11940<dl class="params"><dt>Parameters</dt><dd>
11941 <table class="params">
11942 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8bit fixed point input vector </td></tr>
11943 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8bit fixed point input vector </td></tr>
11944 <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>
11945 </table>
11946 </dd>
11947</dl>
11948<dl class="section return"><dt>Returns</dt><dd>The quotient and remainder number in 8bit fixed point format. </dd></dl>
11949
11950<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00681">681</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11951
11952<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00291">vmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00626">vrecipq_qs8()</a>.</p>
11953<div class="fragment"><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;{</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(a, <a class="code" href="namespacearm__compute.xhtml#abbeb1dc4834fb4e97cf94d702d0e0f91">vrecipq_qs8</a>(b, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;}</div><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#l00291">NEFixedPoint.inl:291</a></div></div>
11954<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#l00626">NEFixedPoint.inl:626</a></div></div>
11955</div><!-- fragment -->
11956</div>
11957</div>
11958<a class="anchor" id="a1a226812e3cfdf3494adbdd92d4a1cb3"></a>
11959<div class="memitem">
11960<div class="memproto">
11961<table class="mlabels">
11962 <tr>
11963 <td class="mlabels-left">
11964 <table class="memname">
11965 <tr>
11966 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vdup_n_qs8 </td>
11967 <td>(</td>
11968 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
11969 <td class="paramname"><em>a</em></td><td>)</td>
11970 <td></td>
11971 </tr>
11972 </table>
11973 </td>
11974 <td class="mlabels-right">
11975<span class="mlabels"><span class="mlabel">inline</span></span> </td>
11976 </tr>
11977</table>
11978</div><div class="memdoc">
11979
11980<p>8 bit fixed point vector duplicate (8 elements) </p>
11981<dl class="params"><dt>Parameters</dt><dd>
11982 <table class="params">
11983 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point to duplicate</td></tr>
11984 </table>
11985 </dd>
11986</dl>
11987<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
11988
11989<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00140">140</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
11990
11991<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00880">vinvsqrt_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00907">vqinvsqrt_qs8()</a>.</p>
11992<div class="fragment"><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> vdup_n_s8(a);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div></div><!-- fragment -->
11993</div>
11994</div>
11995<a class="anchor" id="aed2fc8d1b9642b7625379a930ef4914a"></a>
11996<div class="memitem">
11997<div class="memproto">
11998<table class="mlabels">
11999 <tr>
12000 <td class="mlabels-left">
12001 <table class="memname">
12002 <tr>
12003 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> arm_compute::vdupq_n_qs16 </td>
12004 <td>(</td>
12005 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a>&#160;</td>
12006 <td class="paramname"><em>a</em></td><td>)</td>
12007 <td></td>
12008 </tr>
12009 </table>
12010 </td>
12011 <td class="mlabels-right">
12012<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12013 </tr>
12014</table>
12015</div><div class="memdoc">
12016
12017<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00164">164</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12018<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">return</span> vdupq_n_s16(a);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div></div><!-- fragment -->
12019</div>
12020</div>
12021<a class="anchor" id="a740436aed8843612da747f40ff926875"></a>
12022<div class="memitem">
12023<div class="memproto">
12024 <table class="memname">
12025 <tr>
12026 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> arm_compute::vdupq_n_qs16 </td>
12027 <td>(</td>
12028 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
12029 <td class="paramname"><em>a</em></td><td>)</td>
12030 <td></td>
12031 </tr>
12032 </table>
12033</div><div class="memdoc">
12034
12035<p>16 bit fixed point vector duplicate (8 elements) </p>
12036<dl class="params"><dt>Parameters</dt><dd>
12037 <table class="params">
12038 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point to duplicate</td></tr>
12039 </table>
12040 </dd>
12041</dl>
12042<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
12043
12044</div>
12045</div>
12046<a class="anchor" id="adbd4df93ed00fcda54f91e669ea2be04"></a>
12047<div class="memitem">
12048<div class="memproto">
12049<table class="mlabels">
12050 <tr>
12051 <td class="mlabels-left">
12052 <table class="memname">
12053 <tr>
12054 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vdupq_n_qs8 </td>
12055 <td>(</td>
12056 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a>&#160;</td>
12057 <td class="paramname"><em>a</em></td><td>)</td>
12058 <td></td>
12059 </tr>
12060 </table>
12061 </td>
12062 <td class="mlabels-right">
12063<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12064 </tr>
12065</table>
12066</div><div class="memdoc">
12067
12068<p>8 bit fixed point vector duplicate (16 elements) </p>
12069<dl class="params"><dt>Parameters</dt><dd>
12070 <table class="params">
12071 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point to duplicate</td></tr>
12072 </table>
12073 </dd>
12074</dl>
12075<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
12076
12077<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00145">145</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12078
12079<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00934">vinvsqrtq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00961">vqinvsqrtq_qs8()</a>.</p>
12080<div class="fragment"><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> vdupq_n_s8(a);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div></div><!-- fragment -->
12081</div>
12082</div>
12083<a class="anchor" id="ab20e66231de6c259952534de39214784"></a>
12084<div class="memitem">
12085<div class="memproto">
12086<table class="mlabels">
12087 <tr>
12088 <td class="mlabels-left">
12089 <table class="memname">
12090 <tr>
12091 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vdupq_n_qs8_f32 </td>
12092 <td>(</td>
12093 <td class="paramtype">float&#160;</td>
12094 <td class="paramname"><em>a</em>, </td>
12095 </tr>
12096 <tr>
12097 <td class="paramkey"></td>
12098 <td></td>
12099 <td class="paramtype">int&#160;</td>
12100 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
12101 </tr>
12102 <tr>
12103 <td></td>
12104 <td>)</td>
12105 <td></td><td></td>
12106 </tr>
12107 </table>
12108 </td>
12109 <td class="mlabels-right">
12110<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12111 </tr>
12112</table>
12113</div><div class="memdoc">
12114
12115<p>Duplicate a float and convert it to 8 bit fixed point vector (16 elements) </p>
12116<dl class="params"><dt>Parameters</dt><dd>
12117 <table class="params">
12118 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point to duplicate </td></tr>
12119 <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>
12120 </table>
12121 </dd>
12122</dl>
12123<dl class="section return"><dt>Returns</dt><dd>The result of the vector duplication </dd></dl>
12124
12125<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00150">150</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12126
12127<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00494">vcvtq_qs8_f32()</a>.</p>
12128<div class="fragment"><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;{</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; float32x4x4_t res =</div><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; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; vdupq_n_f32(a),</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; vdupq_n_f32(a),</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; vdupq_n_f32(a),</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; vdupq_n_f32(a),</div><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; };</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#ac2c526cae11f55c15d9e04e8767cb6db">vcvtq_qs8_f32</a>(res, fixed_point_position);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_ac2c526cae11f55c15d9e04e8767cb6db"><div class="ttname"><a href="namespacearm__compute.xhtml#ac2c526cae11f55c15d9e04e8767cb6db">arm_compute::vcvtq_qs8_f32</a></div><div class="ttdeci">qint8x16_t vcvtq_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#l00494">NEFixedPoint.inl:494</a></div></div>
12129</div><!-- fragment -->
12130</div>
12131</div>
12132<a class="anchor" id="ade3ef16de304661943c900ac9a47d28f"></a>
12133<div class="memitem">
12134<div class="memproto">
12135<table class="mlabels">
12136 <tr>
12137 <td class="mlabels-left">
12138 <table class="memname">
12139 <tr>
12140 <td class="memname">float32x4_t vexpq_f32 </td>
12141 <td>(</td>
12142 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012143 <td class="paramname"><em>x</em></td><td>)</td>
12144 <td></td>
12145 </tr>
12146 </table>
12147 </td>
12148 <td class="mlabels-right">
12149<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12150 </tr>
12151</table>
12152</div><div class="memdoc">
12153
12154<p>Calculate exponential. </p>
12155<dl class="params"><dt>Parameters</dt><dd>
12156 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010012157 <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 +000012158 </table>
12159 </dd>
12160</dl>
12161<dl class="section return"><dt>Returns</dt><dd>The calculated exponent. </dd></dl>
12162
Anthony Barbierdbdab852017-06-23 15:42:00 +010012163<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00086">86</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012164
Anthony Barbierdbdab852017-06-23 15:42:00 +010012165<p>References <a class="el" href="_n_e_math_8inl_source.xhtml#l00074">vtaylor_polyq_f32()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012166
Anthony Barbierdbdab852017-06-23 15:42:00 +010012167<p>Referenced by <a class="el" href="_n_e_math_8inl_source.xhtml#l00137">vpowq_f32()</a>, and <a class="el" href="_n_e_math_8inl_source.xhtml#l00122">vtanhq_f32()</a>.</p>
12168<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</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="l00089"></a><span class="lineno"> 89</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="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Perform range reduction [-log(2),log(2)]</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; int32x4_t m = vcvtq_s32_f32(vmulq_f32(x, CONST_INV_LN2));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; float32x4_t val = vmlsq_f32(x, vcvtq_f32_s32(m), CONST_LN2);</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">// Polynomial Approximation</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</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="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; poly = vreinterpretq_f32_s32(vaddq_s32(vreinterpretq_s32_f32(poly), vshlq_n_s32(m, 23)));</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="keywordflow">return</span> poly;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</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>
12169<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#l00074">NEMath.inl:74</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000012170</div><!-- fragment -->
12171</div>
12172</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012173<a class="anchor" id="ab93c92d0f3228809b6a4bfaa24eb4924"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000012174<div class="memitem">
12175<div class="memproto">
12176<table class="mlabels">
12177 <tr>
12178 <td class="mlabels-left">
12179 <table class="memname">
12180 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012181 <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 +000012182 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012183 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
12184 <td class="paramname"><em>a</em></td><td>)</td>
12185 <td></td>
12186 </tr>
12187 </table>
12188 </td>
12189 <td class="mlabels-right">
12190<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12191 </tr>
12192</table>
12193</div><div class="memdoc">
12194
12195<p>Get the higher half of a 16 elements vector. </p>
12196<dl class="params"><dt>Parameters</dt><dd>
12197 <table class="params">
12198 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>vector of 16 elements</td></tr>
12199 </table>
12200 </dd>
12201</dl>
12202<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (8 elements) </dd></dl>
12203
12204<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00080">80</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12205<div class="fragment"><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> vget_high_s8(a);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div></div><!-- fragment -->
12206</div>
12207</div>
12208<a class="anchor" id="a85ff7d135f7aa13359bd575139ba14dd"></a>
12209<div class="memitem">
12210<div class="memproto">
12211<table class="mlabels">
12212 <tr>
12213 <td class="mlabels-left">
12214 <table class="memname">
12215 <tr>
12216 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vget_low_qs8 </td>
12217 <td>(</td>
12218 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
12219 <td class="paramname"><em>a</em></td><td>)</td>
12220 <td></td>
12221 </tr>
12222 </table>
12223 </td>
12224 <td class="mlabels-right">
12225<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12226 </tr>
12227</table>
12228</div><div class="memdoc">
12229
12230<p>Get the lower half of a 16 elements vector. </p>
12231<dl class="params"><dt>Parameters</dt><dd>
12232 <table class="params">
12233 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>vector of 16 elements</td></tr>
12234 </table>
12235 </dd>
12236</dl>
12237<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (8 elements) </dd></dl>
12238
12239<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00075">75</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12240<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> vget_low_s8(a);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div></div><!-- fragment -->
12241</div>
12242</div>
12243<a class="anchor" id="ac8f459d5899b79c00fb4042a5b3470fb"></a>
12244<div class="memitem">
12245<div class="memproto">
12246<table class="mlabels">
12247 <tr>
12248 <td class="mlabels-left">
12249 <table class="memname">
12250 <tr>
12251 <td class="memname">float32x4_t vinvq_f32 </td>
12252 <td>(</td>
12253 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012254 <td class="paramname"><em>x</em></td><td>)</td>
12255 <td></td>
12256 </tr>
12257 </table>
12258 </td>
12259 <td class="mlabels-right">
12260<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12261 </tr>
12262</table>
12263</div><div class="memdoc">
12264
12265<p>Calculate reciprocal. </p>
12266<dl class="params"><dt>Parameters</dt><dd>
12267 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010012268 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input value.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000012269 </table>
12270 </dd>
12271</dl>
12272<dl class="section return"><dt>Returns</dt><dd>The calculated reciprocal. </dd></dl>
12273
Anthony Barbierdbdab852017-06-23 15:42:00 +010012274<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00066">66</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012275
Anthony Barbierdbdab852017-06-23 15:42:00 +010012276<p>Referenced by <a class="el" href="_n_e_math_8inl_source.xhtml#l00122">vtanhq_f32()</a>.</p>
12277<div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; float32x4_t recip = vrecpeq_f32(x);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; recip = vmulq_f32(vrecpsq_f32(x, recip), recip);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; recip = vmulq_f32(vrecpsq_f32(x, recip), recip);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> recip;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000012278</div>
12279</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012280<a class="anchor" id="ab7fbbbe8d980de582a73b5546b303b1f"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000012281<div class="memitem">
12282<div class="memproto">
12283<table class="mlabels">
12284 <tr>
12285 <td class="mlabels-left">
12286 <table class="memname">
12287 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012288 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vinvsqrt_qs8 </td>
12289 <td>(</td>
12290 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
12291 <td class="paramname"><em>a</em>, </td>
12292 </tr>
12293 <tr>
12294 <td class="paramkey"></td>
12295 <td></td>
12296 <td class="paramtype">int&#160;</td>
12297 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
12298 </tr>
12299 <tr>
12300 <td></td>
12301 <td>)</td>
12302 <td></td><td></td>
12303 </tr>
12304 </table>
12305 </td>
12306 <td class="mlabels-right">
12307<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12308 </tr>
12309</table>
12310</div><div class="memdoc">
12311
12312<p>Calculate inverse square root for fixed point 8bit using Newton-Raphosn method (8 elements) </p>
12313<dl class="params"><dt>Parameters</dt><dd>
12314 <table class="params">
12315 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
12316 <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>
12317 </table>
12318 </dd>
12319</dl>
12320<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit inverse sqrt. </dd></dl>
12321
12322<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00880">880</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12323
12324<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00140">vdup_n_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00274">vmul_qs8()</a>.</p>
12325<div class="fragment"><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;{</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</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="l00883"></a><span class="lineno"> 883</span>&#160;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l00885"></a><span class="lineno"> 885</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), vdup_n_s8(fixed_point_position))));</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="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="l00888"></a><span class="lineno"> 888</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), vdup_n_s8(fixed_point_position)));</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</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="l00890"></a><span class="lineno"> 890</span>&#160; temp = vbsl_s8(temp_ltz, vadd_s8(temp, vdup_n_s8(1)), temp);</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</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="l00892"></a><span class="lineno"> 892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; temp = vshl_s8(a, shift_value);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x = temp;</div><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="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="comment">// After three iterations we have the result for 8 bit</span></div><div class="line"><a name="l00900"></a><span class="lineno"> 900</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="l00901"></a><span class="lineno"> 901</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="l00902"></a><span class="lineno"> 902</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="l00903"></a><span class="lineno"> 903</span>&#160;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">return</span> vshl_s8(x, shift_value2);</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;}</div><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#l00140">NEFixedPoint.inl:140</a></div></div>
12326<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#l00274">NEFixedPoint.inl:274</a></div></div>
12327<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>
12328</div><!-- fragment -->
12329</div>
12330</div>
12331<a class="anchor" id="a2e27db6b9692c4c2013653e276af654d"></a>
12332<div class="memitem">
12333<div class="memproto">
12334<table class="mlabels">
12335 <tr>
12336 <td class="mlabels-left">
12337 <table class="memname">
12338 <tr>
12339 <td class="memname">float32x4_t vinvsqrtq_f32 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012340 <td>(</td>
12341 <td class="paramtype">float32x4_t&#160;</td>
12342 <td class="paramname"><em>x</em></td><td>)</td>
12343 <td></td>
12344 </tr>
12345 </table>
12346 </td>
12347 <td class="mlabels-right">
12348<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12349 </tr>
12350</table>
12351</div><div class="memdoc">
12352
12353<p>Calculate inverse square root. </p>
12354<dl class="params"><dt>Parameters</dt><dd>
12355 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010012356 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input value.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000012357 </table>
12358 </dd>
12359</dl>
12360<dl class="section return"><dt>Returns</dt><dd>The calculated inverse square root. </dd></dl>
12361
Anthony Barbierdbdab852017-06-23 15:42:00 +010012362<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>
12363<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; float32x4_t sqrt_reciprocal = vrsqrteq_f32(x);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; sqrt_reciprocal = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x, sqrt_reciprocal), sqrt_reciprocal), sqrt_reciprocal);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; sqrt_reciprocal = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x, sqrt_reciprocal), sqrt_reciprocal), sqrt_reciprocal);</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; <span class="keywordflow">return</span> sqrt_reciprocal;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div></div><!-- fragment -->
Anthony Barbier871448e2017-03-24 14:54:29 +000012364</div>
12365</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012366<a class="anchor" id="a4be9120d5c04e6aab0831095acd24534"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000012367<div class="memitem">
12368<div class="memproto">
12369<table class="mlabels">
12370 <tr>
12371 <td class="mlabels-left">
12372 <table class="memname">
12373 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012374 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vinvsqrtq_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012375 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012376 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
12377 <td class="paramname"><em>a</em>, </td>
12378 </tr>
12379 <tr>
12380 <td class="paramkey"></td>
12381 <td></td>
12382 <td class="paramtype">int&#160;</td>
12383 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
12384 </tr>
12385 <tr>
12386 <td></td>
12387 <td>)</td>
12388 <td></td><td></td>
12389 </tr>
12390 </table>
12391 </td>
12392 <td class="mlabels-right">
12393<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12394 </tr>
12395</table>
12396</div><div class="memdoc">
12397
12398<p>Calculate inverse square root for fixed point 8bit using Newton-Raphosn method (16 elements) </p>
12399<dl class="params"><dt>Parameters</dt><dd>
12400 <table class="params">
12401 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
12402 <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>
12403 </table>
12404 </dd>
12405</dl>
12406<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit inverse sqrt. </dd></dl>
12407
12408<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00934">934</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12409
12410<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00145">vdupq_n_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00291">vmulq_qs8()</a>.</p>
12411<div class="fragment"><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; <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="l00937"></a><span class="lineno"> 937</span>&#160;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l00939"></a><span class="lineno"> 939</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), vdupq_n_s8(fixed_point_position))));</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; <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="l00942"></a><span class="lineno"> 942</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), vdupq_n_s8(fixed_point_position)));</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</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="l00944"></a><span class="lineno"> 944</span>&#160; temp = vbslq_s8(temp_ltz, vaddq_s8(temp, vdupq_n_s8(1)), temp);</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</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="l00946"></a><span class="lineno"> 946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; temp = vshlq_s8(a, shift_value);</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x = temp;</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="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="comment">// After three iterations we have the result for 8 bit</span></div><div class="line"><a name="l00954"></a><span class="lineno"> 954</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="l00955"></a><span class="lineno"> 955</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="l00956"></a><span class="lineno"> 956</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="l00957"></a><span class="lineno"> 957</span>&#160;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">return</span> vshlq_s8(x, shift_value2);</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;}</div><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>
12412<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#l00145">NEFixedPoint.inl:145</a></div></div>
12413<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#l00291">NEFixedPoint.inl:291</a></div></div>
12414</div><!-- fragment -->
12415</div>
12416</div>
12417<a class="anchor" id="ada853a8e19c80626633d95392d2b4a8b"></a>
12418<div class="memitem">
12419<div class="memproto">
12420<table class="mlabels">
12421 <tr>
12422 <td class="mlabels-left">
12423 <table class="memname">
12424 <tr>
12425 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vld1_dup_qs8 </td>
12426 <td>(</td>
12427 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
12428 <td class="paramname"><em>addr</em></td><td>)</td>
12429 <td></td>
12430 </tr>
12431 </table>
12432 </td>
12433 <td class="mlabels-right">
12434<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12435 </tr>
12436</table>
12437</div><div class="memdoc">
12438
12439<p>Load all lanes of 8 bit fixed point vector with same value from memory (8 elements) </p>
12440<dl class="params"><dt>Parameters</dt><dd>
12441 <table class="params">
12442 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address of the 8 bit fixed point scalar value to load</td></tr>
12443 </table>
12444 </dd>
12445</dl>
12446<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (8 elements) </dd></dl>
12447
12448<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00105">105</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12449<div class="fragment"><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="keywordflow">return</span> vld1_dup_s8(addr);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div></div><!-- fragment -->
12450</div>
12451</div>
12452<a class="anchor" id="a1470ca9d692f773f33ddbd9b3a37f1f9"></a>
12453<div class="memitem">
12454<div class="memproto">
12455<table class="mlabels">
12456 <tr>
12457 <td class="mlabels-left">
12458 <table class="memname">
12459 <tr>
12460 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vld1_qs16 </td>
12461 <td>(</td>
12462 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
12463 <td class="paramname"><em>addr</em></td><td>)</td>
12464 <td></td>
12465 </tr>
12466 </table>
12467 </td>
12468 <td class="mlabels-right">
12469<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12470 </tr>
12471</table>
12472</div><div class="memdoc">
12473
12474<p>Load a single 16 bit fixed point vector from memory (4 elements) </p>
12475<dl class="params"><dt>Parameters</dt><dd>
12476 <table class="params">
12477 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address of the 16 bit fixed point vector to load</td></tr>
12478 </table>
12479 </dd>
12480</dl>
12481<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vector (4 elements) </dd></dl>
12482
12483<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00095">95</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12484<div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;{</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> vld1_s16(addr);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div></div><!-- fragment -->
12485</div>
12486</div>
12487<a class="anchor" id="a77ef79482edac98140bbdfaeffb78b8f"></a>
12488<div class="memitem">
12489<div class="memproto">
12490<table class="mlabels">
12491 <tr>
12492 <td class="mlabels-left">
12493 <table class="memname">
12494 <tr>
12495 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vld1_qs8 </td>
12496 <td>(</td>
12497 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
12498 <td class="paramname"><em>addr</em></td><td>)</td>
12499 <td></td>
12500 </tr>
12501 </table>
12502 </td>
12503 <td class="mlabels-right">
12504<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12505 </tr>
12506</table>
12507</div><div class="memdoc">
12508
12509<p>Load a single 8 bit fixed point vector from memory (8 elements) </p>
12510<dl class="params"><dt>Parameters</dt><dd>
12511 <table class="params">
12512 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address of the 8 bit fixed point vector to load</td></tr>
12513 </table>
12514 </dd>
12515</dl>
12516<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (8 elements) </dd></dl>
12517
12518<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00085">85</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12519<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; <span class="keywordflow">return</span> vld1_s8(addr);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div></div><!-- fragment -->
12520</div>
12521</div>
12522<a class="anchor" id="ad988b528a38525b8ceca56ed8d09c801"></a>
12523<div class="memitem">
12524<div class="memproto">
12525<table class="mlabels">
12526 <tr>
12527 <td class="mlabels-left">
12528 <table class="memname">
12529 <tr>
12530 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vld1q_dup_qs8 </td>
12531 <td>(</td>
12532 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
12533 <td class="paramname"><em>addr</em></td><td>)</td>
12534 <td></td>
12535 </tr>
12536 </table>
12537 </td>
12538 <td class="mlabels-right">
12539<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12540 </tr>
12541</table>
12542</div><div class="memdoc">
12543
12544<p>Load all lanes of 8 bit fixed point vector with same value from memory (16 elements) </p>
12545<dl class="params"><dt>Parameters</dt><dd>
12546 <table class="params">
12547 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address of the 8 bit fixed point scalar value to load</td></tr>
12548 </table>
12549 </dd>
12550</dl>
12551<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (16 elements) </dd></dl>
12552
12553<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00110">110</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12554<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; <span class="keywordflow">return</span> vld1q_dup_s8(addr);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div></div><!-- fragment -->
12555</div>
12556</div>
12557<a class="anchor" id="aaa2cfaf59eb25ffb975bea87844e23c6"></a>
12558<div class="memitem">
12559<div class="memproto">
12560<table class="mlabels">
12561 <tr>
12562 <td class="mlabels-left">
12563 <table class="memname">
12564 <tr>
12565 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vld1q_qs16 </td>
12566 <td>(</td>
12567 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
12568 <td class="paramname"><em>addr</em></td><td>)</td>
12569 <td></td>
12570 </tr>
12571 </table>
12572 </td>
12573 <td class="mlabels-right">
12574<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12575 </tr>
12576</table>
12577</div><div class="memdoc">
12578
12579<p>Load a single 16 bit fixed point vector from memory (8 elements) </p>
12580<dl class="params"><dt>Parameters</dt><dd>
12581 <table class="params">
12582 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address of the 16 bit fixed point vector to load</td></tr>
12583 </table>
12584 </dd>
12585</dl>
12586<dl class="section return"><dt>Returns</dt><dd>16 bit fixed point vector (8 elements) </dd></dl>
12587
12588<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00100">100</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12589<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="keywordflow">return</span> vld1q_s16(addr);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div></div><!-- fragment -->
12590</div>
12591</div>
12592<a class="anchor" id="aba22755f7d41ffc62e23e5594751ecaa"></a>
12593<div class="memitem">
12594<div class="memproto">
12595<table class="mlabels">
12596 <tr>
12597 <td class="mlabels-left">
12598 <table class="memname">
12599 <tr>
12600 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vld1q_qs8 </td>
12601 <td>(</td>
12602 <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
12603 <td class="paramname"><em>addr</em></td><td>)</td>
12604 <td></td>
12605 </tr>
12606 </table>
12607 </td>
12608 <td class="mlabels-right">
12609<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12610 </tr>
12611</table>
12612</div><div class="memdoc">
12613
12614<p>Load a single 8 bit fixed point vector from memory (16 elements) </p>
12615<dl class="params"><dt>Parameters</dt><dd>
12616 <table class="params">
12617 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address of the 8 bit fixed point vector to load</td></tr>
12618 </table>
12619 </dd>
12620</dl>
12621<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector (16 elements) </dd></dl>
12622
12623<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00090">90</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12624<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">return</span> vld1q_s8(addr);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}</div></div><!-- fragment -->
12625</div>
12626</div>
12627<a class="anchor" id="a475d617b2ee92ec39588e6d6e488471a"></a>
12628<div class="memitem">
12629<div class="memproto">
12630<table class="mlabels">
12631 <tr>
12632 <td class="mlabels-left">
12633 <table class="memname">
12634 <tr>
12635 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vlog_qs8 </td>
12636 <td>(</td>
12637 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
12638 <td class="paramname"><em>a</em>, </td>
12639 </tr>
12640 <tr>
12641 <td class="paramkey"></td>
12642 <td></td>
12643 <td class="paramtype">int&#160;</td>
12644 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
12645 </tr>
12646 <tr>
12647 <td></td>
12648 <td>)</td>
12649 <td></td><td></td>
12650 </tr>
12651 </table>
12652 </td>
12653 <td class="mlabels-right">
12654<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12655 </tr>
12656</table>
12657</div><div class="memdoc">
12658
12659<p>Calculate logarithm fixed point 16bit (8 elements) </p>
12660<dl class="params"><dt>Parameters</dt><dd>
12661 <table class="params">
12662 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
12663 <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>
12664 </table>
12665 </dd>
12666</dl>
12667<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit logarithm. </dd></dl>
12668
12669<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00802">802</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12670
12671<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00274">vmul_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00602">vrecip_qs8()</a>.</p>
12672<div class="fragment"><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="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="l00805"></a><span class="lineno"> 805</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="l00806"></a><span class="lineno"> 806</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="l00807"></a><span class="lineno"> 807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="comment">// If 0 &lt; a &lt; 1, calculate log(1/x)</span></div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; uint8x8_t calc_reciprocal = vclt_s8(a, const_one);</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> recip = vdup_n_s8(0);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; recip = vbsl_s8(calc_reciprocal, recip, a);</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">// Calculate reciprocal</span></div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; recip = <a class="code" href="namespacearm__compute.xhtml#aa24b270b0193ad8983dfecd6105c4936">vrecip_qs8</a>(recip, fixed_point_position);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; a = vbsl_s8(calc_reciprocal, recip, 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; <span class="comment">// Get decimal part of a</span></div><div class="line"><a name="l00818"></a><span class="lineno"> 818</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="l00819"></a><span class="lineno"> 819</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> dec_a = vshl_s8(a, shift_value); <span class="comment">// a &gt;&gt; fixed_point_position</span></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">// Get exponent of 2^n which is equal or less than dec_a</span></div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; shift_value = vsub_s8(const_seven_dec, vclz_s8(dec_a));</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">// Get x to range (1, 2]</span></div><div class="line"><a name="l00825"></a><span class="lineno"> 825</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="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> temp = vsub_s8(vrshl_s8(a, shift_value_neg), const_one);</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> sum = vmul_s8(shift_value, const_one);</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l00830"></a><span class="lineno"> 830</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="l00831"></a><span class="lineno"> 831</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l00833"></a><span class="lineno"> 833</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="l00834"></a><span class="lineno"> 834</span>&#160;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="comment">// Set negative value for 0 &lt; a &lt; 1</span></div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; poly = vbsl_s8(calc_reciprocal, vneg_s8(poly), poly);</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="keywordflow">return</span> poly;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;}</div><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#l00274">NEFixedPoint.inl:274</a></div></div>
12673<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#l00602">NEFixedPoint.inl:602</a></div></div>
12674<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>
12675</div><!-- fragment -->
12676</div>
12677</div>
12678<a class="anchor" id="a37a3e03a22ad160a2e9e5c133607e020"></a>
12679<div class="memitem">
12680<div class="memproto">
12681<table class="mlabels">
12682 <tr>
12683 <td class="mlabels-left">
12684 <table class="memname">
12685 <tr>
12686 <td class="memname">float32x4_t vlogq_f32 </td>
12687 <td>(</td>
12688 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012689 <td class="paramname"><em>x</em></td><td>)</td>
12690 <td></td>
12691 </tr>
12692 </table>
12693 </td>
12694 <td class="mlabels-right">
12695<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12696 </tr>
12697</table>
12698</div><div class="memdoc">
12699
12700<p>Calculate logarithm. </p>
12701<dl class="params"><dt>Parameters</dt><dd>
12702 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010012703 <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 +000012704 </table>
12705 </dd>
12706</dl>
12707<dl class="section return"><dt>Returns</dt><dd>The calculated logarithm. </dd></dl>
12708
Anthony Barbierdbdab852017-06-23 15:42:00 +010012709<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00104">104</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012710
Anthony Barbierdbdab852017-06-23 15:42:00 +010012711<p>References <a class="el" href="_n_e_math_8inl_source.xhtml#l00074">vtaylor_polyq_f32()</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000012712
Anthony Barbierdbdab852017-06-23 15:42:00 +010012713<p>Referenced by <a class="el" href="_n_e_math_8inl_source.xhtml#l00137">vpowq_f32()</a>.</p>
12714<div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</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="l00107"></a><span class="lineno"> 107</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="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// Extract exponent</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</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="l00111"></a><span class="lineno"> 111</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="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</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="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">// Reconstruct</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; poly = vmlaq_f32(poly, vcvtq_f32_s32(m), CONST_LN2);</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">return</span> poly;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</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#l00074">NEMath.inl:74</a></div></div>
12715<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 +000012716</div><!-- fragment -->
12717</div>
12718</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012719<a class="anchor" id="a340b9cd5ad88f1a821498c6fad80e82c"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000012720<div class="memitem">
12721<div class="memproto">
12722<table class="mlabels">
12723 <tr>
12724 <td class="mlabels-left">
12725 <table class="memname">
12726 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012727 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vlogq_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000012728 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010012729 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
12730 <td class="paramname"><em>a</em>, </td>
12731 </tr>
12732 <tr>
12733 <td class="paramkey"></td>
12734 <td></td>
12735 <td class="paramtype">int&#160;</td>
12736 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
12737 </tr>
12738 <tr>
12739 <td></td>
12740 <td>)</td>
12741 <td></td><td></td>
12742 </tr>
12743 </table>
12744 </td>
12745 <td class="mlabels-right">
12746<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12747 </tr>
12748</table>
12749</div><div class="memdoc">
12750
12751<p>Calculate logarithm fixed point 16bit (16 elements) </p>
12752<dl class="params"><dt>Parameters</dt><dd>
12753 <table class="params">
12754 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
12755 <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>
12756 </table>
12757 </dd>
12758</dl>
12759<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit logarithm. </dd></dl>
12760
12761<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00841">841</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12762
12763<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00291">vmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00626">vrecipq_qs8()</a>.</p>
12764
12765<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01014">vqpowq_qs8()</a>.</p>
12766<div class="fragment"><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;{</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</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="l00844"></a><span class="lineno"> 844</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="l00845"></a><span class="lineno"> 845</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="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">// If 0 &lt; a &lt; 1, calculate log(1/x)</span></div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; uint8x16_t calc_reciprocal = vcltq_s8(a, const_one);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> recip = vdupq_n_s8(0);</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; recip = vbslq_s8(calc_reciprocal, a, recip);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="comment">// Calculate reciprocal</span></div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; recip = <a class="code" href="namespacearm__compute.xhtml#abbeb1dc4834fb4e97cf94d702d0e0f91">vrecipq_qs8</a>(recip, fixed_point_position);</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; a = vbslq_s8(calc_reciprocal, recip, a);</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="comment">// Get decimal part of a</span></div><div class="line"><a name="l00857"></a><span class="lineno"> 857</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="l00858"></a><span class="lineno"> 858</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> dec_a = vshlq_s8(a, shift_value); <span class="comment">// a &gt;&gt; fixed_point_position</span></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="comment">// Get exponent of 2^n which is equal or less than dec_a</span></div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; shift_value = vsubq_s8(const_seven_dec, vclzq_s8(dec_a));</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="comment">// Get x to range (1, 2]</span></div><div class="line"><a name="l00864"></a><span class="lineno"> 864</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="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> temp = vsubq_s8(vrshlq_s8(a, shift_value_neg), const_one);</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> sum = vmulq_s8(shift_value, const_one);</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="comment">// Polynomial Approximation</span></div><div class="line"><a name="l00869"></a><span class="lineno"> 869</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="l00870"></a><span class="lineno"> 870</span>&#160;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="comment">// Reconstruct</span></div><div class="line"><a name="l00872"></a><span class="lineno"> 872</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="l00873"></a><span class="lineno"> 873</span>&#160;</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="comment">// Set negative value for 0 &lt; a &lt; 1</span></div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; poly = vbslq_s8(calc_reciprocal, vnegq_s8(poly), poly);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;}</div><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>
12767<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#l00291">NEFixedPoint.inl:291</a></div></div>
12768<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#l00626">NEFixedPoint.inl:626</a></div></div>
12769</div><!-- fragment -->
12770</div>
12771</div>
12772<a class="anchor" id="a3e913e95e286244f24f9a381909c8b26"></a>
12773<div class="memitem">
12774<div class="memproto">
12775<table class="mlabels">
12776 <tr>
12777 <td class="mlabels-left">
12778 <table class="memname">
12779 <tr>
12780 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vmax_qs8 </td>
12781 <td>(</td>
12782 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
12783 <td class="paramname"><em>a</em>, </td>
12784 </tr>
12785 <tr>
12786 <td class="paramkey"></td>
12787 <td></td>
12788 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
12789 <td class="paramname"><em>b</em>&#160;</td>
12790 </tr>
12791 <tr>
12792 <td></td>
12793 <td>)</td>
12794 <td></td><td></td>
12795 </tr>
12796 </table>
12797 </td>
12798 <td class="mlabels-right">
12799<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12800 </tr>
12801</table>
12802</div><div class="memdoc">
12803
12804<p>8 bit fixed point vector max (8 elements) </p>
12805<dl class="params"><dt>Parameters</dt><dd>
12806 <table class="params">
12807 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
12808 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
12809 </table>
12810 </dd>
12811</dl>
12812<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector max operation </dd></dl>
12813
12814<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00189">189</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12815<div class="fragment"><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="keywordflow">return</span> vmax_s8(a, b);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div></div><!-- fragment -->
12816</div>
12817</div>
12818<a class="anchor" id="a1627f818fb2ca90f7c3880f959030556"></a>
12819<div class="memitem">
12820<div class="memproto">
12821<table class="mlabels">
12822 <tr>
12823 <td class="mlabels-left">
12824 <table class="memname">
12825 <tr>
12826 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vmaxq_qs8 </td>
12827 <td>(</td>
12828 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
12829 <td class="paramname"><em>a</em>, </td>
12830 </tr>
12831 <tr>
12832 <td class="paramkey"></td>
12833 <td></td>
12834 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
12835 <td class="paramname"><em>b</em>&#160;</td>
12836 </tr>
12837 <tr>
12838 <td></td>
12839 <td>)</td>
12840 <td></td><td></td>
12841 </tr>
12842 </table>
12843 </td>
12844 <td class="mlabels-right">
12845<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12846 </tr>
12847</table>
12848</div><div class="memdoc">
12849
12850<p>8 bit fixed point vector max (16 elements) </p>
12851<dl class="params"><dt>Parameters</dt><dd>
12852 <table class="params">
12853 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
12854 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
12855 </table>
12856 </dd>
12857</dl>
12858<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector max operation </dd></dl>
12859
12860<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00194">194</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12861<div class="fragment"><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> vmaxq_s8(a, b);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div></div><!-- fragment -->
12862</div>
12863</div>
12864<a class="anchor" id="abed4a7c95569e1fa72d0f8bfe5a50c84"></a>
12865<div class="memitem">
12866<div class="memproto">
12867<table class="mlabels">
12868 <tr>
12869 <td class="mlabels-left">
12870 <table class="memname">
12871 <tr>
12872 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vmin_qs8 </td>
12873 <td>(</td>
12874 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
12875 <td class="paramname"><em>a</em>, </td>
12876 </tr>
12877 <tr>
12878 <td class="paramkey"></td>
12879 <td></td>
12880 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
12881 <td class="paramname"><em>b</em>&#160;</td>
12882 </tr>
12883 <tr>
12884 <td></td>
12885 <td>)</td>
12886 <td></td><td></td>
12887 </tr>
12888 </table>
12889 </td>
12890 <td class="mlabels-right">
12891<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12892 </tr>
12893</table>
12894</div><div class="memdoc">
12895
12896<p>8 bit fixed point vector min (8 elements) </p>
12897<dl class="params"><dt>Parameters</dt><dd>
12898 <table class="params">
12899 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
12900 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
12901 </table>
12902 </dd>
12903</dl>
12904<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector max operation </dd></dl>
12905
12906<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00204">204</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12907<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; <span class="keywordflow">return</span> vmin_s8(a, b);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div></div><!-- fragment -->
12908</div>
12909</div>
12910<a class="anchor" id="a3b393341c8500b469780137b3548f70b"></a>
12911<div class="memitem">
12912<div class="memproto">
12913<table class="mlabels">
12914 <tr>
12915 <td class="mlabels-left">
12916 <table class="memname">
12917 <tr>
12918 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vminq_qs8 </td>
12919 <td>(</td>
12920 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
12921 <td class="paramname"><em>a</em>, </td>
12922 </tr>
12923 <tr>
12924 <td class="paramkey"></td>
12925 <td></td>
12926 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
12927 <td class="paramname"><em>b</em>&#160;</td>
12928 </tr>
12929 <tr>
12930 <td></td>
12931 <td>)</td>
12932 <td></td><td></td>
12933 </tr>
12934 </table>
12935 </td>
12936 <td class="mlabels-right">
12937<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12938 </tr>
12939</table>
12940</div><div class="memdoc">
12941
12942<p>8 bit fixed point vector min (16 elements) </p>
12943<dl class="params"><dt>Parameters</dt><dd>
12944 <table class="params">
12945 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
12946 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
12947 </table>
12948 </dd>
12949</dl>
12950<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector min operation </dd></dl>
12951
12952<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00209">209</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
12953<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> vminq_s8(a, b);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;}</div></div><!-- fragment -->
12954</div>
12955</div>
12956<a class="anchor" id="a26fd8532b87adbcf27214504c38918e4"></a>
12957<div class="memitem">
12958<div class="memproto">
12959<table class="mlabels">
12960 <tr>
12961 <td class="mlabels-left">
12962 <table class="memname">
12963 <tr>
12964 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vmla_qs8 </td>
12965 <td>(</td>
12966 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
12967 <td class="paramname"><em>a</em>, </td>
12968 </tr>
12969 <tr>
12970 <td class="paramkey"></td>
12971 <td></td>
12972 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
12973 <td class="paramname"><em>b</em>, </td>
12974 </tr>
12975 <tr>
12976 <td class="paramkey"></td>
12977 <td></td>
12978 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
12979 <td class="paramname"><em>c</em>, </td>
12980 </tr>
12981 <tr>
12982 <td class="paramkey"></td>
12983 <td></td>
12984 <td class="paramtype">int&#160;</td>
12985 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
12986 </tr>
12987 <tr>
12988 <td></td>
12989 <td>)</td>
12990 <td></td><td></td>
12991 </tr>
12992 </table>
12993 </td>
12994 <td class="mlabels-right">
12995<span class="mlabels"><span class="mlabel">inline</span></span> </td>
12996 </tr>
12997</table>
12998</div><div class="memdoc">
12999
13000<p>8 bit fixed point vector multiply-accumulate (8 elements). </p>
13001<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>
13002<dl class="params"><dt>Parameters</dt><dd>
13003 <table class="params">
13004 <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>
13005 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
13006 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
13007 <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>
13008 </table>
13009 </dd>
13010</dl>
13011<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate </dd></dl>
13012
13013<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00357">357</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13014<div class="fragment"><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="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><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="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</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="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">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; tmp = vmlal_s8(tmp, b, c);</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; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; tmp = vshlq_s16(tmp, fixed_point_position_s16);</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="comment">// Convert back to qint8 and accumulate</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> vadd_s8(a, vmovn_s16(tmp));</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;}</div><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>
13015</div><!-- fragment -->
13016</div>
13017</div>
13018<a class="anchor" id="a13873b51e98dcb41229ccf911e671693"></a>
13019<div class="memitem">
13020<div class="memproto">
13021<table class="mlabels">
13022 <tr>
13023 <td class="mlabels-left">
13024 <table class="memname">
13025 <tr>
13026 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vmlal_qs8 </td>
13027 <td>(</td>
13028 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
13029 <td class="paramname"><em>a</em>, </td>
13030 </tr>
13031 <tr>
13032 <td class="paramkey"></td>
13033 <td></td>
13034 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13035 <td class="paramname"><em>b</em>, </td>
13036 </tr>
13037 <tr>
13038 <td class="paramkey"></td>
13039 <td></td>
13040 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13041 <td class="paramname"><em>c</em>, </td>
13042 </tr>
13043 <tr>
13044 <td class="paramkey"></td>
13045 <td></td>
13046 <td class="paramtype">int&#160;</td>
13047 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13048 </tr>
13049 <tr>
13050 <td></td>
13051 <td>)</td>
13052 <td></td><td></td>
13053 </tr>
13054 </table>
13055 </td>
13056 <td class="mlabels-right">
13057<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13058 </tr>
13059</table>
13060</div><div class="memdoc">
13061
13062<p>8 bit fixed point vector multiply-accumulate long (8 elements). </p>
13063<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>
13064<dl class="params"><dt>Parameters</dt><dd>
13065 <table class="params">
13066 <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>
13067 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
13068 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
13069 <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>
13070 </table>
13071 </dd>
13072</dl>
13073<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate long </dd></dl>
13074
13075<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00432">432</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13076<div class="fragment"><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;{</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</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="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</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="l00437"></a><span class="lineno"> 437</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="l00438"></a><span class="lineno"> 438</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; tmp = vmlal_s8(tmp, b, c);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; tmp = vshlq_s16(tmp, fixed_point_position_s16);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="comment">// Accumulate</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">return</span> vaddq_s16(a, tmp);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;}</div><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>
13077</div><!-- fragment -->
13078</div>
13079</div>
13080<a class="anchor" id="aca905840b37a91fff71e163aa619904c"></a>
13081<div class="memitem">
13082<div class="memproto">
13083<table class="mlabels">
13084 <tr>
13085 <td class="mlabels-left">
13086 <table class="memname">
13087 <tr>
13088 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vmlaq_qs8 </td>
13089 <td>(</td>
13090 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13091 <td class="paramname"><em>a</em>, </td>
13092 </tr>
13093 <tr>
13094 <td class="paramkey"></td>
13095 <td></td>
13096 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13097 <td class="paramname"><em>b</em>, </td>
13098 </tr>
13099 <tr>
13100 <td class="paramkey"></td>
13101 <td></td>
13102 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13103 <td class="paramname"><em>c</em>, </td>
13104 </tr>
13105 <tr>
13106 <td class="paramkey"></td>
13107 <td></td>
13108 <td class="paramtype">int&#160;</td>
13109 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13110 </tr>
13111 <tr>
13112 <td></td>
13113 <td>)</td>
13114 <td></td><td></td>
13115 </tr>
13116 </table>
13117 </td>
13118 <td class="mlabels-right">
13119<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13120 </tr>
13121</table>
13122</div><div class="memdoc">
13123
13124<p>8 bit fixed point vector multiply-accumulate (16 elements). </p>
13125<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>
13126<dl class="params"><dt>Parameters</dt><dd>
13127 <table class="params">
13128 <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>
13129 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
13130 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
13131 <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>
13132 </table>
13133 </dd>
13134</dl>
13135<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate </dd></dl>
13136
13137<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>
13138<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="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</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="l00379"></a><span class="lineno"> 379</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="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp1 = tmp0;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; tmp0 = vmlal_s8(tmp0, vget_low_s8(b), vget_low_s8(c));</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; tmp1 = vmlal_s8(tmp1, vget_high_s8(b), vget_high_s8(c));</div><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="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; tmp0 = vshlq_s16(tmp0, fixed_point_position_s16);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; tmp1 = vshlq_s16(tmp1, fixed_point_position_s16);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">// Convert back to qint8 and accumulate</span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> vcombine_s8(vadd_s8(vget_low_s8(a), vmovn_s16(tmp0)), vadd_s8(vget_high_s8(a), vmovn_s16(tmp1)));</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;}</div><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>
13139</div><!-- fragment -->
13140</div>
13141</div>
13142<a class="anchor" id="afccf1305c480f2338af8925bba6b54cd"></a>
13143<div class="memitem">
13144<div class="memproto">
13145<table class="mlabels">
13146 <tr>
13147 <td class="mlabels-left">
13148 <table class="memname">
13149 <tr>
13150 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vmul_qs8 </td>
13151 <td>(</td>
13152 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13153 <td class="paramname"><em>a</em>, </td>
13154 </tr>
13155 <tr>
13156 <td class="paramkey"></td>
13157 <td></td>
13158 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13159 <td class="paramname"><em>b</em>, </td>
13160 </tr>
13161 <tr>
13162 <td class="paramkey"></td>
13163 <td></td>
13164 <td class="paramtype">int&#160;</td>
13165 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13166 </tr>
13167 <tr>
13168 <td></td>
13169 <td>)</td>
13170 <td></td><td></td>
13171 </tr>
13172 </table>
13173 </td>
13174 <td class="mlabels-right">
13175<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13176 </tr>
13177</table>
13178</div><div class="memdoc">
13179
13180<p>8 bit fixed point vector multiply (8 elements) </p>
13181<dl class="params"><dt>Parameters</dt><dd>
13182 <table class="params">
13183 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
13184 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
13185 <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>
13186 </table>
13187 </dd>
13188</dl>
13189<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiplication. </dd></dl>
13190
13191<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>
13192
13193<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00676">vdiv_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00880">vinvsqrt_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00802">vlog_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00602">vrecip_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00687">vtaylor_poly_qs8()</a>.</p>
13194<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="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</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="l00279"></a><span class="lineno"> 279</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="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; res = vmlal_s8(res, a, b);</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; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; res = vshlq_s16(res, fixed_point_position_s16);</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="comment">// Convert back to qint8</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> vmovn_s16(res);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</div><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>
13195</div><!-- fragment -->
13196</div>
13197</div>
13198<a class="anchor" id="a3e959a9add1078033f3a27725323df13"></a>
13199<div class="memitem">
13200<div class="memproto">
13201<table class="mlabels">
13202 <tr>
13203 <td class="mlabels-left">
13204 <table class="memname">
13205 <tr>
13206 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vmull_qs8 </td>
13207 <td>(</td>
13208 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13209 <td class="paramname"><em>a</em>, </td>
13210 </tr>
13211 <tr>
13212 <td class="paramkey"></td>
13213 <td></td>
13214 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13215 <td class="paramname"><em>b</em>, </td>
13216 </tr>
13217 <tr>
13218 <td class="paramkey"></td>
13219 <td></td>
13220 <td class="paramtype">int&#160;</td>
13221 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13222 </tr>
13223 <tr>
13224 <td></td>
13225 <td>)</td>
13226 <td></td><td></td>
13227 </tr>
13228 </table>
13229 </td>
13230 <td class="mlabels-right">
13231<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13232 </tr>
13233</table>
13234</div><div class="memdoc">
13235
13236<p>8 bit fixed point vector long multiply (8 elements) </p>
13237<dl class="params"><dt>Parameters</dt><dd>
13238 <table class="params">
13239 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
13240 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
13241 <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>
13242 </table>
13243 </dd>
13244</dl>
13245<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point long vector multiplication. </dd></dl>
13246
13247<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00348">348</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13248<div class="fragment"><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="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</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; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res = vmull_s8(a, b);</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">return</span> vqrshlq_s16(res, fixed_point_position_s16);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;}</div><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>
13249</div><!-- fragment -->
13250</div>
13251</div>
13252<a class="anchor" id="a031b17d4102856aa4d6bf7ebf83bf0ab"></a>
13253<div class="memitem">
13254<div class="memproto">
13255<table class="mlabels">
13256 <tr>
13257 <td class="mlabels-left">
13258 <table class="memname">
13259 <tr>
13260 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vmulq_qs8 </td>
13261 <td>(</td>
13262 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13263 <td class="paramname"><em>a</em>, </td>
13264 </tr>
13265 <tr>
13266 <td class="paramkey"></td>
13267 <td></td>
13268 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13269 <td class="paramname"><em>b</em>, </td>
13270 </tr>
13271 <tr>
13272 <td class="paramkey"></td>
13273 <td></td>
13274 <td class="paramtype">int&#160;</td>
13275 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13276 </tr>
13277 <tr>
13278 <td></td>
13279 <td>)</td>
13280 <td></td><td></td>
13281 </tr>
13282 </table>
13283 </td>
13284 <td class="mlabels-right">
13285<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13286 </tr>
13287</table>
13288</div><div class="memdoc">
13289
13290<p>8 bit fixed point vector multiply (16 elements) </p>
13291<dl class="params"><dt>Parameters</dt><dd>
13292 <table class="params">
13293 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
13294 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
13295 <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>
13296 </table>
13297 </dd>
13298</dl>
13299<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiplication. </dd></dl>
13300
13301<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00291">291</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13302
13303<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00681">vdivq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00934">vinvsqrtq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00841">vlogq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00651">vqrecipq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00626">vrecipq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00719">vtaylor_polyq_qs8()</a>.</p>
13304<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> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</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">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</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="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res1 = res0;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; res0 = vmlal_s8(res0, vget_low_s8(a), vget_low_s8(b));</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; res1 = vmlal_s8(res1, vget_high_s8(a), vget_high_s8(b));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; res0 = vshlq_s16(res0, fixed_point_position_s16);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; res1 = vshlq_s16(res1, fixed_point_position_s16);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">// Convert back to qint8</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">return</span> vcombine_s8(vmovn_s16(res0), vmovn_s16(res1));</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;}</div><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>
13305</div><!-- fragment -->
13306</div>
13307</div>
13308<a class="anchor" id="ac73b89ba44bae1df9a8998ad2a99996e"></a>
13309<div class="memitem">
13310<div class="memproto">
13311<table class="mlabels">
13312 <tr>
13313 <td class="mlabels-left">
13314 <table class="memname">
13315 <tr>
13316 <td class="memname">int16x4_t vpaddl_qs8 </td>
13317 <td>(</td>
13318 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13319 <td class="paramname"><em>a</em></td><td>)</td>
13320 <td></td>
13321 </tr>
13322 </table>
13323 </td>
13324 <td class="mlabels-right">
13325<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13326 </tr>
13327</table>
13328</div><div class="memdoc">
13329
13330<p>8 bit fixed point vector saturating pairwise add (8 elements) </p>
13331<dl class="params"><dt>Parameters</dt><dd>
13332 <table class="params">
13333 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
13334 </table>
13335 </dd>
13336</dl>
13337<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>
13338
13339<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00249">249</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13340<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="keywordflow">return</span> vpaddl_s8(a);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div></div><!-- fragment -->
13341</div>
13342</div>
13343<a class="anchor" id="a1ecd37cd4eb461a98ca7c429e51802d2"></a>
13344<div class="memitem">
13345<div class="memproto">
13346<table class="mlabels">
13347 <tr>
13348 <td class="mlabels-left">
13349 <table class="memname">
13350 <tr>
13351 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vpmax_qs8 </td>
13352 <td>(</td>
13353 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13354 <td class="paramname"><em>a</em>, </td>
13355 </tr>
13356 <tr>
13357 <td class="paramkey"></td>
13358 <td></td>
13359 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13360 <td class="paramname"><em>b</em>&#160;</td>
13361 </tr>
13362 <tr>
13363 <td></td>
13364 <td>)</td>
13365 <td></td><td></td>
13366 </tr>
13367 </table>
13368 </td>
13369 <td class="mlabels-right">
13370<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13371 </tr>
13372</table>
13373</div><div class="memdoc">
13374
13375<p>8 bit fixed point vector pairwise max (8 elements) </p>
13376<dl class="params"><dt>Parameters</dt><dd>
13377 <table class="params">
13378 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
13379 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
13380 </table>
13381 </dd>
13382</dl>
13383<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector pairwise max operation </dd></dl>
13384
13385<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00199">199</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13386<div class="fragment"><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> vpmax_s8(a, b);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}</div></div><!-- fragment -->
13387</div>
13388</div>
13389<a class="anchor" id="ad3f599d91685017d37e87d36170a5342"></a>
13390<div class="memitem">
13391<div class="memproto">
13392<table class="mlabels">
13393 <tr>
13394 <td class="mlabels-left">
13395 <table class="memname">
13396 <tr>
13397 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vpmin_qs8 </td>
13398 <td>(</td>
13399 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13400 <td class="paramname"><em>a</em>, </td>
13401 </tr>
13402 <tr>
13403 <td class="paramkey"></td>
13404 <td></td>
13405 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13406 <td class="paramname"><em>b</em>&#160;</td>
13407 </tr>
13408 <tr>
13409 <td></td>
13410 <td>)</td>
13411 <td></td><td></td>
13412 </tr>
13413 </table>
13414 </td>
13415 <td class="mlabels-right">
13416<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13417 </tr>
13418</table>
13419</div><div class="memdoc">
13420
13421<p>8 bit fixed point vector pairwise min (8 elements) </p>
13422<dl class="params"><dt>Parameters</dt><dd>
13423 <table class="params">
13424 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
13425 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
13426 </table>
13427 </dd>
13428</dl>
13429<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector pairwise min operation </dd></dl>
13430
13431<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00214">214</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13432<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> vpmin_s8(a, b);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;}</div></div><!-- fragment -->
13433</div>
13434</div>
13435<a class="anchor" id="a45c3c1474c3e3ec31ec13efaf6acd261"></a>
13436<div class="memitem">
13437<div class="memproto">
13438<table class="mlabels">
13439 <tr>
13440 <td class="mlabels-left">
13441 <table class="memname">
13442 <tr>
13443 <td class="memname">float32x4_t vpowq_f32 </td>
13444 <td>(</td>
13445 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000013446 <td class="paramname"><em>val</em>, </td>
13447 </tr>
13448 <tr>
13449 <td class="paramkey"></td>
13450 <td></td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013451 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000013452 <td class="paramname"><em>n</em>&#160;</td>
13453 </tr>
13454 <tr>
13455 <td></td>
13456 <td>)</td>
13457 <td></td><td></td>
13458 </tr>
13459 </table>
13460 </td>
13461 <td class="mlabels-right">
13462<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13463 </tr>
13464</table>
13465</div><div class="memdoc">
13466
13467<p>Calculate n power of a number. </p>
13468<p>pow(x,n) = e^(n*log(x))</p>
13469<dl class="params"><dt>Parameters</dt><dd>
13470 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010013471 <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Input vector value in F32 format. </td></tr>
13472 <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 +000013473 </table>
13474 </dd>
13475</dl>
13476<dl class="section return"><dt>Returns</dt><dd>The calculated power. </dd></dl>
13477
Anthony Barbierdbdab852017-06-23 15:42:00 +010013478<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00137">137</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000013479
Anthony Barbierdbdab852017-06-23 15:42:00 +010013480<p>References <a class="el" href="_n_e_math_8inl_source.xhtml#l00086">vexpq_f32()</a>, and <a class="el" href="_n_e_math_8inl_source.xhtml#l00104">vlogq_f32()</a>.</p>
13481<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="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="l00140"></a><span class="lineno"> 140</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#l00086">NEMath.inl:86</a></div></div>
13482<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#l00104">NEMath.inl:104</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000013483</div><!-- fragment -->
13484</div>
13485</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013486<a class="anchor" id="a4b2c9440d5fa4909ae909869877f39e3"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000013487<div class="memitem">
13488<div class="memproto">
13489<table class="mlabels">
13490 <tr>
13491 <td class="mlabels-left">
13492 <table class="memname">
13493 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013494 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqabs_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000013495 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010013496 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13497 <td class="paramname"><em>a</em></td><td>)</td>
13498 <td></td>
13499 </tr>
13500 </table>
13501 </td>
13502 <td class="mlabels-right">
13503<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13504 </tr>
13505</table>
13506</div><div class="memdoc">
13507
13508<p>Saturating absolute value of 8 bit fixed point vector (8 elements) </p>
13509<dl class="params"><dt>Parameters</dt><dd>
13510 <table class="params">
13511 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
13512 </table>
13513 </dd>
13514</dl>
13515<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector absolute value </dd></dl>
13516
13517<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00179">179</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13518
13519<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00750">vqexp_qs8()</a>.</p>
13520<div class="fragment"><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> vqabs_s8(a);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;}</div></div><!-- fragment -->
13521</div>
13522</div>
13523<a class="anchor" id="ac8095edd652a1f3a76bf9d0f4251827a"></a>
13524<div class="memitem">
13525<div class="memproto">
13526<table class="mlabels">
13527 <tr>
13528 <td class="mlabels-left">
13529 <table class="memname">
13530 <tr>
13531 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqabsq_qs8 </td>
13532 <td>(</td>
13533 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13534 <td class="paramname"><em>a</em></td><td>)</td>
13535 <td></td>
13536 </tr>
13537 </table>
13538 </td>
13539 <td class="mlabels-right">
13540<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13541 </tr>
13542</table>
13543</div><div class="memdoc">
13544
13545<p>Saturating absolute value of 8 bit fixed point vector (16 elements) </p>
13546<dl class="params"><dt>Parameters</dt><dd>
13547 <table class="params">
13548 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8 bit fixed point input vector</td></tr>
13549 </table>
13550 </dd>
13551</dl>
13552<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector absolute value </dd></dl>
13553
13554<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00184">184</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13555
13556<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00776">vqexpq_qs8()</a>.</p>
13557<div class="fragment"><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> vqabsq_s8(a);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div></div><!-- fragment -->
13558</div>
13559</div>
13560<a class="anchor" id="ad80ab0f6b783c10e0488cb84a8812e8f"></a>
13561<div class="memitem">
13562<div class="memproto">
13563<table class="mlabels">
13564 <tr>
13565 <td class="mlabels-left">
13566 <table class="memname">
13567 <tr>
13568 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a> vqadd_qs16 </td>
13569 <td>(</td>
13570 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
13571 <td class="paramname"><em>a</em>, </td>
13572 </tr>
13573 <tr>
13574 <td class="paramkey"></td>
13575 <td></td>
13576 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
13577 <td class="paramname"><em>b</em>&#160;</td>
13578 </tr>
13579 <tr>
13580 <td></td>
13581 <td>)</td>
13582 <td></td><td></td>
13583 </tr>
13584 </table>
13585 </td>
13586 <td class="mlabels-right">
13587<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13588 </tr>
13589</table>
13590</div><div class="memdoc">
13591
13592<p>16 bit fixed point vector saturating add (4 elements) </p>
13593<dl class="params"><dt>Parameters</dt><dd>
13594 <table class="params">
13595 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
13596 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
13597 </table>
13598 </dd>
13599</dl>
13600<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>
13601
13602<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00239">239</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13603<div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;{</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> vqadd_s16(a, b);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;}</div></div><!-- fragment -->
13604</div>
13605</div>
13606<a class="anchor" id="a8a14fe5fc71105c9bfebb28a58f06a52"></a>
13607<div class="memitem">
13608<div class="memproto">
13609<table class="mlabels">
13610 <tr>
13611 <td class="mlabels-left">
13612 <table class="memname">
13613 <tr>
13614 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqadd_qs8 </td>
13615 <td>(</td>
13616 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13617 <td class="paramname"><em>a</em>, </td>
13618 </tr>
13619 <tr>
13620 <td class="paramkey"></td>
13621 <td></td>
13622 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13623 <td class="paramname"><em>b</em>&#160;</td>
13624 </tr>
13625 <tr>
13626 <td></td>
13627 <td>)</td>
13628 <td></td><td></td>
13629 </tr>
13630 </table>
13631 </td>
13632 <td class="mlabels-right">
13633<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13634 </tr>
13635</table>
13636</div><div class="memdoc">
13637
13638<p>8 bit fixed point vector saturating add (8 elements) </p>
13639<dl class="params"><dt>Parameters</dt><dd>
13640 <table class="params">
13641 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
13642 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
13643 </table>
13644 </dd>
13645</dl>
13646<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>
13647
13648<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00229">229</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13649
13650<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00988">vtanh_qs8()</a>.</p>
13651<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="keywordflow">return</span> vqadd_s8(a, b);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;}</div></div><!-- fragment -->
13652</div>
13653</div>
13654<a class="anchor" id="a9d88750b393cdfe6f5685107bb1d98f7"></a>
13655<div class="memitem">
13656<div class="memproto">
13657<table class="mlabels">
13658 <tr>
13659 <td class="mlabels-left">
13660 <table class="memname">
13661 <tr>
13662 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqaddq_qs16 </td>
13663 <td>(</td>
13664 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
13665 <td class="paramname"><em>a</em>, </td>
13666 </tr>
13667 <tr>
13668 <td class="paramkey"></td>
13669 <td></td>
13670 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
13671 <td class="paramname"><em>b</em>&#160;</td>
13672 </tr>
13673 <tr>
13674 <td></td>
13675 <td>)</td>
13676 <td></td><td></td>
13677 </tr>
13678 </table>
13679 </td>
13680 <td class="mlabels-right">
13681<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13682 </tr>
13683</table>
13684</div><div class="memdoc">
13685
13686<p>16 bit fixed point vector saturating add (8 elements) </p>
13687<dl class="params"><dt>Parameters</dt><dd>
13688 <table class="params">
13689 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 16 bit fixed point input vector </td></tr>
13690 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 16 bit fixed point input vector</td></tr>
13691 </table>
13692 </dd>
13693</dl>
13694<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>
13695
13696<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00244">244</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13697<div class="fragment"><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> vqaddq_s16(a, b);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;}</div></div><!-- fragment -->
13698</div>
13699</div>
13700<a class="anchor" id="a9765c5ee2d3cc9e3ca983fd2f47ba916"></a>
13701<div class="memitem">
13702<div class="memproto">
13703<table class="mlabels">
13704 <tr>
13705 <td class="mlabels-left">
13706 <table class="memname">
13707 <tr>
13708 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqaddq_qs8 </td>
13709 <td>(</td>
13710 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13711 <td class="paramname"><em>a</em>, </td>
13712 </tr>
13713 <tr>
13714 <td class="paramkey"></td>
13715 <td></td>
13716 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13717 <td class="paramname"><em>b</em>&#160;</td>
13718 </tr>
13719 <tr>
13720 <td></td>
13721 <td>)</td>
13722 <td></td><td></td>
13723 </tr>
13724 </table>
13725 </td>
13726 <td class="mlabels-right">
13727<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13728 </tr>
13729</table>
13730</div><div class="memdoc">
13731
13732<p>8 bit fixed point vector saturating add (16 elements) </p>
13733<dl class="params"><dt>Parameters</dt><dd>
13734 <table class="params">
13735 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
13736 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
13737 </table>
13738 </dd>
13739</dl>
13740<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>
13741
13742<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00234">234</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13743
13744<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01001">vtanhq_qs8()</a>.</p>
13745<div class="fragment"><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;{</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> vqaddq_s8(a, b);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}</div></div><!-- fragment -->
13746</div>
13747</div>
13748<a class="anchor" id="a635b41196d74b1f2c4d9ee9298444796"></a>
13749<div class="memitem">
13750<div class="memproto">
13751<table class="mlabels">
13752 <tr>
13753 <td class="mlabels-left">
13754 <table class="memname">
13755 <tr>
13756 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqexp_qs8 </td>
13757 <td>(</td>
13758 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13759 <td class="paramname"><em>a</em>, </td>
13760 </tr>
13761 <tr>
13762 <td class="paramkey"></td>
13763 <td></td>
13764 <td class="paramtype">int&#160;</td>
13765 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13766 </tr>
13767 <tr>
13768 <td></td>
13769 <td>)</td>
13770 <td></td><td></td>
13771 </tr>
13772 </table>
13773 </td>
13774 <td class="mlabels-right">
13775<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13776 </tr>
13777</table>
13778</div><div class="memdoc">
13779
13780<p>Calculate saturating exponential fixed point 8bit (8 elements) </p>
13781<dl class="params"><dt>Parameters</dt><dd>
13782 <table class="params">
13783 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
13784 <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>
13785 </table>
13786 </dd>
13787</dl>
13788<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit saturating exponential </dd></dl>
13789
13790<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00750">750</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13791
13792<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00179">vqabs_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00311">vqmul_qs8()</a>.</p>
13793
13794<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00988">vtanh_qs8()</a>.</p>
13795<div class="fragment"><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> <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="l00753"></a><span class="lineno"> 753</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="l00754"></a><span class="lineno"> 754</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="l00755"></a><span class="lineno"> 755</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="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="comment">// Perform range reduction [-log(2),log(2)]</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</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, const_inv_ln2, fixed_point_position); <span class="comment">// x / ln(2)</span></div><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="comment">// get decimal part from m</span></div><div class="line"><a name="l00761"></a><span class="lineno"> 761</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="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> alpha = <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="l00764"></a><span class="lineno"> 764</span>&#160; alpha = <a class="code" href="namespacearm__compute.xhtml#a4b2c9440d5fa4909ae909869877f39e3">vqabs_qs8</a>(vqsub_s8(a, alpha));</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">// Polynomial Approximation</span></div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> poly = vqtaylor_poly_qs8&lt;false&gt;(alpha, fixed_point_position);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; poly = vqadd_s8(poly, const_one);</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">// Reconstruct</span></div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; poly = vqshl_s8(poly, dec_m);</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> poly;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</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#l00179">NEFixedPoint.inl:179</a></div></div>
13796<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#l00311">NEFixedPoint.inl:311</a></div></div>
13797<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>
13798</div><!-- fragment -->
13799</div>
13800</div>
13801<a class="anchor" id="ae6cf1822b8fbad305677650a2b751247"></a>
13802<div class="memitem">
13803<div class="memproto">
13804<table class="mlabels">
13805 <tr>
13806 <td class="mlabels-left">
13807 <table class="memname">
13808 <tr>
13809 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqexpq_qs8 </td>
13810 <td>(</td>
13811 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13812 <td class="paramname"><em>a</em>, </td>
13813 </tr>
13814 <tr>
13815 <td class="paramkey"></td>
13816 <td></td>
13817 <td class="paramtype">int&#160;</td>
13818 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13819 </tr>
13820 <tr>
13821 <td></td>
13822 <td>)</td>
13823 <td></td><td></td>
13824 </tr>
13825 </table>
13826 </td>
13827 <td class="mlabels-right">
13828<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13829 </tr>
13830</table>
13831</div><div class="memdoc">
13832
13833<p>Calculate saturating exponential fixed point 8bit (16 elements) </p>
13834<dl class="params"><dt>Parameters</dt><dd>
13835 <table class="params">
13836 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
13837 <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>
13838 </table>
13839 </dd>
13840</dl>
13841<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit saturating exponential </dd></dl>
13842
13843<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00776">776</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13844
13845<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00184">vqabsq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00328">vqmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00269">vqsubq_qs8()</a>.</p>
13846
13847<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01014">vqpowq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01001">vtanhq_qs8()</a>.</p>
13848<div class="fragment"><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;{</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</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="l00779"></a><span class="lineno"> 779</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="l00780"></a><span class="lineno"> 780</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="l00781"></a><span class="lineno"> 781</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="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">// Perform range reduction [-log(2),log(2)]</span></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</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, const_inv_ln2, fixed_point_position); <span class="comment">// x / ln(2)</span></div><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="comment">// get decimal part from m</span></div><div class="line"><a name="l00787"></a><span class="lineno"> 787</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="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> alpha = <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="l00790"></a><span class="lineno"> 790</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, alpha));</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="comment">// Polynomial Approximation</span></div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> poly = vqtaylor_polyq_qs8&lt;false&gt;(alpha, fixed_point_position);</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; poly = vqaddq_s8(poly, const_one);</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="comment">// Reconstruct</span></div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; poly = vqshlq_s8(poly, dec_m);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">return</span> poly;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;}</div><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>
13849<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#l00184">NEFixedPoint.inl:184</a></div></div>
13850<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#l00328">NEFixedPoint.inl:328</a></div></div>
13851<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#l00269">NEFixedPoint.inl:269</a></div></div>
13852</div><!-- fragment -->
13853</div>
13854</div>
13855<a class="anchor" id="a5ddc3dc4b4ee6847fd96c6a8599e20e4"></a>
13856<div class="memitem">
13857<div class="memproto">
13858<table class="mlabels">
13859 <tr>
13860 <td class="mlabels-left">
13861 <table class="memname">
13862 <tr>
13863 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqinvsqrt_qs8 </td>
13864 <td>(</td>
13865 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13866 <td class="paramname"><em>a</em>, </td>
13867 </tr>
13868 <tr>
13869 <td class="paramkey"></td>
13870 <td></td>
13871 <td class="paramtype">int&#160;</td>
13872 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13873 </tr>
13874 <tr>
13875 <td></td>
13876 <td>)</td>
13877 <td></td><td></td>
13878 </tr>
13879 </table>
13880 </td>
13881 <td class="mlabels-right">
13882<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13883 </tr>
13884</table>
13885</div><div class="memdoc">
13886
13887<p>Calculate saturating inverse square root for fixed point 8bit using Newton-Raphosn method (8 elements) </p>
13888<dl class="params"><dt>Parameters</dt><dd>
13889 <table class="params">
13890 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
13891 <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>
13892 </table>
13893 </dd>
13894</dl>
13895<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit inverse sqrt. </dd></dl>
13896
13897<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00907">907</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13898
13899<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00140">vdup_n_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00311">vqmul_qs8()</a>.</p>
13900<div class="fragment"><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;{</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</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="l00910"></a><span class="lineno"> 910</span>&#160;</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> shift_value = vneg_s8(vqsub_s8(vdup_n_s8(8), vadd_s8(vclz_s8(a), vdup_n_s8(fixed_point_position))));</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</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="l00915"></a><span class="lineno"> 915</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), vdup_n_s8(fixed_point_position)));</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</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="l00917"></a><span class="lineno"> 917</span>&#160; temp = vbsl_s8(temp_ltz, vadd_s8(temp, vdup_n_s8(1)), temp);</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</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="l00919"></a><span class="lineno"> 919</span>&#160;</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; temp = vshl_s8(a, shift_value);</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; <span class="comment">// Initial guess</span></div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x = temp;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="comment">// After three iterations we have the result for 8 bit</span></div><div class="line"><a name="l00927"></a><span class="lineno"> 927</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="l00928"></a><span class="lineno"> 928</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="l00929"></a><span class="lineno"> 929</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="l00930"></a><span class="lineno"> 930</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">return</span> vshl_s8(x, shift_value2);</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;}</div><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#l00311">NEFixedPoint.inl:311</a></div></div>
13901<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#l00140">NEFixedPoint.inl:140</a></div></div>
13902<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>
13903</div><!-- fragment -->
13904</div>
13905</div>
13906<a class="anchor" id="ad5d5110467053814882fb616c6cb855b"></a>
13907<div class="memitem">
13908<div class="memproto">
13909<table class="mlabels">
13910 <tr>
13911 <td class="mlabels-left">
13912 <table class="memname">
13913 <tr>
13914 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqinvsqrtq_qs8 </td>
13915 <td>(</td>
13916 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
13917 <td class="paramname"><em>a</em>, </td>
13918 </tr>
13919 <tr>
13920 <td class="paramkey"></td>
13921 <td></td>
13922 <td class="paramtype">int&#160;</td>
13923 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13924 </tr>
13925 <tr>
13926 <td></td>
13927 <td>)</td>
13928 <td></td><td></td>
13929 </tr>
13930 </table>
13931 </td>
13932 <td class="mlabels-right">
13933<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13934 </tr>
13935</table>
13936</div><div class="memdoc">
13937
13938<p>Calculate saturating inverse square root for fixed point 8bit using Newton-Raphosn method (16 elements) </p>
13939<dl class="params"><dt>Parameters</dt><dd>
13940 <table class="params">
13941 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
13942 <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>
13943 </table>
13944 </dd>
13945</dl>
13946<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit inverse sqrt. </dd></dl>
13947
13948<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00961">961</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
13949
13950<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00145">vdupq_n_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00328">vqmulq_qs8()</a>.</p>
13951<div class="fragment"><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;{</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</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="l00964"></a><span class="lineno"> 964</span>&#160;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="comment">// Find shift value. Number must be in (0.5, 2) range.</span></div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> shift_value = vnegq_s8(vqsubq_s8(vdupq_n_s8(8), vaddq_s8(vclzq_s8(a), vdupq_n_s8(fixed_point_position))));</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</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="l00969"></a><span class="lineno"> 969</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), vdupq_n_s8(fixed_point_position)));</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</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="l00971"></a><span class="lineno"> 971</span>&#160; temp = vbslq_s8(temp_ltz, vaddq_s8(temp, vdupq_n_s8(1)), temp);</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</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="l00973"></a><span class="lineno"> 973</span>&#160;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; temp = vshlq_s8(a, shift_value);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="comment">// Initial guess</span></div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> x = temp;</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="comment">// Calculate (x / 2) * (3 - a * x^2)</span></div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="comment">// After three iterations we have the result for 8 bit</span></div><div class="line"><a name="l00981"></a><span class="lineno"> 981</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="l00982"></a><span class="lineno"> 982</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="l00983"></a><span class="lineno"> 983</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="l00984"></a><span class="lineno"> 984</span>&#160;</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="keywordflow">return</span> vshlq_s8(x, shift_value2);</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;}</div><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>
13952<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#l00145">NEFixedPoint.inl:145</a></div></div>
13953<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#l00328">NEFixedPoint.inl:328</a></div></div>
13954</div><!-- fragment -->
13955</div>
13956</div>
13957<a class="anchor" id="ac6cb55578e8ff1f3c20aa50f2e728679"></a>
13958<div class="memitem">
13959<div class="memproto">
13960<table class="mlabels">
13961 <tr>
13962 <td class="mlabels-left">
13963 <table class="memname">
13964 <tr>
13965 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqmla_qs8 </td>
13966 <td>(</td>
13967 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13968 <td class="paramname"><em>a</em>, </td>
13969 </tr>
13970 <tr>
13971 <td class="paramkey"></td>
13972 <td></td>
13973 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13974 <td class="paramname"><em>b</em>, </td>
13975 </tr>
13976 <tr>
13977 <td class="paramkey"></td>
13978 <td></td>
13979 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
13980 <td class="paramname"><em>c</em>, </td>
13981 </tr>
13982 <tr>
13983 <td class="paramkey"></td>
13984 <td></td>
13985 <td class="paramtype">int&#160;</td>
13986 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
13987 </tr>
13988 <tr>
13989 <td></td>
13990 <td>)</td>
13991 <td></td><td></td>
13992 </tr>
13993 </table>
13994 </td>
13995 <td class="mlabels-right">
13996<span class="mlabels"><span class="mlabel">inline</span></span> </td>
13997 </tr>
13998</table>
13999</div><div class="memdoc">
14000
14001<p>8 bit fixed point vector saturating multiply-accumulate (8 elements). </p>
14002<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>
14003<dl class="params"><dt>Parameters</dt><dd>
14004 <table class="params">
14005 <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>
14006 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
14007 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
14008 <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>
14009 </table>
14010 </dd>
14011</dl>
14012<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>
14013
14014<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>
14015<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="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</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="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</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="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; tmp = vmlal_s8(tmp, b, c);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; tmp = vqshlq_s16(tmp, fixed_point_position_s16);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="comment">// Convert back to qint8 and accumulate</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> vqadd_s8(a, vqmovn_s16(tmp));</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;}</div><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>
14016</div><!-- fragment -->
14017</div>
14018</div>
14019<a class="anchor" id="aedfa26202753ca9db96ae3bcb51b14b0"></a>
14020<div class="memitem">
14021<div class="memproto">
14022<table class="mlabels">
14023 <tr>
14024 <td class="mlabels-left">
14025 <table class="memname">
14026 <tr>
14027 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> vqmlal_qs8 </td>
14028 <td>(</td>
14029 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
14030 <td class="paramname"><em>a</em>, </td>
14031 </tr>
14032 <tr>
14033 <td class="paramkey"></td>
14034 <td></td>
14035 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14036 <td class="paramname"><em>b</em>, </td>
14037 </tr>
14038 <tr>
14039 <td class="paramkey"></td>
14040 <td></td>
14041 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14042 <td class="paramname"><em>c</em>, </td>
14043 </tr>
14044 <tr>
14045 <td class="paramkey"></td>
14046 <td></td>
14047 <td class="paramtype">int&#160;</td>
14048 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14049 </tr>
14050 <tr>
14051 <td></td>
14052 <td>)</td>
14053 <td></td><td></td>
14054 </tr>
14055 </table>
14056 </td>
14057 <td class="mlabels-right">
14058<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14059 </tr>
14060</table>
14061</div><div class="memdoc">
14062
14063<p>8 bit fixed point vector saturating multiply-accumulate long (8 elements). </p>
14064<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>
14065<dl class="params"><dt>Parameters</dt><dd>
14066 <table class="params">
14067 <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>
14068 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
14069 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
14070 <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>
14071 </table>
14072 </dd>
14073</dl>
14074<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector multiply-accumulate long </dd></dl>
14075
14076<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>
14077<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="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</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="comment">// Initialize the temporary results with a constant used to round up the result</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</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="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; tmp = vmlal_s8(tmp, b, c);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; tmp = vqshlq_s16(tmp, fixed_point_position_s16);</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="comment">// Accumulate</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">return</span> vqaddq_s16(a, tmp);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;}</div><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>
14078</div><!-- fragment -->
14079</div>
14080</div>
14081<a class="anchor" id="a037ac8df4a7e30a455a97218b88b67ad"></a>
14082<div class="memitem">
14083<div class="memproto">
14084<table class="mlabels">
14085 <tr>
14086 <td class="mlabels-left">
14087 <table class="memname">
14088 <tr>
14089 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqmlaq_qs8 </td>
14090 <td>(</td>
14091 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14092 <td class="paramname"><em>a</em>, </td>
14093 </tr>
14094 <tr>
14095 <td class="paramkey"></td>
14096 <td></td>
14097 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14098 <td class="paramname"><em>b</em>, </td>
14099 </tr>
14100 <tr>
14101 <td class="paramkey"></td>
14102 <td></td>
14103 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14104 <td class="paramname"><em>c</em>, </td>
14105 </tr>
14106 <tr>
14107 <td class="paramkey"></td>
14108 <td></td>
14109 <td class="paramtype">int&#160;</td>
14110 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14111 </tr>
14112 <tr>
14113 <td></td>
14114 <td>)</td>
14115 <td></td><td></td>
14116 </tr>
14117 </table>
14118 </td>
14119 <td class="mlabels-right">
14120<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14121 </tr>
14122</table>
14123</div><div class="memdoc">
14124
14125<p>8 bit fixed point vector saturating multiply-accumulate (16 elements). </p>
14126<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>
14127<dl class="params"><dt>Parameters</dt><dd>
14128 <table class="params">
14129 <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>
14130 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
14131 <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Third 8 bit fixed point input vector </td></tr>
14132 <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>
14133 </table>
14134 </dd>
14135</dl>
14136<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>
14137
14138<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00411">411</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14139<div class="fragment"><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="keyword">const</span> int16x8_t fixed_point_position_s16 = vdupq_n_s16(-fixed_point_position);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</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="l00416"></a><span class="lineno"> 416</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="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> tmp1 = tmp0;</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="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; tmp0 = vmlal_s8(tmp0, vget_low_s8(b), vget_low_s8(c));</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; tmp1 = vmlal_s8(tmp1, vget_high_s8(b), vget_high_s8(c));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; tmp0 = vqshlq_s16(tmp0, fixed_point_position_s16);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; tmp1 = vqshlq_s16(tmp1, fixed_point_position_s16);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="comment">// Convert back to qint8 and accumulate</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</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="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> vqaddq_s8(a, res);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;}</div><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>
14140<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>
14141</div><!-- fragment -->
14142</div>
14143</div>
14144<a class="anchor" id="a92c2d0b9a8eeb3ab04a39a25fef2b6c3"></a>
14145<div class="memitem">
14146<div class="memproto">
14147 <table class="memname">
14148 <tr>
14149 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqmovn_q16 </td>
14150 <td>(</td>
14151 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
14152 <td class="paramname"><em>a</em></td><td>)</td>
14153 <td></td>
14154 </tr>
14155 </table>
14156</div><div class="memdoc">
14157
14158<p>16 bit fixed point vector saturating narrow (8 elements) </p>
14159<dl class="params"><dt>Parameters</dt><dd>
14160 <table class="params">
14161 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>16 bit fixed point vector to convert</td></tr>
14162 </table>
14163 </dd>
14164</dl>
14165<dl class="section return"><dt>Returns</dt><dd>8 bit fixed point vector </dd></dl>
14166
14167</div>
14168</div>
14169<a class="anchor" id="aa9a56a13e02fa346fcbe59257b2cef74"></a>
14170<div class="memitem">
14171<div class="memproto">
14172<table class="mlabels">
14173 <tr>
14174 <td class="mlabels-left">
14175 <table class="memname">
14176 <tr>
14177 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqmovn_qs16 </td>
14178 <td>(</td>
14179 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
14180 <td class="paramname"><em>a</em></td><td>)</td>
14181 <td></td>
14182 </tr>
14183 </table>
14184 </td>
14185 <td class="mlabels-right">
14186<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14187 </tr>
14188</table>
14189</div><div class="memdoc">
14190
14191<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00135">135</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14192<div class="fragment"><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; <span class="keywordflow">return</span> vqmovn_s16(a);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}</div></div><!-- fragment -->
14193</div>
14194</div>
14195<a class="anchor" id="a746205173d1a1f3955fa0c26b5be3b10"></a>
14196<div class="memitem">
14197<div class="memproto">
14198<table class="mlabels">
14199 <tr>
14200 <td class="mlabels-left">
14201 <table class="memname">
14202 <tr>
14203 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqmul_qs8 </td>
14204 <td>(</td>
14205 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14206 <td class="paramname"><em>a</em>, </td>
14207 </tr>
14208 <tr>
14209 <td class="paramkey"></td>
14210 <td></td>
14211 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14212 <td class="paramname"><em>b</em>, </td>
14213 </tr>
14214 <tr>
14215 <td class="paramkey"></td>
14216 <td></td>
14217 <td class="paramtype">int&#160;</td>
14218 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14219 </tr>
14220 <tr>
14221 <td></td>
14222 <td>)</td>
14223 <td></td><td></td>
14224 </tr>
14225 </table>
14226 </td>
14227 <td class="mlabels-right">
14228<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14229 </tr>
14230</table>
14231</div><div class="memdoc">
14232
14233<p>8 bit fixed point vector saturating multiply (8 elements) </p>
14234<dl class="params"><dt>Parameters</dt><dd>
14235 <table class="params">
14236 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
14237 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
14238 <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>
14239 </table>
14240 </dd>
14241</dl>
14242<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>
14243
14244<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00311">311</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14245
14246<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00750">vqexp_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00907">vqinvsqrt_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00703">vqtaylor_poly_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00988">vtanh_qs8()</a>.</p>
14247<div class="fragment"><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;{</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</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="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</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="l00316"></a><span class="lineno"> 316</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="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; res = vmlal_s8(res, a, b);</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="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; res = vqshlq_s16(res, fixed_point_position_s16);</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; <span class="comment">// Convert back to qint8 and saturate</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">return</span> vqmovn_s16(res);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;}</div><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>
14248</div><!-- fragment -->
14249</div>
14250</div>
14251<a class="anchor" id="a081c0605c83155125ad95a144a1d6071"></a>
14252<div class="memitem">
14253<div class="memproto">
14254<table class="mlabels">
14255 <tr>
14256 <td class="mlabels-left">
14257 <table class="memname">
14258 <tr>
14259 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqmulq_qs8 </td>
14260 <td>(</td>
14261 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14262 <td class="paramname"><em>a</em>, </td>
14263 </tr>
14264 <tr>
14265 <td class="paramkey"></td>
14266 <td></td>
14267 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14268 <td class="paramname"><em>b</em>, </td>
14269 </tr>
14270 <tr>
14271 <td class="paramkey"></td>
14272 <td></td>
14273 <td class="paramtype">int&#160;</td>
14274 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14275 </tr>
14276 <tr>
14277 <td></td>
14278 <td>)</td>
14279 <td></td><td></td>
14280 </tr>
14281 </table>
14282 </td>
14283 <td class="mlabels-right">
14284<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14285 </tr>
14286</table>
14287</div><div class="memdoc">
14288
14289<p>8 bit fixed point vector saturating multiply (16 elements) </p>
14290<dl class="params"><dt>Parameters</dt><dd>
14291 <table class="params">
14292 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
14293 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector </td></tr>
14294 <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>
14295 </table>
14296 </dd>
14297</dl>
14298<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>
14299
14300<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00328">328</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14301
14302<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00776">vqexpq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00961">vqinvsqrtq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01014">vqpowq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00651">vqrecipq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00735">vqtaylor_polyq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01001">vtanhq_qs8()</a>.</p>
14303<div class="fragment"><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;{</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</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="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</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="l00333"></a><span class="lineno"> 333</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="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a> res1 = res0;</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="comment">// Vector multiply-accumulate long</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; res0 = vmlal_s8(res0, vget_low_s8(a), vget_low_s8(b));</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; res1 = vmlal_s8(res1, vget_high_s8(a), vget_high_s8(b));</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="comment">// Shift right by fixed_point_position</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; res0 = vqshlq_s16(res0, fixed_point_position_s16);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; res1 = vqshlq_s16(res1, fixed_point_position_s16);</div><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="comment">// Convert back to qint8 and saturate</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">return</span> vcombine_s8(vqmovn_s16(res0), vqmovn_s16(res1));</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;}</div><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>
14304</div><!-- fragment -->
14305</div>
14306</div>
14307<a class="anchor" id="a7214e62803b7c5c347124a5ec5ade4e2"></a>
14308<div class="memitem">
14309<div class="memproto">
14310 <table class="memname">
14311 <tr>
14312 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqpowq_qs8 </td>
14313 <td>(</td>
14314 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14315 <td class="paramname"><em>a</em>, </td>
14316 </tr>
14317 <tr>
14318 <td class="paramkey"></td>
14319 <td></td>
14320 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14321 <td class="paramname"><em>b</em>, </td>
14322 </tr>
14323 <tr>
14324 <td class="paramkey"></td>
14325 <td></td>
14326 <td class="paramtype">int&#160;</td>
14327 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14328 </tr>
14329 <tr>
14330 <td></td>
14331 <td>)</td>
14332 <td></td><td></td>
14333 </tr>
14334 </table>
14335</div><div class="memdoc">
14336
14337<p>Calculate saturating n power for fixed point 8bit (16 elements). </p>
14338<p>pow(a,b) = e^(b*log(a))</p>
14339<dl class="params"><dt>Parameters</dt><dd>
14340 <table class="params">
14341 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
14342 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>8bit fixed point power vector </td></tr>
14343 <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>
14344 </table>
14345 </dd>
14346</dl>
14347<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit power. </dd></dl>
14348
14349</div>
14350</div>
14351<a class="anchor" id="a0d4cef7d7331ac5a216d8bd3000564db"></a>
14352<div class="memitem">
14353<div class="memproto">
14354<table class="mlabels">
14355 <tr>
14356 <td class="mlabels-left">
14357 <table class="memname">
14358 <tr>
14359 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> arm_compute::vqpowq_qs8 </td>
14360 <td>(</td>
14361 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14362 <td class="paramname"><em>a</em>, </td>
14363 </tr>
14364 <tr>
14365 <td class="paramkey"></td>
14366 <td></td>
14367 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14368 <td class="paramname"><em>b</em>, </td>
14369 </tr>
14370 <tr>
14371 <td class="paramkey"></td>
14372 <td></td>
14373 <td class="paramtype">int&#160;</td>
14374 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14375 </tr>
14376 <tr>
14377 <td></td>
14378 <td>)</td>
14379 <td></td><td></td>
14380 </tr>
14381 </table>
14382 </td>
14383 <td class="mlabels-right">
14384<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14385 </tr>
14386</table>
14387</div><div class="memdoc">
14388
14389<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01014">1014</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14390
14391<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00841">vlogq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00776">vqexpq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00328">vqmulq_qs8()</a>.</p>
14392<div class="fragment"><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;{</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</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>(b, <a class="code" href="namespacearm__compute.xhtml#a340b9cd5ad88f1a821498c6fad80e82c">vlogq_qs8</a>(a, fixed_point_position), fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</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#l00841">NEFixedPoint.inl:841</a></div></div>
14393<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#l00776">NEFixedPoint.inl:776</a></div></div>
14394<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#l00328">NEFixedPoint.inl:328</a></div></div>
14395</div><!-- fragment -->
14396</div>
14397</div>
14398<a class="anchor" id="a3dd4382391c752128ab7b3a6dd68314b"></a>
14399<div class="memitem">
14400<div class="memproto">
14401<table class="mlabels">
14402 <tr>
14403 <td class="mlabels-left">
14404 <table class="memname">
14405 <tr>
14406 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> arm_compute::vqrecipq_qs8 </td>
14407 <td>(</td>
14408 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14409 <td class="paramname"><em>a</em>, </td>
14410 </tr>
14411 <tr>
14412 <td class="paramkey"></td>
14413 <td></td>
14414 <td class="paramtype">int&#160;</td>
14415 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14416 </tr>
14417 <tr>
14418 <td></td>
14419 <td>)</td>
14420 <td></td><td></td>
14421 </tr>
14422 </table>
14423 </td>
14424 <td class="mlabels-right">
14425<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14426 </tr>
14427</table>
14428</div><div class="memdoc">
14429
14430<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00651">651</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14431
14432<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00291">vmulq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00328">vqmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00269">vqsubq_qs8()</a>.</p>
14433
14434<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01001">vtanhq_qs8()</a>.</p>
14435<div class="fragment"><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;{</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</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="l00654"></a><span class="lineno"> 654</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(0x7A &gt;&gt; (5 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_minus_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="l00656"></a><span class="lineno"> 656</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="l00657"></a><span class="lineno"> 657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l00659"></a><span class="lineno"> 659</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), vdupq_n_s8(fixed_point_position))));</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> temp = vqshlq_s8(a, shift_value);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</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#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(temp, const_minus_32_over_17, fixed_point_position));</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; <span class="comment">// Set initial guess to one if x &gt; 1</span></div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; uint8x16_t set_one = vcgtq_s8(x, const_one);</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; x = vbslq_s8(set_one, const_one, x);</div><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; <span class="comment">// Use three iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; x = vqaddq_s8(x, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, vqsubq_s8(const_one, <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="l00670"></a><span class="lineno"> 670</span>&#160; x = vqaddq_s8(x, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, vqsubq_s8(const_one, <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="l00671"></a><span class="lineno"> 671</span>&#160; x = vqaddq_s8(x, <a class="code" href="namespacearm__compute.xhtml#a081c0605c83155125ad95a144a1d6071">vqmulq_qs8</a>(x, vqsubq_s8(const_one, <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="l00672"></a><span class="lineno"> 672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keywordflow">return</span> vqshlq_s8(x, shift_value);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;}</div><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>
14436<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#l00291">NEFixedPoint.inl:291</a></div></div>
14437<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#l00328">NEFixedPoint.inl:328</a></div></div>
14438<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#l00269">NEFixedPoint.inl:269</a></div></div>
14439</div><!-- fragment -->
14440</div>
14441</div>
14442<a class="anchor" id="a5b1437029acce06690a938e09f5a762a"></a>
14443<div class="memitem">
14444<div class="memproto">
14445<table class="mlabels">
14446 <tr>
14447 <td class="mlabels-left">
14448 <table class="memname">
14449 <tr>
14450 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vqsub_qs8 </td>
14451 <td>(</td>
14452 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14453 <td class="paramname"><em>a</em>, </td>
14454 </tr>
14455 <tr>
14456 <td class="paramkey"></td>
14457 <td></td>
14458 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14459 <td class="paramname"><em>b</em>&#160;</td>
14460 </tr>
14461 <tr>
14462 <td></td>
14463 <td>)</td>
14464 <td></td><td></td>
14465 </tr>
14466 </table>
14467 </td>
14468 <td class="mlabels-right">
14469<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14470 </tr>
14471</table>
14472</div><div class="memdoc">
14473
14474<p>8 bit fixed point vector saturating subtraction (8 elements) </p>
14475<dl class="params"><dt>Parameters</dt><dd>
14476 <table class="params">
14477 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
14478 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
14479 </table>
14480 </dd>
14481</dl>
14482<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>
14483
14484<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00264">264</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14485
14486<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00988">vtanh_qs8()</a>.</p>
14487<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; <span class="keywordflow">return</span> vqsub_s8(a, b);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</div></div><!-- fragment -->
14488</div>
14489</div>
14490<a class="anchor" id="ab2a6ce3d8239e49c81af1ebc617680b4"></a>
14491<div class="memitem">
14492<div class="memproto">
14493<table class="mlabels">
14494 <tr>
14495 <td class="mlabels-left">
14496 <table class="memname">
14497 <tr>
14498 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vqsubq_qs8 </td>
14499 <td>(</td>
14500 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14501 <td class="paramname"><em>a</em>, </td>
14502 </tr>
14503 <tr>
14504 <td class="paramkey"></td>
14505 <td></td>
14506 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14507 <td class="paramname"><em>b</em>&#160;</td>
14508 </tr>
14509 <tr>
14510 <td></td>
14511 <td>)</td>
14512 <td></td><td></td>
14513 </tr>
14514 </table>
14515 </td>
14516 <td class="mlabels-right">
14517<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14518 </tr>
14519</table>
14520</div><div class="memdoc">
14521
14522<p>8 bit fixed point vector saturating subtraction (16 elements) </p>
14523<dl class="params"><dt>Parameters</dt><dd>
14524 <table class="params">
14525 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
14526 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
14527 </table>
14528 </dd>
14529</dl>
14530<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>
14531
14532<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00269">269</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14533
14534<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00776">vqexpq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00651">vqrecipq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01001">vtanhq_qs8()</a>.</p>
14535<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">return</span> vqsubq_s8(a, b);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;}</div></div><!-- fragment -->
14536</div>
14537</div>
14538<a class="anchor" id="a3d36b520df07b909b027685ddc8e67c0"></a>
14539<div class="memitem">
14540<div class="memproto">
14541<table class="mlabels">
14542 <tr>
14543 <td class="mlabels-left">
14544 <table class="memname">
14545 <tr>
14546 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> arm_compute::vqtaylor_poly_qs8 </td>
14547 <td>(</td>
14548 <td class="paramtype">int8x8_t&#160;</td>
14549 <td class="paramname"><em>a</em>, </td>
14550 </tr>
14551 <tr>
14552 <td class="paramkey"></td>
14553 <td></td>
14554 <td class="paramtype">int&#160;</td>
14555 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14556 </tr>
14557 <tr>
14558 <td></td>
14559 <td>)</td>
14560 <td></td><td></td>
14561 </tr>
14562 </table>
14563 </td>
14564 <td class="mlabels-right">
14565<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14566 </tr>
14567</table>
14568</div><div class="memdoc">
14569
14570<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00703">703</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14571
14572<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#l00311">vqmul_qs8()</a>.</p>
14573<div class="fragment"><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;{</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</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="l00706"></a><span class="lineno"> 706</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="l00707"></a><span class="lineno"> 707</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 ? <a class="code" href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">log_tab_qs8</a>[0] : <a class="code" href="namespacearm__compute.xhtml#a6f13dc0738b4cc6b51ed1e35fe616bd0">exp_tab_qs8</a>[0], islog ? vqadd_s8(shift_value, const_one) : shift_value);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</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 ? <a class="code" href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">log_tab_qs8</a>[1] : exp_tab_qs8[1], shift_value);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> C = vqrshl_s8(islog ? <a class="code" href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">log_tab_qs8</a>[2] : exp_tab_qs8[2], shift_value);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> D = vqrshl_s8(islog ? <a class="code" href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">log_tab_qs8</a>[3] : exp_tab_qs8[3], shift_value);</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</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, D, fixed_point_position), C);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</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, x1, fixed_point_position), B);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</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, x2, fixed_point_position), A);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</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, x3, fixed_point_position);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</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>
14574<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>
14575<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#l00311">NEFixedPoint.inl:311</a></div></div>
14576<div class="ttc" id="namespacearm__compute_xhtml_af6bad6fafc33437f617e27d063aea07d"><div class="ttname"><a href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">arm_compute::log_tab_qs8</a></div><div class="ttdeci">const std::array&lt; qint8x8_t, 4 &gt; log_tab_qs8</div><div class="ttdoc">Logarithm polynomial coefficients for 8 bit fixed point (16 elements) Format is in Q0...</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00053">NEFixedPoint.inl:53</a></div></div>
14577<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>
14578<div class="ttc" id="namespacearm__compute_xhtml_a6f13dc0738b4cc6b51ed1e35fe616bd0"><div class="ttname"><a href="namespacearm__compute.xhtml#a6f13dc0738b4cc6b51ed1e35fe616bd0">arm_compute::exp_tab_qs8</a></div><div class="ttdeci">const std::array&lt; qint8x8_t, 4 &gt; exp_tab_qs8</div><div class="ttdoc">&lt; Exponent polynomial coefficients for 8 bit fixed point (8 elements) Format is in Q0...</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00029">NEFixedPoint.inl:29</a></div></div>
14579</div><!-- fragment -->
14580</div>
14581</div>
14582<a class="anchor" id="aa754195778af2be8fd3c48192eb1e5b6"></a>
14583<div class="memitem">
14584<div class="memproto">
14585<table class="mlabels">
14586 <tr>
14587 <td class="mlabels-left">
14588 <table class="memname">
14589 <tr>
14590 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> arm_compute::vqtaylor_polyq_qs8 </td>
14591 <td>(</td>
14592 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14593 <td class="paramname"><em>a</em>, </td>
14594 </tr>
14595 <tr>
14596 <td class="paramkey"></td>
14597 <td></td>
14598 <td class="paramtype">int&#160;</td>
14599 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14600 </tr>
14601 <tr>
14602 <td></td>
14603 <td>)</td>
14604 <td></td><td></td>
14605 </tr>
14606 </table>
14607 </td>
14608 <td class="mlabels-right">
14609<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14610 </tr>
14611</table>
14612</div><div class="memdoc">
14613
14614<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00735">735</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14615
14616<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#l00328">vqmulq_qs8()</a>.</p>
14617<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; <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="l00738"></a><span class="lineno"> 738</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="l00739"></a><span class="lineno"> 739</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 ? <a class="code" href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">log_tabq_qs8</a>[0] : <a class="code" href="namespacearm__compute.xhtml#a8b29cd747029a70119b7a21b72f56e12">exp_tabq_qs8</a>[0], islog ? vqaddq_s8(shift_value, const_one) : shift_value);</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</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 ? <a class="code" href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">log_tabq_qs8</a>[1] : exp_tabq_qs8[1], shift_value);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> C = vqrshlq_s8(islog ? <a class="code" href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">log_tabq_qs8</a>[2] : exp_tabq_qs8[2], shift_value);</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> D = vqrshlq_s8(islog ? <a class="code" href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">log_tabq_qs8</a>[3] : exp_tabq_qs8[3], shift_value);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</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, D, fixed_point_position), C);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</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, x1, fixed_point_position), B);</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</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, x2, fixed_point_position), A);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</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, x3, fixed_point_position);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</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>
14618<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>
14619<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>
14620<div class="ttc" id="namespacearm__compute_xhtml_a8b29cd747029a70119b7a21b72f56e12"><div class="ttname"><a href="namespacearm__compute.xhtml#a8b29cd747029a70119b7a21b72f56e12">arm_compute::exp_tabq_qs8</a></div><div class="ttdeci">const std::array&lt; qint8x16_t, 4 &gt; exp_tabq_qs8</div><div class="ttdoc">Logarithm polynomial coefficients for 8 bit fixed point (8 elements) Format is in Q0...</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00041">NEFixedPoint.inl:41</a></div></div>
14621<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#l00328">NEFixedPoint.inl:328</a></div></div>
14622<div class="ttc" id="namespacearm__compute_xhtml_a44e335b1163d294dcd6efc8e51565135"><div class="ttname"><a href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">arm_compute::log_tabq_qs8</a></div><div class="ttdeci">const std::array&lt; qint8x16_t, 4 &gt; log_tabq_qs8</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00065">NEFixedPoint.inl:65</a></div></div>
14623</div><!-- fragment -->
14624</div>
14625</div>
14626<a class="anchor" id="aa24b270b0193ad8983dfecd6105c4936"></a>
14627<div class="memitem">
14628<div class="memproto">
14629<table class="mlabels">
14630 <tr>
14631 <td class="mlabels-left">
14632 <table class="memname">
14633 <tr>
14634 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vrecip_qs8 </td>
14635 <td>(</td>
14636 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14637 <td class="paramname"><em>a</em>, </td>
14638 </tr>
14639 <tr>
14640 <td class="paramkey"></td>
14641 <td></td>
14642 <td class="paramtype">int&#160;</td>
14643 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14644 </tr>
14645 <tr>
14646 <td></td>
14647 <td>)</td>
14648 <td></td><td></td>
14649 </tr>
14650 </table>
14651 </td>
14652 <td class="mlabels-right">
14653<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14654 </tr>
14655</table>
14656</div><div class="memdoc">
14657
14658<p>Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </p>
14659<p>(8 elements)</p>
14660<dl class="params"><dt>Parameters</dt><dd>
14661 <table class="params">
14662 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
14663 <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>
14664 </table>
14665 </dd>
14666</dl>
14667<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit reciprocal (1/a). </dd></dl>
14668
14669<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00602">602</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14670
14671<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00274">vmul_qs8()</a>.</p>
14672
14673<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00676">vdiv_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00802">vlog_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00988">vtanh_qs8()</a>.</p>
14674<div class="fragment"><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="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="l00605"></a><span class="lineno"> 605</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(0x7A &gt;&gt; (5 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> const_minus_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="l00607"></a><span class="lineno"> 607</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="l00608"></a><span class="lineno"> 608</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l00610"></a><span class="lineno"> 610</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), vdup_n_s8(fixed_point_position))));</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> temp = vshl_s8(a, shift_value);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> x = vadd_s8(const_48_over_17, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(temp, const_minus_32_over_17, fixed_point_position));</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; uint8x8_t set_one = vcgt_s8(x, const_one);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; x = vbsl_s8(set_one, const_one, x);</div><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; <span class="comment">// Use three iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; x = vadd_s8(x, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, vsub_s8(const_one, <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="l00620"></a><span class="lineno"> 620</span>&#160; x = vadd_s8(x, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, vsub_s8(const_one, <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="l00621"></a><span class="lineno"> 621</span>&#160; x = vadd_s8(x, <a class="code" href="namespacearm__compute.xhtml#afccf1305c480f2338af8925bba6b54cd">vmul_qs8</a>(x, vsub_s8(const_one, <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="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> vshl_s8(x, shift_value);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;}</div><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#l00274">NEFixedPoint.inl:274</a></div></div>
14675<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>
14676</div><!-- fragment -->
14677</div>
14678</div>
14679<a class="anchor" id="abbeb1dc4834fb4e97cf94d702d0e0f91"></a>
14680<div class="memitem">
14681<div class="memproto">
14682<table class="mlabels">
14683 <tr>
14684 <td class="mlabels-left">
14685 <table class="memname">
14686 <tr>
14687 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vrecipq_qs8 </td>
14688 <td>(</td>
14689 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14690 <td class="paramname"><em>a</em>, </td>
14691 </tr>
14692 <tr>
14693 <td class="paramkey"></td>
14694 <td></td>
14695 <td class="paramtype">int&#160;</td>
14696 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
14697 </tr>
14698 <tr>
14699 <td></td>
14700 <td>)</td>
14701 <td></td><td></td>
14702 </tr>
14703 </table>
14704 </td>
14705 <td class="mlabels-right">
14706<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14707 </tr>
14708</table>
14709</div><div class="memdoc">
14710
14711<p>Calculate reciprocal of a fixed point 8bit number using the Newton-Raphson method. </p>
14712<p>(16 elements)</p>
14713<dl class="params"><dt>Parameters</dt><dd>
14714 <table class="params">
14715 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
14716 <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>
14717 </table>
14718 </dd>
14719</dl>
14720<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit reciprocal (1/a). </dd></dl>
14721
14722<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00626">626</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14723
14724<p>References <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00291">vmulq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00259">vsubq_qs8()</a>.</p>
14725
14726<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00681">vdivq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00841">vlogq_qs8()</a>.</p>
14727<div class="fragment"><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="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="l00629"></a><span class="lineno"> 629</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(0x7A &gt;&gt; (5 - fixed_point_position)); <span class="comment">// 2.823</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> const_minus_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="l00631"></a><span class="lineno"> 631</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="l00632"></a><span class="lineno"> 632</span>&#160;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="comment">// Find shift value</span></div><div class="line"><a name="l00634"></a><span class="lineno"> 634</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), vdupq_n_s8(fixed_point_position))));</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> temp = vshlq_s8(a, shift_value);</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; <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_minus_32_over_17, fixed_point_position));</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="comment">// Set initial guess to one if x &gt; 1</span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; uint8x16_t set_one = vcgtq_s8(x, const_one);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; x = vbslq_s8(set_one, const_one, x);</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">// Use three iterations of Newton-Raphson method to get the result</span></div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; x = vaddq_s8(x, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, vsubq_s8(const_one, <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="l00645"></a><span class="lineno"> 645</span>&#160; x = vaddq_s8(x, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, vsubq_s8(const_one, <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="l00646"></a><span class="lineno"> 646</span>&#160; x = vaddq_s8(x, <a class="code" href="namespacearm__compute.xhtml#a031b17d4102856aa4d6bf7ebf83bf0ab">vmulq_qs8</a>(x, vsubq_s8(const_one, <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="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">return</span> vshlq_s8(x, shift_value);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;}</div><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>
14728<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#l00291">NEFixedPoint.inl:291</a></div></div>
14729<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#l00259">NEFixedPoint.inl:259</a></div></div>
14730</div><!-- fragment -->
14731</div>
14732</div>
14733<a class="anchor" id="a1d54a1ef0078902b2334d2fddba74ca6"></a>
14734<div class="memitem">
14735<div class="memproto">
14736<table class="mlabels">
14737 <tr>
14738 <td class="mlabels-left">
14739 <table class="memname">
14740 <tr>
14741 <td class="memname">void vst1_qs16 </td>
14742 <td>(</td>
14743 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
14744 <td class="paramname"><em>addr</em>, </td>
14745 </tr>
14746 <tr>
14747 <td class="paramkey"></td>
14748 <td></td>
14749 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a82c56f0856f56d430393e6a00baee983">qint16x4_t</a>&#160;</td>
14750 <td class="paramname"><em>b</em>&#160;</td>
14751 </tr>
14752 <tr>
14753 <td></td>
14754 <td>)</td>
14755 <td></td><td></td>
14756 </tr>
14757 </table>
14758 </td>
14759 <td class="mlabels-right">
14760<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14761 </tr>
14762</table>
14763</div><div class="memdoc">
14764
14765<p>Store a single 16 bit fixed point vector to memory (4 elements) </p>
14766<dl class="params"><dt>Parameters</dt><dd>
14767 <table class="params">
14768 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address where the 16 bit fixed point vector should be stored </td></tr>
14769 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>16 bit fixed point vector to store </td></tr>
14770 </table>
14771 </dd>
14772</dl>
14773
14774<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00125">125</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14775<div class="fragment"><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; vst1_s16(addr, b);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div></div><!-- fragment -->
14776</div>
14777</div>
14778<a class="anchor" id="a509f3f9d910651d71d9f7dc3b5b3b92a"></a>
14779<div class="memitem">
14780<div class="memproto">
14781<table class="mlabels">
14782 <tr>
14783 <td class="mlabels-left">
14784 <table class="memname">
14785 <tr>
14786 <td class="memname">void vst1_qs8 </td>
14787 <td>(</td>
14788 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
14789 <td class="paramname"><em>addr</em>, </td>
14790 </tr>
14791 <tr>
14792 <td class="paramkey"></td>
14793 <td></td>
14794 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14795 <td class="paramname"><em>b</em>&#160;</td>
14796 </tr>
14797 <tr>
14798 <td></td>
14799 <td>)</td>
14800 <td></td><td></td>
14801 </tr>
14802 </table>
14803 </td>
14804 <td class="mlabels-right">
14805<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14806 </tr>
14807</table>
14808</div><div class="memdoc">
14809
14810<p>Store a single 8 bit fixed point vector to memory (8 elements) </p>
14811<dl class="params"><dt>Parameters</dt><dd>
14812 <table class="params">
14813 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address where the 8 bit fixed point vector should be stored </td></tr>
14814 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>8 bit fixed point vector to store </td></tr>
14815 </table>
14816 </dd>
14817</dl>
14818
14819<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00115">115</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14820<div class="fragment"><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; vst1_s8(addr, b);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div></div><!-- fragment -->
14821</div>
14822</div>
14823<a class="anchor" id="a8bb5f297efd64b941f5022ea3cd7ee9a"></a>
14824<div class="memitem">
14825<div class="memproto">
14826<table class="mlabels">
14827 <tr>
14828 <td class="mlabels-left">
14829 <table class="memname">
14830 <tr>
14831 <td class="memname">void vst1q_qs16 </td>
14832 <td>(</td>
14833 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1521eea74b97de8f2df9304e44179400">qint16_t</a> *&#160;</td>
14834 <td class="paramname"><em>addr</em>, </td>
14835 </tr>
14836 <tr>
14837 <td class="paramkey"></td>
14838 <td></td>
14839 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4e15143176bfacdde8b06f4bb0b67427">qint16x8_t</a>&#160;</td>
14840 <td class="paramname"><em>b</em>&#160;</td>
14841 </tr>
14842 <tr>
14843 <td></td>
14844 <td>)</td>
14845 <td></td><td></td>
14846 </tr>
14847 </table>
14848 </td>
14849 <td class="mlabels-right">
14850<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14851 </tr>
14852</table>
14853</div><div class="memdoc">
14854
14855<p>Store a single 8 bit fixed point vector to memory (16 elements) </p>
14856<dl class="params"><dt>Parameters</dt><dd>
14857 <table class="params">
14858 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address where the 16 bit fixed point vector should be stored </td></tr>
14859 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>16 bit fixed point vector to store </td></tr>
14860 </table>
14861 </dd>
14862</dl>
14863
14864<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00130">130</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14865<div class="fragment"><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; vst1q_s16(addr, b);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div></div><!-- fragment -->
14866</div>
14867</div>
14868<a class="anchor" id="acf4cb0bc89b25c5fac96935d040207f6"></a>
14869<div class="memitem">
14870<div class="memproto">
14871<table class="mlabels">
14872 <tr>
14873 <td class="mlabels-left">
14874 <table class="memname">
14875 <tr>
14876 <td class="memname">void vst1q_qs8 </td>
14877 <td>(</td>
14878 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a4c3f681c30c9398c45bc3cd5dc4f038a">qint8_t</a> *&#160;</td>
14879 <td class="paramname"><em>addr</em>, </td>
14880 </tr>
14881 <tr>
14882 <td class="paramkey"></td>
14883 <td></td>
14884 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14885 <td class="paramname"><em>b</em>&#160;</td>
14886 </tr>
14887 <tr>
14888 <td></td>
14889 <td>)</td>
14890 <td></td><td></td>
14891 </tr>
14892 </table>
14893 </td>
14894 <td class="mlabels-right">
14895<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14896 </tr>
14897</table>
14898</div><div class="memdoc">
14899
14900<p>Store a single 8 bit fixed point vector to memory (16 elements) </p>
14901<dl class="params"><dt>Parameters</dt><dd>
14902 <table class="params">
14903 <tr><td class="paramdir">[in]</td><td class="paramname">addr</td><td>Memory address where the 8 bit fixed point vector should be stored </td></tr>
14904 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>8 bit fixed point vector to store </td></tr>
14905 </table>
14906 </dd>
14907</dl>
14908
14909<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00120">120</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14910<div class="fragment"><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; vst1q_s8(addr, b);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div></div><!-- fragment -->
14911</div>
14912</div>
14913<a class="anchor" id="a90c8ce2712bdb44fd58e3fa8b78bf6fb"></a>
14914<div class="memitem">
14915<div class="memproto">
14916<table class="mlabels">
14917 <tr>
14918 <td class="mlabels-left">
14919 <table class="memname">
14920 <tr>
14921 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vsub_qs8 </td>
14922 <td>(</td>
14923 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14924 <td class="paramname"><em>a</em>, </td>
14925 </tr>
14926 <tr>
14927 <td class="paramkey"></td>
14928 <td></td>
14929 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
14930 <td class="paramname"><em>b</em>&#160;</td>
14931 </tr>
14932 <tr>
14933 <td></td>
14934 <td>)</td>
14935 <td></td><td></td>
14936 </tr>
14937 </table>
14938 </td>
14939 <td class="mlabels-right">
14940<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14941 </tr>
14942</table>
14943</div><div class="memdoc">
14944
14945<p>8 bit fixed point vector subtraction (8 elements) </p>
14946<dl class="params"><dt>Parameters</dt><dd>
14947 <table class="params">
14948 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
14949 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
14950 </table>
14951 </dd>
14952</dl>
14953<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector subtraction </dd></dl>
14954
14955<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00254">254</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
14956<div class="fragment"><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;{</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> vsub_s8(a, b);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;}</div></div><!-- fragment -->
14957</div>
14958</div>
14959<a class="anchor" id="a1adda6690cbca8a996255e311e4762d4"></a>
14960<div class="memitem">
14961<div class="memproto">
14962<table class="mlabels">
14963 <tr>
14964 <td class="mlabels-left">
14965 <table class="memname">
14966 <tr>
14967 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vsubq_qs8 </td>
14968 <td>(</td>
14969 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14970 <td class="paramname"><em>a</em>, </td>
14971 </tr>
14972 <tr>
14973 <td class="paramkey"></td>
14974 <td></td>
14975 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
14976 <td class="paramname"><em>b</em>&#160;</td>
14977 </tr>
14978 <tr>
14979 <td></td>
14980 <td>)</td>
14981 <td></td><td></td>
14982 </tr>
14983 </table>
14984 </td>
14985 <td class="mlabels-right">
14986<span class="mlabels"><span class="mlabel">inline</span></span> </td>
14987 </tr>
14988</table>
14989</div><div class="memdoc">
14990
14991<p>8 bit fixed point vector subtraction (16 elements) </p>
14992<dl class="params"><dt>Parameters</dt><dd>
14993 <table class="params">
14994 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First 8 bit fixed point input vector </td></tr>
14995 <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second 8 bit fixed point input vector</td></tr>
14996 </table>
14997 </dd>
14998</dl>
14999<dl class="section return"><dt>Returns</dt><dd>The result of the 8 bit fixed point vector subtraction </dd></dl>
15000
15001<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00259">259</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
15002
15003<p>Referenced by <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00626">vrecipq_qs8()</a>.</p>
15004<div class="fragment"><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">return</span> vsubq_s8(a, b);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</div></div><!-- fragment -->
15005</div>
15006</div>
15007<a class="anchor" id="a490b00ba8696c15a0d8267cb73fa359b"></a>
15008<div class="memitem">
15009<div class="memproto">
15010<table class="mlabels">
15011 <tr>
15012 <td class="mlabels-left">
15013 <table class="memname">
15014 <tr>
15015 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vtanh_qs8 </td>
15016 <td>(</td>
15017 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
15018 <td class="paramname"><em>a</em>, </td>
15019 </tr>
15020 <tr>
15021 <td class="paramkey"></td>
15022 <td></td>
15023 <td class="paramtype">int&#160;</td>
15024 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15025 </tr>
15026 <tr>
15027 <td></td>
15028 <td>)</td>
15029 <td></td><td></td>
15030 </tr>
15031 </table>
15032 </td>
15033 <td class="mlabels-right">
15034<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15035 </tr>
15036</table>
15037</div><div class="memdoc">
15038
15039<p>Calculate hyperbolic tangent for fixed point 8bit (8 elements) </p>
15040<dl class="params"><dt>Parameters</dt><dd>
15041 <table class="params">
15042 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
15043 <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>
15044 </table>
15045 </dd>
15046</dl>
15047<dl class="section return"><dt>Returns</dt><dd>The calculated Hyperbolic Tangent. </dd></dl>
15048
15049<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00988">988</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
15050
15051<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00930">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00229">vqadd_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00750">vqexp_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00311">vqmul_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00264">vqsub_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00602">vrecip_qs8()</a>.</p>
15052<div class="fragment"><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; <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="l00991"></a><span class="lineno"> 991</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="l00992"></a><span class="lineno"> 992</span>&#160;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <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, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <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="l00995"></a><span class="lineno"> 995</span>&#160; <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="l00996"></a><span class="lineno"> 996</span>&#160; <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#aa24b270b0193ad8983dfecd6105c4936">vrecip_qs8</a>(den, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</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="l00999"></a><span class="lineno"> 999</span>&#160;}</div><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#l00264">NEFixedPoint.inl:264</a></div></div>
15053<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#l00311">NEFixedPoint.inl:311</a></div></div>
15054<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#l00602">NEFixedPoint.inl:602</a></div></div>
15055<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>
15056<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#l00229">NEFixedPoint.inl:229</a></div></div>
15057<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#l00930">FixedPoint.h:930</a></div></div>
15058<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#l00750">NEFixedPoint.inl:750</a></div></div>
15059</div><!-- fragment -->
15060</div>
15061</div>
15062<a class="anchor" id="a7845701adefdb1adafc98ca3c4918c2e"></a>
15063<div class="memitem">
15064<div class="memproto">
15065<table class="mlabels">
15066 <tr>
15067 <td class="mlabels-left">
15068 <table class="memname">
15069 <tr>
15070 <td class="memname">float32x4_t vtanhq_f32 </td>
15071 <td>(</td>
15072 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000015073 <td class="paramname"><em>val</em></td><td>)</td>
15074 <td></td>
15075 </tr>
15076 </table>
15077 </td>
15078 <td class="mlabels-right">
15079<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15080 </tr>
15081</table>
15082</div><div class="memdoc">
15083
15084<p>Calculate hyperbolic tangent. </p>
15085<p>tanh(x) = (e^2x - 1)/(e^2x + 1)</p>
Anthony Barbier46d59272017-05-04 09:15:15 +010015086<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 +000015087<dl class="params"><dt>Parameters</dt><dd>
15088 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010015089 <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 +000015090 </table>
15091 </dd>
15092</dl>
15093<dl class="section return"><dt>Returns</dt><dd>The calculated Hyperbolic Tangent. </dd></dl>
15094
Anthony Barbierdbdab852017-06-23 15:42:00 +010015095<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00122">122</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000015096
Anthony Barbierdbdab852017-06-23 15:42:00 +010015097<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00930">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>, <a class="el" href="_n_e_math_8inl_source.xhtml#l00086">vexpq_f32()</a>, and <a class="el" href="_n_e_math_8inl_source.xhtml#l00066">vinvq_f32()</a>.</p>
15098<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; <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="l00125"></a><span class="lineno"> 125</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="l00126"></a><span class="lineno"> 126</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="l00127"></a><span class="lineno"> 127</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="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; float32x4_t x = vminq_f32(vmaxq_f32(val, CONST_MIN_TANH), CONST_MAX_TANH);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</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="l00131"></a><span class="lineno"> 131</span>&#160; float32x4_t num = vsubq_f32(exp2x, CONST_1);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; float32x4_t den = vaddq_f32(exp2x, CONST_1);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</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="l00134"></a><span class="lineno"> 134</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="l00135"></a><span class="lineno"> 135</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#l00086">NEMath.inl:86</a></div></div>
15099<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#l00066">NEMath.inl:66</a></div></div>
15100<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#l00930">FixedPoint.h:930</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +000015101</div><!-- fragment -->
15102</div>
15103</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015104<a class="anchor" id="adba961ae41ea74a338dab569938e6312"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +000015105<div class="memitem">
15106<div class="memproto">
15107<table class="mlabels">
15108 <tr>
15109 <td class="mlabels-left">
15110 <table class="memname">
15111 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015112 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vtanhq_qs8 </td>
Anthony Barbier871448e2017-03-24 14:54:29 +000015113 <td>(</td>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015114 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
15115 <td class="paramname"><em>a</em>, </td>
15116 </tr>
15117 <tr>
15118 <td class="paramkey"></td>
15119 <td></td>
15120 <td class="paramtype">int&#160;</td>
15121 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15122 </tr>
15123 <tr>
15124 <td></td>
15125 <td>)</td>
15126 <td></td><td></td>
15127 </tr>
15128 </table>
15129 </td>
15130 <td class="mlabels-right">
15131<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15132 </tr>
15133</table>
15134</div><div class="memdoc">
15135
15136<p>Calculate hyperbolic tangent for fixed point 8bit (16 elements) </p>
15137<dl class="params"><dt>Parameters</dt><dd>
15138 <table class="params">
15139 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
15140 <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>
15141 </table>
15142 </dd>
15143</dl>
15144<dl class="section return"><dt>Returns</dt><dd>The calculated Hyperbolic Tangent. </dd></dl>
15145
15146<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l01001">1001</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
15147
15148<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00930">arm_compute::test::fixed_point_arithmetic::detail::tanh()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00234">vqaddq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00776">vqexpq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00328">vqmulq_qs8()</a>, <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00651">vqrecipq_qs8()</a>, and <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00269">vqsubq_qs8()</a>.</p>
15149<div class="fragment"><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;{</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</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="l01004"></a><span class="lineno"> 1004</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="l01005"></a><span class="lineno"> 1005</span>&#160;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <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, fixed_point_position), fixed_point_position);</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <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="l01008"></a><span class="lineno"> 1008</span>&#160; <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="l01009"></a><span class="lineno"> 1009</span>&#160; <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="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</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="l01012"></a><span class="lineno"> 1012</span>&#160;}</div><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>
15150<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#l00234">NEFixedPoint.inl:234</a></div></div>
15151<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#l00776">NEFixedPoint.inl:776</a></div></div>
15152<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#l00328">NEFixedPoint.inl:328</a></div></div>
15153<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#l00930">FixedPoint.h:930</a></div></div>
15154<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#l00269">NEFixedPoint.inl:269</a></div></div>
15155<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#l00651">NEFixedPoint.inl:651</a></div></div>
15156</div><!-- fragment -->
15157</div>
15158</div>
15159<a class="anchor" id="a91b74be928419cd95068ccc9c6f1cd83"></a>
15160<div class="memitem">
15161<div class="memproto">
15162<table class="mlabels">
15163 <tr>
15164 <td class="mlabels-left">
15165 <table class="memname">
15166 <tr>
15167 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> vtaylor_poly_qs8 </td>
15168 <td>(</td>
15169 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>&#160;</td>
15170 <td class="paramname"><em>a</em>, </td>
15171 </tr>
15172 <tr>
15173 <td class="paramkey"></td>
15174 <td></td>
15175 <td class="paramtype">int&#160;</td>
15176 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15177 </tr>
15178 <tr>
15179 <td></td>
15180 <td>)</td>
15181 <td></td><td></td>
15182 </tr>
15183 </table>
15184 </td>
15185 <td class="mlabels-right">
15186<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15187 </tr>
15188</table>
15189</div><div class="memdoc">
15190
15191<p>Perform a 4th degree polynomial approximation. </p>
15192<p>(8 elements)</p>
15193<dl class="params"><dt>Parameters</dt><dd>
15194 <table class="params">
15195 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
15196 <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>
15197 </table>
15198 </dd>
15199</dl>
15200<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit taylor approximation. </dd></dl>
15201
15202<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00687">687</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
15203
15204<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#l00274">vmul_qs8()</a>.</p>
15205<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; <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="l00690"></a><span class="lineno"> 690</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="l00691"></a><span class="lineno"> 691</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 ? <a class="code" href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">log_tab_qs8</a>[0] : <a class="code" href="namespacearm__compute.xhtml#a6f13dc0738b4cc6b51ed1e35fe616bd0">exp_tab_qs8</a>[0], islog ? vadd_s8(shift_value, const_one) : shift_value);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</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 ? <a class="code" href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">log_tab_qs8</a>[1] : exp_tab_qs8[1], shift_value);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> C = vrshl_s8(islog ? <a class="code" href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">log_tab_qs8</a>[2] : exp_tab_qs8[2], shift_value);</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a> D = vrshl_s8(islog ? <a class="code" href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">log_tab_qs8</a>[3] : exp_tab_qs8[3], shift_value);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</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, D, fixed_point_position), C);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</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, x1, fixed_point_position), B);</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</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, x2, fixed_point_position), A);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</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, x3, fixed_point_position);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</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>
15206<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>
15207<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#l00274">NEFixedPoint.inl:274</a></div></div>
15208<div class="ttc" id="namespacearm__compute_xhtml_af6bad6fafc33437f617e27d063aea07d"><div class="ttname"><a href="namespacearm__compute.xhtml#af6bad6fafc33437f617e27d063aea07d">arm_compute::log_tab_qs8</a></div><div class="ttdeci">const std::array&lt; qint8x8_t, 4 &gt; log_tab_qs8</div><div class="ttdoc">Logarithm polynomial coefficients for 8 bit fixed point (16 elements) Format is in Q0...</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00053">NEFixedPoint.inl:53</a></div></div>
15209<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>
15210<div class="ttc" id="namespacearm__compute_xhtml_a6f13dc0738b4cc6b51ed1e35fe616bd0"><div class="ttname"><a href="namespacearm__compute.xhtml#a6f13dc0738b4cc6b51ed1e35fe616bd0">arm_compute::exp_tab_qs8</a></div><div class="ttdeci">const std::array&lt; qint8x8_t, 4 &gt; exp_tab_qs8</div><div class="ttdoc">&lt; Exponent polynomial coefficients for 8 bit fixed point (8 elements) Format is in Q0...</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00029">NEFixedPoint.inl:29</a></div></div>
15211</div><!-- fragment -->
15212</div>
15213</div>
15214<a class="anchor" id="a4fa76a98dce5ed1b655ff840f2ce6e57"></a>
15215<div class="memitem">
15216<div class="memproto">
15217<table class="mlabels">
15218 <tr>
15219 <td class="mlabels-left">
15220 <table class="memname">
15221 <tr>
15222 <td class="memname">float32x4_t vtaylor_polyq_f32 </td>
15223 <td>(</td>
15224 <td class="paramtype">float32x4_t&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +000015225 <td class="paramname"><em>x</em>, </td>
15226 </tr>
15227 <tr>
15228 <td class="paramkey"></td>
15229 <td></td>
15230 <td class="paramtype">const std::array&lt; float32x4_t, 8 &gt; &amp;&#160;</td>
15231 <td class="paramname"><em>coeffs</em>&#160;</td>
15232 </tr>
15233 <tr>
15234 <td></td>
15235 <td>)</td>
15236 <td></td><td></td>
15237 </tr>
15238 </table>
15239 </td>
15240 <td class="mlabels-right">
15241<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15242 </tr>
15243</table>
15244</div><div class="memdoc">
15245
15246<p>Perform a 7th degree polynomial approximation using Estrin's method. </p>
15247<dl class="params"><dt>Parameters</dt><dd>
15248 <table class="params">
Anthony Barbierdbdab852017-06-23 15:42:00 +010015249 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input vector value in F32 format. </td></tr>
15250 <tr><td class="paramdir">[in]</td><td class="paramname">coeffs</td><td>Polynomial coefficients table.</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +000015251 </table>
15252 </dd>
15253</dl>
15254<dl class="section return"><dt>Returns</dt><dd>The calculated approximation. </dd></dl>
15255
Anthony Barbierdbdab852017-06-23 15:42:00 +010015256<p>Definition at line <a class="el" href="_n_e_math_8inl_source.xhtml#l00074">74</a> of file <a class="el" href="_n_e_math_8inl_source.xhtml">NEMath.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000015257
15258<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa7fc56270e7a70fa81a5935b72eacbe29">A</a>, and <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">B</a>.</p>
15259
Anthony Barbierdbdab852017-06-23 15:42:00 +010015260<p>Referenced by <a class="el" href="_n_e_math_8inl_source.xhtml#l00086">vexpq_f32()</a>, and <a class="el" href="_n_e_math_8inl_source.xhtml#l00104">vlogq_f32()</a>.</p>
15261<div class="fragment"><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</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="l00077"></a><span class="lineno"> 77</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="l00078"></a><span class="lineno"> 78</span>&#160; float32x4_t C = vmlaq_f32(coeffs[1], coeffs[5], x);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; float32x4_t D = vmlaq_f32(coeffs[3], coeffs[7], x);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; float32x4_t x2 = vmulq_f32(x, x);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; float32x4_t x4 = vmulq_f32(x2, x2);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; float32x4_t res = vmlaq_f32(vmlaq_f32(A, B, x2), vmlaq_f32(C, D, x2), x4);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</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 +000015262<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>
15263</div><!-- fragment -->
15264</div>
15265</div>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015266<a class="anchor" id="a9b9a80aab8862e344ef91591a0e6e199"></a>
15267<div class="memitem">
15268<div class="memproto">
15269<table class="mlabels">
15270 <tr>
15271 <td class="mlabels-left">
15272 <table class="memname">
15273 <tr>
15274 <td class="memname"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> vtaylor_polyq_qs8 </td>
15275 <td>(</td>
15276 <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>&#160;</td>
15277 <td class="paramname"><em>a</em>, </td>
15278 </tr>
15279 <tr>
15280 <td class="paramkey"></td>
15281 <td></td>
15282 <td class="paramtype">int&#160;</td>
15283 <td class="paramname"><em>fixed_point_position</em>&#160;</td>
15284 </tr>
15285 <tr>
15286 <td></td>
15287 <td>)</td>
15288 <td></td><td></td>
15289 </tr>
15290 </table>
15291 </td>
15292 <td class="mlabels-right">
15293<span class="mlabels"><span class="mlabel">inline</span></span> </td>
15294 </tr>
15295</table>
15296</div><div class="memdoc">
15297
15298<p>Perform a 4th degree polynomial approximation. </p>
15299<p>(16 elements)</p>
15300<dl class="params"><dt>Parameters</dt><dd>
15301 <table class="params">
15302 <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>8bit fixed point input vector </td></tr>
15303 <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>
15304 </table>
15305 </dd>
15306</dl>
15307<dl class="section return"><dt>Returns</dt><dd>The result of the 8bit taylor approximation. </dd></dl>
15308
15309<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00719">719</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
15310
15311<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#l00291">vmulq_qs8()</a>.</p>
15312<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; <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="l00722"></a><span class="lineno"> 722</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="l00723"></a><span class="lineno"> 723</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 ? <a class="code" href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">log_tabq_qs8</a>[0] : <a class="code" href="namespacearm__compute.xhtml#a8b29cd747029a70119b7a21b72f56e12">exp_tabq_qs8</a>[0], islog ? vaddq_s8(shift_value, const_one) : shift_value);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</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 ? <a class="code" href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">log_tabq_qs8</a>[1] : exp_tabq_qs8[1], shift_value);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> C = vrshlq_s8(islog ? <a class="code" href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">log_tabq_qs8</a>[2] : exp_tabq_qs8[2], shift_value);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a> D = vrshlq_s8(islog ? <a class="code" href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">log_tabq_qs8</a>[3] : exp_tabq_qs8[3], shift_value);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</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, D, fixed_point_position), C);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</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, x1, fixed_point_position), B);</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</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, x2, fixed_point_position), A);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</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, x3, fixed_point_position);</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</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>
15313<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>
15314<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>
15315<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#l00291">NEFixedPoint.inl:291</a></div></div>
15316<div class="ttc" id="namespacearm__compute_xhtml_a8b29cd747029a70119b7a21b72f56e12"><div class="ttname"><a href="namespacearm__compute.xhtml#a8b29cd747029a70119b7a21b72f56e12">arm_compute::exp_tabq_qs8</a></div><div class="ttdeci">const std::array&lt; qint8x16_t, 4 &gt; exp_tabq_qs8</div><div class="ttdoc">Logarithm polynomial coefficients for 8 bit fixed point (8 elements) Format is in Q0...</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00041">NEFixedPoint.inl:41</a></div></div>
15317<div class="ttc" id="namespacearm__compute_xhtml_a44e335b1163d294dcd6efc8e51565135"><div class="ttname"><a href="namespacearm__compute.xhtml#a44e335b1163d294dcd6efc8e51565135">arm_compute::log_tabq_qs8</a></div><div class="ttdeci">const std::array&lt; qint8x16_t, 4 &gt; log_tabq_qs8</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_fixed_point_8inl_source.xhtml#l00065">NEFixedPoint.inl:65</a></div></div>
15318</div><!-- fragment -->
15319</div>
15320</div>
Anthony Barbier871448e2017-03-24 14:54:29 +000015321<h2 class="groupheader">Variable Documentation</h2>
15322<a class="anchor" id="a3fed059965fe44cbe7ed4091d6b63acf"></a>
15323<div class="memitem">
15324<div class="memproto">
15325 <table class="memname">
15326 <tr>
15327 <td class="memname">constexpr uint8_t CONSTANT_BORDER_VALUE = 199</td>
15328 </tr>
15329 </table>
15330</div><div class="memdoc">
15331
15332<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>
15333
Anthony Barbierdbdab852017-06-23 15:42:00 +010015334<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00080">80</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 +000015335
15336</div>
15337</div>
15338<a class="anchor" id="a869945609357fa552d94eb16f7aad4e9"></a>
15339<div class="memitem">
15340<div class="memproto">
15341 <table class="memname">
15342 <tr>
15343 <td class="memname">const std::array&lt;float32x4_t, 8&gt; exp_tab</td>
15344 </tr>
15345 </table>
15346</div><div class="memdoc">
15347<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 +010015348<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>
15349
15350</div>
15351</div>
15352<a class="anchor" id="a6f13dc0738b4cc6b51ed1e35fe616bd0"></a>
15353<div class="memitem">
15354<div class="memproto">
15355 <table class="memname">
15356 <tr>
15357 <td class="memname">const std::array&lt;<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>, 4&gt; exp_tab_qs8</td>
15358 </tr>
15359 </table>
15360</div><div class="memdoc">
15361<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> {</div><div class="line"> vdup_n_s8(0x7F), </div><div class="line"> vdup_n_s8(0x3F), </div><div class="line"> vdup_n_s8(0x16), </div><div class="line"> vdup_n_s8(0x05), </div><div class="line"> }</div><div class="line">}</div></div><!-- fragment -->
15362<p>&lt; Exponent polynomial coefficients for 8 bit fixed point (8 elements) Format is in Q0.7 for all elements </p>
15363<p>Exponent polynomial coefficients for 8 bit fixed point (16 elements) Format is in Q0.7 for all elements </p>
15364
15365<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00029">29</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
15366
15367</div>
15368</div>
15369<a class="anchor" id="a8b29cd747029a70119b7a21b72f56e12"></a>
15370<div class="memitem">
15371<div class="memproto">
15372 <table class="memname">
15373 <tr>
15374 <td class="memname">const std::array&lt;<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>, 4&gt; exp_tabq_qs8</td>
15375 </tr>
15376 </table>
15377</div><div class="memdoc">
15378<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> {</div><div class="line"> vdupq_n_s8(0x7F), </div><div class="line"> vdupq_n_s8(0x3F), </div><div class="line"> vdupq_n_s8(0x16), </div><div class="line"> vdupq_n_s8(0x05), </div><div class="line"> }</div><div class="line">}</div></div><!-- fragment -->
15379<p>Logarithm polynomial coefficients for 8 bit fixed point (8 elements) Format is in Q0.7 for all elements except the first one which is in Q1.6. </p>
15380
15381<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00041">41</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000015382
15383</div>
15384</div>
15385<a class="anchor" id="a48fb9cf404e8f7043235bf14105c9793"></a>
15386<div class="memitem">
15387<div class="memproto">
15388 <table class="memname">
15389 <tr>
15390 <td class="memname">const std::array&lt;float32x4_t, 8&gt; log_tab</td>
15391 </tr>
15392 </table>
15393</div><div class="memdoc">
15394<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 +010015395<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>
15396
15397</div>
15398</div>
15399<a class="anchor" id="af6bad6fafc33437f617e27d063aea07d"></a>
15400<div class="memitem">
15401<div class="memproto">
15402 <table class="memname">
15403 <tr>
15404 <td class="memname">const std::array&lt;<a class="el" href="namespacearm__compute.xhtml#a16a1bee14f1db073f75caa76dacf5078">qint8x8_t</a>, 4&gt; log_tab_qs8</td>
15405 </tr>
15406 </table>
15407</div><div class="memdoc">
15408<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> {</div><div class="line"> vdup_n_s8(0x5C), </div><div class="line"> vdup_n_s8(-0x56), </div><div class="line"> vdup_n_s8(0x29), </div><div class="line"> vdup_n_s8(-0x0A), </div><div class="line"> }</div><div class="line">}</div></div><!-- fragment -->
15409<p>Logarithm polynomial coefficients for 8 bit fixed point (16 elements) Format is in Q0.7 for all elements except the first one which is in Q1.6. </p>
15410
15411<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00053">53</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
15412
15413</div>
15414</div>
15415<a class="anchor" id="a44e335b1163d294dcd6efc8e51565135"></a>
15416<div class="memitem">
15417<div class="memproto">
15418 <table class="memname">
15419 <tr>
15420 <td class="memname">const std::array&lt;<a class="el" href="namespacearm__compute.xhtml#a5b99ed49abd6b7bf13dafdd17bcef855">qint8x16_t</a>, 4&gt; log_tabq_qs8</td>
15421 </tr>
15422 </table>
15423</div><div class="memdoc">
15424<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> {</div><div class="line"> vdupq_n_s8(0x5C), </div><div class="line"> vdupq_n_s8(-0x56), </div><div class="line"> vdupq_n_s8(0x29), </div><div class="line"> vdupq_n_s8(-0x0A), </div><div class="line"> }</div><div class="line">}</div></div><!-- fragment -->
15425<p>Definition at line <a class="el" href="_n_e_fixed_point_8inl_source.xhtml#l00065">65</a> of file <a class="el" href="_n_e_fixed_point_8inl_source.xhtml">NEFixedPoint.inl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +000015426
15427</div>
15428</div>
15429<a class="anchor" id="a769d636d7a3c7c84579a5f477a18bc9d"></a>
15430<div class="memitem">
15431<div class="memproto">
15432 <table class="memname">
15433 <tr>
15434 <td class="memname">constexpr size_t MAX_DIMS = 6</td>
15435 </tr>
15436 </table>
15437</div><div class="memdoc">
15438
15439<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>
15440
15441</div>
15442</div>
15443<a class="anchor" id="af9876aedd664cac0ddeacddb40cb71cd"></a>
15444<div class="memitem">
15445<div class="memproto">
15446 <table class="memname">
15447 <tr>
15448 <td class="memname">constexpr float SCALE_PYRAMID_HALF = 0.5f</td>
15449 </tr>
15450 </table>
15451</div><div class="memdoc">
15452
Anthony Barbierdbdab852017-06-23 15:42:00 +010015453<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00083">83</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 +000015454
15455</div>
15456</div>
15457<a class="anchor" id="a2ebcd5423d5fba468e7debd2e1aabe91"></a>
15458<div class="memitem">
15459<div class="memproto">
15460 <table class="memname">
15461 <tr>
15462 <td class="memname">constexpr float SCALE_PYRAMID_ORB = 8.408964152537146130583778358414e-01</td>
15463 </tr>
15464 </table>
15465</div><div class="memdoc">
15466
Anthony Barbierdbdab852017-06-23 15:42:00 +010015467<p>Definition at line <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00086">86</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 +000015468
15469</div>
15470</div>
15471</div><!-- contents -->
15472</div><!-- doc-content -->
15473<!-- start footer part -->
15474<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
15475 <ul>
15476 <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li>
Anthony Barbierdbdab852017-06-23 15:42:00 +010015477 <li class="footer">Generated on Fri Jun 23 2017 15:44:34 for Compute Library by
Anthony Barbier871448e2017-03-24 14:54:29 +000015478 <a href="http://www.doxygen.org/index.html">
15479 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
15480 </ul>
15481</div>
15482</body>
15483</html>