--- /dev/null
--- /dev/null
++<!-- kind:binary;verdict:incompatible;affected:0.2;added:45;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:1;interface_problems_high:1;interface_problems_medium:0;interface_problems_low:0;changed_constants:1;tool_version:2.2 -->
++<!-- kind:source;verdict:incompatible;affected:0.9;added:46;removed:5;type_problems_high:0;type_problems_medium:0;type_problems_low:1;interface_problems_high:1;interface_problems_medium:0;interface_problems_low:0;changed_constants:1;constant_changes_other:2;tool_version:2.2 -->
++<!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" xml:lang="en" lang="en">
++<head>
++<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
++<meta name="keywords" content="libvolk1-dev, compatibility, API, ABI, report" />
++<meta name="description" content="API/ABI compatibility report for the libvolk1-dev library between 1.3-3 and 1.4-1 versions" />
++<title>libvolk1-dev: 1.3-3 to 1.4-1 compatibility report</title>
++<style type="text/css">
++body {
++ font-family:Arial, sans-serif;
++ background-color:White;
++ color:Black;
++}
++hr {
++ color:Black;
++ background-color:Black;
++ height:1px;
++ border:0;
++}
++h1 {
++ margin-bottom:0px;
++ padding-bottom:0px;
++ font-size:1.625em;
++}
++h2 {
++ margin-bottom:0px;
++ padding-bottom:0px;
++ font-size:1.25em;
++ white-space:nowrap;
++}
++span.section {
++ font-weight:bold;
++ cursor:pointer;
++ color:#003E69;
++ white-space:nowrap;
++ margin-left:0.3125em;
++}
++span.new_sign {
++ font-weight:bold;
++ margin-left:1.65em;
++ color:#003E69;
++}
++span.new_sign_lbl {
++ margin-left:3em;
++ font-size:1em;
++ color:Black;
++}
++span:hover.section {
++ color:#336699;
++}
++span.sect_aff {
++ cursor:pointer;
++ padding-left:1.55em;
++ font-size:0.875em;
++ color:#cc3300;
++}
++span.sect_info {
++ cursor:pointer;
++ padding-left:1.55em;
++ font-size:0.875em;
++ color:Black;
++}
++span.ext {
++ font-weight:normal;
++}
++span.h_name {
++ color:#cc3300;
++ font-size:0.875em;
++ font-weight:bold;
++}
++div.h_list, div.lib_list {
++ font-size:0.94em;
++ padding-left:0.4em;
++}
++span.ns {
++ color:#408080;
++ font-size:0.94em;
++}
++span.lib_name {
++ color:Green;
++ font-size:0.875em;
++ font-weight:bold;
++}
++span.iname {
++ font-weight:bold;
++ color:#003E69;
++ margin-left:0.3125em;
++}
++span.iname_b {
++ font-weight:bold;
++}
++span.iname_a {
++ color:#333333;
++ font-weight:bold;
++ font-size:0.94em;
++}
++span.sym_p {
++ font-weight:normal;
++ white-space:normal;
++}
++span.sym_pd {
++ white-space:normal;
++}
++span.sym_p span, span.sym_pd span {
++ white-space:nowrap;
++}
++div.affect {
++ padding-left:1em;
++ padding-bottom:10px;
++ font-size:0.87em;
++ font-style:italic;
++ line-height:0.9em;
++}
++div.affected {
++ padding-left:1.9em;
++ padding-top:10px;
++}
++table.ptable {
++ border-collapse:collapse;
++ border:1px outset black;
++ margin-left:0.95em;
++ margin-top:3px;
++ margin-bottom:3px;
++ width:56.25em;
++}
++table.ptable td {
++ border:1px solid gray;
++ padding:3px;
++ font-size:0.875em;
++ text-align:left;
++ vertical-align:top;
++ max-width:28em;
++ word-wrap:break-word;
++}
++table.ptable th.pn {
++ width:2%;
++}
++table.ptable th.chg {
++ width:47%;
++}
++table.vtable {
++ border-collapse:collapse;
++ border:1px outset black;
++ margin-left:1.9em;
++ margin-top:0.7em;
++}
++table.vtable td {
++ border:1px solid gray;
++ padding:3px;
++ font-size:0.875em;
++ vertical-align:top;
++ max-width:450px;
++ word-wrap:break-word;
++}
++table.ptable th, table.vtable th {
++ background-color:#eeeeee;
++ font-weight:bold;
++ color:#333333;
++ font-family:Verdana, Arial;
++ font-size:0.875em;
++ border:1px solid gray;
++ text-align:center;
++ vertical-align:top;
++ white-space:nowrap;
++ padding:3px;
++}
++table.summary {
++ border-collapse:collapse;
++ border:1px outset black;
++}
++table.summary th {
++ background-color:#eeeeee;
++ font-weight:normal;
++ text-align:left;
++ font-size:0.94em;
++ white-space:nowrap;
++ border:1px inset gray;
++ padding:3px;
++}
++table.summary td {
++ text-align:right;
++ white-space:nowrap;
++ border:1px inset gray;
++ padding:3px 5px 3px 10px;
++}
++span.mngl {
++ padding-left:1em;
++ font-size:0.875em;
++ cursor:text;
++ color:#444444;
++ font-weight:bold;
++}
++span.pleft {
++ padding-left:2.5em;
++}
++span.sym_ver {
++ color:#333333;
++ white-space:nowrap;
++ font-family:"DejaVu Sans Mono", Monospace;
++}
++span.attr {
++ color:#333333;
++ font-weight:normal;
++}
++span.color_p {
++ font-style:italic;
++ color:Brown;
++}
++span.p {
++ font-style:italic;
++}
++span.fp {
++ font-style:italic;
++ background-color:#DCDCDC;
++}
++span.ttype {
++ font-weight:normal;
++}
++span.nowrap {
++ white-space:nowrap;
++}
++span.value {
++ font-weight:bold;
++}
++.passed {
++ background-color:#CCFFCC;
++ font-weight:normal;
++}
++.warning {
++ background-color:#F4F4AF;
++ font-weight:normal;
++}
++.failed {
++ background-color:#FFCCCC;
++ font-weight:normal;
++}
++.new {
++ background-color:#C6DEFF;
++ font-weight:normal;
++}
++.compatible {
++ background-color:#CCFFCC;
++ font-weight:normal;
++}
++.almost_compatible {
++ background-color:#FFDAA3;
++ font-weight:normal;
++}
++.incompatible {
++ background-color:#FFCCCC;
++ font-weight:normal;
++}
++.gray {
++ background-color:#DCDCDC;
++ font-weight:normal;
++}
++.top_ref {
++ font-size:0.69em;
++}
++.footer {
++ font-size:0.75em;
++}
++
++.tabset {
++ float:left;
++}
++a.tab {
++ border:1px solid Black;
++ float:left;
++ margin:0px 5px -1px 0px;
++ padding:3px 5px 3px 5px;
++ position:relative;
++ font-size:0.875em;
++ background-color:#DDD;
++ text-decoration:none;
++ color:Black;
++}
++a.disabled:hover
++{
++ color:Black;
++ background:#EEE;
++}
++a.active:hover
++{
++ color:Black;
++ background:White;
++}
++a.active {
++ border-bottom-color:White;
++ background-color:White;
++}
++div.tab {
++ border-top:1px solid Black;
++ padding:0px;
++ width:100%;
++ clear:both;
++}
++</style>
++<script type="text/javascript" language="JavaScript">
++<!--
++function showContent(header, id)
++{
++ e = document.getElementById(id);
++ if(e.style.display == 'none')
++ {
++ e.style.display = 'block';
++ e.style.visibility = 'visible';
++ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]");
++ }
++ else
++ {
++ e.style.display = 'none';
++ e.style.visibility = 'hidden';
++ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
++ }
++}
++function initTabs()
++{
++ var url = window.location.href;
++ if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
++ {
++ var tab1 = document.getElementById('BinaryID');
++ var tab2 = document.getElementById('SourceID');
++ tab1.className='tab disabled';
++ tab2.className='tab active';
++ }
++ var sets = document.getElementsByTagName('div');
++ for (var i = 0; i < sets.length; i++)
++ {
++ if (sets[i].className.indexOf('tabset') != -1)
++ {
++ var tabs = [];
++ var links = sets[i].getElementsByTagName('a');
++ for (var j = 0; j < links.length; j++)
++ {
++ if (links[j].className.indexOf('tab') != -1)
++ {
++ tabs.push(links[j]);
++ links[j].tabs = tabs;
++ var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
++ //reset all tabs on start
++ if (tab)
++ {
++ if (links[j].className.indexOf('active')!=-1) {
++ tab.style.display = 'block';
++ }
++ else {
++ tab.style.display = 'none';
++ }
++ }
++ links[j].onclick = function()
++ {
++ var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
++ if (tab)
++ {
++ //reset all tabs before change
++ for (var k = 0; k < this.tabs.length; k++)
++ {
++ document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
++ this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
++ }
++ this.className = 'tab active';
++ tab.style.display = 'block';
++ // window.location.hash = this.id.replace('ID', '');
++ return false;
++ }
++ }
++ }
++ }
++ }
++ }
++ if(url.indexOf('#')!=-1) {
++ location.href=location.href;
++ }
++}
++if (window.addEventListener) window.addEventListener('load', initTabs, false);
++else if (window.attachEvent) window.attachEvent('onload', initTabs);
++-->
++</script>
++</head>
++<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libvolk1-dev</span> library between <span style='color:Red;'>1.3-3</span> and <span style='color:Red;'>1.4-1</span> versions on <span style='color:Blue;'>x86_64</span></h1>
++
++ <br/>
++ <div class='tabset'>
++ <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
++ <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
++ </div><div id='BinaryTab' class='tab'>
++<h2>Test Info</h2><hr/>
++<table class='summary'>
++<tr><th>Library Name</th><td>libvolk1-dev</td></tr>
++<tr><th>Version #1</th><td>1.3-3</td></tr>
++<tr><th>Version #2</th><td>1.4-1</td></tr>
++<tr><th>Arch</th><td>x86_64</td></tr>
++<tr><th>GCC Version</th><td>7</td></tr>
++<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>
++</table>
++<h2>Test Results</h2><hr/>
++<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>135</a></td></tr>
++<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
++<tr><th>Total Symbols / Types</th><td>614 / 233</td></tr>
++<tr><th>Compatibility</th>
++<td class='warning'>99.8%</td>
++</tr>
++</table>
++<h2>Problem Summary</h2><hr/>
++<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>45</a></td></tr>
++<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
++<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
++<tr><td>Medium</td><td>0</td></tr>
++<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>1</a></td></tr>
++<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td class='failed'><a href='#Symbol_Binary_Problems_High' style='color:Blue;'>1</a></td></tr>
++<tr><td>Medium</td><td>0</td></tr>
++<tr><td>Low</td><td>0</td></tr>
++<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>1</a></td></tr>
++</table>
++
++<a name='Binary_Added'></a><h2>Added Symbols <span class='new'> 45 </span></h2><hr/>
++<span class='h_name'>volk.h</span>, <span class='lib_name'>libvolk.so.1.4</span><br/>
++<span class="iname">volk_32f_64f_add_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_manual <span class='sym_p'><span>( double* <span class='color_p'>cVector</span></span>, <span>float const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_manual <span class='sym_p'><span>( double* <span class='color_p'>cVector</span></span>, <span>float const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_manual <span class='sym_p'><span>( float* <span class='color_p'>output</span></span>, <span>float const* <span class='color_p'>input</span></span>, <span>float <span class='color_p'>bound</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_manual <span class='sym_p'><span>( float* <span class='color_p'>outputVector</span></span>, <span>float const* <span class='color_p'>inputVector</span></span>, <span>float const <span class='color_p'>lower_bound</span></span>, <span>float const <span class='color_p'>upper_bound</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_manual <span class='sym_p'><span>( lv_32fc_t* <span class='color_p'>cVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>aVector</span></span>, <span>float const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_manual <span class='sym_p'><span>( lv_32fc_t* <span class='color_p'>cVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>aVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_manual <span class='sym_p'><span>( uint32_t* <span class='color_p'>out</span></span>, <span>uint32_t const* <span class='color_p'>in</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_manual <span class='sym_p'><span>( double* <span class='color_p'>cVector</span></span>, <span>double const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_manual <span class='sym_p'><span>( double* <span class='color_p'>cVector</span></span>, <span>double const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_u <span class='attr'>[data]</span></span><br/>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='High_Risk_Binary_Problems'></a><a name='Symbol_Binary_Problems_High'></a><a name='Interface_Binary_Problems_High'></a>
++<h2>Problems with Symbols, High Severity <span class='failed'> 1 </span></h2><hr/>
++<span class='h_name'>volk.h</span>, <span class='lib_name'>libvolk.so.1.3</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_1')">
++<span class='ext'>[+]</span> volk_32f_8u_polarbutterfly_32f_manual <span class='sym_p'><span>( float* <span class='color_p'>llrs</span></span>, <span>unsigned char* <span class='color_p'>u</span></span>, <span>int const <span class='color_p'>frame_size</span></span>, <span>int const <span class='color_p'>frame_exp</span></span>, <span>int const <span class='color_p'>stage</span></span>, <span>int const <span class='color_p'>u_num</span></span>, <span>int const <span class='color_p'>row</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span> <span class='failed'> 1 </span></span>
++<br/>
++<div id="c_1" style="display:none;">
++
++
++<span class='new_sign_lbl'>⇣</span>
++<br/>
++<span class='new_sign'>volk_32f_8u_polarbutterfly_32f_manual <span class='sym_p'><span>( float* <span class='color_p'>llrs</span></span>, <span>unsigned char* <span class='color_p'>u</span></span>, <span>int const <span class='color_p'>frame_exp</span></span>, <span>int const <span class='color_p'>stage</span></span>, <span>int const <span class='color_p'>u_num</span></span>, <span>int const <span class='color_p'>row</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td><b>3rd</b> middle parameter <b>frame_size</b> has been removed from the calling stack.</td>
++<td>Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a>
++<h2>Problems with Data Types, Low Severity <span class='warning'> 1 </span></h2><hr/>
++<span class='h_name'>volk_typedefs.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_2')">
++<span class='ext'>[+]</span> <span class='ttype'>typedef</span> p_32f_8u_polarbutterfly_32f <span class='warning'> 1 </span></span>
++<br/>
++<div id="c_2" style="display:none;">
++<table class='ptable'><tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th></tr><tr>
++<th>1</th>
++<td>Base type has been changed from <span class='value'>void(*)(float*, unsigned char*, int, int, int, int, int)</span> to <span class='value'>void(*)(float*, unsigned char*, int, int, int, int)</span>.</td>
++<td>Replacement of the base data type may indicate a change in its semantic meaning.</td>
++</tr>
++</table>
++<span class="sect_aff" onclick="javascript:showContent(this, 'c_3')">
++[+] affected symbols: 3 (0.5%)</span>
++<div id="c_3" style="display:none;">
++<div class='affected'><span class='iname_a'>volk_32f_8u_polarbutterfly_32f <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type 'p_32f_8u_polarbutterfly_32f'.</div>
++<span class='iname_a'>volk_32f_8u_polarbutterfly_32f_a <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type 'p_32f_8u_polarbutterfly_32f'.</div>
++<span class='iname_a'>volk_32f_8u_polarbutterfly_32f_u <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type 'p_32f_8u_polarbutterfly_32f'.</div>
++</div>
++</div>
++<br/><br/></div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Constant_Binary_Problems_Low'></a>
++<h2>Problems with Constants, Low Severity <span class='warning'> 1 </span></h2><hr/>
++<span class='h_name'>volk_32f_log2_32f.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_4')">
++<span class='ext'>[+]</span> LOG_POLY_DEGREE</span>
++<br/>
++<div id="c_4" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LOG_POLY_DEGREE</b> with value <b>6</b> has been removed.</td>
++<td>The value of this constant may no longer be properly handled by new-version library functions.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Headers'></a><h2>Header Files <span class='gray'> 135 </span></h2><hr/>
++<div class='h_list'>
++constants.h<br/>
++saturation_arithmetic.h<br/>
++volk.h<br/>
++volk_16i_32fc_dot_prod_32fc.h<br/>
++volk_16i_branch_4_state_8.h<br/>
++volk_16i_convert_8i.h<br/>
++volk_16i_max_star_16i.h<br/>
++volk_16i_max_star_horizontal_16i.h<br/>
++volk_16i_permute_and_scalar_add.h<br/>
++volk_16i_s32f_convert_32f.h<br/>
++volk_16i_x4_quad_max_star_16i.h<br/>
++volk_16i_x5_add_quad_16i_x4.h<br/>
++volk_16ic_convert_32fc.h<br/>
++volk_16ic_deinterleave_16i_x2.h<br/>
++volk_16ic_deinterleave_real_16i.h<br/>
++volk_16ic_deinterleave_real_8i.h<br/>
++volk_16ic_magnitude_16i.h<br/>
++volk_16ic_s32f_deinterleave_32f_x2.h<br/>
++volk_16ic_s32f_deinterleave_real_32f.h<br/>
++volk_16ic_s32f_magnitude_32f.h<br/>
++volk_16ic_x2_dot_prod_16ic.h<br/>
++volk_16ic_x2_multiply_16ic.h<br/>
++volk_16u_byteswap.h<br/>
++volk_16u_byteswappuppet_16u.h<br/>
++volk_32f_8u_polarbutterfly_32f.h<br/>
++volk_32f_8u_polarbutterflypuppet_32f.h<br/>
++volk_32f_accumulator_s32f.h<br/>
++volk_32f_acos_32f.h<br/>
++volk_32f_asin_32f.h<br/>
++volk_32f_atan_32f.h<br/>
++volk_32f_binary_slicer_32i.h<br/>
++volk_32f_binary_slicer_8i.h<br/>
++volk_32f_convert_64f.h<br/>
++volk_32f_cos_32f.h<br/>
++volk_32f_expfast_32f.h<br/>
++volk_32f_index_max_16u.h<br/>
++volk_32f_index_max_32u.h<br/>
++volk_32f_invsqrt_32f.h<br/>
++volk_32f_log2_32f.h<br/>
++volk_32f_null_32f.h<br/>
++volk_32f_s32f_32f_fm_detect_32f.h<br/>
++volk_32f_s32f_calc_spectral_noise_floor_32f.h<br/>
++volk_32f_s32f_convert_16i.h<br/>
++volk_32f_s32f_convert_32i.h<br/>
++volk_32f_s32f_convert_8i.h<br/>
++volk_32f_s32f_multiply_32f.h<br/>
++volk_32f_s32f_normalize.h<br/>
++volk_32f_s32f_power_32f.h<br/>
++volk_32f_s32f_stddev_32f.h<br/>
++volk_32f_sin_32f.h<br/>
++volk_32f_sqrt_32f.h<br/>
++volk_32f_stddev_and_mean_32f_x2.h<br/>
++volk_32f_tan_32f.h<br/>
++volk_32f_tanh_32f.h<br/>
++volk_32f_x2_add_32f.h<br/>
++volk_32f_x2_divide_32f.h<br/>
++volk_32f_x2_dot_prod_16i.h<br/>
++volk_32f_x2_dot_prod_32f.h<br/>
++volk_32f_x2_fm_detectpuppet_32f.h<br/>
++volk_32f_x2_interleave_32fc.h<br/>
++volk_32f_x2_max_32f.h<br/>
++volk_32f_x2_min_32f.h<br/>
++volk_32f_x2_multiply_32f.h<br/>
++volk_32f_x2_pow_32f.h<br/>
++volk_32f_x2_s32f_interleave_16ic.h<br/>
++volk_32f_x2_subtract_32f.h<br/>
++volk_32f_x3_sum_of_poly_32f.h<br/>
++volk_32fc_32f_dot_prod_32fc.h<br/>
++volk_32fc_32f_multiply_32fc.h<br/>
++volk_32fc_conjugate_32fc.h<br/>
++volk_32fc_convert_16ic.h<br/>
++volk_32fc_deinterleave_32f_x2.h<br/>
++volk_32fc_deinterleave_64f_x2.h<br/>
++volk_32fc_deinterleave_imag_32f.h<br/>
++volk_32fc_deinterleave_real_32f.h<br/>
++volk_32fc_deinterleave_real_64f.h<br/>
++volk_32fc_index_max_16u.h<br/>
++volk_32fc_index_max_32u.h<br/>
++volk_32fc_magnitude_32f.h<br/>
++volk_32fc_magnitude_squared_32f.h<br/>
++volk_32fc_s32f_atan2_32f.h<br/>
++volk_32fc_s32f_deinterleave_real_16i.h<br/>
++volk_32fc_s32f_magnitude_16i.h<br/>
++volk_32fc_s32f_power_32fc.h<br/>
++volk_32fc_s32f_power_spectrum_32f.h<br/>
++volk_32fc_s32f_x2_power_spectral_density_32f.h<br/>
++volk_32fc_s32fc_multiply_32fc.h<br/>
++volk_32fc_s32fc_rotatorpuppet_32fc.h<br/>
++volk_32fc_s32fc_x2_rotator_32fc.h<br/>
++volk_32fc_x2_conjugate_dot_prod_32fc.h<br/>
++volk_32fc_x2_divide_32fc.h<br/>
++volk_32fc_x2_dot_prod_32fc.h<br/>
++volk_32fc_x2_multiply_32fc.h<br/>
++volk_32fc_x2_multiply_conjugate_32fc.h<br/>
++volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h<br/>
++volk_32fc_x2_square_dist_32f.h<br/>
++volk_32i_s32f_convert_32f.h<br/>
++volk_32i_x2_and_32i.h<br/>
++volk_32i_x2_or_32i.h<br/>
++volk_32u_byteswap.h<br/>
++volk_32u_byteswappuppet_32u.h<br/>
++volk_32u_popcnt.h<br/>
++volk_32u_popcntpuppet_32u.h<br/>
++volk_64f_convert_32f.h<br/>
++volk_64f_x2_max_64f.h<br/>
++volk_64f_x2_min_64f.h<br/>
++volk_64u_byteswap.h<br/>
++volk_64u_byteswappuppet_64u.h<br/>
++volk_64u_popcnt.h<br/>
++volk_64u_popcntpuppet_64u.h<br/>
++volk_8i_convert_16i.h<br/>
++volk_8i_s32f_convert_32f.h<br/>
++volk_8ic_deinterleave_16i_x2.h<br/>
++volk_8ic_deinterleave_real_16i.h<br/>
++volk_8ic_deinterleave_real_8i.h<br/>
++volk_8ic_s32f_deinterleave_32f_x2.h<br/>
++volk_8ic_s32f_deinterleave_real_32f.h<br/>
++volk_8ic_x2_multiply_conjugate_16ic.h<br/>
++volk_8ic_x2_s32f_multiply_conjugate_32fc.h<br/>
++volk_8u_conv_k7_r2puppet_8u.h<br/>
++volk_8u_x2_encodeframepolar_8u.h<br/>
++volk_8u_x3_encodepolar_8u_x2.h<br/>
++volk_8u_x3_encodepolarpuppet_8u.h<br/>
++volk_8u_x4_conv_k7_r2_8u.h<br/>
++volk_avx_intrinsics.h<br/>
++volk_common.h<br/>
++volk_complex.h<br/>
++volk_config_fixed.h<br/>
++volk_cpu.h<br/>
++volk_malloc.h<br/>
++volk_neon_intrinsics.h<br/>
++volk_prefs.h<br/>
++volk_sse3_intrinsics.h<br/>
++volk_sse_intrinsics.h<br/>
++volk_typedefs.h<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/>
++<div class='lib_list'>
++libvolk.so.1.3<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<br/><br/><br/></div><div id='SourceTab' class='tab'>
++<h2>Test Info</h2><hr/>
++<table class='summary'>
++<tr><th>Library Name</th><td>libvolk1-dev</td></tr>
++<tr><th>Version #1</th><td>1.3-3</td></tr>
++<tr><th>Version #2</th><td>1.4-1</td></tr>
++<tr><th>Arch</th><td>x86_64</td></tr>
++<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>
++</table>
++<h2>Test Results</h2><hr/>
++<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>135</a></td></tr>
++<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
++<tr><th>Total Symbols / Types</th><td>660 / 235</td></tr>
++<tr><th>Compatibility</th>
++<td class='warning'>99.1%</td>
++</tr>
++</table>
++<h2>Problem Summary</h2><hr/>
++<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>46</a></td></tr>
++<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Source_Removed' style='color:Blue;'>5</a></td></tr>
++<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
++<tr><td>Medium</td><td>0</td></tr>
++<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>1</a></td></tr>
++<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td class='failed'><a href='#Symbol_Source_Problems_High' style='color:Blue;'>1</a></td></tr>
++<tr><td>Medium</td><td>0</td></tr>
++<tr><td>Low</td><td>0</td></tr>
++<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>1</a></td></tr>
++<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>2</a></td></tr>
++</table>
++
++<a name='Source_Added'></a><h2>Added Symbols <span class='new'> 46 </span></h2><hr/>
++<span class='h_name'>volk.h</span><br/>
++<span class="iname">volk_32f_64f_add_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_manual <span class='sym_p'><span>( double* <span class='color_p'>cVector</span></span>, <span>float const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_manual <span class='sym_p'><span>( double* <span class='color_p'>cVector</span></span>, <span>float const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_manual <span class='sym_p'><span>( float* <span class='color_p'>output</span></span>, <span>float const* <span class='color_p'>input</span></span>, <span>float <span class='color_p'>bound</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_manual <span class='sym_p'><span>( float* <span class='color_p'>outputVector</span></span>, <span>float const* <span class='color_p'>inputVector</span></span>, <span>float const <span class='color_p'>lower_bound</span></span>, <span>float const <span class='color_p'>upper_bound</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_manual <span class='sym_p'><span>( lv_32fc_t* <span class='color_p'>cVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>aVector</span></span>, <span>float const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_manual <span class='sym_p'><span>( lv_32fc_t* <span class='color_p'>cVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>aVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_manual <span class='sym_p'><span>( uint32_t* <span class='color_p'>out</span></span>, <span>uint32_t const* <span class='color_p'>in</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_manual <span class='sym_p'><span>( double* <span class='color_p'>cVector</span></span>, <span>double const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_get_func_desc <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_manual <span class='sym_p'><span>( double* <span class='color_p'>cVector</span></span>, <span>double const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_u <span class='attr'>[data]</span></span><br/>
++<br/>
++<span class='h_name'>volk_32u_reverse_32u.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_5')">
++BitReverseTable256 <span class='attr'>[data]</span></span>
++<br/>
++<div id="c_5" style="display:none;">
++<span class='mngl'>_ZL18BitReverseTable256</span>
++<br/>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Source_Removed'></a><a name='Source_Withdrawn'></a><h2>Removed Symbols <span class='failed'> 5 </span></h2><hr/>
++<span class='h_name'>constants.h</span><br/>
++<span class="iname">volk_available_machines <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_c_compiler <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_compiler_flags <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_prefix <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_version <span class='sym_p'>( )</span></span><br/>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='High_Risk_Source_Problems'></a><a name='Symbol_Source_Problems_High'></a><a name='Interface_Source_Problems_High'></a>
++<h2>Problems with Symbols, High Severity <span class='failed'> 1 </span></h2><hr/>
++<span class='h_name'>volk.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_6')">
++<span class='ext'>[+]</span> volk_32f_8u_polarbutterfly_32f_manual <span class='sym_p'><span>( float* <span class='color_p'>llrs</span></span>, <span>unsigned char* <span class='color_p'>u</span></span>, <span>int const <span class='color_p'>frame_size</span></span>, <span>int const <span class='color_p'>frame_exp</span></span>, <span>int const <span class='color_p'>stage</span></span>, <span>int const <span class='color_p'>u_num</span></span>, <span>int const <span class='color_p'>row</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span> <span class='failed'> 1 </span></span>
++<br/>
++<div id="c_6" style="display:none;">
++
++
++<span class='new_sign_lbl'>⇣</span>
++<br/>
++<span class='new_sign'>volk_32f_8u_polarbutterfly_32f_manual <span class='sym_p'><span>( float* <span class='color_p'>llrs</span></span>, <span>unsigned char* <span class='color_p'>u</span></span>, <span>int const <span class='color_p'>frame_exp</span></span>, <span>int const <span class='color_p'>stage</span></span>, <span>int const <span class='color_p'>u_num</span></span>, <span>int const <span class='color_p'>row</span></span>, <span>char const* <span class='color_p'>impl_name</span></span> )</span></span><br/>
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td><b>3rd</b> middle parameter <b>frame_size</b> has been removed from the calling stack.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a>
++<h2>Problems with Data Types, Low Severity <span class='warning'> 1 </span></h2><hr/>
++<span class='h_name'>volk_typedefs.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_7')">
++<span class='ext'>[+]</span> <span class='ttype'>typedef</span> p_32f_8u_polarbutterfly_32f <span class='warning'> 1 </span></span>
++<br/>
++<div id="c_7" style="display:none;">
++<table class='ptable'><tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th></tr><tr>
++<th>1</th>
++<td>Base type has been changed from <span class='value'>void(*)(float*, unsigned char*, int, int, int, int, int)</span> to <span class='value'>void(*)(float*, unsigned char*, int, int, int, int)</span>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<span class="sect_aff" onclick="javascript:showContent(this, 'c_8')">
++[+] affected symbols: 3 (0.5%)</span>
++<div id="c_8" style="display:none;">
++<div class='affected'><span class='iname_a'>volk_32f_8u_polarbutterfly_32f <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type 'p_32f_8u_polarbutterfly_32f'.</div>
++<span class='iname_a'>volk_32f_8u_polarbutterfly_32f_a <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type 'p_32f_8u_polarbutterfly_32f'.</div>
++<span class='iname_a'>volk_32f_8u_polarbutterfly_32f_u <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type 'p_32f_8u_polarbutterfly_32f'.</div>
++</div>
++</div>
++<br/><br/></div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Constant_Source_Problems_Low'></a>
++<h2>Problems with Constants, Low Severity <span class='warning'> 1 </span></h2><hr/>
++<span class='h_name'>volk_32f_log2_32f.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_9')">
++<span class='ext'>[+]</span> LOG_POLY_DEGREE</span>
++<br/>
++<div id="c_9" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LOG_POLY_DEGREE</b> with value <b>6</b> has been removed.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Constants'></a>
++<h2>Other Changes in Constants <span class='passed'> 2 </span></h2><hr/>
++<span class='h_name'>volk_common.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_10')">
++<span class='ext'>[+]</span> __VOLK_ASM</span>
++<br/>
++<div id="c_10" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>__VOLK_ASM</b> with value <b>__asm__</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_11')">
++<span class='ext'>[+]</span> __VOLK_VOLATILE</span>
++<br/>
++<div id="c_11" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>__VOLK_VOLATILE</b> with value <b>__volatile__</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Headers'></a><h2>Header Files <span class='gray'> 135 </span></h2><hr/>
++<div class='h_list'>
++constants.h<br/>
++saturation_arithmetic.h<br/>
++volk.h<br/>
++volk_16i_32fc_dot_prod_32fc.h<br/>
++volk_16i_branch_4_state_8.h<br/>
++volk_16i_convert_8i.h<br/>
++volk_16i_max_star_16i.h<br/>
++volk_16i_max_star_horizontal_16i.h<br/>
++volk_16i_permute_and_scalar_add.h<br/>
++volk_16i_s32f_convert_32f.h<br/>
++volk_16i_x4_quad_max_star_16i.h<br/>
++volk_16i_x5_add_quad_16i_x4.h<br/>
++volk_16ic_convert_32fc.h<br/>
++volk_16ic_deinterleave_16i_x2.h<br/>
++volk_16ic_deinterleave_real_16i.h<br/>
++volk_16ic_deinterleave_real_8i.h<br/>
++volk_16ic_magnitude_16i.h<br/>
++volk_16ic_s32f_deinterleave_32f_x2.h<br/>
++volk_16ic_s32f_deinterleave_real_32f.h<br/>
++volk_16ic_s32f_magnitude_32f.h<br/>
++volk_16ic_x2_dot_prod_16ic.h<br/>
++volk_16ic_x2_multiply_16ic.h<br/>
++volk_16u_byteswap.h<br/>
++volk_16u_byteswappuppet_16u.h<br/>
++volk_32f_8u_polarbutterfly_32f.h<br/>
++volk_32f_8u_polarbutterflypuppet_32f.h<br/>
++volk_32f_accumulator_s32f.h<br/>
++volk_32f_acos_32f.h<br/>
++volk_32f_asin_32f.h<br/>
++volk_32f_atan_32f.h<br/>
++volk_32f_binary_slicer_32i.h<br/>
++volk_32f_binary_slicer_8i.h<br/>
++volk_32f_convert_64f.h<br/>
++volk_32f_cos_32f.h<br/>
++volk_32f_expfast_32f.h<br/>
++volk_32f_index_max_16u.h<br/>
++volk_32f_index_max_32u.h<br/>
++volk_32f_invsqrt_32f.h<br/>
++volk_32f_log2_32f.h<br/>
++volk_32f_null_32f.h<br/>
++volk_32f_s32f_32f_fm_detect_32f.h<br/>
++volk_32f_s32f_calc_spectral_noise_floor_32f.h<br/>
++volk_32f_s32f_convert_16i.h<br/>
++volk_32f_s32f_convert_32i.h<br/>
++volk_32f_s32f_convert_8i.h<br/>
++volk_32f_s32f_multiply_32f.h<br/>
++volk_32f_s32f_normalize.h<br/>
++volk_32f_s32f_power_32f.h<br/>
++volk_32f_s32f_stddev_32f.h<br/>
++volk_32f_sin_32f.h<br/>
++volk_32f_sqrt_32f.h<br/>
++volk_32f_stddev_and_mean_32f_x2.h<br/>
++volk_32f_tan_32f.h<br/>
++volk_32f_tanh_32f.h<br/>
++volk_32f_x2_add_32f.h<br/>
++volk_32f_x2_divide_32f.h<br/>
++volk_32f_x2_dot_prod_16i.h<br/>
++volk_32f_x2_dot_prod_32f.h<br/>
++volk_32f_x2_fm_detectpuppet_32f.h<br/>
++volk_32f_x2_interleave_32fc.h<br/>
++volk_32f_x2_max_32f.h<br/>
++volk_32f_x2_min_32f.h<br/>
++volk_32f_x2_multiply_32f.h<br/>
++volk_32f_x2_pow_32f.h<br/>
++volk_32f_x2_s32f_interleave_16ic.h<br/>
++volk_32f_x2_subtract_32f.h<br/>
++volk_32f_x3_sum_of_poly_32f.h<br/>
++volk_32fc_32f_dot_prod_32fc.h<br/>
++volk_32fc_32f_multiply_32fc.h<br/>
++volk_32fc_conjugate_32fc.h<br/>
++volk_32fc_convert_16ic.h<br/>
++volk_32fc_deinterleave_32f_x2.h<br/>
++volk_32fc_deinterleave_64f_x2.h<br/>
++volk_32fc_deinterleave_imag_32f.h<br/>
++volk_32fc_deinterleave_real_32f.h<br/>
++volk_32fc_deinterleave_real_64f.h<br/>
++volk_32fc_index_max_16u.h<br/>
++volk_32fc_index_max_32u.h<br/>
++volk_32fc_magnitude_32f.h<br/>
++volk_32fc_magnitude_squared_32f.h<br/>
++volk_32fc_s32f_atan2_32f.h<br/>
++volk_32fc_s32f_deinterleave_real_16i.h<br/>
++volk_32fc_s32f_magnitude_16i.h<br/>
++volk_32fc_s32f_power_32fc.h<br/>
++volk_32fc_s32f_power_spectrum_32f.h<br/>
++volk_32fc_s32f_x2_power_spectral_density_32f.h<br/>
++volk_32fc_s32fc_multiply_32fc.h<br/>
++volk_32fc_s32fc_rotatorpuppet_32fc.h<br/>
++volk_32fc_s32fc_x2_rotator_32fc.h<br/>
++volk_32fc_x2_conjugate_dot_prod_32fc.h<br/>
++volk_32fc_x2_divide_32fc.h<br/>
++volk_32fc_x2_dot_prod_32fc.h<br/>
++volk_32fc_x2_multiply_32fc.h<br/>
++volk_32fc_x2_multiply_conjugate_32fc.h<br/>
++volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h<br/>
++volk_32fc_x2_square_dist_32f.h<br/>
++volk_32i_s32f_convert_32f.h<br/>
++volk_32i_x2_and_32i.h<br/>
++volk_32i_x2_or_32i.h<br/>
++volk_32u_byteswap.h<br/>
++volk_32u_byteswappuppet_32u.h<br/>
++volk_32u_popcnt.h<br/>
++volk_32u_popcntpuppet_32u.h<br/>
++volk_64f_convert_32f.h<br/>
++volk_64f_x2_max_64f.h<br/>
++volk_64f_x2_min_64f.h<br/>
++volk_64u_byteswap.h<br/>
++volk_64u_byteswappuppet_64u.h<br/>
++volk_64u_popcnt.h<br/>
++volk_64u_popcntpuppet_64u.h<br/>
++volk_8i_convert_16i.h<br/>
++volk_8i_s32f_convert_32f.h<br/>
++volk_8ic_deinterleave_16i_x2.h<br/>
++volk_8ic_deinterleave_real_16i.h<br/>
++volk_8ic_deinterleave_real_8i.h<br/>
++volk_8ic_s32f_deinterleave_32f_x2.h<br/>
++volk_8ic_s32f_deinterleave_real_32f.h<br/>
++volk_8ic_x2_multiply_conjugate_16ic.h<br/>
++volk_8ic_x2_s32f_multiply_conjugate_32fc.h<br/>
++volk_8u_conv_k7_r2puppet_8u.h<br/>
++volk_8u_x2_encodeframepolar_8u.h<br/>
++volk_8u_x3_encodepolar_8u_x2.h<br/>
++volk_8u_x3_encodepolarpuppet_8u.h<br/>
++volk_8u_x4_conv_k7_r2_8u.h<br/>
++volk_avx_intrinsics.h<br/>
++volk_common.h<br/>
++volk_complex.h<br/>
++volk_config_fixed.h<br/>
++volk_cpu.h<br/>
++volk_malloc.h<br/>
++volk_neon_intrinsics.h<br/>
++volk_prefs.h<br/>
++volk_sse3_intrinsics.h<br/>
++volk_sse_intrinsics.h<br/>
++volk_typedefs.h<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/>
++<div class='lib_list'>
++libvolk.so.1.3<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<br/><br/><br/></div><hr/>
++<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.2  </i>
++</div>
++<br/>
++
++</body></html>
--- /dev/null
--- /dev/null
++<!-- kind:binary;verdict:incompatible;affected:0.2;added:0;removed:0;type_problems_high:0;type_problems_medium:2;type_problems_low:3;interface_problems_high:0;interface_problems_medium:2;interface_problems_low:0;changed_constants:18;constant_changes_other:5;tool_version:2.3 -->
++<!-- kind:source;verdict:incompatible;affected:0.1;added:5;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:4;interface_problems_high:0;interface_problems_medium:1;interface_problems_low:0;changed_constants:18;constant_changes_other:5;tool_version:2.3 -->
++<!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" xml:lang="en" lang="en">
++<head>
++<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
++<meta name="viewport" content="width=device-width,initial-scale=1" />
++<meta name="keywords" content="volk, compatibility, API, ABI, report" />
++<meta name="description" content="API/ABI compatibility report for the volk library between 1.4 and 2.0 versions" />
++<title>volk: 1.4 to 2.0 compatibility report</title>
++<style type="text/css">
++body {
++ font-family:Arial, sans-serif;
++ background-color:White;
++ color:Black;
++}
++hr {
++ color:Black;
++ background-color:Black;
++ height:1px;
++ border:0;
++}
++h1 {
++ margin-bottom:0px;
++ padding-bottom:0px;
++ font-size:1.625em;
++}
++h2 {
++ margin-bottom:0px;
++ padding-bottom:0px;
++ font-size:1.25em;
++ white-space:nowrap;
++}
++span.section {
++ font-weight:bold;
++ cursor:pointer;
++ color:#003E69;
++ white-space:nowrap;
++ margin-left:0.3125em;
++}
++span.new_sign {
++ font-weight:bold;
++ margin-left:1.65em;
++ color:#003E69;
++}
++span.new_sign_lbl {
++ margin-left:3em;
++ font-size:1em;
++ color:Black;
++}
++span:hover.section {
++ color:#336699;
++}
++span.sect_aff {
++ cursor:pointer;
++ padding-left:1.55em;
++ font-size:0.875em;
++ color:#cc3300;
++}
++span.sect_info {
++ cursor:pointer;
++ padding-left:1.55em;
++ font-size:0.875em;
++ color:Black;
++}
++span.ext {
++ font-weight:normal;
++}
++span.h_name {
++ color:#cc3300;
++ font-size:0.875em;
++ font-weight:bold;
++}
++div.h_list, div.lib_list {
++ font-size:0.94em;
++ padding-left:0.4em;
++}
++span.ns {
++ color:#408080;
++ font-size:0.94em;
++}
++span.lib_name {
++ color:Green;
++ font-size:0.875em;
++ font-weight:bold;
++}
++span.iname {
++ font-weight:bold;
++ color:#003E69;
++ margin-left:0.3125em;
++}
++span.iname_b {
++ font-weight:bold;
++}
++span.iname_a {
++ color:#333333;
++ font-weight:bold;
++ font-size:0.94em;
++}
++span.sym_p {
++ font-weight:normal;
++ white-space:normal;
++}
++span.sym_pd {
++ white-space:normal;
++}
++span.sym_p span, span.sym_pd span {
++ white-space:nowrap;
++}
++div.affect {
++ padding-left:1em;
++ padding-bottom:10px;
++ font-size:0.87em;
++ font-style:italic;
++ line-height:0.9em;
++}
++div.affected {
++ padding-left:1.9em;
++ padding-top:10px;
++}
++table.ptable {
++ border-collapse:collapse;
++ border:1px outset black;
++ margin-left:0.95em;
++ margin-top:3px;
++ margin-bottom:3px;
++ width:56.25em;
++}
++table.ptable td {
++ border:1px solid gray;
++ padding:3px;
++ font-size:0.875em;
++ text-align:left;
++ vertical-align:top;
++ max-width:28em;
++ word-wrap:break-word;
++}
++table.ptable th.pn {
++ width:2%;
++}
++table.ptable th.chg {
++ width:47%;
++}
++table.vtable {
++ border-collapse:collapse;
++ border:1px outset black;
++ margin-left:1.9em;
++ margin-top:0.7em;
++}
++table.vtable td {
++ border:1px solid gray;
++ padding:3px;
++ font-size:0.875em;
++ vertical-align:top;
++ max-width:450px;
++ word-wrap:break-word;
++}
++table.ptable th, table.vtable th {
++ background-color:#eeeeee;
++ font-weight:bold;
++ color:#333333;
++ font-family:Verdana, Arial;
++ font-size:0.875em;
++ border:1px solid gray;
++ text-align:center;
++ vertical-align:top;
++ white-space:nowrap;
++ padding:3px;
++}
++table.summary {
++ border-collapse:collapse;
++ border:1px outset black;
++}
++table.summary th {
++ background-color:#eeeeee;
++ font-weight:normal;
++ text-align:left;
++ font-size:0.94em;
++ white-space:nowrap;
++ border:1px inset gray;
++ padding:3px;
++}
++table.summary td {
++ text-align:right;
++ white-space:nowrap;
++ border:1px inset gray;
++ padding:3px 5px 3px 10px;
++}
++span.mngl {
++ padding-left:1em;
++ font-size:0.875em;
++ cursor:text;
++ color:#444444;
++ font-weight:bold;
++}
++span.pleft {
++ padding-left:2.5em;
++}
++span.sym_ver {
++ color:#333333;
++ white-space:nowrap;
++ font-family:"DejaVu Sans Mono", Monospace;
++}
++span.attr {
++ color:#333333;
++ font-weight:normal;
++}
++span.color_p {
++ font-style:italic;
++ color:Brown;
++}
++span.p {
++ font-style:italic;
++}
++span.fp {
++ font-style:italic;
++ background-color:#DCDCDC;
++}
++span.ttype {
++ font-weight:normal;
++}
++span.nowrap {
++ white-space:nowrap;
++}
++span.value {
++ font-weight:bold;
++}
++.passed {
++ background-color:#CCFFCC;
++ font-weight:normal;
++}
++.warning {
++ background-color:#F4F4AF;
++ font-weight:normal;
++}
++.failed {
++ background-color:#FFCCCC;
++ font-weight:normal;
++}
++.new {
++ background-color:#C6DEFF;
++ font-weight:normal;
++}
++.compatible {
++ background-color:#CCFFCC;
++ font-weight:normal;
++}
++.almost_compatible {
++ background-color:#FFDAA3;
++ font-weight:normal;
++}
++.incompatible {
++ background-color:#FFCCCC;
++ font-weight:normal;
++}
++.gray {
++ background-color:#DCDCDC;
++ font-weight:normal;
++}
++.top_ref {
++ font-size:0.69em;
++}
++.footer {
++ font-size:0.75em;
++}
++
++.tabset {
++ float:left;
++}
++a.tab {
++ border:1px solid Black;
++ float:left;
++ margin:0px 5px -1px 0px;
++ padding:3px 5px 3px 5px;
++ position:relative;
++ font-size:0.875em;
++ background-color:#DDD;
++ text-decoration:none;
++ color:Black;
++}
++a.disabled:hover
++{
++ color:Black;
++ background:#EEE;
++}
++a.active:hover
++{
++ color:Black;
++ background:White;
++}
++a.active {
++ border-bottom-color:White;
++ background-color:White;
++}
++div.tab {
++ border-top:1px solid Black;
++ padding:0px;
++ width:100%;
++ clear:both;
++}
++</style>
++<script type="text/javascript" language="JavaScript">
++<!--
++function showContent(header, id)
++{
++ e = document.getElementById(id);
++ if(e.style.display == 'none')
++ {
++ e.style.display = 'block';
++ e.style.visibility = 'visible';
++ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]");
++ }
++ else
++ {
++ e.style.display = 'none';
++ e.style.visibility = 'hidden';
++ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
++ }
++}
++function initTabs()
++{
++ var url = window.location.href;
++ if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
++ {
++ var tab1 = document.getElementById('BinaryID');
++ var tab2 = document.getElementById('SourceID');
++ tab1.className='tab disabled';
++ tab2.className='tab active';
++ }
++ var sets = document.getElementsByTagName('div');
++ for (var i = 0; i < sets.length; i++)
++ {
++ if (sets[i].className.indexOf('tabset') != -1)
++ {
++ var tabs = [];
++ var links = sets[i].getElementsByTagName('a');
++ for (var j = 0; j < links.length; j++)
++ {
++ if (links[j].className.indexOf('tab') != -1)
++ {
++ tabs.push(links[j]);
++ links[j].tabs = tabs;
++ var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
++ //reset all tabs on start
++ if (tab)
++ {
++ if (links[j].className.indexOf('active')!=-1) {
++ tab.style.display = 'block';
++ }
++ else {
++ tab.style.display = 'none';
++ }
++ }
++ links[j].onclick = function()
++ {
++ var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
++ if (tab)
++ {
++ //reset all tabs before change
++ for (var k = 0; k < this.tabs.length; k++)
++ {
++ document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
++ this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
++ }
++ this.className = 'tab active';
++ tab.style.display = 'block';
++ // window.location.hash = this.id.replace('ID', '');
++ return false;
++ }
++ }
++ }
++ }
++ }
++ }
++ if(url.indexOf('#')!=-1) {
++ location.href=location.href;
++ }
++}
++if (window.addEventListener) window.addEventListener('load', initTabs, false);
++else if (window.attachEvent) window.attachEvent('onload', initTabs);
++-->
++</script>
++</head>
++<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>volk</span> library between <span style='color:Red;'>1.4</span> and <span style='color:Red;'>2.0</span> versions on <span style='color:Blue;'>x86_64</span></h1>
++
++ <br/>
++ <div class='tabset'>
++ <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
++ <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
++ </div><div id='BinaryTab' class='tab'>
++<h2>Test Info</h2><hr/>
++<table class='summary'>
++<tr><th>Library Name</th><td>volk</td></tr>
++<tr><th>Version #1</th><td>1.4</td></tr>
++<tr><th>Version #2</th><td>2.0</td></tr>
++<tr><th>Arch</th><td>x86_64</td></tr>
++<tr><th>GCC Version</th><td>8</td></tr>
++<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>
++</table>
++<h2>Test Results</h2><hr/>
++<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>143</a></td></tr>
++<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
++<tr><th>Total Symbols / Types</th><td>660 / 244</td></tr>
++<tr><th>Compatibility</th>
++<td class='warning'>99.8%</td>
++</tr>
++</table>
++<h2>Problem Summary</h2><hr/>
++<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr>
++<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
++<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
++<tr><td>Medium</td><td class='failed'><a href='#Type_Binary_Problems_Medium' style='color:Blue;'>2</a></td></tr>
++<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>3</a></td></tr>
++<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
++<tr><td>Medium</td><td class='failed'><a href='#Symbol_Binary_Problems_Medium' style='color:Blue;'>2</a></td></tr>
++<tr><td>Low</td><td>0</td></tr>
++<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>18</a></td></tr>
++<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>5</a></td></tr>
++</table>
++
++<a name='Medium_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Medium'></a>
++<h2>Problems with Data Types, Medium Severity <span class='failed'> 2 </span></h2><hr/>
++<span class='h_name'>volk_cpu.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_1')">
++<span class='ext'>[+]</span> <span class='ttype'>struct</span> VOLK_CPU <span class='failed'> 2 </span></span>
++<br/>
++<div id="c_1" style="display:none;">
++<table class='ptable'><tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th></tr><tr>
++<th>1</th>
++<td>Field <b>has_neonv7</b> has been added at the middle position of this structural type.</td>
++<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
++</tr>
++<tr>
++<th>2</th>
++<td>Field <b>has_neonv8</b> has been added at the middle position of this structural type.</td>
++<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
++</tr>
++</table>
++<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')">
++[+] affected symbols: 1 (0.2%)</span>
++<div id="c_2" style="display:none;">
++<div class='affected'><span class='iname_a'>volk_cpu <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type 'struct VOLK_CPU'.</div>
++</div>
++</div>
++<br/><br/></div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Symbol_Binary_Problems_Medium'></a><a name='Interface_Binary_Problems_Medium'></a>
++<h2>Problems with Symbols, Medium Severity <span class='failed'> 2 </span></h2><hr/>
++<span class='h_name'>volk_cpu.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_3')">
++<span class='ext'>[+]</span> volk_cpu <span class='attr'>[data]</span> <span class='failed'> 1 </span></span>
++<br/>
++<div id="c_3" style="display:none;">
++
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>Size of this global data has been changed from <b>176</b> bytes to <b>208</b> bytes.</td>
++<td>Applications will obtain a different value and execution may change.</td>
++</tr>
++</table>
++<br/>
++</div>
++<br/>
++<span class='h_name'>volk_prefs.h</span>, <span class='lib_name'>libvolk.so.1.4</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_4')">
++<span class='ext'>[+]</span> volk_get_config_path <span class='sym_p'><span>( char* <span class='color_p'>p1</span></span> )</span> <span class='failed'> 1 </span></span>
++<br/>
++<div id="c_4" style="display:none;">
++
++
++<span class='new_sign_lbl'>⇣</span>
++<br/>
++<span class='new_sign'>volk_get_config_path <span class='sym_p'><span>( char* <span class='color_p'>p1</span></span>, <span>bool <span class='color_p'>p2</span></span> )</span></span><br/>
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td><b>2nd</b> parameter <b>p2</b> has been added to the calling stack.</td>
++<td>This parameter will not be initialized by old clients.</td>
++</tr>
++</table>
++<br/>
++</div>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a>
++<h2>Problems with Data Types, Low Severity <span class='warning'> 3 </span></h2><hr/>
++<span class='h_name'>volk_cpu.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_5')">
++<span class='ext'>[+]</span> <span class='ttype'>struct</span> VOLK_CPU <span class='warning'> 3 </span></span>
++<br/>
++<div id="c_5" style="display:none;">
++<table class='ptable'><tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th></tr><tr>
++<th>1</th>
++<td>Field <b>has_avx512cd</b> has been added to this type.</td>
++<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
++</tr>
++<tr>
++<th>2</th>
++<td>Field <b>has_avx512f</b> has been added to this type.</td>
++<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
++</tr>
++<tr>
++<th>3</th>
++<td>Size of this type has been changed from <b>176</b> bytes to <b>208</b> bytes.</td>
++<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
++</tr>
++</table>
++<span class="sect_aff" onclick="javascript:showContent(this, 'c_6')">
++[+] affected symbols: 1 (0.2%)</span>
++<div id="c_6" style="display:none;">
++<div class='affected'><span class='iname_a'>volk_cpu <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type 'struct VOLK_CPU'.</div>
++</div>
++</div>
++<br/><br/></div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Constant_Binary_Problems_Low'></a>
++<h2>Problems with Constants, Low Severity <span class='warning'> 18 </span></h2><hr/>
++<span class='h_name'>volk_config_fixed.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_7')">
++<span class='ext'>[+]</span> LV_32</span>
++<br/>
++<div id="c_7" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_32</b> has been changed from <b>4</b> to <b>6</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_8')">
++<span class='ext'>[+]</span> LV_3DNOW</span>
++<br/>
++<div id="c_8" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_3DNOW</b> has been changed from <b>6</b> to <b>8</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_9')">
++<span class='ext'>[+]</span> LV_64</span>
++<br/>
++<div id="c_9" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_64</b> has been changed from <b>5</b> to <b>7</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_10')">
++<span class='ext'>[+]</span> LV_ABM</span>
++<br/>
++<div id="c_10" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_ABM</b> has been changed from <b>7</b> to <b>9</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_11')">
++<span class='ext'>[+]</span> LV_AVX</span>
++<br/>
++<div id="c_11" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_AVX</b> has been changed from <b>20</b> to <b>22</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_12')">
++<span class='ext'>[+]</span> LV_AVX2</span>
++<br/>
++<div id="c_12" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_AVX2</b> has been changed from <b>21</b> to <b>23</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_13')">
++<span class='ext'>[+]</span> LV_FMA</span>
++<br/>
++<div id="c_13" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_FMA</b> has been changed from <b>10</b> to <b>12</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_14')">
++<span class='ext'>[+]</span> LV_MMX</span>
++<br/>
++<div id="c_14" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_MMX</b> has been changed from <b>9</b> to <b>11</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_15')">
++<span class='ext'>[+]</span> LV_NORC</span>
++<br/>
++<div id="c_15" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_NORC</b> has been changed from <b>14</b> to <b>16</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_16')">
++<span class='ext'>[+]</span> LV_ORC</span>
++<br/>
++<div id="c_16" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_ORC</b> has been changed from <b>13</b> to <b>15</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_17')">
++<span class='ext'>[+]</span> LV_POPCOUNT</span>
++<br/>
++<div id="c_17" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_POPCOUNT</b> has been changed from <b>8</b> to <b>10</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_18')">
++<span class='ext'>[+]</span> LV_SSE</span>
++<br/>
++<div id="c_18" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE</b> has been changed from <b>11</b> to <b>13</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_19')">
++<span class='ext'>[+]</span> LV_SSE2</span>
++<br/>
++<div id="c_19" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE2</b> has been changed from <b>12</b> to <b>14</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_20')">
++<span class='ext'>[+]</span> LV_SSE3</span>
++<br/>
++<div id="c_20" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE3</b> has been changed from <b>15</b> to <b>17</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_21')">
++<span class='ext'>[+]</span> LV_SSE4_1</span>
++<br/>
++<div id="c_21" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE4_1</b> has been changed from <b>18</b> to <b>20</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_22')">
++<span class='ext'>[+]</span> LV_SSE4_2</span>
++<br/>
++<div id="c_22" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE4_2</b> has been changed from <b>19</b> to <b>21</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_23')">
++<span class='ext'>[+]</span> LV_SSE4_A</span>
++<br/>
++<div id="c_23" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE4_A</b> has been changed from <b>17</b> to <b>19</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_24')">
++<span class='ext'>[+]</span> LV_SSSE3</span>
++<br/>
++<div id="c_24" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSSE3</b> has been changed from <b>16</b> to <b>18</b>.</td>
++<td>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Constants'></a>
++<h2>Other Changes in Constants <span class='passed'> 5 </span></h2><hr/>
++<span class='h_name'>volk_32f_log2_32f.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_25')">
++<span class='ext'>[+]</span> LOG_POLY_DEGREE</span>
++<br/>
++<div id="c_25" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LOG_POLY_DEGREE</b> with value <b>6</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<span class='h_name'>volk_config_fixed.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_26')">
++<span class='ext'>[+]</span> LV_AVX512CD</span>
++<br/>
++<div id="c_26" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LV_AVX512CD</b> with value <b>25</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_27')">
++<span class='ext'>[+]</span> LV_AVX512F</span>
++<br/>
++<div id="c_27" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LV_AVX512F</b> with value <b>24</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_28')">
++<span class='ext'>[+]</span> LV_NEONV7</span>
++<br/>
++<div id="c_28" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LV_NEONV7</b> with value <b>4</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_29')">
++<span class='ext'>[+]</span> LV_NEONV8</span>
++<br/>
++<div id="c_29" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LV_NEONV8</b> with value <b>5</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Headers'></a><h2>Header Files <span class='gray'> 143 </span></h2><hr/>
++<div class='h_list'>
++saturation_arithmetic.h<br/>
++volk.h<br/>
++volk_16i_32fc_dot_prod_32fc.h<br/>
++volk_16i_branch_4_state_8.h<br/>
++volk_16i_convert_8i.h<br/>
++volk_16i_max_star_16i.h<br/>
++volk_16i_max_star_horizontal_16i.h<br/>
++volk_16i_permute_and_scalar_add.h<br/>
++volk_16i_s32f_convert_32f.h<br/>
++volk_16i_x4_quad_max_star_16i.h<br/>
++volk_16i_x5_add_quad_16i_x4.h<br/>
++volk_16ic_convert_32fc.h<br/>
++volk_16ic_deinterleave_16i_x2.h<br/>
++volk_16ic_deinterleave_real_16i.h<br/>
++volk_16ic_deinterleave_real_8i.h<br/>
++volk_16ic_magnitude_16i.h<br/>
++volk_16ic_s32f_deinterleave_32f_x2.h<br/>
++volk_16ic_s32f_deinterleave_real_32f.h<br/>
++volk_16ic_s32f_magnitude_32f.h<br/>
++volk_16ic_x2_dot_prod_16ic.h<br/>
++volk_16ic_x2_multiply_16ic.h<br/>
++volk_16u_byteswap.h<br/>
++volk_16u_byteswappuppet_16u.h<br/>
++volk_32f_64f_add_64f.h<br/>
++volk_32f_64f_multiply_64f.h<br/>
++volk_32f_8u_polarbutterfly_32f.h<br/>
++volk_32f_8u_polarbutterflypuppet_32f.h<br/>
++volk_32f_accumulator_s32f.h<br/>
++volk_32f_acos_32f.h<br/>
++volk_32f_asin_32f.h<br/>
++volk_32f_atan_32f.h<br/>
++volk_32f_binary_slicer_32i.h<br/>
++volk_32f_binary_slicer_8i.h<br/>
++volk_32f_convert_64f.h<br/>
++volk_32f_cos_32f.h<br/>
++volk_32f_expfast_32f.h<br/>
++volk_32f_index_max_16u.h<br/>
++volk_32f_index_max_32u.h<br/>
++volk_32f_invsqrt_32f.h<br/>
++volk_32f_log2_32f.h<br/>
++volk_32f_null_32f.h<br/>
++volk_32f_s32f_32f_fm_detect_32f.h<br/>
++volk_32f_s32f_calc_spectral_noise_floor_32f.h<br/>
++volk_32f_s32f_convert_16i.h<br/>
++volk_32f_s32f_convert_32i.h<br/>
++volk_32f_s32f_convert_8i.h<br/>
++volk_32f_s32f_mod_rangepuppet_32f.h<br/>
++volk_32f_s32f_multiply_32f.h<br/>
++volk_32f_s32f_normalize.h<br/>
++volk_32f_s32f_power_32f.h<br/>
++volk_32f_s32f_s32f_mod_range_32f.h<br/>
++volk_32f_s32f_stddev_32f.h<br/>
++volk_32f_sin_32f.h<br/>
++volk_32f_sqrt_32f.h<br/>
++volk_32f_stddev_and_mean_32f_x2.h<br/>
++volk_32f_tan_32f.h<br/>
++volk_32f_tanh_32f.h<br/>
++volk_32f_x2_add_32f.h<br/>
++volk_32f_x2_divide_32f.h<br/>
++volk_32f_x2_dot_prod_16i.h<br/>
++volk_32f_x2_dot_prod_32f.h<br/>
++volk_32f_x2_fm_detectpuppet_32f.h<br/>
++volk_32f_x2_interleave_32fc.h<br/>
++volk_32f_x2_max_32f.h<br/>
++volk_32f_x2_min_32f.h<br/>
++volk_32f_x2_multiply_32f.h<br/>
++volk_32f_x2_pow_32f.h<br/>
++volk_32f_x2_s32f_interleave_16ic.h<br/>
++volk_32f_x2_subtract_32f.h<br/>
++volk_32f_x3_sum_of_poly_32f.h<br/>
++volk_32fc_32f_add_32fc.h<br/>
++volk_32fc_32f_dot_prod_32fc.h<br/>
++volk_32fc_32f_multiply_32fc.h<br/>
++volk_32fc_conjugate_32fc.h<br/>
++volk_32fc_convert_16ic.h<br/>
++volk_32fc_deinterleave_32f_x2.h<br/>
++volk_32fc_deinterleave_64f_x2.h<br/>
++volk_32fc_deinterleave_imag_32f.h<br/>
++volk_32fc_deinterleave_real_32f.h<br/>
++volk_32fc_deinterleave_real_64f.h<br/>
++volk_32fc_index_max_16u.h<br/>
++volk_32fc_index_max_32u.h<br/>
++volk_32fc_magnitude_32f.h<br/>
++volk_32fc_magnitude_squared_32f.h<br/>
++volk_32fc_s32f_atan2_32f.h<br/>
++volk_32fc_s32f_deinterleave_real_16i.h<br/>
++volk_32fc_s32f_magnitude_16i.h<br/>
++volk_32fc_s32f_power_32fc.h<br/>
++volk_32fc_s32f_power_spectrum_32f.h<br/>
++volk_32fc_s32f_x2_power_spectral_density_32f.h<br/>
++volk_32fc_s32fc_multiply_32fc.h<br/>
++volk_32fc_s32fc_rotatorpuppet_32fc.h<br/>
++volk_32fc_s32fc_x2_rotator_32fc.h<br/>
++volk_32fc_x2_add_32fc.h<br/>
++volk_32fc_x2_conjugate_dot_prod_32fc.h<br/>
++volk_32fc_x2_divide_32fc.h<br/>
++volk_32fc_x2_dot_prod_32fc.h<br/>
++volk_32fc_x2_multiply_32fc.h<br/>
++volk_32fc_x2_multiply_conjugate_32fc.h<br/>
++volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h<br/>
++volk_32fc_x2_square_dist_32f.h<br/>
++volk_32i_s32f_convert_32f.h<br/>
++volk_32i_x2_and_32i.h<br/>
++volk_32i_x2_or_32i.h<br/>
++volk_32u_byteswap.h<br/>
++volk_32u_byteswappuppet_32u.h<br/>
++volk_32u_popcnt.h<br/>
++volk_32u_popcntpuppet_32u.h<br/>
++volk_32u_reverse_32u.h<br/>
++volk_64f_convert_32f.h<br/>
++volk_64f_x2_add_64f.h<br/>
++volk_64f_x2_max_64f.h<br/>
++volk_64f_x2_min_64f.h<br/>
++volk_64f_x2_multiply_64f.h<br/>
++volk_64u_byteswap.h<br/>
++volk_64u_byteswappuppet_64u.h<br/>
++volk_64u_popcnt.h<br/>
++volk_64u_popcntpuppet_64u.h<br/>
++volk_8i_convert_16i.h<br/>
++volk_8i_s32f_convert_32f.h<br/>
++volk_8ic_deinterleave_16i_x2.h<br/>
++volk_8ic_deinterleave_real_16i.h<br/>
++volk_8ic_deinterleave_real_8i.h<br/>
++volk_8ic_s32f_deinterleave_32f_x2.h<br/>
++volk_8ic_s32f_deinterleave_real_32f.h<br/>
++volk_8ic_x2_multiply_conjugate_16ic.h<br/>
++volk_8ic_x2_s32f_multiply_conjugate_32fc.h<br/>
++volk_8u_conv_k7_r2puppet_8u.h<br/>
++volk_8u_x2_encodeframepolar_8u.h<br/>
++volk_8u_x3_encodepolar_8u_x2.h<br/>
++volk_8u_x3_encodepolarpuppet_8u.h<br/>
++volk_8u_x4_conv_k7_r2_8u.h<br/>
++volk_avx_intrinsics.h<br/>
++volk_common.h<br/>
++volk_complex.h<br/>
++volk_config_fixed.h<br/>
++volk_cpu.h<br/>
++volk_malloc.h<br/>
++volk_neon_intrinsics.h<br/>
++volk_prefs.h<br/>
++volk_sse3_intrinsics.h<br/>
++volk_sse_intrinsics.h<br/>
++volk_typedefs.h<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/>
++<div class='lib_list'>
++libvolk.so.1.4<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<br/><br/><br/></div><div id='SourceTab' class='tab'>
++<h2>Test Info</h2><hr/>
++<table class='summary'>
++<tr><th>Library Name</th><td>volk</td></tr>
++<tr><th>Version #1</th><td>1.4</td></tr>
++<tr><th>Version #2</th><td>2.0</td></tr>
++<tr><th>Arch</th><td>x86_64</td></tr>
++<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>
++</table>
++<h2>Test Results</h2><hr/>
++<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>143</a></td></tr>
++<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
++<tr><th>Total Symbols / Types</th><td>705 / 246</td></tr>
++<tr><th>Compatibility</th>
++<td class='warning'>99.9%</td>
++</tr>
++</table>
++<h2>Problem Summary</h2><hr/>
++<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>5</a></td></tr>
++<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
++<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
++<tr><td>Medium</td><td>0</td></tr>
++<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>4</a></td></tr>
++<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
++<tr><td>Medium</td><td class='failed'><a href='#Symbol_Source_Problems_Medium' style='color:Blue;'>1</a></td></tr>
++<tr><td>Low</td><td>0</td></tr>
++<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>18</a></td></tr>
++<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>5</a></td></tr>
++</table>
++
++<a name='Source_Added'></a><h2>Added Symbols <span class='new'> 5 </span></h2><hr/>
++<span class='h_name'>constants.h</span><br/>
++<span class="iname">volk_available_machines <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_c_compiler <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_compiler_flags <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_prefix <span class='sym_p'>( )</span></span><br/>
++<span class="iname">volk_version <span class='sym_p'>( )</span></span><br/>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Medium_Risk_Source_Problems'></a><a name='Symbol_Source_Problems_Medium'></a><a name='Interface_Source_Problems_Medium'></a>
++<h2>Problems with Symbols, Medium Severity <span class='failed'> 1 </span></h2><hr/>
++<span class='h_name'>volk_prefs.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_30')">
++<span class='ext'>[+]</span> volk_get_config_path <span class='sym_p'><span>( char* <span class='color_p'>p1</span></span> )</span> <span class='failed'> 1 </span></span>
++<br/>
++<div id="c_30" style="display:none;">
++
++
++<span class='new_sign_lbl'>⇣</span>
++<br/>
++<span class='new_sign'>volk_get_config_path <span class='sym_p'><span>( char* <span class='color_p'>p1</span></span>, <span>bool <span class='color_p'>p2</span></span> )</span></span><br/>
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td><b>2nd</b> parameter <b>p2</b> has been added to the calling stack.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a>
++<h2>Problems with Data Types, Low Severity <span class='warning'> 4 </span></h2><hr/>
++<span class='h_name'>volk_cpu.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_31')">
++<span class='ext'>[+]</span> <span class='ttype'>struct</span> VOLK_CPU <span class='warning'> 4 </span></span>
++<br/>
++<div id="c_31" style="display:none;">
++<table class='ptable'><tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th></tr><tr>
++<th>1</th>
++<td>Field <b>has_avx512cd</b> has been added to this type.</td>
++<td>This field will not be initialized or used by old client applications.</td>
++</tr>
++<tr>
++<th>2</th>
++<td>Field <b>has_avx512f</b> has been added to this type.</td>
++<td>This field will not be initialized or used by old client applications.</td>
++</tr>
++<tr>
++<th>3</th>
++<td>Field <b>has_neonv7</b> has been added to this type.</td>
++<td>This field will not be initialized or used by old client applications.</td>
++</tr>
++<tr>
++<th>4</th>
++<td>Field <b>has_neonv8</b> has been added to this type.</td>
++<td>This field will not be initialized or used by old client applications.</td>
++</tr>
++</table>
++<span class="sect_aff" onclick="javascript:showContent(this, 'c_32')">
++[+] affected symbols: 1 (0.1%)</span>
++<div id="c_32" style="display:none;">
++<div class='affected'><span class='iname_a'>volk_cpu <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type 'struct VOLK_CPU'.</div>
++</div>
++</div>
++<br/><br/></div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Constant_Source_Problems_Low'></a>
++<h2>Problems with Constants, Low Severity <span class='warning'> 18 </span></h2><hr/>
++<span class='h_name'>volk_config_fixed.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_33')">
++<span class='ext'>[+]</span> LV_32</span>
++<br/>
++<div id="c_33" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_32</b> has been changed from <b>4</b> to <b>6</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_34')">
++<span class='ext'>[+]</span> LV_3DNOW</span>
++<br/>
++<div id="c_34" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_3DNOW</b> has been changed from <b>6</b> to <b>8</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_35')">
++<span class='ext'>[+]</span> LV_64</span>
++<br/>
++<div id="c_35" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_64</b> has been changed from <b>5</b> to <b>7</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_36')">
++<span class='ext'>[+]</span> LV_ABM</span>
++<br/>
++<div id="c_36" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_ABM</b> has been changed from <b>7</b> to <b>9</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_37')">
++<span class='ext'>[+]</span> LV_AVX</span>
++<br/>
++<div id="c_37" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_AVX</b> has been changed from <b>20</b> to <b>22</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_38')">
++<span class='ext'>[+]</span> LV_AVX2</span>
++<br/>
++<div id="c_38" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_AVX2</b> has been changed from <b>21</b> to <b>23</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_39')">
++<span class='ext'>[+]</span> LV_FMA</span>
++<br/>
++<div id="c_39" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_FMA</b> has been changed from <b>10</b> to <b>12</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_40')">
++<span class='ext'>[+]</span> LV_MMX</span>
++<br/>
++<div id="c_40" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_MMX</b> has been changed from <b>9</b> to <b>11</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_41')">
++<span class='ext'>[+]</span> LV_NORC</span>
++<br/>
++<div id="c_41" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_NORC</b> has been changed from <b>14</b> to <b>16</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_42')">
++<span class='ext'>[+]</span> LV_ORC</span>
++<br/>
++<div id="c_42" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_ORC</b> has been changed from <b>13</b> to <b>15</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_43')">
++<span class='ext'>[+]</span> LV_POPCOUNT</span>
++<br/>
++<div id="c_43" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_POPCOUNT</b> has been changed from <b>8</b> to <b>10</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_44')">
++<span class='ext'>[+]</span> LV_SSE</span>
++<br/>
++<div id="c_44" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE</b> has been changed from <b>11</b> to <b>13</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_45')">
++<span class='ext'>[+]</span> LV_SSE2</span>
++<br/>
++<div id="c_45" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE2</b> has been changed from <b>12</b> to <b>14</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_46')">
++<span class='ext'>[+]</span> LV_SSE3</span>
++<br/>
++<div id="c_46" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE3</b> has been changed from <b>15</b> to <b>17</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_47')">
++<span class='ext'>[+]</span> LV_SSE4_1</span>
++<br/>
++<div id="c_47" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE4_1</b> has been changed from <b>18</b> to <b>20</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_48')">
++<span class='ext'>[+]</span> LV_SSE4_2</span>
++<br/>
++<div id="c_48" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE4_2</b> has been changed from <b>19</b> to <b>21</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_49')">
++<span class='ext'>[+]</span> LV_SSE4_A</span>
++<br/>
++<div id="c_49" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSE4_A</b> has been changed from <b>17</b> to <b>19</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_50')">
++<span class='ext'>[+]</span> LV_SSSE3</span>
++<br/>
++<div id="c_50" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The value of constant <b>LV_SSSE3</b> has been changed from <b>16</b> to <b>18</b>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Constants'></a>
++<h2>Other Changes in Constants <span class='passed'> 5 </span></h2><hr/>
++<span class='h_name'>volk_32f_log2_32f.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_51')">
++<span class='ext'>[+]</span> LOG_POLY_DEGREE</span>
++<br/>
++<div id="c_51" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LOG_POLY_DEGREE</b> with value <b>6</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<span class='h_name'>volk_config_fixed.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_52')">
++<span class='ext'>[+]</span> LV_AVX512CD</span>
++<br/>
++<div id="c_52" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LV_AVX512CD</b> with value <b>25</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_53')">
++<span class='ext'>[+]</span> LV_AVX512F</span>
++<br/>
++<div id="c_53" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LV_AVX512F</b> with value <b>24</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_54')">
++<span class='ext'>[+]</span> LV_NEONV7</span>
++<br/>
++<div id="c_54" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LV_NEONV7</b> with value <b>4</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_55')">
++<span class='ext'>[+]</span> LV_NEONV8</span>
++<br/>
++<div id="c_55" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LV_NEONV8</b> with value <b>5</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Headers'></a><h2>Header Files <span class='gray'> 143 </span></h2><hr/>
++<div class='h_list'>
++saturation_arithmetic.h<br/>
++volk.h<br/>
++volk_16i_32fc_dot_prod_32fc.h<br/>
++volk_16i_branch_4_state_8.h<br/>
++volk_16i_convert_8i.h<br/>
++volk_16i_max_star_16i.h<br/>
++volk_16i_max_star_horizontal_16i.h<br/>
++volk_16i_permute_and_scalar_add.h<br/>
++volk_16i_s32f_convert_32f.h<br/>
++volk_16i_x4_quad_max_star_16i.h<br/>
++volk_16i_x5_add_quad_16i_x4.h<br/>
++volk_16ic_convert_32fc.h<br/>
++volk_16ic_deinterleave_16i_x2.h<br/>
++volk_16ic_deinterleave_real_16i.h<br/>
++volk_16ic_deinterleave_real_8i.h<br/>
++volk_16ic_magnitude_16i.h<br/>
++volk_16ic_s32f_deinterleave_32f_x2.h<br/>
++volk_16ic_s32f_deinterleave_real_32f.h<br/>
++volk_16ic_s32f_magnitude_32f.h<br/>
++volk_16ic_x2_dot_prod_16ic.h<br/>
++volk_16ic_x2_multiply_16ic.h<br/>
++volk_16u_byteswap.h<br/>
++volk_16u_byteswappuppet_16u.h<br/>
++volk_32f_64f_add_64f.h<br/>
++volk_32f_64f_multiply_64f.h<br/>
++volk_32f_8u_polarbutterfly_32f.h<br/>
++volk_32f_8u_polarbutterflypuppet_32f.h<br/>
++volk_32f_accumulator_s32f.h<br/>
++volk_32f_acos_32f.h<br/>
++volk_32f_asin_32f.h<br/>
++volk_32f_atan_32f.h<br/>
++volk_32f_binary_slicer_32i.h<br/>
++volk_32f_binary_slicer_8i.h<br/>
++volk_32f_convert_64f.h<br/>
++volk_32f_cos_32f.h<br/>
++volk_32f_expfast_32f.h<br/>
++volk_32f_index_max_16u.h<br/>
++volk_32f_index_max_32u.h<br/>
++volk_32f_invsqrt_32f.h<br/>
++volk_32f_log2_32f.h<br/>
++volk_32f_null_32f.h<br/>
++volk_32f_s32f_32f_fm_detect_32f.h<br/>
++volk_32f_s32f_calc_spectral_noise_floor_32f.h<br/>
++volk_32f_s32f_convert_16i.h<br/>
++volk_32f_s32f_convert_32i.h<br/>
++volk_32f_s32f_convert_8i.h<br/>
++volk_32f_s32f_mod_rangepuppet_32f.h<br/>
++volk_32f_s32f_multiply_32f.h<br/>
++volk_32f_s32f_normalize.h<br/>
++volk_32f_s32f_power_32f.h<br/>
++volk_32f_s32f_s32f_mod_range_32f.h<br/>
++volk_32f_s32f_stddev_32f.h<br/>
++volk_32f_sin_32f.h<br/>
++volk_32f_sqrt_32f.h<br/>
++volk_32f_stddev_and_mean_32f_x2.h<br/>
++volk_32f_tan_32f.h<br/>
++volk_32f_tanh_32f.h<br/>
++volk_32f_x2_add_32f.h<br/>
++volk_32f_x2_divide_32f.h<br/>
++volk_32f_x2_dot_prod_16i.h<br/>
++volk_32f_x2_dot_prod_32f.h<br/>
++volk_32f_x2_fm_detectpuppet_32f.h<br/>
++volk_32f_x2_interleave_32fc.h<br/>
++volk_32f_x2_max_32f.h<br/>
++volk_32f_x2_min_32f.h<br/>
++volk_32f_x2_multiply_32f.h<br/>
++volk_32f_x2_pow_32f.h<br/>
++volk_32f_x2_s32f_interleave_16ic.h<br/>
++volk_32f_x2_subtract_32f.h<br/>
++volk_32f_x3_sum_of_poly_32f.h<br/>
++volk_32fc_32f_add_32fc.h<br/>
++volk_32fc_32f_dot_prod_32fc.h<br/>
++volk_32fc_32f_multiply_32fc.h<br/>
++volk_32fc_conjugate_32fc.h<br/>
++volk_32fc_convert_16ic.h<br/>
++volk_32fc_deinterleave_32f_x2.h<br/>
++volk_32fc_deinterleave_64f_x2.h<br/>
++volk_32fc_deinterleave_imag_32f.h<br/>
++volk_32fc_deinterleave_real_32f.h<br/>
++volk_32fc_deinterleave_real_64f.h<br/>
++volk_32fc_index_max_16u.h<br/>
++volk_32fc_index_max_32u.h<br/>
++volk_32fc_magnitude_32f.h<br/>
++volk_32fc_magnitude_squared_32f.h<br/>
++volk_32fc_s32f_atan2_32f.h<br/>
++volk_32fc_s32f_deinterleave_real_16i.h<br/>
++volk_32fc_s32f_magnitude_16i.h<br/>
++volk_32fc_s32f_power_32fc.h<br/>
++volk_32fc_s32f_power_spectrum_32f.h<br/>
++volk_32fc_s32f_x2_power_spectral_density_32f.h<br/>
++volk_32fc_s32fc_multiply_32fc.h<br/>
++volk_32fc_s32fc_rotatorpuppet_32fc.h<br/>
++volk_32fc_s32fc_x2_rotator_32fc.h<br/>
++volk_32fc_x2_add_32fc.h<br/>
++volk_32fc_x2_conjugate_dot_prod_32fc.h<br/>
++volk_32fc_x2_divide_32fc.h<br/>
++volk_32fc_x2_dot_prod_32fc.h<br/>
++volk_32fc_x2_multiply_32fc.h<br/>
++volk_32fc_x2_multiply_conjugate_32fc.h<br/>
++volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h<br/>
++volk_32fc_x2_square_dist_32f.h<br/>
++volk_32i_s32f_convert_32f.h<br/>
++volk_32i_x2_and_32i.h<br/>
++volk_32i_x2_or_32i.h<br/>
++volk_32u_byteswap.h<br/>
++volk_32u_byteswappuppet_32u.h<br/>
++volk_32u_popcnt.h<br/>
++volk_32u_popcntpuppet_32u.h<br/>
++volk_32u_reverse_32u.h<br/>
++volk_64f_convert_32f.h<br/>
++volk_64f_x2_add_64f.h<br/>
++volk_64f_x2_max_64f.h<br/>
++volk_64f_x2_min_64f.h<br/>
++volk_64f_x2_multiply_64f.h<br/>
++volk_64u_byteswap.h<br/>
++volk_64u_byteswappuppet_64u.h<br/>
++volk_64u_popcnt.h<br/>
++volk_64u_popcntpuppet_64u.h<br/>
++volk_8i_convert_16i.h<br/>
++volk_8i_s32f_convert_32f.h<br/>
++volk_8ic_deinterleave_16i_x2.h<br/>
++volk_8ic_deinterleave_real_16i.h<br/>
++volk_8ic_deinterleave_real_8i.h<br/>
++volk_8ic_s32f_deinterleave_32f_x2.h<br/>
++volk_8ic_s32f_deinterleave_real_32f.h<br/>
++volk_8ic_x2_multiply_conjugate_16ic.h<br/>
++volk_8ic_x2_s32f_multiply_conjugate_32fc.h<br/>
++volk_8u_conv_k7_r2puppet_8u.h<br/>
++volk_8u_x2_encodeframepolar_8u.h<br/>
++volk_8u_x3_encodepolar_8u_x2.h<br/>
++volk_8u_x3_encodepolarpuppet_8u.h<br/>
++volk_8u_x4_conv_k7_r2_8u.h<br/>
++volk_avx_intrinsics.h<br/>
++volk_common.h<br/>
++volk_complex.h<br/>
++volk_config_fixed.h<br/>
++volk_cpu.h<br/>
++volk_malloc.h<br/>
++volk_neon_intrinsics.h<br/>
++volk_prefs.h<br/>
++volk_sse3_intrinsics.h<br/>
++volk_sse_intrinsics.h<br/>
++volk_typedefs.h<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Libs'></a><h2>Libraries <span class='gray'> 1 </span></h2><hr/>
++<div class='lib_list'>
++libvolk.so.1.4<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<br/><br/><br/></div><hr/>
++<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.3  </i>
++</div>
++<br/>
++
++</body></html>
--- /dev/null
--- /dev/null
++volk (2.0.0-2) unstable; urgency=medium
++
++ * Upload to unstable
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Mon, 12 Aug 2019 22:49:11 -0400
++
++volk (2.0.0-1) experimental; urgency=medium
++
++ * New upstream release
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Wed, 07 Aug 2019 23:31:20 -0400
++
++volk (1.4-4) unstable; urgency=medium
++
++ * working volk_modtool with Python 3
++ * build and install libvolk.a
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Mon, 29 Oct 2018 01:32:05 -0400
++
++volk (1.4-3) unstable; urgency=medium
++
++ * update to v1.4-9-g297fefd
++ Added an AVX protokernel for volk_32fc_x2_32f_square_dist_scalar_mult_32f
++ fixed a buffer over-read and over-write in
++ volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx
++ Fix 32u_reverse_32u for ARM
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sat, 12 May 2018 15:25:04 -0400
++
++volk (1.4-2) unstable; urgency=medium
++
++ * Upload to unstable, needed by gnuradio (>= 3.7.12.0)
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Tue, 03 Apr 2018 01:03:19 -0400
++
++volk (1.4-1) experimental; urgency=medium
++
++ * New upstream release
++ upstream changelog http://libvolk.org/release-v14.html
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Tue, 27 Mar 2018 22:57:42 -0400
++
++volk (1.3.1-1) unstable; urgency=medium
++
++ * New upstream bugfix release
++ * Refresh all debian patches for use with git am
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Tue, 27 Mar 2018 21:54:29 -0400
++
++volk (1.3-3) unstable; urgency=medium
++
++ * update to v1.3-23-g0109b2e
++ * update debian/libvolk1-dev.abi.tar.gz.amd64
++ * Add breaks/replaces gnuradio (<=3.7.2.1) (LP: #1614235)
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sun, 04 Feb 2018 13:12:21 -0500
++
++volk (1.3-2) unstable; urgency=medium
++
++ * update to v1.3-16-g28b03a9
++ apps: fix profile update reading end of lines
++ qa: lower tolerance for 32fc_mag to fix issue #96
++ * include upstream master patch to sort input files
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sun, 27 Aug 2017 13:44:55 -0400
++
++volk (1.3-1) unstable; urgency=medium
++
++ * New upstream release
++ * The index_max kernels were named with the wrong output datatype. To
++ fix this there are new kernels that return a 32u (int32_t) and the
++ existing kernels had their signatures changed to return 16u (int16_t).
++ * The output to stdout and stderr has been shuffled around. There is no
++ longer a message that prints what VOLK machine is being used and the
++ warning messages go to stderr rather than stdout.
++ * The 32fc_index_max kernels previously were only accurate to the SSE
++ register width (4 points). This was a pretty serious and long-lived
++ bug that's been fixed and the QA updated appropriately.
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sat, 02 Jul 2016 16:30:47 -0400
++
++volk (1.2.2-2) unstable; urgency=medium
++
++ * update to v1.2.2-11-g78c8bc4 (to follow gnuradio maint branch)
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sun, 19 Jun 2016 14:44:15 -0400
++
++volk (1.2.2-1) unstable; urgency=medium
++
++ * New upstream release
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Fri, 08 Apr 2016 00:12:10 -0400
++
++volk (1.2.1-2) unstable; urgency=medium
++
++ * Upstream patches:
++ Fix some CMake complaints
++ The fix for compilation with cmake 3.5
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Wed, 23 Mar 2016 17:47:54 -0400
++
++volk (1.2.1-1) unstable; urgency=medium
++
++ * New upstream release
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sun, 07 Feb 2016 19:38:32 -0500
++
++volk (1.2-1) unstable; urgency=medium
++
++ * New upstream release
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Thu, 24 Dec 2015 20:28:13 -0500
++
++volk (1.1.1-5) experimental; urgency=medium
++
++ * update to v1.1.1-22-gef53547 to support gnuradio 3.7.9
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Fri, 11 Dec 2015 13:12:55 -0500
++
++volk (1.1.1-4) unstable; urgency=medium
++
++ * more lintian fixes
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Wed, 25 Nov 2015 21:49:58 -0500
++
++volk (1.1.1-3) unstable; urgency=medium
++
++ * Lintian fixes Pre-Depends
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Thu, 19 Nov 2015 21:24:27 -0500
++
++volk (1.1.1-2) unstable; urgency=medium
++
++ * Note that libvolk1-dev replaces files in gnuradio-dev versions <<3.7.8
++ (Closes: #802646) again. Thanks Andreas Beckmann.
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Fri, 13 Nov 2015 18:45:49 -0500
++
++volk (1.1.1-1) unstable; urgency=medium
++
++ * New upstream release
++ * New architectures exist for the AVX2 and FMA ISAs.
++ * The profiler now generates buffers that are vlen + a tiny amount and
++ generates random data to fill buffers. This is intended to catch bugs
++ in protokernels that write beyond num_points.
++ * Note that libvolk1-dev replaces files in earlier gnuradio-dev versions
++ (Closes: #802646)
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sun, 01 Nov 2015 18:45:43 -0500
++
++volk (1.1-4) unstable; urgency=medium
++
++ * update to v1.1-12-g264addc
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Tue, 29 Sep 2015 23:41:50 -0400
++
++volk (1.1-3) unstable; urgency=low
++
++ * drop dh_acc to get reproducible builds
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Fri, 11 Sep 2015 22:57:06 -0400
++
++volk (1.1-2) unstable; urgency=low
++
++ * use dh-acc
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Mon, 07 Sep 2015 15:45:20 -0400
++
++volk (1.1-1) unstable; urgency=medium
++
++ * re-organize package naming convention
++ * New upstream release tag v1.1
++ New architectures exist for the AVX2 and FMA ISAs. Along
++ with the build-system support the following kernels have
++ no proto-kernels taking advantage of these architectures:
++
++ * 32f_x2_dot_prod_32f
++ * 32fc_x2_multiply_32fc
++ * 64_byteswap
++ * 32f_binary_slicer_8i
++ * 16u_byteswap
++ * 32u_byteswap
++
++ QA/profiler
++ -----------
++
++ The profiler now generates buffers that are vlen + a tiny
++ amount and generates random data to fill buffers. This is
++ intended to catch bugs in protokernels that write beyond
++ num_points.
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Wed, 26 Aug 2015 09:22:48 -0400
++
++volk (1.0.2-2) unstable; urgency=low
++
++ * Use SOURCE_DATE_EPOCH from the environment, if defined,
++ rather than current date and time to implement volk_build_date()
++ (embedding build date in a library does not help reproducible builds)
++ * add watch file
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sat, 15 Aug 2015 17:43:15 -0400
++
++volk (1.0.2-1) unstable; urgency=medium
++
++ * Maintenance release 24 Jul 2015 by Nathan West
++ * The major change is the CMake logic to add ASM protokernels. Rather
++ than depending on CFLAGS and ASMFLAGS we use the results of VOLK's
++ built in has_ARCH tests. All configurations should work the same as
++ before, but manually specifying CFLAGS and ASMFLAGS on the cmake call
++ for ARM native builds should no longer be necessary.
++ * The 32fc_s32fc_x2_rotator_32fc generic protokernel now includes a
++ previously implied header.
++ * Finally, there is a fix to return the "best" protokernel to the
++ dispatcher when no volk_config exists. Thanks to Alexandre Raymond for
++ pointing this out.
++ * with maint branch patch:
++ kernels-add-missing-include-arm_neon.h
++ * removed unused build-dependency on liboil0.3-dev (closes: #793626)
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Wed, 05 Aug 2015 00:43:40 -0400
++
++volk (1.0.1-1) unstable; urgency=low
++
++ * Maintenance Release v1.0.1 08 Jul 2015 by Nathan West
++ This is a maintenance release with bug fixes since the initial release of
++ v1.0 in April.
++
++ * Contributors
++
++ The following authors have contributed code to this release:
++
++ Doug Geiger doug.geiger@bioradiation.net
++ Elliot Briggs elliot.briggs@gmail.com
++ Marcus Mueller marcus@hostalia.de
++ Nathan West nathan.west@okstate.edu
++ Tom Rondeau tom@trondeau.com
++
++ * Kernels
++
++ Several bug fixes in different kernels. The NEON implementations of the
++ following kernels have been fixed:
++
++ 32f_x2_add_32f
++ 32f_x2_dot_prod_32f
++ 32fc_s32fc_multiply_32fc
++ 32fc_x2_multiply_32fc
++
++ Additionally the NEON asm based 32f_x2_add_32f protokernels were not being
++ used and are now included and available for use via the dispatcher.
++
++ The 32f_s32f_x2_fm_detect_32f kernel now has a puppet. This solves QA seg
++ faults on 32-bit machines and provide a better test for this kernel.
++
++ The 32fc_s32fc_x2_rotator_32fc generic protokernel replaced cabsf with
++ hypotf for better Android support.
++
++ * Building
++
++ Static builds now trigger the applications (volk_profile and
++ volk-config-info) to be statically linked.
++
++ The file gcc_x86_cpuid.h has been removed since it was no longer being
++ used. Previously it provided cpuid functionality for ancient compilers
++ that we do not support.
++
++ All build types now use -Wall.
++
++ * QA and Testing
++
++ The documentation around the --update option to volk_profile now makes it
++ clear that the option will only profile kernels without entries in
++ volk_profile. The signature of run_volk_tests with expanded args changed
++ signed types to unsigned types to reflect the actual input.
++
++ The remaining changes are all non-functional changes to address issues
++ from Coverity.
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Fri, 10 Jul 2015 17:57:42 -0400
++
++volk (1.0-5) unstable; urgency=medium
++
++ * native-armv7-build-support skips neon on Debian armel (Closes: #789972)
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sat, 04 Jul 2015 12:36:36 -0400
++
++volk (1.0-4) unstable; urgency=low
++
++ * update native-armv7-build-support patch from gnuradio volk package
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Thu, 25 Jun 2015 16:38:49 -0400
++
++volk (1.0-3) unstable; urgency=medium
++
++ * Add Breaks/Replaces (Closes: #789893, #789894)
++ * Allow failing tests
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Thu, 25 Jun 2015 12:46:06 -0400
++
++volk (1.0-2) unstable; urgency=medium
++
++ * kernels-add-missing-math.h-include-to-rotator
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Wed, 24 Jun 2015 21:09:32 -0400
++
++volk (1.0-1) unstable; urgency=low
++
++ * Initial package (Closes: #782417)
++ Initial Release 11 Apr 2015 by Nathan West
++
++ VOLK 1.0 is available. This is the first release of VOLK as an independently
++ tracked sub-project of GNU Radio.
++
++ * Contributors
++
++ VOLK has been tracked separately from GNU Radio since 2014 Dec 23.
++ Contributors between the split and the initial release are
++
++ Albert Holguin aholguin_77@yahoo.com
++ Doug Geiger doug.geiger@bioradiation.net
++ Elliot Briggs elliot.briggs@gmail.com
++ Julien Olivain julien.olivain@lsv.ens-cachan.fr
++ Michael Dickens michael.dickens@ettus.com
++ Nathan West nathan.west@okstate.edu
++ Tom Rondeau tom@trondeau.com
++
++ * QA
++
++ The test and profiler have significantly changed. The profiler supports
++ run-time changes to vlen and iters to help kernel development and provide
++ more flexibility on embedded systems. Additionally there is a new option
++ to update an existing volk_profile results file with only new kernels which
++ will save time when updating to newer versions of VOLK
++
++ The QA system creates a static list of kernels and test cases. The QA
++ testing and profiler iterate over this static list rather than each source
++ file keeping its own list. The QA also emits XML results to
++ lib/.unittest/kernels.xml which is formatted similarly to JUnit results.
++
++ * Modtool
++
++ Modtool was updated to support the QA and profiler changes.
++
++ * Kernels
++
++ New proto-kernels:
++
++ 16ic_deinterleave_real_8i_neon
++ 16ic_s32f_deinterleave_32f_neon
++ fix preprocessor errors for some compilers on byteswap and popcount puppets
++
++ ORC was moved to the asm kernels directory.
++ volk_malloc
++
++ The posix_memalign implementation of Volk_malloc now falls back to a standard
++ malloc if alignment is 1.
++
++ * Miscellaneous
++
++ Several build system and cmake changes have made it possible to build VOLK
++ both independently with proper soname versions and in-tree for projects
++ such as GNU Radio.
++
++ The static builds take advantage of cmake object libraries to speed up builds.
++
++ Finally, there are a number of changes to satisfy compiler warnings and make
++ QA work on multiple machines.
++
++ -- A. Maitland Bottoms <bottoms@debian.org> Sun, 12 Apr 2015 23:20:41 -0400
--- /dev/null
--- /dev/null
++12
--- /dev/null
--- /dev/null
++Source: volk
++Section: libdevel
++Priority: optional
++Maintainer: A. Maitland Bottoms <bottoms@debian.org>
++Build-Depends: cmake,
++ debhelper (>= 12~),
++ dh-python,
++ libboost-filesystem-dev,
++ libboost-program-options-dev,
++ libboost-system-dev,
++ libboost-test-dev,
++ liborc-0.4-dev,
++ python3-dev,
++ python3-mako,
++ python3-six
++Build-Depends-Indep: doxygen
++Standards-Version: 4.4.0
++Homepage: http://libvolk.org
++Vcs-Browser: https://salsa.debian.org/bottoms/pkg-volk
++Vcs-Git: https://salsa.debian.org/bottoms/pkg-volk.git
++
++Package: libvolk2.0
++Section: libs
++Architecture: any
++Pre-Depends: ${misc:Pre-Depends}
++Depends: ${misc:Depends}, ${shlibs:Depends}
++Multi-Arch: same
++Recommends: libvolk2-bin
++Suggests: libvolk2-dev
++Description: vector optimized functions
++ Vector-Optimized Library of Kernels is designed to help
++ applications work with the processor's SIMD instruction sets. These are
++ very powerful vector operations that can give signal processing a
++ huge boost in performance.
++
++Package: libvolk2-dev
++Architecture: any
++Pre-Depends: ${misc:Pre-Depends}
++Depends: libvolk2.0 (=${binary:Version}), ${misc:Depends}
++Breaks: gnuradio-dev (<<3.7.8), libvolk-dev, libvolk1.0-dev, libvolk1-dev
++Replaces: gnuradio-dev (<<3.7.8), libvolk-dev, libvolk1.0-dev, libvolk1-dev
++Suggests: libvolk2-doc
++Multi-Arch: same
++Description: vector optimized function headers
++ Vector-Optimized Library of Kernels is designed to help
++ applications work with the processor's SIMD instruction sets. These are
++ very powerful vector operations that can give signal processing a
++ huge boost in performance.
++ .
++ This package contains the header files.
++ For documentation, see libvolk-doc.
++
++Package: libvolk2-bin
++Section: libs
++Architecture: any
++Pre-Depends: ${misc:Pre-Depends}
++Depends: libvolk2.0 (=${binary:Version}),
++ ${misc:Depends},
++ ${python3:Depends},
++ ${shlibs:Depends}
++Breaks: libvolk1-bin, libvolk-bin, libvolk1.0-bin, gnuradio (<=3.7.2.1)
++Replaces: libvolk1-bin, libvolk-bin, libvolk1.0-bin, gnuradio (<=3.7.2.1)
++Description: vector optimized runtime tools
++ Vector-Optimized Library of Kernels is designed to help
++ applications work with the processor's SIMD instruction sets. These are
++ very powerful vector operations that can give signal processing a
++ huge boost in performance.
++ .
++ This package includes the volk_profile tool.
++
++Package: libvolk2-doc
++Section: doc
++Architecture: all
++Multi-Arch: foreign
++Depends: ${misc:Depends}
++Recommends: lynx | www-browser
++Description: vector optimized library documentation
++ Vector-Optimized Library of Kernels is designed to help
++ applications work with the processor's SIMD instruction sets. These are
++ very powerful vector operations that can give signal processing a
++ huge boost in performance.
++ .
++ This package includes the Doxygen generated documentation in
++ /usr/share/doc/libvolk2-dev/html/index.html
--- /dev/null
--- /dev/null
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: volk
++Upstream-Contact: http://libvolk.org/
++Source:
++ https://github.com/gnuradio/volk
++Comment:
++ Debian packages by A. Maitland Bottoms <bottoms@debian.org>
++ .
++ Upstream Authors:
++ Albert Holguin <aholguin_77@yahoo.com>
++ Doug Geiger <doug.geiger@bioradiation.net>
++ Elliot Briggs <elliot.briggs@gmail.com>
++ Julien Olivain <julien.olivain@lsv.ens-cachan.fr>
++ Michael Dickens <michael.dickens@ettus.com>
++ Nathan West <nathan.west@okstate.edu>
++ Tom Rondeau <tom@trondeau.com>
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: *
++Copyright: 2006, 2009-2016, Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: Doxyfile.in
++ DoxygenLayout.xml
++ volk.pc.in
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: apps/volk_profile.h
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: appveyor.yml
++Copyright: 2016 Paul Cercueil <paul.cercueil@analog.com>
++License: GPL-3+
++
++Files: cmake/*
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: cmake/Modules/*
++Copyright: 2006, 2009-2016, Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: cmake/Modules/CMakeParseArgumentsCopy.cmake
++Copyright: 2010 Alexander Neundorf <neundorf@kde.org>
++License: Kitware-BSD
++ All rights reserved.
++ .
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions
++ are met:
++ .
++ * Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ .
++ * Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ .
++ * Neither the names of Kitware, Inc., the Insight Software Consortium,
++ nor the names of their contributors may be used to endorse or promote
++ products derived from this software without specific prior written
++ permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++Files: cmake/Modules/FindORC.cmake
++ cmake/Modules/VolkConfig.cmake.in
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: cmake/msvc/*
++Copyright: 2006-2008, Alexander Chemeris
++License: BSD-2-clause
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are met:
++ .
++ 1. Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the following disclaimer.
++ .
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ .
++ 3. The name of the author may be used to endorse or promote products
++ derived from this software without specific prior written permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
++ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
++ EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
++ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
++ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
++ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
++ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++Files: cmake/msvc/config.h
++Copyright: 2005, 2006 Apple Computer, Inc.
++License: LGPL-2+
++
++Files: cmake/msvc/stdbool.h
++Copyright: 2005, 2006, Apple Computer, Inc.
++License: LGPL-2+
++
++Files: debian/*
++Copyright: 2015 Free Software Foundation, Inc
++License: GPL-3+
++Comment: assigned by A. Maitland Bottoms <bottoms@debian.org>
++
++Files: debian/libvolk1-dev.abi.tar.gz.amd64
++Copyright: 2016 Free Software Foundation, Inc
++License: GPL-3+
++
++Files: docs/*
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: gen/archs.xml
++ gen/machines.xml
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: include/volk/volk_common.h
++ include/volk/volk_complex.h
++ include/volk/volk_prefs.h
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: kernels/volk/asm/*
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: kernels/volk/volk_16u_byteswappuppet_16u.h
++ kernels/volk/volk_32u_byteswappuppet_32u.h
++ kernels/volk/volk_64u_byteswappuppet_64u.h
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: lib/kernel_tests.h
++ lib/qa_utils.cc
++ lib/qa_utils.h
++ lib/volk_prefs.c
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++License: LGPL-2+
++ This library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public
++ License as published by the Free Software Foundation; either
++ version 2 of the License, or (at your option) any later version.
++ .
++ This library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Library General Public License for more details.
++ .
++ You should have received a copy of the GNU Library General Public License
++ along with this library; see the file COPYING.LIB. If not, write to
++ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA.
++
++License: GPL-3+
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 3 of the License, or
++ (at your option) any later version.
++ .
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++ .
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>.
++ .
++ On Debian systems, the complete text of the GNU General
++ Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
--- /dev/null
--- /dev/null
++usr/bin/volk*
++usr/lib/python3/dist-packages
--- /dev/null
--- /dev/null
++debian/volk-config-info.1
++debian/volk_modtool.1
++debian/volk_profile.1
--- /dev/null
--- /dev/null
++<?xml version="1.0" encoding="utf-8"?>
++<descriptor>
++
++ <gcc_options>
++ -DHAVE_CPUID_H
++ -DHAVE_DLFCN_H
++ -DHAVE_FENV_H
++ -DHAVE_POSIX_MEMALIGN
++ -DHAVE_XGETBV
++ -D_GLIBCXX_USE_CXX11_ABI=1
++ -I/usr/include/orc-0.4
++ -DNDEBUG
++ -std=gnu11
++ -m64
++ -mmmx
++ -msse
++ -msse2
++ -msse3
++ -mssse3
++ -msse4.1
++ -msse4.2
++ -mpopcnt
++ -mavx
++ -mfma
++ -mavx2
++ -mavx512f
++ -mavx512cd
++ -fPIC
++ -g
++ -O2
++ -fstack-protector-strong
++ -Wformat
++ -Werror=format-security
++ -Wdate-time
++ -D_FORTIFY_SOURCE=2
++ -fvisibility=hidden
++ -Wsign-compare
++ -Wall
++ -Wno-uninitialized
++</gcc_options>
++
++<headers>
++debian/libvolk2-dev/usr/include/volk/
++</headers>
++
++<libs>
++debian/libvolk2.0/usr/lib/
++</libs>
++
++</descriptor>
--- /dev/null
--- /dev/null
++debian/1.3_to_1.4_compat_report.html
++debian/1.4_to_2.0_compat_report.html
--- /dev/null
--- /dev/null
++usr/include/*
++usr/lib/*/*volk.a
++usr/lib/*/*volk*so
++usr/lib/*/cmake/volk
++usr/lib/*/pkgconfig/*volk*
--- /dev/null
--- /dev/null
++Document: libvolk2-doc
++Title: Vector-Optimized Library of Kernels Reference Manual
++Author: GNU Radio Developers
++Abstract: VOLK is the Vector-Optimized Library of Kernels.
++ It is a library that contains kernels of hand-written SIMD code for
++ different mathematical operations. Since each SIMD architecture can
++ be very different and no compiler has yet come along to handle
++ vectorization properly or highly efficiently, VOLK approaches the
++ problem differently. For each architecture or platform that a
++ developer wishes to vectorize for, a new proto-kernel is added to
++ VOLK. At runtime, VOLK will select the correct proto-kernel. In this
++ way, the users of VOLK call a kernel for performing the operation
++ that is platform/architecture agnostic. This allows us to write
++ portable SIMD code.
++Section: Programming/C++
++
++Format: HTML
++Index: /usr/share/doc/libvolk2-dev/html/index.html
++Files: /usr/share/doc/libvolk2-dev/html/*.html
--- /dev/null
--- /dev/null
++obj-*/html
--- /dev/null
--- /dev/null
++usr/lib/*/libvolk.so.*
--- /dev/null
--- /dev/null
++From 799245ea6e9e05cc0ed0fabe783fbbe1a5054fd4 Mon Sep 17 00:00:00 2001
++From: "A. Maitland Bottoms" <bottoms@debian.org>
++Date: Tue, 27 Mar 2018 22:02:59 -0400
++Subject: [PATCH 2/6] make acc happy
++
++The abi-compliance-checker grabs all the .h files it finds
++and tries to compile them all. Even though some are not
++appropriate for the architecture being run on. Being careful
++with preprocessor protections avoids problems.
++---
++ include/volk/volk_neon_intrinsics.h | 2 ++
++ kernels/volk/volk_32f_8u_polarbutterflypuppet_32f.h | 1 +
++ kernels/volk/volk_8u_x2_encodeframepolar_8u.h | 3 ---
++ 3 files changed, 3 insertions(+), 3 deletions(-)
++
++--- a/include/volk/volk_neon_intrinsics.h
+++++ b/include/volk/volk_neon_intrinsics.h
++@@ -27,6 +27,7 @@
++
++ #ifndef INCLUDE_VOLK_VOLK_NEON_INTRINSICS_H_
++ #define INCLUDE_VOLK_VOLK_NEON_INTRINSICS_H_
+++#ifdef LV_HAVE_NEON
++ #include <arm_neon.h>
++
++
++@@ -75,4 +76,5 @@
++ return c_val;
++ }
++
+++#endif /*LV_HAVE_NEON*/
++ #endif /* INCLUDE_VOLK_VOLK_NEON_INTRINSICS_H_ */
++--- a/kernels/volk/volk_32f_8u_polarbutterflypuppet_32f.h
+++++ b/kernels/volk/volk_32f_8u_polarbutterflypuppet_32f.h
++@@ -31,6 +31,7 @@
++ #include <volk/volk_32f_8u_polarbutterfly_32f.h>
++ #include <volk/volk_8u_x3_encodepolar_8u_x2.h>
++ #include <volk/volk_8u_x3_encodepolarpuppet_8u.h>
+++#include <volk/volk_8u_x2_encodeframepolar_8u.h>
++
++
++ static inline void
++--- a/kernels/volk/volk_8u_x2_encodeframepolar_8u.h
+++++ b/kernels/volk/volk_8u_x2_encodeframepolar_8u.h
++@@ -58,8 +58,6 @@
++ }
++ }
++
++-#ifdef LV_HAVE_GENERIC
++-
++ static inline void
++ volk_8u_x2_encodeframepolar_8u_generic(unsigned char* frame, unsigned char* temp,
++ unsigned int frame_size)
++@@ -79,7 +77,6 @@
++ --stage;
++ }
++ }
++-#endif /* LV_HAVE_GENERIC */
++
++ #ifdef LV_HAVE_SSSE3
++ #include <tmmintrin.h>
--- /dev/null
--- /dev/null
++From b554121e765a3495e23975112f269a8083950212 Mon Sep 17 00:00:00 2001
++From: "A. Maitland Bottoms" <bottoms@debian.org>
++Date: Tue, 27 Mar 2018 22:01:33 -0400
++Subject: [PATCH 1/6] native armv7 build support
++
++Debian, unlike other GNU Radio deployments, does not cross-compile
++packages, but builds natively on a set of build machines, including
++both arm and armhf.
++---
++ lib/CMakeLists.txt | 15 +++++++++++----
++ 1 file changed, 11 insertions(+), 4 deletions(-)
++
++--- a/lib/CMakeLists.txt
+++++ b/lib/CMakeLists.txt
++@@ -282,6 +282,13 @@
++ endif(neon_compile_result)
++
++ ########################################################################
+++# if building Debian armel, eliminate neon
+++########################################################################
+++if(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi")
+++ OVERRULE_ARCH(neon "Architecture is not armhf")
+++endif(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi")
+++
+++########################################################################
++ # implement overruling in the ORC case,
++ # since ORC always passes flag detection
++ ########################################################################
++@@ -440,7 +447,7 @@
++ # Handle ASM support
++ # on by default, but let users turn it off
++ ########################################################################
++-if(${CMAKE_VERSION} VERSION_GREATER "2.8.9")
+++if((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND NOT (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi"))
++ set(ASM_ARCHS_AVAILABLE "neonv7" "neonv8")
++
++ set(FULL_C_FLAGS "${CMAKE_C_FLAGS}" "${CMAKE_CXX_COMPILER_ARG1}")
++@@ -469,7 +476,7 @@
++ message(STATUS "asm flags: ${CMAKE_ASM_FLAGS}")
++ endforeach(ARCH)
++
++-else(${CMAKE_VERSION} VERSION_GREATER "2.8.9")
+++else((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND NOT (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi"))
++ message(STATUS "Not enabling ASM support. CMake >= 2.8.10 required.")
++ foreach(machine_name ${available_machines})
++ string(REGEX MATCH "neon" NEON_MACHINE ${machine_name})
++@@ -477,7 +484,7 @@
++ message(FATAL_ERROR "CMake >= 2.8.10 is required for ARM NEON support")
++ endif()
++ endforeach()
++-endif(${CMAKE_VERSION} VERSION_GREATER "2.8.9")
+++endif((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND NOT (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi"))
++
++ ########################################################################
++ # Handle orc support
--- /dev/null
--- /dev/null
++--- a/apps/CMakeLists.txt
+++++ b/apps/CMakeLists.txt
++@@ -40,7 +40,7 @@
++ )
++
++
++-if(ENABLE_STATIC_LIBS)
+++if(ENABLE_STATIC_LIBS AND ENABLE_STATIC_APPS)
++ target_link_libraries(volk_profile volk_static ${Boost_LIBRARIES})
++ set_target_properties(volk_profile PROPERTIES LINK_FLAGS "-static")
++ else()
++@@ -57,7 +57,7 @@
++ add_executable(volk-config-info volk-config-info.cc ${CMAKE_CURRENT_SOURCE_DIR}/volk_option_helpers.cc
++ )
++
++-if(ENABLE_STATIC_LIBS)
+++if(ENABLE_STATIC_LIBS AND ENABLE_STATIC_APPS)
++ target_link_libraries(volk-config-info volk_static)
++ set_target_properties(volk-config-info PROPERTIES LINK_FLAGS "-static")
++ else()
--- /dev/null
--- /dev/null
++native-armv7-build-support
++make-acc-happy
++optional-static-apps
--- /dev/null
--- /dev/null
++#!/usr/bin/make -f
++DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
++export DEB_HOST_MULTIARCH
++export DH_VERBOSE=1
++
++%:
++ dh $@ --with python3
++
++override_dh_auto_configure:
++ dh_auto_configure -- -DLIB_SUFFIX="/$(DEB_HOST_MULTIARCH)" \
++ -DENABLE_STATIC_LIBS=On, -DPYTHON_EXECUTABLE=/usr/bin/python3 \
++ -DCMAKE_BUILD_TYPE=RelWithDebInfo
++
++override_dh_auto_build-indep:
++ cmake --build obj-* --target volk_doc
++
++override_dh_auto_test:
++ - dh_auto_test -- CTEST_TEST_TIMEOUT=60
++
++override_dh_acc:
++ - abi-compliance-checker -l libvolk2-dev -v1 2.0.0-1 -dump debian/libvolk2-dev.acc -dump-path debian/libvolk2-dev/usr/lib/x86_64-linux-gnu/dh-acc/libvolk2-dev_2.0.0-1.abi.tar.gz
++ - cat logs/libvolk2-dev/2.0.0-1/log.txt
++ - dh_acc
--- /dev/null
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /dev/null
++debian/libvolk2-dev.abi.tar.gz.amd64
--- /dev/null
--- /dev/null
++-----BEGIN PGP PUBLIC KEY BLOCK-----
++Version: GnuPG v1
++
++mQINBFcTzE0BEACWkwa+pAwjBPwUvL8E9adB6sFlH/bw/3Dj2Vr/bXDkNrZDEQzc
++C3wmoX3AZo0GSWpjlmlOGOPy6u4wZxEPfilKs+eDNnuIZN3gmLoRTThgbbrnH9bw
++kIaUMiUn8VJ0pk5ULaygG6APxl4EOVrMfzgRnxmIbUfggiBLaW/xq2a/BaVrUAuA
++oHv1GTGJkwcK0RfYigJMfZl9iHVJVopffexBt1hOeGYxiyLXSDWjOhLLVzhlfgTE
++T9YdLGyjoXFmImsCvkAA2MA52e5YGUQIBrqmiXdHFit7sve0e5Dw0aLyuTnMR0MO
++a2eIHWU6TYYv5GTJPzjBbWM1pRCgtupNilg2+RfN0tOTp27RQnUtgcCo26uBU+jV
++pyvnidpDGnuUBL3WNLZlUiqmiZs8Hc9BGNw3rKB37sUOMXz6XessnhRspXC1Mot4
++V3I1NoKwb0wjgqlkAYIGCCSuySosC5HH2OssopBUH6U5QXjFp11QbP2e+QkvKPKA
++S9V4ouSMrIDZ4krtu6QFDYsHa0zZ54yRl3O4UpfISlz3yngO2eKM019C5n51kd62
++Ia00rtx8ypvUxMy67PTEFdCKLJ6Ua/hEGcpxGygFMRa0pjHSrC6e9LvPudK92jsq
++qO0TjhUytig5k9YPoEa2JGn/kqP+K1HGAdJPay/HmcNTZWh0hoamhuJ6NwARAQAB
++tCZOYXRoYW4gV2VzdCA8bmF0aGFuLndlc3RAZ251cmFkaW8ub3JnPokCPgQTAQIA
++KAUCVxPMTQIbAwUJA8JnAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQOFMj
++7mQCCR20CA//VJfDu8W8BI/44JkucC+XBVqwOcfg/rcSHflgi0mNNz7hyJ+idwcB
++JVFSbhSpXucl6baJ0nDe8gcMuGFLyF4uLwCByX3ExDAnFL3Mu/jIyOUX8TGudZU7
++wTEhzOLPxmXfbo8lw3TETC1Xsl8g1gU/KBJnTl3WbdGZUlKW6fP0TR5BMdYskNHm
++CCqAvXWniZwjSX/jlpWremfTU9i9DUad8ufcdJue7uiZRNq4JLaWmSbtGNzDzJIq
++6csHc3GFcd0Q/LDEDcm1AG081yLEmRnbTstZo+xW27yaRyoe1Dpm9ehsl19dVaO7
++9ek2CEarqHjtRfO1MJMSBGiaS1lvujukYKZQRGNDKemDJwuQCVkxBMEef7SNX8XG
++2OPTARVp0hlrhMVFUk3hScekrKobq81YyCfWxBxxjRWySdInFhuT29cxxRLUxb69
++3MKLzFJRlq+oEbWJN8QGqILQ785TZA8MdnMsGywPk43x9spgYbwPhtJYb/Aes9B9
++NFkZ6EzVtzV7ztITuGhefRxt3eEmdFYNDHooWNFQdifcUgLoBgKOkP+oHOc+9mx7
++6CDN9ZJTHb87W3ISw7SLI4YcMPYipEN5g51ceInDc3kXFYQ+EqU691kOuGNtx3ov
++qqvPm9PBR00GSwhLQt7s127MFpYx9+in87+UMBFXyo/VstVBPQW2GLq5Ag0EVxPM
++TQEQAK+fh+ckP728ZVRn5mr8PtsG3gktyS6LlH7EjMsHnvQR16EVAjn5G915OQUY
++Bk6yk9l0VRX0NLautc41NwVlHI4FYBBjz6mEnDocvo+BT0g5KYTyjJPOxmEzgVZW
++3Zp/jPjK5Z9YZTCIalrk2iHVQCe8fFCnaXNGNQoku1jBPRUOOTI979LWPx4d7MI0
++7Yy+8xp5ogCrcTxea9VrMeXqnXzvy2peiceZDlvNmcEUCz222i6t2k9rUwY0+ozg
++TbsorE42h4B+a49ylY4zOX9fTPfsUj59/z/ilrxZy2qP2lBIFC+wFphKF3Qkilxd
++dnVGTsb9oKCQjuMcvh7MR27RVGLjW1pVMWGMmXBkIDu0U88Hn91XKfm1ZmWgksoU
++MC7BZocvUxIKnV+WiKy9ooP/HSzgP7ggdG+16B3yDdicB0DiBFEKZEmIWCBt5NXR
++q853WwFSH7xcrEOTXnqtkRUX4+obdwQhtqTueSC4xqX0+YVixZUC6ewqueFmPn+l
++WItCV7XU67NXTJNRC3i4kIF+hpT5YWtx56NuNcvhN25bZr1frTChOuXcCBNrOU+b
++yo2wpXAcfq+YmnaP0ZFFh7wKRi4leEPL/+JyitQbvSQU4Lejwanzvv7Ug1j4qZo1
++A6WSxXYUWJY5rhh8nWYtJJOn5Wj4Y3gWa1taUpYw1g2lf0o5ABEBAAGJAiUEGAEC
++AA8FAlcTzE0CGwwFCQPCZwAACgkQOFMj7mQCCR2uXRAAiBsOfqp+QuQqO3OPW8OZ
++I2+JNbaaFEC1TorUhGs5XiT4wKyn1wDni4mavO4kJ8nK4Zc1qBYWeMOClj6JySJL
++yf0aVTjLyn+4Q4jt/9Dmn15wbOWZvdSICipfcLWmPLYniizsJWA4Mqoefcztmyxk
++FrJZ+Vri6MH5PxVuZjHhOUVfXIsqRhqqrpRjVnjzGvNxLgP3aLHfQPim/jbxaeRK
++oVtDNDLA+1nwdpZ8Hehe5OVfUKWuz1DXrdM0eY7pTRcms8+7y//AXpRqygH7TLx5
++mXavdmAzgYcamQGfu/K4Mq9Bkgr1BNasgkxnPu+J0Z4jO9HsRBCJWf2BLKXmYedD
++5t0LR8bJHUTV7lsIifo0Ev47qsk1QX41KSKPAMwSzmtTLA0wzPJrkUEeVgm075N7
++btLneqw5EyDcz3pJ7aD3HceWh+HZOREnfYXyMLxWTND7SKx0k6nmM8xasYHP0/6y
++mR8picMjbPlyoETe6B6yKi5rDjOrDwrKqBjulcUHsRhjAAUUI6IHgj4v5gCfTPS7
++WrV98icGSHYnuxV40NT8Nt0lWNrPJhIUm1nu3UkEInznxMii1h6ga6REE/TJsStD
++C46x7fsiH4HkK1FJ+owoLhsVQo0OE4nWh8lWIBhTpR4wxThwfVHKt/H12st3tHuI
++CLIM6szb01rYgHTn9/vDgJE=
++=MlbD
++-----END PGP PUBLIC KEY BLOCK-----
--- /dev/null
--- /dev/null
++.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.10.
++.TH VOLK-CONFIG-INFO "1" "July 2014" "volk-config-info 0.1" "User Commands"
++.SH NAME
++volk-config-info \- pkgconfig-like tool for Vector Optimized Library of Kernels 0.1
++.SH DESCRIPTION
++.SS "Program options: volk-config-info [options]:"
++.TP
++\fB\-h\fR [ \fB\-\-help\fR ]
++print help message
++.TP
++\fB\-\-prefix\fR
++print VOLK installation prefix
++.TP
++\fB\-\-builddate\fR
++print VOLK build date (RFC2822 format)
++.TP
++\fB\-\-cc\fR
++print VOLK C compiler version
++.TP
++\fB\-\-cflags\fR
++print VOLK CFLAGS
++.TP
++\fB\-\-all\-machines\fR
++print VOLK machines built into library
++.TP
++\fB\-\-avail\-machines\fR
++print VOLK machines the current platform can use
++.TP
++\fB\-\-machine\fR
++print the VOLK machine that will be used
++.TP
++\fB\-v\fR [ \fB\-\-version\fR ]
++print VOLK version
++.SH "SEE ALSO"
++The full documentation for
++.B volk-config-info
++is maintained as a Texinfo manual. If the
++.B info
++and
++.B volk-config-info
++programs are properly installed at your site, the command
++.IP
++.B info volk-config-info
++.PP
++should give you access to the complete manual.
--- /dev/null
--- /dev/null
++.TH GNURADIO "1" "August 2013" "volk_modtool 3.7" "User Commands"
++.SH NAME
++volk_modtool \- tailor VOLK modules
++.SH DESCRIPTION
++The volk_modtool tool is installed along with VOLK as a way of helping
++to construct, add to, and interogate the VOLK library or companion
++libraries.
++.P
++volk_modtool is installed into $prefix/bin.
++.P
++VOLK modtool enables creating standalone (out-of-tree) VOLK modules
++and provides a few tools for sharing VOLK kernels between VOLK
++modules. If you need to design or work with VOLK kernels away from
++the canonical VOLK library, this is the tool. If you need to tailor
++your own VOLK library for whatever reason, this is the tool.
++.P
++The canonical VOLK library installs a volk.h and a libvolk.so. Your
++own library will install volk_$name.h and libvolk_$name.so. Ya Gronk?
++Good.
++.P
++There isn't a substantial difference between the canonical VOLK
++module and any other VOLK module. They're all peers. Any module
++created via VOLK modtool will come complete with a default
++volk_modtool.cfg file associating the module with the base from which
++it came, its distinctive $name and its destination (or path). These
++values (created from user input if VOLK modtool runs without a
++user-supplied config file or a default config file) serve as default
++values for some VOLK modtool actions. It's more or less intended for
++the user to change directories to the top level of a created VOLK
++module and then run volk_modtool to take advantage of the values
++stored in the default volk_modtool.cfg file.
++.P
++Apart from creating new VOLK modules, VOLK modtool allows you to list
++the names of kernels in other modules, list the names of kernels in
++the current module, add kernels from another module into the current
++module, and remove kernels from the current module. When moving
++kernels between modules, VOLK modtool does its best to keep the qa
++and profiling code for those kernels intact. If the base has a test
++or a profiling call for some kernel, those calls will follow the
++kernel when VOLK modtool adds that kernel. If QA or profiling
++requires a puppet kernel, the puppet kernel will follow the original
++kernel when VOLK modtool adds that original kernel. VOLK modtool
++respects puppets.
++.P
++======================================================================
++.P
++.SH Installing a new VOLK Library:
++.P
++Run the command "volk_modtool -i". This will ask you three questions:
++.P
++ name: // the name to give your VOLK library: volk_<name>
++ destination: // directory new source tree is built under -- must exists.
++ // It will create <directory>/volk_<name>
++ base: // the directory containing the original VOLK source code
++.P
++This will build a new skeleton directory in the destination provided
++with the name volk_<name>. It will contain the necessary structure to
++build:
++.P
++ mkdir build
++ cd build
++ cmake -DCMAKE_INSTALL_PREFIX=/opt/volk ../
++ make
++ sudo make install
++.P
++Right now, the library is empty and contains no kernels. Kernels can
++be added from another VOLK library using the '-a' option. If not
++specified, the kernel will be extracted from the base VOLK
++directory. Using the '-b' allows us to specify another VOLK library to
++use for this purpose.
++.P
++ volk_modtool -a -n 32fc_x2_conjugate_dot_prod_32fc
++.P
++This will put the code for the new kernel into
++<destination>/volk_<name>/kernels/volk_<name>/
++.P
++Other kernels must be added by hand. See the following webpages for
++more information about creating VOLK kernels:
++ http://gnuradio.org/doc/doxygen/volk_guide.html
++ http://gnuradio.org/redmine/projects/gnuradio/wiki/Volk
++.P
++======================================================================
++.P
++.SH OPTIONS
++.P
++Options for Adding and Removing Kernels:
++ -a, --add_kernel
++ Add kernel from existing VOLK module. Uses the base VOLK module
++ unless -b is used. Use -n to specify the kernel name.
++ Requires: -n.
++ Optional: -b
++.P
++ -A, --add_all_kernels
++ Add all kernels from existing VOLK module. Uses the base VOLK
++ module unless -b is used.
++ Optional: -b
++.P
++ -x, --remove_kernel
++ Remove kernel from module.
++ Required: -n.
++ Optional: -b
++.P
++Options for Listing Kernels:
++ -l, --list
++ Lists all kernels available in the base VOLK module.
++.P
++ -k, --kernels
++ Lists all kernels in this VOLK module.
++.P
++ -r, --remote-list
++ Lists all kernels in another VOLK module that is specified
++ using the -b option.
--- /dev/null
--- /dev/null
++.TH UHD_FFT "1" "March 2012" "volk_profile 3.5" "User Commands"
++.SH NAME
++volk_profile \- Quality Assurance application for libvolk functions
++.SH DESCRIPTION
++Writes profile results to a file.
--- /dev/null
--- /dev/null
++version=3
++opts="pgpsigurlmangle=s/$/.asc/" \
++ http://libvolk.org/releases/volk-(\d\S*)\.tar\.gz