arm_compute v18.02
[platform/upstream/armcl.git] / documentation / classarm__compute_1_1_c_l_pixel_wise_multiplication_kernel.xhtml
index aca4874..c9522bc 100644 (file)
@@ -40,7 +40,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">Compute Library
-   &#160;<span id="projectnumber">18.01</span>
+   &#160;<span id="projectnumber">18.02</span>
    </div>
   </td>
  </tr>
@@ -157,6 +157,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a493987e85723a8000eb26d1f00e2ad0e"><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_pixel_wise_multiplication_kernel.xhtml#a493987e85723a8000eb26d1f00e2ad0e">run</a> (const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;<a class="el" href="classarm__compute_1_1_i_kernel.xhtml#a3f5646133956f06348b310ccc3d36353">window</a>, cl::CommandQueue &amp;queue) override</td></tr>
 <tr class="memdesc:a493987e85723a8000eb26d1f00e2ad0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue.  <a href="#a493987e85723a8000eb26d1f00e2ad0e">More...</a><br /></td></tr>
 <tr class="separator:a493987e85723a8000eb26d1f00e2ad0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a423f9a45a52983b4de5e2b347f4369c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_pixel_wise_multiplication_kernel.xhtml#a423f9a45a52983b4de5e2b347f4369c7">border_size</a> () const override</td></tr>
+<tr class="memdesc:a423f9a45a52983b4de5e2b347f4369c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the border for that kernel.  <a href="#a423f9a45a52983b4de5e2b347f4369c7">More...</a><br /></td></tr>
+<tr class="separator:a423f9a45a52983b4de5e2b347f4369c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classarm__compute_1_1_i_c_l_kernel"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1_i_c_l_kernel')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml">ICLKernel</a></td></tr>
 <tr class="memitem:a6b10e96ce90bf901d17def86b874b019 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a6b10e96ce90bf901d17def86b874b019">ICLKernel</a> ()</td></tr>
 <tr class="memdesc:a6b10e96ce90bf901d17def86b874b019 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a6b10e96ce90bf901d17def86b874b019">More...</a><br /></td></tr>
@@ -180,21 +183,6 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a33e09c946b338fbfc780a9d1c66e68ad inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a33e09c946b338fbfc780a9d1c66e68ad">add_4D_tensor_argument</a> (unsigned int &amp;idx, const <a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> *tensor, const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;<a class="el" href="classarm__compute_1_1_i_kernel.xhtml#a3f5646133956f06348b310ccc3d36353">window</a>)</td></tr>
 <tr class="memdesc:a33e09c946b338fbfc780a9d1c66e68ad inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the passed 4D tensor's parameters to the object's kernel's arguments starting from the index idx.  <a href="#a33e09c946b338fbfc780a9d1c66e68ad">More...</a><br /></td></tr>
 <tr class="separator:a33e09c946b338fbfc780a9d1c66e68ad inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a99fde125501fae43952af222c91236cd inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a99fde125501fae43952af222c91236cd">num_arguments_per_1D_array</a> () const </td></tr>
-<tr class="memdesc:a99fde125501fae43952af222c91236cd inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 1D array object.  <a href="#a99fde125501fae43952af222c91236cd">More...</a><br /></td></tr>
-<tr class="separator:a99fde125501fae43952af222c91236cd inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a770f45838881fc061294e56d64f34386 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a770f45838881fc061294e56d64f34386">num_arguments_per_1D_tensor</a> () const </td></tr>
-<tr class="memdesc:a770f45838881fc061294e56d64f34386 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 1D tensor object.  <a href="#a770f45838881fc061294e56d64f34386">More...</a><br /></td></tr>
-<tr class="separator:a770f45838881fc061294e56d64f34386 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac734502531e7f95e25b3bf688a304a59 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#ac734502531e7f95e25b3bf688a304a59">num_arguments_per_2D_tensor</a> () const </td></tr>
-<tr class="memdesc:ac734502531e7f95e25b3bf688a304a59 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 2D tensor object.  <a href="#ac734502531e7f95e25b3bf688a304a59">More...</a><br /></td></tr>
-<tr class="separator:ac734502531e7f95e25b3bf688a304a59 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4feaae9c860cddfa843d37c953674a22 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a4feaae9c860cddfa843d37c953674a22">num_arguments_per_3D_tensor</a> () const </td></tr>
-<tr class="memdesc:a4feaae9c860cddfa843d37c953674a22 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 3D tensor object.  <a href="#a4feaae9c860cddfa843d37c953674a22">More...</a><br /></td></tr>
-<tr class="separator:a4feaae9c860cddfa843d37c953674a22 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af24df23a978e1a46ff6714e9b9d3eef9 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#af24df23a978e1a46ff6714e9b9d3eef9">num_arguments_per_4D_tensor</a> () const </td></tr>
-<tr class="memdesc:af24df23a978e1a46ff6714e9b9d3eef9 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 4D tensor object.  <a href="#af24df23a978e1a46ff6714e9b9d3eef9">More...</a><br /></td></tr>
-<tr class="separator:af24df23a978e1a46ff6714e9b9d3eef9 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a50f427a1d9419800972b9e03c4034311 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 <tr class="memitem:a50f427a1d9419800972b9e03c4034311 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a50f427a1d9419800972b9e03c4034311">add_argument</a> (unsigned int &amp;idx, T <a class="el" href="hwc_8hpp.xhtml#a0f61d63b009d0880a89c843bd50d8d76">value</a>)</td></tr>
 <tr class="memdesc:a50f427a1d9419800972b9e03c4034311 inherit pub_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the passed parameters to the object's kernel's arguments starting from the index idx.  <a href="#a50f427a1d9419800972b9e03c4034311">More...</a><br /></td></tr>
@@ -230,9 +218,6 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:abfab8f0d4928e1081d9f65b77933e24a inherit pub_methods_classarm__compute_1_1_i_kernel"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_kernel.xhtml#abfab8f0d4928e1081d9f65b77933e24a">is_parallelisable</a> () const </td></tr>
 <tr class="memdesc:abfab8f0d4928e1081d9f65b77933e24a inherit pub_methods_classarm__compute_1_1_i_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether or not the kernel is parallelisable.  <a href="#abfab8f0d4928e1081d9f65b77933e24a">More...</a><br /></td></tr>
 <tr class="separator:abfab8f0d4928e1081d9f65b77933e24a inherit pub_methods_classarm__compute_1_1_i_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa6daa9b04e2035bf007e5e5c3c4396a8 inherit pub_methods_classarm__compute_1_1_i_kernel"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_kernel.xhtml#aa6daa9b04e2035bf007e5e5c3c4396a8">border_size</a> () const </td></tr>
-<tr class="memdesc:aa6daa9b04e2035bf007e5e5c3c4396a8 inherit pub_methods_classarm__compute_1_1_i_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the border for that kernel.  <a href="#aa6daa9b04e2035bf007e5e5c3c4396a8">More...</a><br /></td></tr>
-<tr class="separator:aa6daa9b04e2035bf007e5e5c3c4396a8 inherit pub_methods_classarm__compute_1_1_i_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3f5646133956f06348b310ccc3d36353 inherit pub_methods_classarm__compute_1_1_i_kernel"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_kernel.xhtml#a3f5646133956f06348b310ccc3d36353">window</a> () const </td></tr>
 <tr class="memdesc:a3f5646133956f06348b310ccc3d36353 inherit pub_methods_classarm__compute_1_1_i_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum window the kernel can be executed on.  <a href="#a3f5646133956f06348b310ccc3d36353">More...</a><br /></td></tr>
 <tr class="separator:a3f5646133956f06348b310ccc3d36353 inherit pub_methods_classarm__compute_1_1_i_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -243,6 +228,21 @@ Static Public Member Functions</h2></td></tr>
 <tr class="memdesc:ad2d7ece77e2d56742022a0e604416007"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static function to check if given info will lead to a valid configuration of <a class="el" href="classarm__compute_1_1_c_l_pixel_wise_multiplication_kernel.xhtml">CLPixelWiseMultiplicationKernel</a>.  <a href="#ad2d7ece77e2d56742022a0e604416007">More...</a><br /></td></tr>
 <tr class="separator:ad2d7ece77e2d56742022a0e604416007"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classarm__compute_1_1_i_c_l_kernel')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml">ICLKernel</a></td></tr>
+<tr class="memitem:a278f0e6c68ca17e71f4c4ff82f360aa0 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">static constexpr unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a278f0e6c68ca17e71f4c4ff82f360aa0">num_arguments_per_1D_array</a> ()</td></tr>
+<tr class="memdesc:a278f0e6c68ca17e71f4c4ff82f360aa0 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 1D array object.  <a href="#a278f0e6c68ca17e71f4c4ff82f360aa0">More...</a><br /></td></tr>
+<tr class="separator:a278f0e6c68ca17e71f4c4ff82f360aa0 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43b6c5e4b57069c5f61e96dff24c212d inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">static constexpr unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a43b6c5e4b57069c5f61e96dff24c212d">num_arguments_per_1D_tensor</a> ()</td></tr>
+<tr class="memdesc:a43b6c5e4b57069c5f61e96dff24c212d inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 1D tensor object.  <a href="#a43b6c5e4b57069c5f61e96dff24c212d">More...</a><br /></td></tr>
+<tr class="separator:a43b6c5e4b57069c5f61e96dff24c212d inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45601e0d46621a5b6f2e417d60e5c800 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">static constexpr unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a45601e0d46621a5b6f2e417d60e5c800">num_arguments_per_2D_tensor</a> ()</td></tr>
+<tr class="memdesc:a45601e0d46621a5b6f2e417d60e5c800 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 2D tensor object.  <a href="#a45601e0d46621a5b6f2e417d60e5c800">More...</a><br /></td></tr>
+<tr class="separator:a45601e0d46621a5b6f2e417d60e5c800 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c9c1e7a7d96743375ca40847f0f12e2 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">static constexpr unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a6c9c1e7a7d96743375ca40847f0f12e2">num_arguments_per_3D_tensor</a> ()</td></tr>
+<tr class="memdesc:a6c9c1e7a7d96743375ca40847f0f12e2 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 3D tensor object.  <a href="#a6c9c1e7a7d96743375ca40847f0f12e2">More...</a><br /></td></tr>
+<tr class="separator:a6c9c1e7a7d96743375ca40847f0f12e2 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a184fdf37587a9314cf12623accea6c73 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">static constexpr unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a184fdf37587a9314cf12623accea6c73">num_arguments_per_4D_tensor</a> ()</td></tr>
+<tr class="memdesc:a184fdf37587a9314cf12623accea6c73 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of arguments enqueued per 4D tensor object.  <a href="#a184fdf37587a9314cf12623accea6c73">More...</a><br /></td></tr>
+<tr class="separator:a184fdf37587a9314cf12623accea6c73 inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a4b4a20e518c04e657839280cd486a85d inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memItemLeft" align="right" valign="top">static cl::NDRange&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_kernel.xhtml#a4b4a20e518c04e657839280cd486a85d">gws_from_window</a> (const <a class="el" href="classarm__compute_1_1_window.xhtml">Window</a> &amp;<a class="el" href="classarm__compute_1_1_i_kernel.xhtml#a3f5646133956f06348b310ccc3d36353">window</a>)</td></tr>
 <tr class="memdesc:a4b4a20e518c04e657839280cd486a85d inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the global work size given an execution window.  <a href="#a4b4a20e518c04e657839280cd486a85d">More...</a><br /></td></tr>
 <tr class="separator:a4b4a20e518c04e657839280cd486a85d inherit pub_static_methods_classarm__compute_1_1_i_c_l_kernel"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -322,6 +322,34 @@ Static Public Member Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a423f9a45a52983b4de5e2b347f4369c7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> border_size </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</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>The size of the border for that kernel. </p>
+<dl class="section return"><dt>Returns</dt><dd>The width in number of elements of the border. </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classarm__compute_1_1_i_kernel.xhtml#aa6daa9b04e2035bf007e5e5c3c4396a8">IKernel</a>.</p>
+
+</div>
+</div>
 <a class="anchor" id="a3e0a2f39d9dc0f7083aef3b37335afff"></a>
 <div class="memitem">
 <div class="memproto">
@@ -564,7 +592,7 @@ Static Public Member Functions</h2></td></tr>
 <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_pixel_wise_multiplication_kernel.xhtml">CLPixelWiseMultiplicationKernel</a></li>
-    <li class="footer">Generated on Wed Jan 24 2018 14:30:45 for Compute Library by
+    <li class="footer">Generated on Thu Feb 22 2018 15:45:24 for Compute Library by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
   </ul>