volk (2.0.0-2) unstable; urgency=medium
authorA. Maitland Bottoms <bottoms@debian.org>
Tue, 13 Aug 2019 02:49:11 +0000 (03:49 +0100)
committerA. Maitland Bottoms <bottoms@debian.org>
Tue, 13 Aug 2019 02:49:11 +0000 (03:49 +0100)
  * Upload to unstable

[dgit import unpatched volk 2.0.0-2]

27 files changed:
1  2 
debian/1.3_to_1.4_compat_report.html
debian/1.4_to_2.0_compat_report.html
debian/changelog
debian/compat
debian/control
debian/copyright
debian/libvolk2-bin.install
debian/libvolk2-bin.manpages
debian/libvolk2-dev.abi.tar.gz.amd64
debian/libvolk2-dev.acc
debian/libvolk2-dev.docs
debian/libvolk2-dev.install
debian/libvolk2-doc.doc-base
debian/libvolk2-doc.docs
debian/libvolk2.0.install
debian/patches/make-acc-happy
debian/patches/native-armv7-build-support
debian/patches/optional-static-apps
debian/patches/series
debian/rules
debian/source/format
debian/source/include-binaries
debian/upstream/signing-key.asc
debian/volk-config-info.1
debian/volk_modtool.1
debian/volk_profile.1
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f9614d6f3d39402d70ad322568455a2f9267adf7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1069 @@@
++<!-- 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,"[&minus;]");
++    }
++    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'>&nbsp;45&nbsp;</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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'>&nbsp;1&nbsp;</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&#160;<span class='sym_p'><span>(&#160;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>&#160;)</span> <span class='failed'>&nbsp;1&nbsp;</span></span>
++<br/>
++<div id="c_1" style="display:none;">
++
++
++<span class='new_sign_lbl'>&#8675;</span>
++<br/>
++<span class='new_sign'>volk_32f_8u_polarbutterfly_32f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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'>&nbsp;1&nbsp;</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'>&nbsp;1&nbsp;</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 &#39;p_32f_8u_polarbutterfly_32f&#39;.</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 &#39;p_32f_8u_polarbutterfly_32f&#39;.</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 &#39;p_32f_8u_polarbutterfly_32f&#39;.</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'>&nbsp;1&nbsp;</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'>&nbsp;135&nbsp;</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'>&nbsp;1&nbsp;</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'>&nbsp;46&nbsp;</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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'>&nbsp;5&nbsp;</span></h2><hr/>
++<span class='h_name'>constants.h</span><br/>
++<span class="iname">volk_available_machines&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_c_compiler&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_compiler_flags&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_prefix&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_version&#160;<span class='sym_p'>(&#160;)</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'>&nbsp;1&nbsp;</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&#160;<span class='sym_p'><span>(&#160;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>&#160;)</span> <span class='failed'>&nbsp;1&nbsp;</span></span>
++<br/>
++<div id="c_6" style="display:none;">
++
++
++<span class='new_sign_lbl'>&#8675;</span>
++<br/>
++<span class='new_sign'>volk_32f_8u_polarbutterfly_32f_manual&#160;<span class='sym_p'><span>(&#160;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>&#160;)</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'>&nbsp;1&nbsp;</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'>&nbsp;1&nbsp;</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 &#39;p_32f_8u_polarbutterfly_32f&#39;.</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 &#39;p_32f_8u_polarbutterfly_32f&#39;.</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 &#39;p_32f_8u_polarbutterfly_32f&#39;.</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'>&nbsp;1&nbsp;</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'>&nbsp;2&nbsp;</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'>&nbsp;135&nbsp;</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'>&nbsp;1&nbsp;</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 &#160;</i>
++</div>
++<br/>
++
++</body></html>
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0bb62759d3c813e8764b1bad45df848f12b3106c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1855 @@@
++<!-- 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,"[&minus;]");
++    }
++    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'>&nbsp;2&nbsp;</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'>&nbsp;2&nbsp;</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 &#39;struct VOLK_CPU&#39;.</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'>&nbsp;2&nbsp;</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'>&nbsp;1&nbsp;</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&#160;<span class='sym_p'><span>(&#160;char* <span class='color_p'>p1</span></span>&#160;)</span> <span class='failed'>&nbsp;1&nbsp;</span></span>
++<br/>
++<div id="c_4" style="display:none;">
++
++
++<span class='new_sign_lbl'>&#8675;</span>
++<br/>
++<span class='new_sign'>volk_get_config_path&#160;<span class='sym_p'><span>(&#160;char* <span class='color_p'>p1</span></span>, <span>bool <span class='color_p'>p2</span></span>&#160;)</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'>&nbsp;3&nbsp;</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'>&nbsp;3&nbsp;</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 &#39;struct VOLK_CPU&#39;.</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'>&nbsp;18&nbsp;</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'>&nbsp;5&nbsp;</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'>&nbsp;143&nbsp;</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'>&nbsp;1&nbsp;</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'>&nbsp;5&nbsp;</span></h2><hr/>
++<span class='h_name'>constants.h</span><br/>
++<span class="iname">volk_available_machines&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_c_compiler&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_compiler_flags&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_prefix&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_version&#160;<span class='sym_p'>(&#160;)</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'>&nbsp;1&nbsp;</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&#160;<span class='sym_p'><span>(&#160;char* <span class='color_p'>p1</span></span>&#160;)</span> <span class='failed'>&nbsp;1&nbsp;</span></span>
++<br/>
++<div id="c_30" style="display:none;">
++
++
++<span class='new_sign_lbl'>&#8675;</span>
++<br/>
++<span class='new_sign'>volk_get_config_path&#160;<span class='sym_p'><span>(&#160;char* <span class='color_p'>p1</span></span>, <span>bool <span class='color_p'>p2</span></span>&#160;)</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'>&nbsp;4&nbsp;</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'>&nbsp;4&nbsp;</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 &#39;struct VOLK_CPU&#39;.</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'>&nbsp;18&nbsp;</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'>&nbsp;5&nbsp;</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'>&nbsp;143&nbsp;</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'>&nbsp;1&nbsp;</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 &#160;</i>
++</div>
++<br/>
++
++</body></html>
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..13adf7f4599b59a0adbaa6501cc32f4252a8f8f9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,368 @@@
++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
diff --cc debian/compat
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..48082f72f087ce7e6fa75b9c41d7387daecd447b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++12
diff --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..25e574bb6c7bbba208cc8b6344991f12d29a3571
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,84 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..34e4faf8727d7140cbfba5944d6f02aa3543dcb0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,191 @@@
++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".
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7221b71b302ef2f0ded6afe2d91854021b9dd39e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/bin/volk*
++usr/lib/python3/dist-packages
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..95bae9ed64bf63074c84a8443157200593ecd7b9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++debian/volk-config-info.1
++debian/volk_modtool.1
++debian/volk_profile.1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ff8acb11bc9086448184fa5deb3829b35b249e12
new file mode 100644 (file)
Binary files differ
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..37f5a797b2f333aab8d37480c3472dcf12c90b7b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,50 @@@
++<?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>
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a53695012337c325a8a6059b463fcf659aa3538d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++debian/1.3_to_1.4_compat_report.html
++debian/1.4_to_2.0_compat_report.html
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8b14c562bc6f1906b805c0c492cf1ee3d284fcb1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++usr/include/*
++usr/lib/*/*volk.a
++usr/lib/*/*volk*so
++usr/lib/*/cmake/volk
++usr/lib/*/pkgconfig/*volk*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3d5fdc804a6161dea2eae94d0042a7734a1cf60f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,19 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..87dd3148770f0c11566575da299d83a2108ae45f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++obj-*/html
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e4252f46b63bd3c4b8896a2294216d7023ea526b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/libvolk.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c5d1dda67125da12df355166003ed67dba6ac77e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,60 @@@
++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>
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a4ac665769946f11d12559f80ed38d44a429f750
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,55 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bb3d942f533baac6b999edd42f53b9057e7f94ba
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,20 @@@
++--- 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()
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d53bd84fc33eda8a0adc22bd9c400e4cffa05156
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++native-armv7-build-support
++make-acc-happy
++optional-static-apps
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f80dbbae5d4888390f7c671a1ed75a1dc8622a28
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++#!/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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2a77b0598685786285d7755a14421df11f163a66
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++debian/libvolk2-dev.abi.tar.gz.amd64
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f6d7f93d8a95356e279850b59ab42e5ba964f520
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,52 @@@
++-----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-----
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e8d6efdbbcbde3a07e31471d786985614a36aaad
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,45 @@@
++.\" 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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..752e7f53d2d30c2dccf506e7423df16eac02a1c8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,112 @@@
++.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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..405facbf04075e7ec73f9429398e46a5a51857c7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++.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.
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d7552686d638484befed9916f5eca166f013e6c9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++version=3
++opts="pgpsigurlmangle=s/$/.asc/" \
++  http://libvolk.org/releases/volk-(\d\S*)\.tar\.gz