Import volk_2.0.0-3.debian.tar.xz
authorA. Maitland Bottoms <bottoms@debian.org>
Fri, 15 Nov 2019 03:47:23 +0000 (03:47 +0000)
committerA. Maitland Bottoms <bottoms@debian.org>
Fri, 15 Nov 2019 03:47:23 +0000 (03:47 +0000)
[dgit import tarball volk 2.0.0-3 volk_2.0.0-3.debian.tar.xz]

30 files changed:
1.3_to_1.4_compat_report.html [new file with mode: 0644]
1.4_to_2.0_compat_report.html [new file with mode: 0644]
changelog [new file with mode: 0644]
compat [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
libvolk2-bin.install [new file with mode: 0644]
libvolk2-bin.manpages [new file with mode: 0644]
libvolk2-dev.abi.tar.gz.amd64 [new file with mode: 0644]
libvolk2-dev.acc [new file with mode: 0644]
libvolk2-dev.docs [new file with mode: 0644]
libvolk2-dev.install [new file with mode: 0644]
libvolk2-doc.doc-base [new file with mode: 0644]
libvolk2-doc.docs [new file with mode: 0644]
libvolk2.0.install [new file with mode: 0644]
patches/0001-Fix-AVX-FMA-rotator.patch [new file with mode: 0644]
patches/0002-Fail-tests-if-non-numbers-are-detected.patch [new file with mode: 0644]
patches/0003-Use-sensible-scalars-for-rotator-and-power.patch [new file with mode: 0644]
patches/make-acc-happy [new file with mode: 0644]
patches/native-armv7-build-support [new file with mode: 0644]
patches/optional-static-apps [new file with mode: 0644]
patches/series [new file with mode: 0644]
rules [new file with mode: 0755]
source/format [new file with mode: 0644]
source/include-binaries [new file with mode: 0644]
upstream/signing-key.asc [new file with mode: 0644]
volk-config-info.1 [new file with mode: 0644]
volk_modtool.1 [new file with mode: 0644]
volk_profile.1 [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/1.3_to_1.4_compat_report.html b/1.3_to_1.4_compat_report.html
new file mode 100644 (file)
index 0000000..f9614d6
--- /dev/null
@@ -0,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>
diff --git a/1.4_to_2.0_compat_report.html b/1.4_to_2.0_compat_report.html
new file mode 100644 (file)
index 0000000..0bb6275
--- /dev/null
@@ -0,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>
diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..69f51e9
--- /dev/null
+++ b/changelog
@@ -0,0 +1,374 @@
+volk (2.0.0-3) unstable; urgency=medium
+
+  * update to v2.0.0-4-gf04a46f
+
+ -- A. Maitland Bottoms <bottoms@debian.org>  Thu, 14 Nov 2019 22:47:23 -0500
+
+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 --git a/compat b/compat
new file mode 100644 (file)
index 0000000..48082f7
--- /dev/null
+++ b/compat
@@ -0,0 +1 @@
+12
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..25e574b
--- /dev/null
+++ b/control
@@ -0,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
diff --git a/copyright b/copyright
new file mode 100644 (file)
index 0000000..34e4faf
--- /dev/null
+++ b/copyright
@@ -0,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".
diff --git a/libvolk2-bin.install b/libvolk2-bin.install
new file mode 100644 (file)
index 0000000..7221b71
--- /dev/null
@@ -0,0 +1,2 @@
+usr/bin/volk*
+usr/lib/python3/dist-packages
diff --git a/libvolk2-bin.manpages b/libvolk2-bin.manpages
new file mode 100644 (file)
index 0000000..95bae9e
--- /dev/null
@@ -0,0 +1,3 @@
+debian/volk-config-info.1
+debian/volk_modtool.1
+debian/volk_profile.1
diff --git a/libvolk2-dev.abi.tar.gz.amd64 b/libvolk2-dev.abi.tar.gz.amd64
new file mode 100644 (file)
index 0000000..ff8acb1
Binary files /dev/null and b/libvolk2-dev.abi.tar.gz.amd64 differ
diff --git a/libvolk2-dev.acc b/libvolk2-dev.acc
new file mode 100644 (file)
index 0000000..37f5a79
--- /dev/null
@@ -0,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>
diff --git a/libvolk2-dev.docs b/libvolk2-dev.docs
new file mode 100644 (file)
index 0000000..a536950
--- /dev/null
@@ -0,0 +1,2 @@
+debian/1.3_to_1.4_compat_report.html
+debian/1.4_to_2.0_compat_report.html
diff --git a/libvolk2-dev.install b/libvolk2-dev.install
new file mode 100644 (file)
index 0000000..8b14c56
--- /dev/null
@@ -0,0 +1,5 @@
+usr/include/*
+usr/lib/*/*volk.a
+usr/lib/*/*volk*so
+usr/lib/*/cmake/volk
+usr/lib/*/pkgconfig/*volk*
diff --git a/libvolk2-doc.doc-base b/libvolk2-doc.doc-base
new file mode 100644 (file)
index 0000000..3d5fdc8
--- /dev/null
@@ -0,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
diff --git a/libvolk2-doc.docs b/libvolk2-doc.docs
new file mode 100644 (file)
index 0000000..87dd314
--- /dev/null
@@ -0,0 +1 @@
+obj-*/html
diff --git a/libvolk2.0.install b/libvolk2.0.install
new file mode 100644 (file)
index 0000000..e4252f4
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/libvolk.so.*
diff --git a/patches/0001-Fix-AVX-FMA-rotator.patch b/patches/0001-Fix-AVX-FMA-rotator.patch
new file mode 100644 (file)
index 0000000..a770373
--- /dev/null
@@ -0,0 +1,34 @@
+From 077ccdf38f193a073a7a8b3437e13ef374c29fd5 Mon Sep 17 00:00:00 2001
+From: Clayton Smith <argilo@gmail.com>
+Date: Tue, 20 Aug 2019 08:08:11 -0400
+Subject: [PATCH 1/3] Fix AVX FMA rotator
+
+---
+ kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h b/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h
+index 88a1c1d..15d6cbe 100644
+--- a/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h
++++ b/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h
+@@ -690,7 +690,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_avx_fma(lv_32fc_t* outVecto
+         yhp = _mm256_movehdup_ps(inc_Val);
+         tmp1 = aVal;
+-        tmp1p = ylp;
++        tmp1p = phase_Val;
+         aVal = _mm256_shuffle_ps(aVal, aVal, 0xB1);
+         phase_Val = _mm256_shuffle_ps(phase_Val, phase_Val, 0xB1);
+@@ -788,7 +788,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_u_avx_fma(lv_32fc_t* outVecto
+         yhp = _mm256_movehdup_ps(inc_Val);
+         tmp1 = aVal;
+-        tmp1p = ylp;
++        tmp1p = phase_Val;
+         aVal = _mm256_shuffle_ps(aVal, aVal, 0xB1);
+         phase_Val = _mm256_shuffle_ps(phase_Val, phase_Val, 0xB1);
+-- 
+2.20.1
+
diff --git a/patches/0002-Fail-tests-if-non-numbers-are-detected.patch b/patches/0002-Fail-tests-if-non-numbers-are-detected.patch
new file mode 100644 (file)
index 0000000..1114cb5
--- /dev/null
@@ -0,0 +1,31 @@
+From 9039b0c9147a28a81b1e0ca31cf0d83b931e64d5 Mon Sep 17 00:00:00 2001
+From: Clayton Smith <argilo@gmail.com>
+Date: Thu, 22 Aug 2019 23:07:14 -0400
+Subject: [PATCH 2/3] Fail tests if non-numbers are detected
+
+---
+ lib/qa_utils.cc | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/lib/qa_utils.cc b/lib/qa_utils.cc
+index 872b3e2..e20dafc 100644
+--- a/lib/qa_utils.cc
++++ b/lib/qa_utils.cc
+@@ -302,6 +302,14 @@ bool ccompare(t *in1, t *in2, unsigned int vlen, float tol, bool absolute_mode)
+     bool fail = false;
+     int print_max_errs = 10;
+     for(unsigned int i=0; i<2*vlen; i+=2) {
++        if (std::isnan(in1[i]) || std::isnan(in1[i+1]) || std::isnan(in2[i]) || std::isnan(in2[i+1])
++                || std::isinf(in1[i]) || std::isinf(in1[i+1]) || std::isinf(in2[i]) || std::isinf(in2[i+1])) {
++            fail=true;
++            if(print_max_errs-- > 0) {
++                std::cout << "offset " << i/2 << " in1: " << in1[i] << " + " << in1[i+1] << "j  in2: " << in2[i] << " + " << in2[i+1] << "j";
++                std::cout << " tolerance was: " << tol << std::endl;
++            }
++        }
+         t diff[2] = { in1[i] - in2[i], in1[i+1] - in2[i+1] };
+         t err  = std::sqrt(diff[0] * diff[0] + diff[1] * diff[1]);
+         t norm = std::sqrt(in1[i] * in1[i] + in1[i+1] * in1[i+1]);
+-- 
+2.20.1
+
diff --git a/patches/0003-Use-sensible-scalars-for-rotator-and-power.patch b/patches/0003-Use-sensible-scalars-for-rotator-and-power.patch
new file mode 100644 (file)
index 0000000..678ad73
--- /dev/null
@@ -0,0 +1,48 @@
+From 1e3b65d30481ee3dcfe758eef810ac1d2e88b68a Mon Sep 17 00:00:00 2001
+From: Clayton Smith <argilo@gmail.com>
+Date: Fri, 23 Aug 2019 07:17:24 -0400
+Subject: [PATCH 3/3] Use sensible scalars for rotator and power
+
+---
+ lib/kernel_tests.h | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/lib/kernel_tests.h b/lib/kernel_tests.h
+index 9b29379..72eb850 100644
+--- a/lib/kernel_tests.h
++++ b/lib/kernel_tests.h
+@@ -24,6 +24,13 @@ std::vector<volk_test_case_t> init_test_list(volk_test_params_t test_params)
+     volk_test_params_t test_params_inacc = test_params.make_tol(1e-2);
+     volk_test_params_t test_params_inacc_tenth = test_params.make_tol(1e-1);
++    volk_test_params_t test_params_power(test_params);
++    test_params_power.set_scalar(2.5);
++
++    volk_test_params_t test_params_rotator(test_params);
++    test_params_rotator.set_scalar(std::polar(1.0f, 0.1f));
++    test_params_rotator.set_tol(1e-3);
++
+     std::vector<volk_test_case_t> test_cases;
+     QA(VOLK_INIT_PUPP(volk_64u_popcntpuppet_64u, volk_64u_popcnt,     test_params))
+     QA(VOLK_INIT_PUPP(volk_64u_popcntpuppet_64u, volk_64u_popcnt,     test_params))
+@@ -32,7 +39,7 @@ std::vector<volk_test_case_t> init_test_list(volk_test_params_t test_params)
+     QA(VOLK_INIT_PUPP(volk_32u_byteswappuppet_32u, volk_32u_byteswap, test_params))
+     QA(VOLK_INIT_PUPP(volk_32u_popcntpuppet_32u, volk_32u_popcnt_32u,  test_params))
+     QA(VOLK_INIT_PUPP(volk_64u_byteswappuppet_64u, volk_64u_byteswap, test_params))
+-    QA(VOLK_INIT_PUPP(volk_32fc_s32fc_rotatorpuppet_32fc, volk_32fc_s32fc_x2_rotator_32fc, test_params))
++    QA(VOLK_INIT_PUPP(volk_32fc_s32fc_rotatorpuppet_32fc, volk_32fc_s32fc_x2_rotator_32fc, test_params_rotator))
+     QA(VOLK_INIT_PUPP(volk_8u_conv_k7_r2puppet_8u, volk_8u_x4_conv_k7_r2_8u, test_params.make_tol(0)))
+     QA(VOLK_INIT_PUPP(volk_32f_x2_fm_detectpuppet_32f, volk_32f_s32f_32f_fm_detect_32f, test_params))
+     QA(VOLK_INIT_TEST(volk_16ic_s32f_deinterleave_real_32f,           test_params))
+@@ -63,7 +70,7 @@ std::vector<volk_test_case_t> init_test_list(volk_test_params_t test_params)
+     QA(VOLK_INIT_TEST(volk_32f_atan_32f,                              test_params_inacc))
+     QA(VOLK_INIT_TEST(volk_32f_asin_32f,                              test_params_inacc))
+     QA(VOLK_INIT_TEST(volk_32f_acos_32f,                              test_params_inacc))
+-    QA(VOLK_INIT_TEST(volk_32fc_s32f_power_32fc,                      test_params))
++    QA(VOLK_INIT_TEST(volk_32fc_s32f_power_32fc,                      test_params_power))
+     QA(VOLK_INIT_TEST(volk_32f_s32f_calc_spectral_noise_floor_32f,    test_params_inacc))
+     QA(VOLK_INIT_TEST(volk_32fc_s32f_atan2_32f,                       test_params))
+     QA(VOLK_INIT_TEST(volk_32fc_x2_conjugate_dot_prod_32fc,           test_params_inacc_tenth))
+-- 
+2.20.1
+
diff --git a/patches/make-acc-happy b/patches/make-acc-happy
new file mode 100644 (file)
index 0000000..c5d1dda
--- /dev/null
@@ -0,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>
diff --git a/patches/native-armv7-build-support b/patches/native-armv7-build-support
new file mode 100644 (file)
index 0000000..a4ac665
--- /dev/null
@@ -0,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
diff --git a/patches/optional-static-apps b/patches/optional-static-apps
new file mode 100644 (file)
index 0000000..bb3d942
--- /dev/null
@@ -0,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()
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..44e1aaa
--- /dev/null
@@ -0,0 +1,6 @@
+0001-Fix-AVX-FMA-rotator.patch
+0002-Fail-tests-if-non-numbers-are-detected.patch
+0003-Use-sensible-scalars-for-rotator-and-power.patch
+native-armv7-build-support
+make-acc-happy
+optional-static-apps
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..f80dbba
--- /dev/null
+++ b/rules
@@ -0,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
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/source/include-binaries b/source/include-binaries
new file mode 100644 (file)
index 0000000..2a77b05
--- /dev/null
@@ -0,0 +1 @@
+debian/libvolk2-dev.abi.tar.gz.amd64
diff --git a/upstream/signing-key.asc b/upstream/signing-key.asc
new file mode 100644 (file)
index 0000000..f6d7f93
--- /dev/null
@@ -0,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-----
diff --git a/volk-config-info.1 b/volk-config-info.1
new file mode 100644 (file)
index 0000000..e8d6efd
--- /dev/null
@@ -0,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.
diff --git a/volk_modtool.1 b/volk_modtool.1
new file mode 100644 (file)
index 0000000..752e7f5
--- /dev/null
@@ -0,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.
diff --git a/volk_profile.1 b/volk_profile.1
new file mode 100644 (file)
index 0000000..405facb
--- /dev/null
@@ -0,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 --git a/watch b/watch
new file mode 100644 (file)
index 0000000..d755268
--- /dev/null
+++ b/watch
@@ -0,0 +1,3 @@
+version=3
+opts="pgpsigurlmangle=s/$/.asc/" \
+  http://libvolk.org/releases/volk-(\d\S*)\.tar\.gz