blob: 18a39f1b6280d0c8f86f8ba3ad6405bd45bd4303 [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"/>
Kaizen8938bd32017-09-28 14:38:23 +01007<meta name="generator" content="Doxygen 1.8.6"/>
Anthony Barbier871448e2017-03-24 14:54:29 +00008<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
Anthony Barbierdbdab852017-06-23 15:42:00 +01009<title>Compute Library: src/core/CL/cl_kernels/normalization_layer.cl File Reference</title>
Anthony Barbier871448e2017-03-24 14:54:29 +000010<link href="tabs.css" rel="stylesheet" type="text/css"/>
11<script type="text/javascript" src="jquery.js"></script>
12<script type="text/javascript" src="dynsections.js"></script>
13<link href="navtree.css" rel="stylesheet" type="text/css"/>
14<script type="text/javascript" src="resize.js"></script>
Anthony Barbier871448e2017-03-24 14:54:29 +000015<script type="text/javascript" src="navtree.js"></script>
16<script type="text/javascript">
17 $(document).ready(initResizable);
18 $(window).load(resizeHeight);
19</script>
20<link href="search/search.css" rel="stylesheet" type="text/css"/>
Anthony Barbier871448e2017-03-24 14:54:29 +000021<script type="text/javascript" src="search/search.js"></script>
22<script type="text/javascript">
Kaizen8938bd32017-09-28 14:38:23 +010023 $(document).ready(function() { searchBox.OnSelectItem(0); });
Anthony Barbier871448e2017-03-24 14:54:29 +000024</script>
25<script type="text/x-mathjax-config">
26 MathJax.Hub.Config({
27 extensions: ["tex2jax.js"],
28 jax: ["input/TeX","output/HTML-CSS"],
29});
Kaizen8938bd32017-09-28 14:38:23 +010030</script><script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
Anthony Barbier871448e2017-03-24 14:54:29 +000031<link href="doxygen.css" rel="stylesheet" type="text/css" />
32</head>
33<body>
34<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
35<div id="titlearea">
36<table cellspacing="0" cellpadding="0">
37 <tbody>
38 <tr style="height: 56px;">
39 <td style="padding-left: 0.5em;">
Anthony Barbierdbdab852017-06-23 15:42:00 +010040 <div id="projectname">Compute Library
Kaizen8938bd32017-09-28 14:38:23 +010041 &#160;<span id="projectnumber">17.09</span>
Anthony Barbier871448e2017-03-24 14:54:29 +000042 </div>
43 </td>
44 </tr>
45 </tbody>
46</table>
47</div>
48<!-- end header part -->
Kaizen8938bd32017-09-28 14:38:23 +010049<!-- Generated by Doxygen 1.8.6 -->
Anthony Barbier871448e2017-03-24 14:54:29 +000050<script type="text/javascript">
51var searchBox = new SearchBox("searchBox", "search",false,'Search');
52</script>
53 <div id="navrow1" class="tabs">
54 <ul class="tablist">
55 <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
Anthony Barbierdbdab852017-06-23 15:42:00 +010056 <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
Anthony Barbier871448e2017-03-24 14:54:29 +000057 <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
58 <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
59 <li class="current"><a href="files.xhtml"><span>Files</span></a></li>
60 <li>
61 <div id="MSearchBox" class="MSearchBoxInactive">
62 <span class="left">
63 <img id="MSearchSelect" src="search/mag_sel.png"
64 onmouseover="return searchBox.OnSearchSelectShow()"
65 onmouseout="return searchBox.OnSearchSelectHide()"
66 alt=""/>
67 <input type="text" id="MSearchField" value="Search" accesskey="S"
68 onfocus="searchBox.OnSearchFieldFocus(true)"
69 onblur="searchBox.OnSearchFieldFocus(false)"
70 onkeyup="searchBox.OnSearchFieldChange(event)"/>
71 </span><span class="right">
72 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
73 </span>
74 </div>
75 </li>
76 </ul>
77 </div>
78 <div id="navrow2" class="tabs2">
79 <ul class="tablist">
80 <li><a href="files.xhtml"><span>File&#160;List</span></a></li>
81 <li><a href="globals.xhtml"><span>Globals</span></a></li>
82 </ul>
83 </div>
84</div><!-- top -->
85<div id="side-nav" class="ui-resizable side-nav-resizable">
86 <div id="nav-tree">
87 <div id="nav-tree-contents">
88 <div id="nav-sync" class="sync"></div>
89 </div>
90 </div>
91 <div id="splitbar" style="-moz-user-select:none;"
92 class="ui-resizable-handle">
93 </div>
94</div>
95<script type="text/javascript">
96$(document).ready(function(){initNavTree('normalization__layer_8cl.xhtml','');});
97</script>
98<div id="doc-content">
99<!-- window showing the filter options -->
100<div id="MSearchSelectWindow"
101 onmouseover="return searchBox.OnSearchSelectShow()"
102 onmouseout="return searchBox.OnSearchSelectHide()"
103 onkeydown="return searchBox.OnSearchSelectKey(event)">
Kaizen8938bd32017-09-28 14:38:23 +0100104<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000105
106<!-- iframe showing the search results (closed by default) -->
107<div id="MSearchResultsWindow">
108<iframe src="javascript:void(0)" frameborder="0"
109 name="MSearchResults" id="MSearchResults">
110</iframe>
111</div>
112
113<div class="header">
114 <div class="summary">
Kaizen8938bd32017-09-28 14:38:23 +0100115<a href="#define-members">Macros</a> &#124;
Anthony Barbier871448e2017-03-24 14:54:29 +0000116<a href="#func-members">Functions</a> </div>
117 <div class="headertitle">
118<div class="title">normalization_layer.cl File Reference</div> </div>
119</div><!--header-->
120<div class="contents">
Kaizen8938bd32017-09-28 14:38:23 +0100121<div class="textblock"><code>#include &quot;<a class="el" href="helpers_8h_source.xhtml">helpers.h</a>&quot;</code><br/>
Anthony Barbier871448e2017-03-24 14:54:29 +0000122</div>
123<p><a href="normalization__layer_8cl_source.xhtml">Go to the source code of this file.</a></p>
124<table class="memberdecls">
Kaizen8938bd32017-09-28 14:38:23 +0100125<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
126Macros</h2></td></tr>
127<tr class="memitem:ac0bf948069436897cf005ea45ac73a4f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="normalization__layer_8cl.xhtml#ac0bf948069436897cf005ea45ac73a4f">MUL_OP</a>(x, y)&#160;&#160;&#160;((x) * (y))</td></tr>
128<tr class="separator:ac0bf948069436897cf005ea45ac73a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:a334426d638df3b4108c366e240cf5504"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="normalization__layer_8cl.xhtml#a334426d638df3b4108c366e240cf5504">ADD_OP</a>(x, y)&#160;&#160;&#160;((x) + (y))</td></tr>
130<tr class="separator:a334426d638df3b4108c366e240cf5504"><td class="memSeparator" colspan="2">&#160;</td></tr>
131<tr class="memitem:a5db17889d824975fefb2ce2f4690637f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="normalization__layer_8cl.xhtml#a5db17889d824975fefb2ce2f4690637f">DIV_OP</a>(x, y)&#160;&#160;&#160;((x) / (y))</td></tr>
132<tr class="separator:a5db17889d824975fefb2ce2f4690637f"><td class="memSeparator" colspan="2">&#160;</td></tr>
133<tr class="memitem:a09724da1a9e5ba54260905829ec27db4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="normalization__layer_8cl.xhtml#a09724da1a9e5ba54260905829ec27db4">POW_OP</a>(x, y)&#160;&#160;&#160;pow((x), (y))</td></tr>
134<tr class="separator:a09724da1a9e5ba54260905829ec27db4"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<tr class="memitem:a107d847044e677b01e9bd3d5251b39d9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="normalization__layer_8cl.xhtml#a107d847044e677b01e9bd3d5251b39d9">SQCVT_SAT</a>(a)&#160;&#160;&#160;(a)</td></tr>
136<tr class="separator:a107d847044e677b01e9bd3d5251b39d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:a10a9bf1a9fce27664d5f91844ff3f691"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="normalization__layer_8cl.xhtml#a10a9bf1a9fce27664d5f91844ff3f691">LOAD_OP</a>(<a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, ptr)&#160;&#160;&#160;vload4(<a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, ptr)</td></tr>
138<tr class="separator:a10a9bf1a9fce27664d5f91844ff3f691"><td class="memSeparator" colspan="2">&#160;</td></tr>
139<tr class="memitem:ac59caf44b60378c02032aab994ad5ac1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="normalization__layer_8cl.xhtml#ac59caf44b60378c02032aab994ad5ac1">STORE_OP</a>(data, <a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, ptr)&#160;&#160;&#160;vstore4(data, <a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, ptr)</td></tr>
140<tr class="separator:ac59caf44b60378c02032aab994ad5ac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
141</table><table class="memberdecls">
Anthony Barbier871448e2017-03-24 14:54:29 +0000142<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
143Functions</h2></td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100144<tr class="memitem:a7db22b7ddf8f433e02ede3bd9c56d9d9"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="normalization__layer_8cl.xhtml#a7db22b7ddf8f433e02ede3bd9c56d9d9">normalization_layer_cross_map</a> (__global uchar *input_ptr, uint input_stride_x, uint input_step_x, uint input_stride_y, uint input_step_y, uint input_stride_z, uint input_step_z, uint input_offset_first_element_in_bytes, __global uchar *output_ptr, uint output_stride_x, uint output_step_x, uint output_stride_y, uint output_step_y, uint output_stride_z, uint output_step_z, uint output_offset_first_element_in_bytes)</td></tr>
145<tr class="memdesc:a7db22b7ddf8f433e02ede3bd9c56d9d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply cross map normalization. <a href="#a7db22b7ddf8f433e02ede3bd9c56d9d9">More...</a><br/></td></tr>
146<tr class="separator:a7db22b7ddf8f433e02ede3bd9c56d9d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
147<tr class="memitem:a343b43eb8e2bf7077793c801642c7d65"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="normalization__layer_8cl.xhtml#a343b43eb8e2bf7077793c801642c7d65">normalization_layer_in_map_1D</a> (__global uchar *input_ptr, uint input_stride_x, uint input_step_x, uint input_stride_y, uint input_step_y, uint input_stride_z, uint input_step_z, uint input_offset_first_element_in_bytes, __global uchar *output_ptr, uint output_stride_x, uint output_step_x, uint output_stride_y, uint output_step_y, uint output_stride_z, uint output_step_z, uint output_offset_first_element_in_bytes)</td></tr>
148<tr class="memdesc:a343b43eb8e2bf7077793c801642c7d65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply in map normalization. <a href="#a343b43eb8e2bf7077793c801642c7d65">More...</a><br/></td></tr>
149<tr class="separator:a343b43eb8e2bf7077793c801642c7d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000150</table>
Kaizen8938bd32017-09-28 14:38:23 +0100151<h2 class="groupheader">Macro Definition Documentation</h2>
152<a class="anchor" id="a334426d638df3b4108c366e240cf5504"></a>
153<div class="memitem">
154<div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">#define ADD_OP</td>
158 <td>(</td>
159 <td class="paramtype">&#160;</td>
160 <td class="paramname">x, </td>
161 </tr>
162 <tr>
163 <td class="paramkey"></td>
164 <td></td>
165 <td class="paramtype">&#160;</td>
166 <td class="paramname">y&#160;</td>
167 </tr>
168 <tr>
169 <td></td>
170 <td>)</td>
171 <td></td><td>&#160;&#160;&#160;((x) + (y))</td>
172 </tr>
173 </table>
174</div><div class="memdoc">
175
176<p>Definition at line <a class="el" href="normalization__layer_8cl_source.xhtml#l00043">43</a> of file <a class="el" href="normalization__layer_8cl_source.xhtml">normalization_layer.cl</a>.</p>
177
178<p>Referenced by <a class="el" href="normalization__layer_8cl_source.xhtml#l00079">normalization_layer_cross_map()</a>, and <a class="el" href="normalization__layer_8cl_source.xhtml#l00140">normalization_layer_in_map_1D()</a>.</p>
179
180</div>
181</div>
182<a class="anchor" id="a5db17889d824975fefb2ce2f4690637f"></a>
183<div class="memitem">
184<div class="memproto">
185 <table class="memname">
186 <tr>
187 <td class="memname">#define DIV_OP</td>
188 <td>(</td>
189 <td class="paramtype">&#160;</td>
190 <td class="paramname">x, </td>
191 </tr>
192 <tr>
193 <td class="paramkey"></td>
194 <td></td>
195 <td class="paramtype">&#160;</td>
196 <td class="paramname">y&#160;</td>
197 </tr>
198 <tr>
199 <td></td>
200 <td>)</td>
201 <td></td><td>&#160;&#160;&#160;((x) / (y))</td>
202 </tr>
203 </table>
204</div><div class="memdoc">
205
206<p>Definition at line <a class="el" href="normalization__layer_8cl_source.xhtml#l00044">44</a> of file <a class="el" href="normalization__layer_8cl_source.xhtml">normalization_layer.cl</a>.</p>
207
208<p>Referenced by <a class="el" href="normalization__layer_8cl_source.xhtml#l00079">normalization_layer_cross_map()</a>, and <a class="el" href="normalization__layer_8cl_source.xhtml#l00140">normalization_layer_in_map_1D()</a>.</p>
209
210</div>
211</div>
212<a class="anchor" id="a10a9bf1a9fce27664d5f91844ff3f691"></a>
213<div class="memitem">
214<div class="memproto">
215 <table class="memname">
216 <tr>
217 <td class="memname">#define LOAD_OP</td>
218 <td>(</td>
219 <td class="paramtype">&#160;</td>
220 <td class="paramname"><a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, </td>
221 </tr>
222 <tr>
223 <td class="paramkey"></td>
224 <td></td>
225 <td class="paramtype">&#160;</td>
226 <td class="paramname">ptr&#160;</td>
227 </tr>
228 <tr>
229 <td></td>
230 <td>)</td>
231 <td></td><td>&#160;&#160;&#160;vload4(<a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, ptr)</td>
232 </tr>
233 </table>
234</div><div class="memdoc">
235
236<p>Definition at line <a class="el" href="normalization__layer_8cl_source.xhtml#l00048">48</a> of file <a class="el" href="normalization__layer_8cl_source.xhtml">normalization_layer.cl</a>.</p>
237
238<p>Referenced by <a class="el" href="normalization__layer_8cl_source.xhtml#l00079">normalization_layer_cross_map()</a>, and <a class="el" href="normalization__layer_8cl_source.xhtml#l00140">normalization_layer_in_map_1D()</a>.</p>
239
240</div>
241</div>
242<a class="anchor" id="ac0bf948069436897cf005ea45ac73a4f"></a>
243<div class="memitem">
244<div class="memproto">
245 <table class="memname">
246 <tr>
247 <td class="memname">#define MUL_OP</td>
248 <td>(</td>
249 <td class="paramtype">&#160;</td>
250 <td class="paramname">x, </td>
251 </tr>
252 <tr>
253 <td class="paramkey"></td>
254 <td></td>
255 <td class="paramtype">&#160;</td>
256 <td class="paramname">y&#160;</td>
257 </tr>
258 <tr>
259 <td></td>
260 <td>)</td>
261 <td></td><td>&#160;&#160;&#160;((x) * (y))</td>
262 </tr>
263 </table>
264</div><div class="memdoc">
265
266<p>Definition at line <a class="el" href="normalization__layer_8cl_source.xhtml#l00042">42</a> of file <a class="el" href="normalization__layer_8cl_source.xhtml">normalization_layer.cl</a>.</p>
267
268<p>Referenced by <a class="el" href="normalization__layer_8cl_source.xhtml#l00079">normalization_layer_cross_map()</a>, and <a class="el" href="normalization__layer_8cl_source.xhtml#l00140">normalization_layer_in_map_1D()</a>.</p>
269
270</div>
271</div>
272<a class="anchor" id="a09724da1a9e5ba54260905829ec27db4"></a>
273<div class="memitem">
274<div class="memproto">
275 <table class="memname">
276 <tr>
277 <td class="memname">#define POW_OP</td>
278 <td>(</td>
279 <td class="paramtype">&#160;</td>
280 <td class="paramname">x, </td>
281 </tr>
282 <tr>
283 <td class="paramkey"></td>
284 <td></td>
285 <td class="paramtype">&#160;</td>
286 <td class="paramname">y&#160;</td>
287 </tr>
288 <tr>
289 <td></td>
290 <td>)</td>
291 <td></td><td>&#160;&#160;&#160;pow((x), (y))</td>
292 </tr>
293 </table>
294</div><div class="memdoc">
295
296<p>Definition at line <a class="el" href="normalization__layer_8cl_source.xhtml#l00045">45</a> of file <a class="el" href="normalization__layer_8cl_source.xhtml">normalization_layer.cl</a>.</p>
297
298<p>Referenced by <a class="el" href="normalization__layer_8cl_source.xhtml#l00079">normalization_layer_cross_map()</a>, and <a class="el" href="normalization__layer_8cl_source.xhtml#l00140">normalization_layer_in_map_1D()</a>.</p>
299
300</div>
301</div>
302<a class="anchor" id="a107d847044e677b01e9bd3d5251b39d9"></a>
303<div class="memitem">
304<div class="memproto">
305 <table class="memname">
306 <tr>
307 <td class="memname">#define SQCVT_SAT</td>
308 <td>(</td>
309 <td class="paramtype">&#160;</td>
310 <td class="paramname">a</td><td>)</td>
311 <td>&#160;&#160;&#160;(a)</td>
312 </tr>
313 </table>
314</div><div class="memdoc">
315
316<p>Definition at line <a class="el" href="normalization__layer_8cl_source.xhtml#l00046">46</a> of file <a class="el" href="normalization__layer_8cl_source.xhtml">normalization_layer.cl</a>.</p>
317
318<p>Referenced by <a class="el" href="normalization__layer_8cl_source.xhtml#l00079">normalization_layer_cross_map()</a>, and <a class="el" href="normalization__layer_8cl_source.xhtml#l00140">normalization_layer_in_map_1D()</a>.</p>
319
320</div>
321</div>
322<a class="anchor" id="ac59caf44b60378c02032aab994ad5ac1"></a>
323<div class="memitem">
324<div class="memproto">
325 <table class="memname">
326 <tr>
327 <td class="memname">#define STORE_OP</td>
328 <td>(</td>
329 <td class="paramtype">&#160;</td>
330 <td class="paramname">data, </td>
331 </tr>
332 <tr>
333 <td class="paramkey"></td>
334 <td></td>
335 <td class="paramtype">&#160;</td>
336 <td class="paramname"><a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, </td>
337 </tr>
338 <tr>
339 <td class="paramkey"></td>
340 <td></td>
341 <td class="paramtype">&#160;</td>
342 <td class="paramname">ptr&#160;</td>
343 </tr>
344 <tr>
345 <td></td>
346 <td>)</td>
347 <td></td><td>&#160;&#160;&#160;vstore4(data, <a class="el" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, ptr)</td>
348 </tr>
349 </table>
350</div><div class="memdoc">
351
352<p>Definition at line <a class="el" href="normalization__layer_8cl_source.xhtml#l00049">49</a> of file <a class="el" href="normalization__layer_8cl_source.xhtml">normalization_layer.cl</a>.</p>
353
354<p>Referenced by <a class="el" href="normalization__layer_8cl_source.xhtml#l00079">normalization_layer_cross_map()</a>, and <a class="el" href="normalization__layer_8cl_source.xhtml#l00140">normalization_layer_in_map_1D()</a>.</p>
355
356</div>
357</div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000358<h2 class="groupheader">Function Documentation</h2>
Kaizen8938bd32017-09-28 14:38:23 +0100359<a class="anchor" id="a7db22b7ddf8f433e02ede3bd9c56d9d9"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +0000360<div class="memitem">
361<div class="memproto">
362 <table class="memname">
363 <tr>
364 <td class="memname">__kernel void normalization_layer_cross_map </td>
365 <td>(</td>
366 <td class="paramtype">__global uchar *&#160;</td>
367 <td class="paramname"><em>input_ptr</em>, </td>
368 </tr>
369 <tr>
370 <td class="paramkey"></td>
371 <td></td>
372 <td class="paramtype">uint&#160;</td>
373 <td class="paramname"><em>input_stride_x</em>, </td>
374 </tr>
375 <tr>
376 <td class="paramkey"></td>
377 <td></td>
378 <td class="paramtype">uint&#160;</td>
379 <td class="paramname"><em>input_step_x</em>, </td>
380 </tr>
381 <tr>
382 <td class="paramkey"></td>
383 <td></td>
384 <td class="paramtype">uint&#160;</td>
385 <td class="paramname"><em>input_stride_y</em>, </td>
386 </tr>
387 <tr>
388 <td class="paramkey"></td>
389 <td></td>
390 <td class="paramtype">uint&#160;</td>
391 <td class="paramname"><em>input_step_y</em>, </td>
392 </tr>
393 <tr>
394 <td class="paramkey"></td>
395 <td></td>
396 <td class="paramtype">uint&#160;</td>
397 <td class="paramname"><em>input_stride_z</em>, </td>
398 </tr>
399 <tr>
400 <td class="paramkey"></td>
401 <td></td>
402 <td class="paramtype">uint&#160;</td>
403 <td class="paramname"><em>input_step_z</em>, </td>
404 </tr>
405 <tr>
406 <td class="paramkey"></td>
407 <td></td>
408 <td class="paramtype">uint&#160;</td>
409 <td class="paramname"><em>input_offset_first_element_in_bytes</em>, </td>
410 </tr>
411 <tr>
412 <td class="paramkey"></td>
413 <td></td>
414 <td class="paramtype">__global uchar *&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +0000415 <td class="paramname"><em>output_ptr</em>, </td>
416 </tr>
417 <tr>
418 <td class="paramkey"></td>
419 <td></td>
420 <td class="paramtype">uint&#160;</td>
421 <td class="paramname"><em>output_stride_x</em>, </td>
422 </tr>
423 <tr>
424 <td class="paramkey"></td>
425 <td></td>
426 <td class="paramtype">uint&#160;</td>
427 <td class="paramname"><em>output_step_x</em>, </td>
428 </tr>
429 <tr>
430 <td class="paramkey"></td>
431 <td></td>
432 <td class="paramtype">uint&#160;</td>
433 <td class="paramname"><em>output_stride_y</em>, </td>
434 </tr>
435 <tr>
436 <td class="paramkey"></td>
437 <td></td>
438 <td class="paramtype">uint&#160;</td>
439 <td class="paramname"><em>output_step_y</em>, </td>
440 </tr>
441 <tr>
442 <td class="paramkey"></td>
443 <td></td>
444 <td class="paramtype">uint&#160;</td>
445 <td class="paramname"><em>output_stride_z</em>, </td>
446 </tr>
447 <tr>
448 <td class="paramkey"></td>
449 <td></td>
450 <td class="paramtype">uint&#160;</td>
451 <td class="paramname"><em>output_step_z</em>, </td>
452 </tr>
453 <tr>
454 <td class="paramkey"></td>
455 <td></td>
456 <td class="paramtype">uint&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +0100457 <td class="paramname"><em>output_offset_first_element_in_bytes</em>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +0000458 </tr>
459 <tr>
460 <td></td>
461 <td>)</td>
462 <td></td><td></td>
463 </tr>
464 </table>
465</div><div class="memdoc">
466
467<p>Apply cross map normalization. </p>
Kaizen8938bd32017-09-28 14:38:23 +0100468<dl class="section note"><dt>Note</dt><dd>Datatype should be given as a preprocessor argument using -DDATA_TYPE=type. e.g. -DDATA_TYPE=short </dd>
469<dd>
470<a class="el" href="struct_vector.xhtml" title="Structure to hold Vector information. ">Vector</a> size should be given as a preprocessor argument using -DVEC_SIZE=size, e.g. -DVEC_SIZE=16 </dd>
471<dd>
472The radius should be given as a preprocessor argument using -DRADIUS=size. e.g. -DRADIUS=5 </dd>
473<dd>
474The number of slices should be given as a preprocessor argument using -DNUM_SLICES=size. e.g. -DNUM_SLICES=192 </dd>
475<dd>
476In case of fixed-point operation -DFIXED_POINT_POSITION=fixed_point_position must be provided: e.g. -DFIXED_POINT_POSITION=3 </dd>
477<dd>
478Scaling coefficient (= alpha/norm_size), beta and kappa need to be passed at compile time using -DCOEFF, -DALPHA and -DKAPPA</dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +0000479<dl class="params"><dt>Parameters</dt><dd>
480 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +0100481 <tr><td class="paramdir">[in]</td><td class="paramname">input_ptr</td><td>Pointer to the first source tensor. Supported data types: QS8/QS16/F16/F32 </td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000482 <tr><td class="paramdir">[in]</td><td class="paramname">input_stride_x</td><td>Stride of the first source tensor in X dimension (in bytes) </td></tr>
483 <tr><td class="paramdir">[in]</td><td class="paramname">input_step_x</td><td>input_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
484 <tr><td class="paramdir">[in]</td><td class="paramname">input_stride_y</td><td>Stride of the first source tensor in Y dimension (in bytes) </td></tr>
485 <tr><td class="paramdir">[in]</td><td class="paramname">input_step_y</td><td>input_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
486 <tr><td class="paramdir">[in]</td><td class="paramname">input_stride_z</td><td>Stride of the first source tensor in Z dimension (in bytes) </td></tr>
487 <tr><td class="paramdir">[in]</td><td class="paramname">input_step_z</td><td>input_stride_z * number of elements along Z processed per workitem(in bytes) </td></tr>
488 <tr><td class="paramdir">[in]</td><td class="paramname">input_offset_first_element_in_bytes</td><td>The offset of the first element in the first source tensor </td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100489 <tr><td class="paramdir">[out]</td><td class="paramname">output_ptr</td><td>Pointer to the destination tensor. Supported data types: same as <code>input_ptr</code> </td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000490 <tr><td class="paramdir">[in]</td><td class="paramname">output_stride_x</td><td>Stride of the destination tensor in X dimension (in bytes) </td></tr>
491 <tr><td class="paramdir">[in]</td><td class="paramname">output_step_x</td><td>output_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
492 <tr><td class="paramdir">[in]</td><td class="paramname">output_stride_y</td><td>Stride of the destination tensor in Y dimension (in bytes) </td></tr>
493 <tr><td class="paramdir">[in]</td><td class="paramname">output_step_y</td><td>output_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
494 <tr><td class="paramdir">[in]</td><td class="paramname">output_stride_z</td><td>Stride of the destination tensor in Z dimension (in bytes) </td></tr>
495 <tr><td class="paramdir">[in]</td><td class="paramname">output_step_z</td><td>output_stride_z * number of elements along Z processed per workitem(in bytes) </td></tr>
496 <tr><td class="paramdir">[in]</td><td class="paramname">output_offset_first_element_in_bytes</td><td>The offset of the first element in the destination tensor </td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000497 </table>
498 </dd>
499</dl>
500
Kaizen8938bd32017-09-28 14:38:23 +0100501<p>Definition at line <a class="el" href="normalization__layer_8cl_source.xhtml#l00079">79</a> of file <a class="el" href="normalization__layer_8cl_source.xhtml">normalization_layer.cl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +0000502
Kaizen8938bd32017-09-28 14:38:23 +0100503<p>References <a class="el" href="normalization__layer_8cl_source.xhtml#l00043">ADD_OP</a>, <a class="el" href="helpers_8h_source.xhtml#l00108">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="convolution3x3_8cl_source.xhtml#l00027">DATA_TYPE</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00044">DIV_OP</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00048">LOAD_OP</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00042">MUL_OP</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00045">POW_OP</a>, <a class="el" href="helpers_8h_source.xhtml#l00142">Tensor3D::ptr</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00046">SQCVT_SAT</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00049">STORE_OP</a>, <a class="el" href="helpers_8h_source.xhtml#l00304">tensor3D_offset()</a>, and <a class="el" href="fixed__point_8h_source.xhtml#l00093">VEC_DATA_TYPE</a>.</p>
504<div class="fragment"><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div>
505<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> in = <a class="code" href="helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div>
506<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> out = <a class="code" href="helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div>
507<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
508<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a>, VEC_SIZE)</div>
509<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; acc = (<a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a>, VEC_SIZE))0;</div>
510<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
511<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; coeff_v = (<a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE))<a class="code" href="normalization__layer_8cl.xhtml#a107d847044e677b01e9bd3d5251b39d9">SQCVT_SAT</a>(COEFF);</div>
512<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
513<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; beta_v = (<a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE))<a class="code" href="normalization__layer_8cl.xhtml#a107d847044e677b01e9bd3d5251b39d9">SQCVT_SAT</a>(BETA);</div>
514<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
515<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; kappa_v = (<a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE))<a class="code" href="normalization__layer_8cl.xhtml#a107d847044e677b01e9bd3d5251b39d9">SQCVT_SAT</a>(KAPPA);</div>
516<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
517<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; const <span class="keywordtype">int</span> current_slice = get_global_id(2);</div>
518<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
519<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; const <span class="keywordtype">int</span> left_slice = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">max</a>(current_slice - (<span class="keywordtype">int</span>)RADIUS, (<span class="keywordtype">int</span>)0);</div>
520<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; const <span class="keywordtype">int</span> right_slice = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>(current_slice + (<span class="keywordtype">int</span>)RADIUS, (<span class="keywordtype">int</span>)(NUM_SLICES - 1));</div>
521<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
522<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; for(<span class="keywordtype">int</span> i = left_slice; i &lt;= right_slice; i++)</div>
523<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
524<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
525<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; values = <a class="code" href="normalization__layer_8cl.xhtml#a10a9bf1a9fce27664d5f91844ff3f691">LOAD_OP</a>(0, (__global DATA_TYPE *)<a class="code" href="helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;in, 0, 0, i - current_slice));</div>
526<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; acc = <a class="code" href="normalization__layer_8cl.xhtml#a334426d638df3b4108c366e240cf5504">ADD_OP</a>(acc, <a class="code" href="normalization__layer_8cl.xhtml#ac0bf948069436897cf005ea45ac73a4f">MUL_OP</a>(values, values));</div>
527<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
528<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
529<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; acc = <a class="code" href="normalization__layer_8cl.xhtml#a334426d638df3b4108c366e240cf5504">ADD_OP</a>(<a class="code" href="normalization__layer_8cl.xhtml#ac0bf948069436897cf005ea45ac73a4f">MUL_OP</a>(acc, coeff_v), kappa_v);</div>
530<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
531<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; normalized = <a class="code" href="normalization__layer_8cl.xhtml#a09724da1a9e5ba54260905829ec27db4">POW_OP</a>(acc, beta_v);</div>
532<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
533<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; normalized_pixel = <a class="code" href="normalization__layer_8cl.xhtml#a5db17889d824975fefb2ce2f4690637f">DIV_OP</a>(LOAD_OP(0, (__global DATA_TYPE *)in.ptr), normalized);</div>
534<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
535<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="normalization__layer_8cl.xhtml#ac59caf44b60378c02032aab994ad5ac1">STORE_OP</a>(normalized_pixel, 0, (__global DATA_TYPE *)out.ptr);</div>
536<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div>
537<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div>
538<div class="ttc" id="helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00108">helpers.h:108</a></div></div>
539<div class="ttc" id="normalization__layer_8cl_xhtml_ac0bf948069436897cf005ea45ac73a4f"><div class="ttname"><a href="normalization__layer_8cl.xhtml#ac0bf948069436897cf005ea45ac73a4f">MUL_OP</a></div><div class="ttdeci">#define MUL_OP(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00042">normalization_layer.cl:42</a></div></div>
540<div class="ttc" id="normalization__layer_8cl_xhtml_a10a9bf1a9fce27664d5f91844ff3f691"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a10a9bf1a9fce27664d5f91844ff3f691">LOAD_OP</a></div><div class="ttdeci">#define LOAD_OP(offset, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00048">normalization_layer.cl:48</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000541<div class="ttc" id="convolution3x3_8cl_xhtml_afb8c72ce35c4a1f4a2588d6573e54aa1"><div class="ttname"><a href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a></div><div class="ttdeci">#define DATA_TYPE</div><div class="ttdef"><b>Definition:</b> <a href="convolution3x3_8cl_source.xhtml#l00027">convolution3x3.cl:27</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +0100542<div class="ttc" id="normalization__layer_8cl_xhtml_a107d847044e677b01e9bd3d5251b39d9"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a107d847044e677b01e9bd3d5251b39d9">SQCVT_SAT</a></div><div class="ttdeci">#define SQCVT_SAT(a)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00046">normalization_layer.cl:46</a></div></div>
543<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00140">helpers.h:140</a></div></div>
544<div class="ttc" id="normalization__layer_8cl_xhtml_ac59caf44b60378c02032aab994ad5ac1"><div class="ttname"><a href="normalization__layer_8cl.xhtml#ac59caf44b60378c02032aab994ad5ac1">STORE_OP</a></div><div class="ttdeci">#define STORE_OP(data, offset, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00049">normalization_layer.cl:49</a></div></div>
545<div class="ttc" id="helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00304">helpers.h:304</a></div></div>
546<div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
547<div class="ttc" id="normalization__layer_8cl_xhtml_a334426d638df3b4108c366e240cf5504"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a334426d638df3b4108c366e240cf5504">ADD_OP</a></div><div class="ttdeci">#define ADD_OP(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00043">normalization_layer.cl:43</a></div></div>
548<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div>
549<div class="ttc" id="normalization__layer_8cl_xhtml_a5db17889d824975fefb2ce2f4690637f"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a5db17889d824975fefb2ce2f4690637f">DIV_OP</a></div><div class="ttdeci">#define DIV_OP(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00044">normalization_layer.cl:44</a></div></div>
550<div class="ttc" id="normalization__layer_8cl_xhtml_a09724da1a9e5ba54260905829ec27db4"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a09724da1a9e5ba54260905829ec27db4">POW_OP</a></div><div class="ttdeci">#define POW_OP(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00045">normalization_layer.cl:45</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000551</div><!-- fragment -->
552</div>
553</div>
Kaizen8938bd32017-09-28 14:38:23 +0100554<a class="anchor" id="a343b43eb8e2bf7077793c801642c7d65"></a>
Anthony Barbier871448e2017-03-24 14:54:29 +0000555<div class="memitem">
556<div class="memproto">
557 <table class="memname">
558 <tr>
Anthony Barbierdbdab852017-06-23 15:42:00 +0100559 <td class="memname">__kernel void normalization_layer_in_map_1D </td>
Anthony Barbier871448e2017-03-24 14:54:29 +0000560 <td>(</td>
561 <td class="paramtype">__global uchar *&#160;</td>
562 <td class="paramname"><em>input_ptr</em>, </td>
563 </tr>
564 <tr>
565 <td class="paramkey"></td>
566 <td></td>
567 <td class="paramtype">uint&#160;</td>
568 <td class="paramname"><em>input_stride_x</em>, </td>
569 </tr>
570 <tr>
571 <td class="paramkey"></td>
572 <td></td>
573 <td class="paramtype">uint&#160;</td>
574 <td class="paramname"><em>input_step_x</em>, </td>
575 </tr>
576 <tr>
577 <td class="paramkey"></td>
578 <td></td>
579 <td class="paramtype">uint&#160;</td>
580 <td class="paramname"><em>input_stride_y</em>, </td>
581 </tr>
582 <tr>
583 <td class="paramkey"></td>
584 <td></td>
585 <td class="paramtype">uint&#160;</td>
586 <td class="paramname"><em>input_step_y</em>, </td>
587 </tr>
588 <tr>
589 <td class="paramkey"></td>
590 <td></td>
591 <td class="paramtype">uint&#160;</td>
592 <td class="paramname"><em>input_stride_z</em>, </td>
593 </tr>
594 <tr>
595 <td class="paramkey"></td>
596 <td></td>
597 <td class="paramtype">uint&#160;</td>
598 <td class="paramname"><em>input_step_z</em>, </td>
599 </tr>
600 <tr>
601 <td class="paramkey"></td>
602 <td></td>
603 <td class="paramtype">uint&#160;</td>
604 <td class="paramname"><em>input_offset_first_element_in_bytes</em>, </td>
605 </tr>
606 <tr>
607 <td class="paramkey"></td>
608 <td></td>
609 <td class="paramtype">__global uchar *&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +0000610 <td class="paramname"><em>output_ptr</em>, </td>
611 </tr>
612 <tr>
613 <td class="paramkey"></td>
614 <td></td>
615 <td class="paramtype">uint&#160;</td>
616 <td class="paramname"><em>output_stride_x</em>, </td>
617 </tr>
618 <tr>
619 <td class="paramkey"></td>
620 <td></td>
621 <td class="paramtype">uint&#160;</td>
622 <td class="paramname"><em>output_step_x</em>, </td>
623 </tr>
624 <tr>
625 <td class="paramkey"></td>
626 <td></td>
627 <td class="paramtype">uint&#160;</td>
628 <td class="paramname"><em>output_stride_y</em>, </td>
629 </tr>
630 <tr>
631 <td class="paramkey"></td>
632 <td></td>
633 <td class="paramtype">uint&#160;</td>
634 <td class="paramname"><em>output_step_y</em>, </td>
635 </tr>
636 <tr>
637 <td class="paramkey"></td>
638 <td></td>
639 <td class="paramtype">uint&#160;</td>
640 <td class="paramname"><em>output_stride_z</em>, </td>
641 </tr>
642 <tr>
643 <td class="paramkey"></td>
644 <td></td>
645 <td class="paramtype">uint&#160;</td>
646 <td class="paramname"><em>output_step_z</em>, </td>
647 </tr>
648 <tr>
649 <td class="paramkey"></td>
650 <td></td>
651 <td class="paramtype">uint&#160;</td>
Kaizen8938bd32017-09-28 14:38:23 +0100652 <td class="paramname"><em>output_offset_first_element_in_bytes</em>&#160;</td>
Anthony Barbier871448e2017-03-24 14:54:29 +0000653 </tr>
654 <tr>
655 <td></td>
656 <td>)</td>
657 <td></td><td></td>
658 </tr>
659 </table>
660</div><div class="memdoc">
661
662<p>Apply in map normalization. </p>
Kaizen8938bd32017-09-28 14:38:23 +0100663<dl class="section note"><dt>Note</dt><dd>Datatype should be given as a preprocessor argument using -DDATA_TYPE=type. e.g. -DDATA_TYPE=short </dd>
664<dd>
665<a class="el" href="struct_vector.xhtml" title="Structure to hold Vector information. ">Vector</a> size should be given as a preprocessor argument using -DVEC_SIZE=size, e.g. -DVEC_SIZE=16 </dd>
666<dd>
667The radius should be given as a preprocessor argument using -DRADIUS=size. e.g. -DRADIUS=5 </dd>
668<dd>
669In case of fixed-point operation -DFIXED_POINT_POSITION=fixed_point_position must be provided: e.g. -DFIXED_POINT_POSITION=3 </dd>
670<dd>
671Scaling coefficient (= alpha/norm_size), beta and kappa need to be passed at compile time using -DCOEFF, -DALPHA and -DKAPPA</dd></dl>
Anthony Barbier871448e2017-03-24 14:54:29 +0000672<dl class="params"><dt>Parameters</dt><dd>
673 <table class="params">
Kaizen8938bd32017-09-28 14:38:23 +0100674 <tr><td class="paramdir">[in]</td><td class="paramname">input_ptr</td><td>Pointer to the first source tensor. Supported data types: QS8/F16/F32 </td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000675 <tr><td class="paramdir">[in]</td><td class="paramname">input_stride_x</td><td>Stride of the first source tensor in X dimension (in bytes) </td></tr>
676 <tr><td class="paramdir">[in]</td><td class="paramname">input_step_x</td><td>input_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
677 <tr><td class="paramdir">[in]</td><td class="paramname">input_stride_y</td><td>Stride of the first source tensor in Y dimension (in bytes) </td></tr>
678 <tr><td class="paramdir">[in]</td><td class="paramname">input_step_y</td><td>input_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
679 <tr><td class="paramdir">[in]</td><td class="paramname">input_stride_z</td><td>Stride of the first source tensor in Z dimension (in bytes) </td></tr>
680 <tr><td class="paramdir">[in]</td><td class="paramname">input_step_z</td><td>input_stride_z * number of elements along Z processed per workitem(in bytes) </td></tr>
681 <tr><td class="paramdir">[in]</td><td class="paramname">input_offset_first_element_in_bytes</td><td>The offset of the first element in the first source tensor </td></tr>
Kaizen8938bd32017-09-28 14:38:23 +0100682 <tr><td class="paramdir">[out]</td><td class="paramname">output_ptr</td><td>Pointer to the destination tensor. Supported data types: same as <code>input_ptr</code> </td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000683 <tr><td class="paramdir">[in]</td><td class="paramname">output_stride_x</td><td>Stride of the destination tensor in X dimension (in bytes) </td></tr>
684 <tr><td class="paramdir">[in]</td><td class="paramname">output_step_x</td><td>output_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
685 <tr><td class="paramdir">[in]</td><td class="paramname">output_stride_y</td><td>Stride of the first destination tensor in Y dimension (in bytes) </td></tr>
686 <tr><td class="paramdir">[in]</td><td class="paramname">output_step_y</td><td>output_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
687 <tr><td class="paramdir">[in]</td><td class="paramname">output_stride_z</td><td>Stride of the first source tensor in Z dimension (in bytes) </td></tr>
688 <tr><td class="paramdir">[in]</td><td class="paramname">output_step_z</td><td>output_stride_z * number of elements along Z processed per workitem(in bytes) </td></tr>
689 <tr><td class="paramdir">[in]</td><td class="paramname">output_offset_first_element_in_bytes</td><td>The offset of the first element in the destination tensor </td></tr>
Anthony Barbier871448e2017-03-24 14:54:29 +0000690 </table>
691 </dd>
692</dl>
693
Kaizen8938bd32017-09-28 14:38:23 +0100694<p>Definition at line <a class="el" href="normalization__layer_8cl_source.xhtml#l00140">140</a> of file <a class="el" href="normalization__layer_8cl_source.xhtml">normalization_layer.cl</a>.</p>
Anthony Barbier871448e2017-03-24 14:54:29 +0000695
Kaizen8938bd32017-09-28 14:38:23 +0100696<p>References <a class="el" href="normalization__layer_8cl_source.xhtml#l00043">ADD_OP</a>, <a class="el" href="helpers_8h_source.xhtml#l00108">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="convolution3x3_8cl_source.xhtml#l00027">DATA_TYPE</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00044">DIV_OP</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00048">LOAD_OP</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00042">MUL_OP</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00045">POW_OP</a>, <a class="el" href="helpers_8h_source.xhtml#l00142">Tensor3D::ptr</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00046">SQCVT_SAT</a>, <a class="el" href="normalization__layer_8cl_source.xhtml#l00049">STORE_OP</a>, <a class="el" href="helpers_8h_source.xhtml#l00304">tensor3D_offset()</a>, and <a class="el" href="fixed__point_8h_source.xhtml#l00093">VEC_DATA_TYPE</a>.</p>
697<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div>
698<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> in = <a class="code" href="helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div>
699<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> out = <a class="code" href="helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div>
700<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
701<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a>, VEC_SIZE)</div>
702<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; acc = (<a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a>, VEC_SIZE))0;</div>
703<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
704<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; coeff_v = (<a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE))<a class="code" href="normalization__layer_8cl.xhtml#a107d847044e677b01e9bd3d5251b39d9">SQCVT_SAT</a>(COEFF);</div>
705<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
706<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; beta_v = (<a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE))<a class="code" href="normalization__layer_8cl.xhtml#a107d847044e677b01e9bd3d5251b39d9">SQCVT_SAT</a>(BETA);</div>
707<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
708<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; kappa_v = (<a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE))<a class="code" href="normalization__layer_8cl.xhtml#a107d847044e677b01e9bd3d5251b39d9">SQCVT_SAT</a>(KAPPA);</div>
709<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
710<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; const <span class="keywordtype">int</span> current_pos = get_global_id(0) &lt;&lt; 2;</div>
711<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
712<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; const <span class="keywordtype">int</span> left_pos = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">max</a>(current_pos - (<span class="keywordtype">int</span>)RADIUS, -3);</div>
713<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; const <span class="keywordtype">int</span> right_pos = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>(current_pos + (<span class="keywordtype">int</span>)RADIUS, (<span class="keywordtype">int</span>)((get_global_size(0) &lt;&lt; 2) + 3 - 1));</div>
714<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
715<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; for(<span class="keywordtype">int</span> i = left_pos; i &lt;= right_pos; i += 1)</div>
716<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
717<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
718<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; values = <a class="code" href="normalization__layer_8cl.xhtml#a10a9bf1a9fce27664d5f91844ff3f691">LOAD_OP</a>(0, (__global DATA_TYPE *)<a class="code" href="helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;in, i - current_pos, 0, 0));</div>
719<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; acc = <a class="code" href="normalization__layer_8cl.xhtml#a334426d638df3b4108c366e240cf5504">ADD_OP</a>(acc, <a class="code" href="normalization__layer_8cl.xhtml#ac0bf948069436897cf005ea45ac73a4f">MUL_OP</a>(values, values));</div>
720<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
721<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
722<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; acc = <a class="code" href="normalization__layer_8cl.xhtml#a334426d638df3b4108c366e240cf5504">ADD_OP</a>(<a class="code" href="normalization__layer_8cl.xhtml#ac0bf948069436897cf005ea45ac73a4f">MUL_OP</a>(acc, coeff_v), kappa_v);</div>
723<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
724<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; normalized = <a class="code" href="normalization__layer_8cl.xhtml#a09724da1a9e5ba54260905829ec27db4">POW_OP</a>(acc, beta_v);</div>
725<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; const <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, VEC_SIZE)</div>
726<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; normalized_pixel = <a class="code" href="normalization__layer_8cl.xhtml#a5db17889d824975fefb2ce2f4690637f">DIV_OP</a>(LOAD_OP(0, (__global DATA_TYPE *)in.ptr), normalized);</div>
727<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
728<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="normalization__layer_8cl.xhtml#ac59caf44b60378c02032aab994ad5ac1">STORE_OP</a>(normalized_pixel, 0, (__global DATA_TYPE *)out.ptr);</div>
729<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}</div>
730<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00884">FixedPoint.h:884</a></div></div>
731<div class="ttc" id="helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00108">helpers.h:108</a></div></div>
732<div class="ttc" id="normalization__layer_8cl_xhtml_ac0bf948069436897cf005ea45ac73a4f"><div class="ttname"><a href="normalization__layer_8cl.xhtml#ac0bf948069436897cf005ea45ac73a4f">MUL_OP</a></div><div class="ttdeci">#define MUL_OP(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00042">normalization_layer.cl:42</a></div></div>
733<div class="ttc" id="normalization__layer_8cl_xhtml_a10a9bf1a9fce27664d5f91844ff3f691"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a10a9bf1a9fce27664d5f91844ff3f691">LOAD_OP</a></div><div class="ttdeci">#define LOAD_OP(offset, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00048">normalization_layer.cl:48</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000734<div class="ttc" id="convolution3x3_8cl_xhtml_afb8c72ce35c4a1f4a2588d6573e54aa1"><div class="ttname"><a href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a></div><div class="ttdeci">#define DATA_TYPE</div><div class="ttdef"><b>Definition:</b> <a href="convolution3x3_8cl_source.xhtml#l00027">convolution3x3.cl:27</a></div></div>
Kaizen8938bd32017-09-28 14:38:23 +0100735<div class="ttc" id="normalization__layer_8cl_xhtml_a107d847044e677b01e9bd3d5251b39d9"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a107d847044e677b01e9bd3d5251b39d9">SQCVT_SAT</a></div><div class="ttdeci">#define SQCVT_SAT(a)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00046">normalization_layer.cl:46</a></div></div>
736<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00140">helpers.h:140</a></div></div>
737<div class="ttc" id="normalization__layer_8cl_xhtml_ac59caf44b60378c02032aab994ad5ac1"><div class="ttname"><a href="normalization__layer_8cl.xhtml#ac59caf44b60378c02032aab994ad5ac1">STORE_OP</a></div><div class="ttdeci">#define STORE_OP(data, offset, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00049">normalization_layer.cl:49</a></div></div>
738<div class="ttc" id="helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00304">helpers.h:304</a></div></div>
739<div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
740<div class="ttc" id="normalization__layer_8cl_xhtml_a334426d638df3b4108c366e240cf5504"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a334426d638df3b4108c366e240cf5504">ADD_OP</a></div><div class="ttdeci">#define ADD_OP(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00043">normalization_layer.cl:43</a></div></div>
741<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00889">FixedPoint.h:889</a></div></div>
742<div class="ttc" id="normalization__layer_8cl_xhtml_a5db17889d824975fefb2ce2f4690637f"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a5db17889d824975fefb2ce2f4690637f">DIV_OP</a></div><div class="ttdeci">#define DIV_OP(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00044">normalization_layer.cl:44</a></div></div>
743<div class="ttc" id="normalization__layer_8cl_xhtml_a09724da1a9e5ba54260905829ec27db4"><div class="ttname"><a href="normalization__layer_8cl.xhtml#a09724da1a9e5ba54260905829ec27db4">POW_OP</a></div><div class="ttdeci">#define POW_OP(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="normalization__layer_8cl_source.xhtml#l00045">normalization_layer.cl:45</a></div></div>
Anthony Barbier871448e2017-03-24 14:54:29 +0000744</div><!-- fragment -->
745</div>
746</div>
747</div><!-- contents -->
748</div><!-- doc-content -->
749<!-- start footer part -->
750<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
751 <ul>
Kaizen8938bd32017-09-28 14:38:23 +0100752 <li class="navelem"><a class="el" href="dir_55b5a5006e943fb664ff8cff3cfe7768.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_f6c3ae42d7e27145d0a3c3e38ca1c000.xhtml">core</a></li><li class="navelem"><a class="el" href="dir_1b7ae9123c88e650426d50d95c19d414.xhtml">CL</a></li><li class="navelem"><a class="el" href="dir_b7c3d80b0dadb2139bc73b7161751c12.xhtml">cl_kernels</a></li><li class="navelem"><a class="el" href="normalization__layer_8cl.xhtml">normalization_layer.cl</a></li>
753 <li class="footer">Generated on Thu Sep 28 2017 14:37:54 for Compute Library by
Anthony Barbier871448e2017-03-24 14:54:29 +0000754 <a href="http://www.doxygen.org/index.html">
Kaizen8938bd32017-09-28 14:38:23 +0100755 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
Anthony Barbier871448e2017-03-24 14:54:29 +0000756 </ul>
757</div>
758</body>
759</html>