add Doxygen documentation
[o-du/phy.git] / docs / API / namespace_block_float_compander.html
diff --git a/docs/API/namespace_block_float_compander.html b/docs/API/namespace_block_float_compander.html
new file mode 100644 (file)
index 0000000..9dca61b
--- /dev/null
@@ -0,0 +1,636 @@
+<!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.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>o-du/phy: BlockFloatCompander Namespace 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="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>
+<link href="doxygen.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;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">o-du/phy
+   </div>
+   <div id="projectbrief">Intel O-RAN/X-RAN Generated Doxygen Documentation</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- 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><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">BlockFloatCompander Namespace Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a45cc83687ca392534168cb8f4d64182f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#a45cc83687ca392534168cb8f4d64182f">BlockFloatCompress_Basic</a> (const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *dataOut)</td></tr>
+<tr class="memdesc:a45cc83687ca392534168cb8f4d64182f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference compression.  <a href="#a45cc83687ca392534168cb8f4d64182f">More...</a><br /></td></tr>
+<tr class="separator:a45cc83687ca392534168cb8f4d64182f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b3ddd524752c8f556bc4c654e392321"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#a5b3ddd524752c8f556bc4c654e392321">BlockFloatCompress_8b_AVX512</a> (const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *dataOut)</td></tr>
+<tr class="memdesc:a5b3ddd524752c8f556bc4c654e392321"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit compression  <a href="#a5b3ddd524752c8f556bc4c654e392321">More...</a><br /></td></tr>
+<tr class="separator:a5b3ddd524752c8f556bc4c654e392321"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2356f186e264c7cea4e3c26d448bb1d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#a2356f186e264c7cea4e3c26d448bb1d5">BlockFloatCompress_9b_AVX512</a> (const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *dataOut)</td></tr>
+<tr class="memdesc:a2356f186e264c7cea4e3c26d448bb1d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">9 bit compression  <a href="#a2356f186e264c7cea4e3c26d448bb1d5">More...</a><br /></td></tr>
+<tr class="separator:a2356f186e264c7cea4e3c26d448bb1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae525362ca026142cab4ac983e29ad0ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#ae525362ca026142cab4ac983e29ad0ff">BlockFloatCompress_10b_AVX512</a> (const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *dataOut)</td></tr>
+<tr class="memdesc:ae525362ca026142cab4ac983e29ad0ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">10 bit compression  <a href="#ae525362ca026142cab4ac983e29ad0ff">More...</a><br /></td></tr>
+<tr class="separator:ae525362ca026142cab4ac983e29ad0ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a8db4c5039bc3d5237b31ca2a129815"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#a2a8db4c5039bc3d5237b31ca2a129815">BlockFloatCompress_12b_AVX512</a> (const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *dataOut)</td></tr>
+<tr class="memdesc:a2a8db4c5039bc3d5237b31ca2a129815"><td class="mdescLeft">&#160;</td><td class="mdescRight">12 bit compression  <a href="#a2a8db4c5039bc3d5237b31ca2a129815">More...</a><br /></td></tr>
+<tr class="separator:a2a8db4c5039bc3d5237b31ca2a129815"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f4776cd07aac0ae2d9dbd02aaba3435"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#a5f4776cd07aac0ae2d9dbd02aaba3435">BlockFloatExpand_Basic</a> (const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *dataOut)</td></tr>
+<tr class="memdesc:a5f4776cd07aac0ae2d9dbd02aaba3435"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference expansion.  <a href="#a5f4776cd07aac0ae2d9dbd02aaba3435">More...</a><br /></td></tr>
+<tr class="separator:a5f4776cd07aac0ae2d9dbd02aaba3435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4ad42b117d59e2e7ff8fad2d5da506e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#ae4ad42b117d59e2e7ff8fad2d5da506e">BlockFloatExpand_8b_AVX512</a> (const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *dataOut)</td></tr>
+<tr class="memdesc:ae4ad42b117d59e2e7ff8fad2d5da506e"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit expansion  <a href="#ae4ad42b117d59e2e7ff8fad2d5da506e">More...</a><br /></td></tr>
+<tr class="separator:ae4ad42b117d59e2e7ff8fad2d5da506e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32917a78ac1596d9aa95e4089ec88ba9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#a32917a78ac1596d9aa95e4089ec88ba9">BlockFloatExpand_9b_AVX512</a> (const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *dataOut)</td></tr>
+<tr class="memdesc:a32917a78ac1596d9aa95e4089ec88ba9"><td class="mdescLeft">&#160;</td><td class="mdescRight">9 bit expansion  <a href="#a32917a78ac1596d9aa95e4089ec88ba9">More...</a><br /></td></tr>
+<tr class="separator:a32917a78ac1596d9aa95e4089ec88ba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8fae7506e2b9c9f9365b306375ab6eff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#a8fae7506e2b9c9f9365b306375ab6eff">BlockFloatExpand_10b_AVX512</a> (const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *dataOut)</td></tr>
+<tr class="memdesc:a8fae7506e2b9c9f9365b306375ab6eff"><td class="mdescLeft">&#160;</td><td class="mdescRight">10 bit expansion  <a href="#a8fae7506e2b9c9f9365b306375ab6eff">More...</a><br /></td></tr>
+<tr class="separator:a8fae7506e2b9c9f9365b306375ab6eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65b09b78fac0c8dcfc9edd5091b728dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_block_float_compander.html#a65b09b78fac0c8dcfc9edd5091b728dd">BlockFloatExpand_12b_AVX512</a> (const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;dataIn, <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *dataOut)</td></tr>
+<tr class="memdesc:a65b09b78fac0c8dcfc9edd5091b728dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">12 bit expansion  <a href="#a65b09b78fac0c8dcfc9edd5091b728dd">More...</a><br /></td></tr>
+<tr class="separator:a65b09b78fac0c8dcfc9edd5091b728dd"><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>Intel compiler frequently complains about templates not being declared in an external header. Templates are used throughout this project's source files to define local type-specific versions of functions. Defining every one of these in a header is unnecessary, so the warnings about this are turned off globally. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ae525362ca026142cab4ac983e29ad0ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae525362ca026142cab4ac983e29ad0ff">&#9670;&nbsp;</a></span>BlockFloatCompress_10b_AVX512()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatCompress_10b_AVX512 </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>10 bit compression </p>
+<p>Compute exponent and store for later use</p>
+<p>Shift 1RB by corresponding exponent and write exponent and data to output Output data is packed exponent first followed by corresponding compressed RB</p>
+<p>Apply exponent shift</p>
+<p>Pack compressed data network byte order</p>
+<p>Store exponent first</p>
+<p>Now have 1 RB worth of bytes separated into 3 chunks (1 per lane) Use three offset stores to join </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00395">395</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_ae525362ca026142cab4ac983e29ad0ff_cgraph.png" border="0" usemap="#namespace_block_float_compander_ae525362ca026142cab4ac983e29ad0ff_cgraph" alt=""/></div>
+<map name="namespace_block_float_compander_ae525362ca026142cab4ac983e29ad0ff_cgraph" id="namespace_block_float_compander_ae525362ca026142cab4ac983e29ad0ff_cgraph">
+<area shape="rect" id="node2" href="xran__compression_8cpp.html#a74512492194fcab6a55f769e02aa37b4" title="Compute exponent value for a set of RB from the maximum absolute value. " alt="" coords="207,5,334,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a4a2767bece9b74bb6348b416af70a3de" title="networkBytePack10b" alt="" coords="197,56,344,83"/>
+</map>
+</div>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_ae525362ca026142cab4ac983e29ad0ff_icgraph.png" border="0" usemap="#namespace_block_float_compander_ae525362ca026142cab4ac983e29ad0ff_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_ae525362ca026142cab4ac983e29ad0ff_icgraph" id="namespace_block_float_compander_ae525362ca026142cab4ac983e29ad0ff_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#a3351c323474adfa4b66c985141776b2f" title="TEST_P" alt="" coords="248,5,320,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a0651de68e87558106615163f96b3e599" title="xranlib_compress_avx512" alt="" coords="197,56,371,83"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="419,56,491,83"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a2a8db4c5039bc3d5237b31ca2a129815"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2a8db4c5039bc3d5237b31ca2a129815">&#9670;&nbsp;</a></span>BlockFloatCompress_12b_AVX512()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatCompress_12b_AVX512 </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>12 bit compression </p>
+<p>Compute exponent and store for later use</p>
+<p>Shift 1RB by corresponding exponent and write exponent and data to output Output data is packed exponent first followed by corresponding compressed RB</p>
+<p>Apply exponent shift</p>
+<p>Pack compressed data network byte order</p>
+<p>Store exponent first</p>
+<p>Now have 1 RB worth of bytes separated into 3 chunks (1 per lane) Use three offset stores to join </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00431">431</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a2a8db4c5039bc3d5237b31ca2a129815_cgraph.png" border="0" usemap="#namespace_block_float_compander_a2a8db4c5039bc3d5237b31ca2a129815_cgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a2a8db4c5039bc3d5237b31ca2a129815_cgraph" id="namespace_block_float_compander_a2a8db4c5039bc3d5237b31ca2a129815_cgraph">
+<area shape="rect" id="node2" href="xran__compression_8cpp.html#a74512492194fcab6a55f769e02aa37b4" title="Compute exponent value for a set of RB from the maximum absolute value. " alt="" coords="207,5,334,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#aafe7eae735c4ebf8f028e7baa6783c22" title="networkBytePack12b" alt="" coords="197,56,344,83"/>
+</map>
+</div>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a2a8db4c5039bc3d5237b31ca2a129815_icgraph.png" border="0" usemap="#namespace_block_float_compander_a2a8db4c5039bc3d5237b31ca2a129815_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a2a8db4c5039bc3d5237b31ca2a129815_icgraph" id="namespace_block_float_compander_a2a8db4c5039bc3d5237b31ca2a129815_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#a53f55fd621ce0edd0b50933321ae7ade" title="TEST_P" alt="" coords="248,5,320,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a0651de68e87558106615163f96b3e599" title="xranlib_compress_avx512" alt="" coords="197,56,371,83"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="419,56,491,83"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a5b3ddd524752c8f556bc4c654e392321"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b3ddd524752c8f556bc4c654e392321">&#9670;&nbsp;</a></span>BlockFloatCompress_8b_AVX512()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatCompress_8b_AVX512 </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>8 bit compression </p>
+<p>Compute exponent and store for later use</p>
+<p>Shift 1RB by corresponding exponent and write exponent and data to output</p>
+<p>Store exponent first</p>
+<p>Store compressed RB </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00335">335</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a5b3ddd524752c8f556bc4c654e392321_cgraph.png" border="0" usemap="#namespace_block_float_compander_a5b3ddd524752c8f556bc4c654e392321_cgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a5b3ddd524752c8f556bc4c654e392321_cgraph" id="namespace_block_float_compander_a5b3ddd524752c8f556bc4c654e392321_cgraph">
+<area shape="rect" id="node2" href="xran__compression_8cpp.html#a74512492194fcab6a55f769e02aa37b4" title="Compute exponent value for a set of RB from the maximum absolute value. " alt="" coords="197,13,324,39"/>
+</map>
+</div>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a5b3ddd524752c8f556bc4c654e392321_icgraph.png" border="0" usemap="#namespace_block_float_compander_a5b3ddd524752c8f556bc4c654e392321_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a5b3ddd524752c8f556bc4c654e392321_icgraph" id="namespace_block_float_compander_a5b3ddd524752c8f556bc4c654e392321_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#af62cc2e23934ba7efa6a132a26a339fe" title="TEST_P" alt="" coords="248,5,320,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a0651de68e87558106615163f96b3e599" title="xranlib_compress_avx512" alt="" coords="197,56,371,83"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="419,56,491,83"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a2356f186e264c7cea4e3c26d448bb1d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2356f186e264c7cea4e3c26d448bb1d5">&#9670;&nbsp;</a></span>BlockFloatCompress_9b_AVX512()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatCompress_9b_AVX512 </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>9 bit compression </p>
+<p>Compute exponent and store for later use</p>
+<p>Shift 1RB by corresponding exponent and write exponent and data to output Output data is packed exponent first followed by corresponding compressed RB</p>
+<p>Apply exponent shift</p>
+<p>Pack compressed data network byte order</p>
+<p>Store exponent first</p>
+<p>Now have 1 RB worth of bytes separated into 3 chunks (1 per lane) Use three offset stores to join </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00359">359</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a2356f186e264c7cea4e3c26d448bb1d5_cgraph.png" border="0" usemap="#namespace_block_float_compander_a2356f186e264c7cea4e3c26d448bb1d5_cgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a2356f186e264c7cea4e3c26d448bb1d5_cgraph" id="namespace_block_float_compander_a2356f186e264c7cea4e3c26d448bb1d5_cgraph">
+<area shape="rect" id="node2" href="xran__compression_8cpp.html#a74512492194fcab6a55f769e02aa37b4" title="Compute exponent value for a set of RB from the maximum absolute value. " alt="" coords="203,5,330,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#acb87fe08d3492b251e7a2561488064fa" title="networkBytePack9b" alt="" coords="197,56,336,83"/>
+</map>
+</div>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a2356f186e264c7cea4e3c26d448bb1d5_icgraph.png" border="0" usemap="#namespace_block_float_compander_a2356f186e264c7cea4e3c26d448bb1d5_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a2356f186e264c7cea4e3c26d448bb1d5_icgraph" id="namespace_block_float_compander_a2356f186e264c7cea4e3c26d448bb1d5_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#a05f3cac0967e0fc77f7c8e0a1f05ba82" title="TEST_P" alt="" coords="248,5,320,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a0651de68e87558106615163f96b3e599" title="xranlib_compress_avx512" alt="" coords="197,56,371,83"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="419,56,491,83"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a45cc83687ca392534168cb8f4d64182f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45cc83687ca392534168cb8f4d64182f">&#9670;&nbsp;</a></span>BlockFloatCompress_Basic()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatCompress_Basic </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reference compression. </p>
+<p>Find max abs value for this RB</p>
+<p>ARS data by exponent and pack bytes in Network order This uses a sliding buffer where one or more bytes are extracted after the insertion of each compressed sample </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00558">558</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a45cc83687ca392534168cb8f4d64182f_icgraph.png" border="0" usemap="#namespace_block_float_compander_a45cc83687ca392534168cb8f4d64182f_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a45cc83687ca392534168cb8f4d64182f_icgraph" id="namespace_block_float_compander_a45cc83687ca392534168cb8f4d64182f_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#a53f55fd621ce0edd0b50933321ae7ade" title="TEST_P" alt="" coords="248,5,320,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a0651de68e87558106615163f96b3e599" title="xranlib_compress_avx512" alt="" coords="197,56,371,83"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="419,56,491,83"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a8fae7506e2b9c9f9365b306375ab6eff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8fae7506e2b9c9f9365b306375ab6eff">&#9670;&nbsp;</a></span>BlockFloatExpand_10b_AVX512()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatExpand_10b_AVX512 </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>10 bit expansion </p>
+<p>Unpack network order packed data</p>
+<p>Apply exponent scaling (by appropriate arithmetic shift right)</p>
+<p>Write expanded data to output </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00510">510</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a8fae7506e2b9c9f9365b306375ab6eff_cgraph.png" border="0" usemap="#namespace_block_float_compander_a8fae7506e2b9c9f9365b306375ab6eff_cgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a8fae7506e2b9c9f9365b306375ab6eff_cgraph" id="namespace_block_float_compander_a8fae7506e2b9c9f9365b306375ab6eff_cgraph">
+<area shape="rect" id="node2" href="xran__compression_8cpp.html#a27043376e22397cc933d3c4d9450677b" title="networkByteUnpack10b" alt="" coords="209,13,371,39"/>
+</map>
+</div>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a8fae7506e2b9c9f9365b306375ab6eff_icgraph.png" border="0" usemap="#namespace_block_float_compander_a8fae7506e2b9c9f9365b306375ab6eff_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a8fae7506e2b9c9f9365b306375ab6eff_icgraph" id="namespace_block_float_compander_a8fae7506e2b9c9f9365b306375ab6eff_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#a3351c323474adfa4b66c985141776b2f" title="TEST_P" alt="" coords="243,5,315,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a2bd6ebeefb6ca9674598d443e697918c" title="xranlib_decompress\l_avx512" alt="" coords="209,57,348,98"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="396,64,468,91"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a65b09b78fac0c8dcfc9edd5091b728dd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a65b09b78fac0c8dcfc9edd5091b728dd">&#9670;&nbsp;</a></span>BlockFloatExpand_12b_AVX512()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatExpand_12b_AVX512 </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>12 bit expansion </p>
+<p>Unpack network order packed data</p>
+<p>Apply exponent scaling (by appropriate arithmetic shift right)</p>
+<p>Write expanded data to output </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00534">534</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a65b09b78fac0c8dcfc9edd5091b728dd_cgraph.png" border="0" usemap="#namespace_block_float_compander_a65b09b78fac0c8dcfc9edd5091b728dd_cgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a65b09b78fac0c8dcfc9edd5091b728dd_cgraph" id="namespace_block_float_compander_a65b09b78fac0c8dcfc9edd5091b728dd_cgraph">
+<area shape="rect" id="node2" href="xran__compression_8cpp.html#a91aa9bdb6901711b43d848a4a5a94d2f" title="networkByteUnpack12b" alt="" coords="209,13,371,39"/>
+</map>
+</div>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a65b09b78fac0c8dcfc9edd5091b728dd_icgraph.png" border="0" usemap="#namespace_block_float_compander_a65b09b78fac0c8dcfc9edd5091b728dd_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a65b09b78fac0c8dcfc9edd5091b728dd_icgraph" id="namespace_block_float_compander_a65b09b78fac0c8dcfc9edd5091b728dd_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#a53f55fd621ce0edd0b50933321ae7ade" title="TEST_P" alt="" coords="243,5,315,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a2bd6ebeefb6ca9674598d443e697918c" title="xranlib_decompress\l_avx512" alt="" coords="209,57,348,98"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="396,64,468,91"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="ae4ad42b117d59e2e7ff8fad2d5da506e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae4ad42b117d59e2e7ff8fad2d5da506e">&#9670;&nbsp;</a></span>BlockFloatExpand_8b_AVX512()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatExpand_8b_AVX512 </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>8 bit expansion </p>
+<p>Expand 1RB of data</p>
+<p>Write expanded data to output </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00467">467</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_ae4ad42b117d59e2e7ff8fad2d5da506e_icgraph.png" border="0" usemap="#namespace_block_float_compander_ae4ad42b117d59e2e7ff8fad2d5da506e_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_ae4ad42b117d59e2e7ff8fad2d5da506e_icgraph" id="namespace_block_float_compander_ae4ad42b117d59e2e7ff8fad2d5da506e_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#af62cc2e23934ba7efa6a132a26a339fe" title="TEST_P" alt="" coords="236,5,308,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a2bd6ebeefb6ca9674598d443e697918c" title="xranlib_decompress\l_avx512" alt="" coords="203,57,341,98"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="389,64,461,91"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a32917a78ac1596d9aa95e4089ec88ba9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a32917a78ac1596d9aa95e4089ec88ba9">&#9670;&nbsp;</a></span>BlockFloatExpand_9b_AVX512()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatExpand_9b_AVX512 </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>9 bit expansion </p>
+<p>Unpack network order packed data</p>
+<p>Apply exponent scaling (by appropriate arithmetic shift right)</p>
+<p>Write expanded data to output </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00486">486</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a32917a78ac1596d9aa95e4089ec88ba9_cgraph.png" border="0" usemap="#namespace_block_float_compander_a32917a78ac1596d9aa95e4089ec88ba9_cgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a32917a78ac1596d9aa95e4089ec88ba9_cgraph" id="namespace_block_float_compander_a32917a78ac1596d9aa95e4089ec88ba9_cgraph">
+<area shape="rect" id="node2" href="xran__compression_8cpp.html#afb29866152e84d42cd2e3bc116454493" title="networkByteUnpack9b" alt="" coords="203,13,357,39"/>
+</map>
+</div>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a32917a78ac1596d9aa95e4089ec88ba9_icgraph.png" border="0" usemap="#namespace_block_float_compander_a32917a78ac1596d9aa95e4089ec88ba9_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a32917a78ac1596d9aa95e4089ec88ba9_icgraph" id="namespace_block_float_compander_a32917a78ac1596d9aa95e4089ec88ba9_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#a05f3cac0967e0fc77f7c8e0a1f05ba82" title="TEST_P" alt="" coords="236,5,308,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a2bd6ebeefb6ca9674598d443e697918c" title="xranlib_decompress\l_avx512" alt="" coords="203,57,341,98"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="389,64,461,91"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a5f4776cd07aac0ae2d9dbd02aaba3435"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5f4776cd07aac0ae2d9dbd02aaba3435">&#9670;&nbsp;</a></span>BlockFloatExpand_Basic()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void BlockFloatExpand_Basic </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct_block_float_compander_1_1_compressed_data.html">CompressedData</a> &amp;&#160;</td>
+          <td class="paramname"><em>dataIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_block_float_compander_1_1_expanded_data.html">ExpandedData</a> *&#160;</td>
+          <td class="paramname"><em>dataOut</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reference expansion. </p>
+<p>byteBuffer currently has enough data in it to extract a sample Shift left first to set sign bit at MSB, then shift right to sign extend down to iqWidth. Finally recast to int16. </p>
+
+<p class="definition">Definition at line <a class="el" href="xran__compression_8cpp_source.html#l00605">605</a> of file <a class="el" href="xran__compression_8cpp_source.html">xran_compression.cpp</a>.</p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="namespace_block_float_compander_a5f4776cd07aac0ae2d9dbd02aaba3435_icgraph.png" border="0" usemap="#namespace_block_float_compander_a5f4776cd07aac0ae2d9dbd02aaba3435_icgraph" alt=""/></div>
+<map name="namespace_block_float_compander_a5f4776cd07aac0ae2d9dbd02aaba3435_icgraph" id="namespace_block_float_compander_a5f4776cd07aac0ae2d9dbd02aaba3435_icgraph">
+<area shape="rect" id="node2" href="compander__functional_8cc.html#a53f55fd621ce0edd0b50933321ae7ade" title="TEST_P" alt="" coords="255,5,327,32"/>
+<area shape="rect" id="node3" href="xran__compression_8cpp.html#a2bd6ebeefb6ca9674598d443e697918c" title="xranlib_decompress\l_avx512" alt="" coords="221,57,360,98"/>
+<area shape="rect" id="node4" href="compander__functional_8cc.html#a45d64e11a1ecc040577b7f22b27dde51" title="TEST_P" alt="" coords="408,64,480,91"/>
+</map>
+</div>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>