blob: 27bb066e23de6309ad20fb0b2ba7094b03cae3bb [file] [log] [blame]
<!-- HTML header for doxygen 1.8.15-->
<!-- Remember to use version doxygen 1.8.15 +-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: CLLaplacianPyramid Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
<td style="padding-left: 0.5em;">
<div id="projectname">
&#160;<span id="projectnumber">20.02.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classarm__compute_1_1_c_l_laplacian_pyramid.xhtml','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> </div>
<div class="headertitle">
<div class="title">CLLaplacianPyramid Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Basic function to execute laplacian pyramid.
<a href="classarm__compute_1_1_c_l_laplacian_pyramid.xhtml#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_l_laplacian_pyramid_8h_source.xhtml">CLLaplacianPyramid.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for CLLaplacianPyramid:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classarm__compute_1_1_c_l_laplacian_pyramid__coll__graph.svg" width="162" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abc061ac0f69ff7cfe1ec11168d32547c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_laplacian_pyramid.xhtml#abc061ac0f69ff7cfe1ec11168d32547c">CLLaplacianPyramid</a> ()</td></tr>
<tr class="memdesc:abc061ac0f69ff7cfe1ec11168d32547c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#abc061ac0f69ff7cfe1ec11168d32547c">More...</a><br /></td></tr>
<tr class="separator:abc061ac0f69ff7cfe1ec11168d32547c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affa012258b464b065d72cc26657119d4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_laplacian_pyramid.xhtml#affa012258b464b065d72cc26657119d4">configure</a> (<a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> *input, <a class="el" href="classarm__compute_1_1_c_l_pyramid.xhtml">CLPyramid</a> *pyramid, <a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> *output, <a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a> border_mode, uint8_t constant_border_value)</td></tr>
<tr class="memdesc:affa012258b464b065d72cc26657119d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise the function's source, destinations and border mode. <a href="#affa012258b464b065d72cc26657119d4">More...</a><br /></td></tr>
<tr class="separator:affa012258b464b065d72cc26657119d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1717410afd0be936c6213a63c8005fb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_laplacian_pyramid.xhtml#ad1717410afd0be936c6213a63c8005fb">run</a> () override</td></tr>
<tr class="memdesc:ad1717410afd0be936c6213a63c8005fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run the kernels contained in the function. <a href="#ad1717410afd0be936c6213a63c8005fb">More...</a><br /></td></tr>
<tr class="separator:ad1717410afd0be936c6213a63c8005fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classarm__compute_1_1_i_function"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1_i_function')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_function.xhtml">IFunction</a></td></tr>
<tr class="memitem:ab921ecc3f3f6ae2b4bd61f3e1998d8c4 inherit pub_methods_classarm__compute_1_1_i_function"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_function.xhtml#ab921ecc3f3f6ae2b4bd61f3e1998d8c4">~IFunction</a> ()=default</td></tr>
<tr class="memdesc:ab921ecc3f3f6ae2b4bd61f3e1998d8c4 inherit pub_methods_classarm__compute_1_1_i_function"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="classarm__compute_1_1_i_function.xhtml#ab921ecc3f3f6ae2b4bd61f3e1998d8c4">More...</a><br /></td></tr>
<tr class="separator:ab921ecc3f3f6ae2b4bd61f3e1998d8c4 inherit pub_methods_classarm__compute_1_1_i_function"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a820f7291c24155a2980512fae45aac26 inherit pub_methods_classarm__compute_1_1_i_function"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_function.xhtml#a820f7291c24155a2980512fae45aac26">prepare</a> ()</td></tr>
<tr class="memdesc:a820f7291c24155a2980512fae45aac26 inherit pub_methods_classarm__compute_1_1_i_function"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepare the function for executing. <a href="classarm__compute_1_1_i_function.xhtml#a820f7291c24155a2980512fae45aac26">More...</a><br /></td></tr>
<tr class="separator:a820f7291c24155a2980512fae45aac26 inherit pub_methods_classarm__compute_1_1_i_function"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Basic function to execute laplacian pyramid. </p>
<p>This function calls the following OpenCL kernels and functions:</p>
<ol type="1">
<li><a class="el" href="classarm__compute_1_1_c_l_gaussian_pyramid_half.xhtml">CLGaussianPyramidHalf</a></li>
<li><a class="el" href="classarm__compute_1_1_c_l_gaussian5x5.xhtml">CLGaussian5x5</a></li>
<li><p class="startli"><a class="el" href="classarm__compute_1_1_c_l_arithmetic_subtraction.xhtml">CLArithmeticSubtraction</a></p>
<p class="startli">First a Gaussian pyramid is created. Then, for each level i, the corresponding tensor I(i) is blurred with the Gaussian 5x5 filter, and then difference between the two tensors is the corresponding level L(i) of the Laplacian pyramid. L(i) = I(i) - Gaussian5x5(I(i)) Level 0 has always the same first two dimensions as the input tensor. </p>
</li>
</ol>
<p class="definition">Definition at line <a class="el" href="_c_l_laplacian_pyramid_8h_source.xhtml#l00054">54</a> of file <a class="el" href="_c_l_laplacian_pyramid_8h_source.xhtml">CLLaplacianPyramid.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="abc061ac0f69ff7cfe1ec11168d32547c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc061ac0f69ff7cfe1ec11168d32547c">&#9670;&nbsp;</a></span>CLLaplacianPyramid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_c_l_laplacian_pyramid.xhtml">CLLaplacianPyramid</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_laplacian_pyramid_8cpp_source.xhtml#l00039">39</a> of file <a class="el" href="_c_l_laplacian_pyramid_8cpp_source.xhtml">CLLaplacianPyramid.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; : _num_levels(0),</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; _gaussian_pyr_function(),</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; _convf(),</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; _subf(),</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; _depth_function(),</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; _gauss_pyr(),</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; _conv_pyr()</div><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;}</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="affa012258b464b065d72cc26657119d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affa012258b464b065d72cc26657119d4">&#9670;&nbsp;</a></span>configure()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void configure </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> *&#160;</td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_pyramid.xhtml">CLPyramid</a> *&#160;</td>
<td class="paramname"><em>pyramid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> *&#160;</td>
<td class="paramname"><em>output</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a15a05537a472ee742404821851529327">BorderMode</a>&#160;</td>
<td class="paramname"><em>border_mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>constant_border_value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialise the function's source, destinations and border mode. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>Source tensor. Data types supported: U8. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pyramid</td><td>Destination pyramid tensors, Data types supported at each level: S16. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>The lowest resolution tensor necessary to reconstruct the input tensor from the pyramid. Data types supported: S16. The first two dimensions of this tensor must match the first two dimensions of the tensor in the last level of the pyramid, that is: output.width = input.width() / pow(2,pyramid_levels-1) and out.height = in.height() / pow(2,pyramid_levels-1) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">border_mode</td><td>Border mode to use. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">constant_border_value</td><td>(Optional) Constant value to use for borders if border_mode is set to CONSTANT. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_c_l_laplacian_pyramid_8cpp_source.xhtml#l00050">50</a> of file <a class="el" href="_c_l_laplacian_pyramid_8cpp_source.xhtml">CLLaplacianPyramid.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<span class="keyword">nullptr</span> == pyramid);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="_validate_8h.xhtml#aadf5c9cff86327b96d88d04649d9715e">ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 1, <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">DataType::U8</a>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="_validate_8h.xhtml#aadf5c9cff86327b96d88d04649d9715e">ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN</a>(output, 1, <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">DataType::S16</a>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(0 == pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a7e9f724340af5b795b21a00d35eeb28e">info</a>()-&gt;<a class="code" href="classarm__compute_1_1_pyramid_info.xhtml#aa2fea6640d2bd5de24d0e0c2433faab6">num_levels</a>());</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>-&gt;info()-&gt;dimension(0) != pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a7e9f724340af5b795b21a00d35eeb28e">info</a>()-&gt;<a class="code" href="classarm__compute_1_1_pyramid_info.xhtml#a9ce99f5dfa1514cb108665e3810b2c4c">width</a>());</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>-&gt;info()-&gt;dimension(1) != pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a7e9f724340af5b795b21a00d35eeb28e">info</a>()-&gt;<a class="code" href="classarm__compute_1_1_pyramid_info.xhtml#adc662cea5b05cd9852d5a4538586d662">height</a>());</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(output-&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#a178f0d3d87f959e00a743328d95359d2">dimension</a>(0) != pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a6f6fce8ca90f3e9a62e2cb48a07047f4">get_pyramid_level</a>(pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a7e9f724340af5b795b21a00d35eeb28e">info</a>()-&gt;<a class="code" href="classarm__compute_1_1_pyramid_info.xhtml#aa2fea6640d2bd5de24d0e0c2433faab6">num_levels</a>() - 1)-&gt;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f4125dba5283887b34f889b1c615c0c">info</a>()-&gt;dimension(0));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(output-&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#a178f0d3d87f959e00a743328d95359d2">dimension</a>(1) != pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a6f6fce8ca90f3e9a62e2cb48a07047f4">get_pyramid_level</a>(pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a7e9f724340af5b795b21a00d35eeb28e">info</a>()-&gt;<a class="code" href="classarm__compute_1_1_pyramid_info.xhtml#aa2fea6640d2bd5de24d0e0c2433faab6">num_levels</a>() - 1)-&gt;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f4125dba5283887b34f889b1c615c0c">info</a>()-&gt;dimension(1));</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; _num_levels = pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a7e9f724340af5b795b21a00d35eeb28e">info</a>()-&gt;<a class="code" href="classarm__compute_1_1_pyramid_info.xhtml#aa2fea6640d2bd5de24d0e0c2433faab6">num_levels</a>();</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="comment">// Create and initialize the gaussian pyramid and the convoluted pyramid</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classarm__compute_1_1_pyramid_info.xhtml">PyramidInfo</a> pyramid_info;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; pyramid_info.<a class="code" href="classarm__compute_1_1_pyramid_info.xhtml#a741486bedb7b0966b1d4e6e7c6cccf60">init</a>(_num_levels, 0.5f, pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a7e9f724340af5b795b21a00d35eeb28e">info</a>()-&gt;<a class="code" href="classarm__compute_1_1_pyramid_info.xhtml#a82c695f3a9ca51633ea8743d5c09f122">tensor_shape</a>(), <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">arm_compute::Format::U8</a>);</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; _gauss_pyr.<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#ae4e11cca76492d63009564d1ea466dff">init</a>(pyramid_info);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; _conv_pyr.<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#ae4e11cca76492d63009564d1ea466dff">init</a>(pyramid_info);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// Create Gaussian Pyramid function</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; _gaussian_pyr_function.<a class="code" href="classarm__compute_1_1_c_l_gaussian_pyramid_half.xhtml#a9f1c2312374125fd95ee145a4f07515c">configure</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, &amp;_gauss_pyr, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5471e46933e7a9c4709972d91fc4ea65">border_mode</a>, constant_border_value);</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; _convf.resize(_num_levels);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; _subf.resize(_num_levels);</div><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; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; _num_levels; ++i)</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; _convf[i].configure(_gauss_pyr.<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a6f6fce8ca90f3e9a62e2cb48a07047f4">get_pyramid_level</a>(i), _conv_pyr.<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a6f6fce8ca90f3e9a62e2cb48a07047f4">get_pyramid_level</a>(i), <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5471e46933e7a9c4709972d91fc4ea65">border_mode</a>, constant_border_value);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; _subf[i].configure(_gauss_pyr.<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a6f6fce8ca90f3e9a62e2cb48a07047f4">get_pyramid_level</a>(i), _conv_pyr.<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a6f6fce8ca90f3e9a62e2cb48a07047f4">get_pyramid_level</a>(i), pyramid-&gt;<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a6f6fce8ca90f3e9a62e2cb48a07047f4">get_pyramid_level</a>(i), <a class="code" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0">ConvertPolicy::WRAP</a>);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; _depth_function.<a class="code" href="classarm__compute_1_1_c_l_depth_convert_layer.xhtml#a536f0de1a70ea80d40b0a24657ac5290">configure</a>(_conv_pyr.<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#a6f6fce8ca90f3e9a62e2cb48a07047f4">get_pyramid_level</a>(_num_levels - 1), output, <a class="code" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0">ConvertPolicy::WRAP</a>, 0);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; _gauss_pyr.<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#acaefe811b78a2fdc4a0dba0c4029c3ef">allocate</a>();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; _conv_pyr.<a class="code" href="classarm__compute_1_1_c_l_pyramid.xhtml#acaefe811b78a2fdc4a0dba0c4029c3ef">allocate</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_pyramid_info_xhtml_a82c695f3a9ca51633ea8743d5c09f122"><div class="ttname"><a href="classarm__compute_1_1_pyramid_info.xhtml#a82c695f3a9ca51633ea8743d5c09f122">arm_compute::PyramidInfo::tensor_shape</a></div><div class="ttdeci">const TensorShape &amp; tensor_shape() const</div><div class="ttdoc">Return the TensorShape of the o-th level tensor.</div><div class="ttdef"><b>Definition:</b> <a href="_pyramid_info_8cpp_source.xhtml#l00092">PyramidInfo.cpp:92</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_tensor_info_xhtml_a178f0d3d87f959e00a743328d95359d2"><div class="ttname"><a href="classarm__compute_1_1_i_tensor_info.xhtml#a178f0d3d87f959e00a743328d95359d2">arm_compute::ITensorInfo::dimension</a></div><div class="ttdeci">virtual size_t dimension(size_t index) const =0</div><div class="ttdoc">Return the size of the requested dimension.</div></div>
<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">arm_compute::Format::U8</a></div><div class="ttdoc">1 channel, 1 U8 per channel</div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_pyramid_xhtml_a7e9f724340af5b795b21a00d35eeb28e"><div class="ttname"><a href="classarm__compute_1_1_c_l_pyramid.xhtml#a7e9f724340af5b795b21a00d35eeb28e">arm_compute::CLPyramid::info</a></div><div class="ttdeci">const PyramidInfo * info() const override</div><div class="ttdoc">Interface to be implemented by the child class to return the Pyramid's metadata.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_pyramid_8cpp_source.xhtml#l00118">CLPyramid.cpp:118</a></div></div>
<div class="ttc" id="classarm__compute_1_1_pyramid_info_xhtml_a741486bedb7b0966b1d4e6e7c6cccf60"><div class="ttname"><a href="classarm__compute_1_1_pyramid_info.xhtml#a741486bedb7b0966b1d4e6e7c6cccf60">arm_compute::PyramidInfo::init</a></div><div class="ttdeci">void init(size_t num_levels, float scale, size_t width, size_t height, Format format)</div><div class="ttdoc">Initialize pyramid's metadata for 2D tensors.</div><div class="ttdef"><b>Definition:</b> <a href="_pyramid_info_8cpp_source.xhtml#l00050">PyramidInfo.cpp:50</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00466">Error.h:466</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a5471e46933e7a9c4709972d91fc4ea65"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a5471e46933e7a9c4709972d91fc4ea65">arm_compute::test::validation::border_mode</a></div><div class="ttdeci">border_mode</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00118">Convolution.cpp:118</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_pyramid_xhtml_ae4e11cca76492d63009564d1ea466dff"><div class="ttname"><a href="classarm__compute_1_1_c_l_pyramid.xhtml#ae4e11cca76492d63009564d1ea466dff">arm_compute::CLPyramid::init</a></div><div class="ttdeci">void init(const PyramidInfo &amp;info)</div><div class="ttdoc">Initialize pyramid data-object using the given Pyramid's metadata.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_pyramid_8cpp_source.xhtml#l00042">CLPyramid.cpp:42</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_pyramid_xhtml_acaefe811b78a2fdc4a0dba0c4029c3ef"><div class="ttname"><a href="classarm__compute_1_1_c_l_pyramid.xhtml#acaefe811b78a2fdc4a0dba0c4029c3ef">arm_compute::CLPyramid::allocate</a></div><div class="ttdeci">void allocate()</div><div class="ttdoc">Allocate the planes in the pyramid.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_pyramid_8cpp_source.xhtml#l00110">CLPyramid.cpp:110</a></div></div>
<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's metadata.</div></div>
<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">arm_compute::Format::S16</a></div><div class="ttdoc">1 channel, 1 S16 per channel</div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_depth_convert_layer_xhtml_a536f0de1a70ea80d40b0a24657ac5290"><div class="ttname"><a href="classarm__compute_1_1_c_l_depth_convert_layer.xhtml#a536f0de1a70ea80d40b0a24657ac5290">arm_compute::CLDepthConvertLayer::configure</a></div><div class="ttdeci">void configure(const ICLTensor *input, ICLTensor *output, ConvertPolicy policy, uint32_t shift)</div><div class="ttdoc">Initialize the function's source, destination.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_depth_convert_layer_8cpp_source.xhtml#l00033">CLDepthConvertLayer.cpp:33</a></div></div>
<div class="ttc" id="_validate_8h_xhtml_aadf5c9cff86327b96d88d04649d9715e"><div class="ttname"><a href="_validate_8h.xhtml#aadf5c9cff86327b96d88d04649d9715e">ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(t, c,...)</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00790">Validate.h:790</a></div></div>
<div class="ttc" id="classarm__compute_1_1_pyramid_info_xhtml"><div class="ttname"><a href="classarm__compute_1_1_pyramid_info.xhtml">arm_compute::PyramidInfo</a></div><div class="ttdoc">Store the Pyramid's metadata.</div><div class="ttdef"><b>Definition:</b> <a href="_pyramid_info_8h_source.xhtml#l00035">PyramidInfo.h:35</a></div></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>
<div class="ttc" id="classarm__compute_1_1_c_l_pyramid_xhtml_a6f6fce8ca90f3e9a62e2cb48a07047f4"><div class="ttname"><a href="classarm__compute_1_1_c_l_pyramid.xhtml#a6f6fce8ca90f3e9a62e2cb48a07047f4">arm_compute::CLPyramid::get_pyramid_level</a></div><div class="ttdeci">CLTensor * get_pyramid_level(size_t index) const override</div><div class="ttdoc">Retrieves a level of the pyramid as a ITensor pointer.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_pyramid_8cpp_source.xhtml#l00123">CLPyramid.cpp:123</a></div></div>
<div class="ttc" id="classarm__compute_1_1_pyramid_info_xhtml_a9ce99f5dfa1514cb108665e3810b2c4c"><div class="ttname"><a href="classarm__compute_1_1_pyramid_info.xhtml#a9ce99f5dfa1514cb108665e3810b2c4c">arm_compute::PyramidInfo::width</a></div><div class="ttdeci">size_t width() const</div><div class="ttdoc">Return the width of the 0th level tensor.</div><div class="ttdef"><b>Definition:</b> <a href="_pyramid_info_8cpp_source.xhtml#l00082">PyramidInfo.cpp:82</a></div></div>
<div class="ttc" id="classarm__compute_1_1_pyramid_info_xhtml_aa2fea6640d2bd5de24d0e0c2433faab6"><div class="ttname"><a href="classarm__compute_1_1_pyramid_info.xhtml#aa2fea6640d2bd5de24d0e0c2433faab6">arm_compute::PyramidInfo::num_levels</a></div><div class="ttdeci">size_t num_levels() const</div><div class="ttdoc">Return the number of the pyramid levels.</div><div class="ttdef"><b>Definition:</b> <a href="_pyramid_info_8cpp_source.xhtml#l00077">PyramidInfo.cpp:77</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a4f4125dba5283887b34f889b1c615c0c"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a4f4125dba5283887b34f889b1c615c0c">arm_compute::test::validation::info</a></div><div class="ttdeci">info</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_layer_8cpp_source.xhtml#l00182">ConvolutionLayer.cpp:182</a></div></div>
<div class="ttc" id="classarm__compute_1_1_pyramid_info_xhtml_adc662cea5b05cd9852d5a4538586d662"><div class="ttname"><a href="classarm__compute_1_1_pyramid_info.xhtml#adc662cea5b05cd9852d5a4538586d662">arm_compute::PyramidInfo::height</a></div><div class="ttdeci">size_t height() const</div><div class="ttdoc">Return the height of the 0th level tensor.</div><div class="ttdef"><b>Definition:</b> <a href="_pyramid_info_8cpp_source.xhtml#l00087">PyramidInfo.cpp:87</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_gaussian_pyramid_half_xhtml_a9f1c2312374125fd95ee145a4f07515c"><div class="ttname"><a href="classarm__compute_1_1_c_l_gaussian_pyramid_half.xhtml#a9f1c2312374125fd95ee145a4f07515c">arm_compute::CLGaussianPyramidHalf::configure</a></div><div class="ttdeci">void configure(ICLTensor *input, CLPyramid *pyramid, BorderMode border_mode, uint8_t constant_border_value) override</div><div class="ttdoc">Initialise the function's source, destinations and border mode.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_gaussian_pyramid_8cpp_source.xhtml#l00059">CLGaussianPyramid.cpp:59</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_c_l_pyramid_8cpp_source.xhtml#l00110">CLPyramid::allocate()</a>, <a class="el" href="_error_8h_source.xhtml#l00466">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_validate_8h_source.xhtml#l00790">ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00118">arm_compute::test::validation::border_mode</a>, <a class="el" href="_c_l_depth_convert_layer_8cpp_source.xhtml#l00033">CLDepthConvertLayer::configure()</a>, <a class="el" href="_c_l_gaussian_pyramid_8cpp_source.xhtml#l00059">CLGaussianPyramidHalf::configure()</a>, <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a178f0d3d87f959e00a743328d95359d2">ITensorInfo::dimension()</a>, <a class="el" href="_c_l_pyramid_8cpp_source.xhtml#l00123">CLPyramid::get_pyramid_level()</a>, <a class="el" href="_pyramid_info_8cpp_source.xhtml#l00087">PyramidInfo::height()</a>, <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor::info()</a>, <a class="el" href="_c_l_pyramid_8cpp_source.xhtml#l00118">CLPyramid::info()</a>, <a class="el" href="_c_l_2_convolution_layer_8cpp_source.xhtml#l00182">arm_compute::test::validation::info</a>, <a class="el" href="_c_l_pyramid_8cpp_source.xhtml#l00042">CLPyramid::init()</a>, <a class="el" href="_pyramid_info_8cpp_source.xhtml#l00050">PyramidInfo::init()</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="_pyramid_info_8cpp_source.xhtml#l00077">PyramidInfo::num_levels()</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">arm_compute::S16</a>, <a class="el" href="_pyramid_info_8cpp_source.xhtml#l00092">PyramidInfo::tensor_shape()</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">arm_compute::U8</a>, <a class="el" href="_pyramid_info_8cpp_source.xhtml#l00082">PyramidInfo::width()</a>, and <a class="el" href="namespacearm__compute.xhtml#a82b8ac759c804bc1fb4e2d21e178fb6fae1c8555fcf0ea2bb648a6fd527d658c0">arm_compute::WRAP</a>.</p>
</div>
</div>
<a id="ad1717410afd0be936c6213a63c8005fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1717410afd0be936c6213a63c8005fb">&#9670;&nbsp;</a></span>run()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void run </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Run the kernels contained in the function. </p>
<p>For NEON kernels:</p><ul>
<li>Multi-threading is used for the kernels which are parallelisable.</li>
<li>By default std::thread::hardware_concurrency() threads are used.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="classarm__compute_1_1_c_p_p_scheduler.xhtml#ae64eebaa07f4d2da6cc2ba538c3cb095">CPPScheduler::set_num_threads()</a> can be used to manually set the number of threads</dd></dl>
<p>For OpenCL kernels:</p><ul>
<li>All the kernels are enqueued on the queue associated with <a class="el" href="classarm__compute_1_1_c_l_scheduler.xhtml" title="Provides global access to a CL context and command queue.">CLScheduler</a>.</li>
<li>The queue is then flushed.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>The function will not block until the kernels are executed. It is the user's responsibility to wait. </dd>
<dd>
Will call <a class="el" href="classarm__compute_1_1_i_function.xhtml#a820f7291c24155a2980512fae45aac26" title="Prepare the function for executing.">prepare()</a> on first run if hasn't been done </dd></dl>
<p>Implements <a class="el" href="classarm__compute_1_1_i_function.xhtml#a18954417d3124a8095783ea13dc6d00b">IFunction</a>.</p>
<p class="definition">Definition at line <a class="el" href="_c_l_laplacian_pyramid_8cpp_source.xhtml#l00088">88</a> of file <a class="el" href="_c_l_laplacian_pyramid_8cpp_source.xhtml">CLLaplacianPyramid.cpp</a>.</p>
<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; <a class="code" href="_error_8h.xhtml#a0b0eb3235749a2909dc5a101afe59a1b">ARM_COMPUTE_ERROR_ON_MSG</a>(0 == _num_levels, <span class="stringliteral">&quot;Unconfigured function&quot;</span>);</div><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; _gaussian_pyr_function.<a class="code" href="classarm__compute_1_1_c_l_gaussian_pyramid_half.xhtml#ad1717410afd0be936c6213a63c8005fb">run</a>(); <span class="comment">// compute gaussian pyramid</span></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">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; _num_levels; ++i)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; _convf[i].run(); <span class="comment">// convolute gaussian pyramid</span></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;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; _num_levels; ++i)</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; _subf[i].run(); <span class="comment">// compute laplacian image</span></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;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; _depth_function.<a class="code" href="classarm__compute_1_1_i_c_l_simple_function.xhtml#a92fe532c342ae2b07956a65520c05362">run</a>();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_i_c_l_simple_function_xhtml_a92fe532c342ae2b07956a65520c05362"><div class="ttname"><a href="classarm__compute_1_1_i_c_l_simple_function.xhtml#a92fe532c342ae2b07956a65520c05362">arm_compute::ICLSimpleFunction::run</a></div><div class="ttdeci">void run() override final</div><div class="ttdoc">Run the kernels contained in the function.</div><div class="ttdef"><b>Definition:</b> <a href="_i_c_l_simple_function_8cpp_source.xhtml#l00039">ICLSimpleFunction.cpp:39</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a0b0eb3235749a2909dc5a101afe59a1b"><div class="ttname"><a href="_error_8h.xhtml#a0b0eb3235749a2909dc5a101afe59a1b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond, msg)</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00456">Error.h:456</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_gaussian_pyramid_half_xhtml_ad1717410afd0be936c6213a63c8005fb"><div class="ttname"><a href="classarm__compute_1_1_c_l_gaussian_pyramid_half.xhtml#ad1717410afd0be936c6213a63c8005fb">arm_compute::CLGaussianPyramidHalf::run</a></div><div class="ttdeci">void run() override</div><div class="ttdoc">Run the kernels contained in the function.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_gaussian_pyramid_8cpp_source.xhtml#l00109">CLGaussianPyramid.cpp:109</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00456">ARM_COMPUTE_ERROR_ON_MSG</a>, <a class="el" href="_i_c_l_simple_function_8cpp_source.xhtml#l00039">ICLSimpleFunction::run()</a>, and <a class="el" href="_c_l_gaussian_pyramid_8cpp_source.xhtml#l00109">CLGaussianPyramidHalf::run()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>arm_compute/runtime/CL/functions/<a class="el" href="_c_l_laplacian_pyramid_8h_source.xhtml">CLLaplacianPyramid.h</a></li>
<li>src/runtime/CL/functions/<a class="el" href="_c_l_laplacian_pyramid_8cpp_source.xhtml">CLLaplacianPyramid.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1_c_l_laplacian_pyramid.xhtml">CLLaplacianPyramid</a></li>
<li class="footer">Generated on Thu Mar 5 2020 16:07:11 for Compute Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul>
</div>
</body>
</html>