volk (1.4-3) unstable; urgency=medium
authorA. Maitland Bottoms <bottoms@debian.org>
Sat, 12 May 2018 19:25:04 +0000 (20:25 +0100)
committerA. Maitland Bottoms <bottoms@debian.org>
Sat, 12 May 2018 19:25:04 +0000 (20:25 +0100)
  * 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

[dgit import unpatched volk 1.4-3]

34 files changed:
1  2 
debian/changelog
debian/compat
debian/control
debian/copyright
debian/libvolk1-bin.install
debian/libvolk1-bin.manpages
debian/libvolk1-dev.abi.tar.gz.amd64
debian/libvolk1-dev.acc
debian/libvolk1-dev.install
debian/libvolk1-dev_1.4-1_report.html
debian/libvolk1.4.install
debian/patches/0001-Update-CMakeLists-for-1.5-development-versions.patch
debian/patches/0002-Added-an-AVX-protokernel-for-volk_32fc_x2_32f_square.patch
debian/patches/0003-extracted-variables-for-the-source-real-and-imaginar.patch
debian/patches/0004-fixed-a-buffer-over-read-and-over-write-in-volk_32fc.patch
debian/patches/0005-cmake-Fix-endif-to-match-if.patch
debian/patches/0006-Add-sys-time.h-header-copied-from-gnuradio-to-fix-Wi.patch
debian/patches/0007-Fix-compile-on-Windows-by-avoiding-min-max-macros-in.patch
debian/patches/0008-Fix-add_test-for-Windows.patch
debian/patches/0009-Fix-32u_reverse_32u-for-ARM.patch
debian/patches/libm-link
debian/patches/make-acc-happy
debian/patches/native-armv7-build-support
debian/patches/series
debian/patches/sort-cmake-glob-lists
debian/release-v14.html
debian/rules
debian/source/format
debian/source/include-binaries
debian/upstream/signing-key.asc
debian/volk-config-info.1
debian/volk_modtool.1
debian/volk_profile.1
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a23bb22b56faf52bb2471f157b9bd592b935a54d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,349 @@@
++volk (1.4-3) unstable; urgency=medium
++
++  * update to v1.4-9-g297fefd
++    Added an AVX protokernel for volk_32fc_x2_32f_square_dist_scalar_mult_32f
++    fixed a buffer over-read and over-write in
++     volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx
++    Fix 32u_reverse_32u for ARM
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sat, 12 May 2018 15:25:04 -0400
++
++volk (1.4-2) unstable; urgency=medium
++
++  * Upload to unstable, needed by gnuradio (>= 3.7.12.0)
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Tue, 03 Apr 2018 01:03:19 -0400
++
++volk (1.4-1) experimental; urgency=medium
++
++  * New upstream release
++    upstream changelog http://libvolk.org/release-v14.html
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Tue, 27 Mar 2018 22:57:42 -0400
++
++volk (1.3.1-1) unstable; urgency=medium
++
++  * New upstream bugfix release
++  * Refresh all debian patches for use with git am
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Tue, 27 Mar 2018 21:54:29 -0400
++
++volk (1.3-3) unstable; urgency=medium
++
++  * update to v1.3-23-g0109b2e
++  * update debian/libvolk1-dev.abi.tar.gz.amd64
++  * Add breaks/replaces gnuradio (<=3.7.2.1) (LP: #1614235)
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sun, 04 Feb 2018 13:12:21 -0500
++
++volk (1.3-2) unstable; urgency=medium
++
++  * update to v1.3-16-g28b03a9
++    apps: fix profile update reading end of lines
++    qa: lower tolerance for 32fc_mag to fix issue #96
++  * include upstream master patch to sort input files
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sun, 27 Aug 2017 13:44:55 -0400
++
++volk (1.3-1) unstable; urgency=medium
++
++  * New upstream release
++  * The index_max kernels were named with the wrong output datatype. To
++    fix this there are new kernels that return a 32u (int32_t) and the
++    existing kernels had their signatures changed to return 16u (int16_t).
++  * The output to stdout and stderr has been shuffled around. There is no
++    longer a message that prints what VOLK machine is being used and the
++    warning messages go to stderr rather than stdout.
++  * The 32fc_index_max kernels previously were only accurate to the SSE
++    register width (4 points). This was a pretty serious and long-lived
++    bug that's been fixed and the QA updated appropriately.
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sat, 02 Jul 2016 16:30:47 -0400
++
++volk (1.2.2-2) unstable; urgency=medium
++
++  * update to v1.2.2-11-g78c8bc4 (to follow gnuradio maint branch)
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sun, 19 Jun 2016 14:44:15 -0400
++
++volk (1.2.2-1) unstable; urgency=medium
++
++  * New upstream release
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Fri, 08 Apr 2016 00:12:10 -0400
++
++volk (1.2.1-2) unstable; urgency=medium
++
++  * Upstream patches:
++    Fix some CMake complaints
++    The fix for compilation with cmake 3.5
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Wed, 23 Mar 2016 17:47:54 -0400
++
++volk (1.2.1-1) unstable; urgency=medium
++
++  * New upstream release
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sun, 07 Feb 2016 19:38:32 -0500
++
++volk (1.2-1) unstable; urgency=medium
++
++  * New upstream release
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Thu, 24 Dec 2015 20:28:13 -0500
++
++volk (1.1.1-5) experimental; urgency=medium
++
++  * update to v1.1.1-22-gef53547 to support gnuradio 3.7.9
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Fri, 11 Dec 2015 13:12:55 -0500
++
++volk (1.1.1-4) unstable; urgency=medium
++
++  * more lintian fixes
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Wed, 25 Nov 2015 21:49:58 -0500
++
++volk (1.1.1-3) unstable; urgency=medium
++
++  * Lintian fixes Pre-Depends
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Thu, 19 Nov 2015 21:24:27 -0500
++
++volk (1.1.1-2) unstable; urgency=medium
++
++  * Note that libvolk1-dev replaces files in gnuradio-dev versions <<3.7.8
++    (Closes: #802646) again. Thanks Andreas Beckmann.
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Fri, 13 Nov 2015 18:45:49 -0500
++
++volk (1.1.1-1) unstable; urgency=medium
++
++  * New upstream release
++  * New architectures exist for the AVX2 and FMA ISAs.
++  * The profiler now generates buffers that are vlen + a tiny amount and
++    generates random data to fill buffers. This is intended to catch bugs
++    in protokernels that write beyond num_points.
++  * Note that libvolk1-dev replaces files in earlier gnuradio-dev versions
++    (Closes: #802646)
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sun, 01 Nov 2015 18:45:43 -0500
++
++volk (1.1-4) unstable; urgency=medium
++
++  * update to v1.1-12-g264addc
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Tue, 29 Sep 2015 23:41:50 -0400
++
++volk (1.1-3) unstable; urgency=low
++
++  * drop dh_acc to get reproducible builds
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Fri, 11 Sep 2015 22:57:06 -0400
++
++volk (1.1-2) unstable; urgency=low
++
++  * use dh-acc
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Mon, 07 Sep 2015 15:45:20 -0400
++
++volk (1.1-1) unstable; urgency=medium
++
++  * re-organize package naming convention
++  * New upstream release tag v1.1
++  New architectures exist for the AVX2 and FMA ISAs. Along
++  with the build-system support the following kernels have
++  no proto-kernels taking advantage of these architectures:
++  
++  * 32f_x2_dot_prod_32f
++  * 32fc_x2_multiply_32fc
++  * 64_byteswap
++  * 32f_binary_slicer_8i
++  * 16u_byteswap
++  * 32u_byteswap
++  
++  QA/profiler
++  -----------
++  
++  The profiler now generates buffers that are vlen + a tiny
++  amount and generates random data to fill buffers. This is
++  intended to catch bugs in protokernels that write beyond
++  num_points.
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Wed, 26 Aug 2015 09:22:48 -0400
++
++volk (1.0.2-2) unstable; urgency=low
++
++  * Use SOURCE_DATE_EPOCH from the environment, if defined,
++    rather than current date and time to implement volk_build_date()
++    (embedding build date in a library does not help reproducible builds)
++  * add watch file
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sat, 15 Aug 2015 17:43:15 -0400
++
++volk (1.0.2-1) unstable; urgency=medium
++
++  * Maintenance release 24 Jul 2015 by Nathan West
++  * The major change is the CMake logic to add ASM protokernels. Rather
++    than depending on CFLAGS and ASMFLAGS we use the results of VOLK's
++    built in has_ARCH tests. All configurations should work the same as
++    before, but manually specifying CFLAGS and ASMFLAGS on the cmake call
++    for ARM native builds should no longer be necessary.
++  * The 32fc_s32fc_x2_rotator_32fc generic protokernel now includes a
++    previously implied header.
++  * Finally, there is a fix to return the "best" protokernel to the
++    dispatcher when no volk_config exists. Thanks to Alexandre Raymond for
++    pointing this out.
++  * with maint branch patch:
++      kernels-add-missing-include-arm_neon.h
++  * removed unused build-dependency on liboil0.3-dev (closes: #793626)
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Wed, 05 Aug 2015 00:43:40 -0400
++
++volk (1.0.1-1) unstable; urgency=low
++
++  * Maintenance Release v1.0.1 08 Jul 2015 by Nathan West
++    This is a maintenance release with bug fixes since the initial release of
++    v1.0 in April.
++    
++  * Contributors
++   
++    The following authors have contributed code to this release:
++    
++    Doug Geiger doug.geiger@bioradiation.net
++    Elliot Briggs elliot.briggs@gmail.com
++    Marcus Mueller marcus@hostalia.de
++    Nathan West nathan.west@okstate.edu
++    Tom Rondeau tom@trondeau.com
++   
++  * Kernels
++   
++    Several bug fixes in different kernels. The NEON implementations of the
++    following kernels have been fixed:
++   
++      32f_x2_add_32f
++      32f_x2_dot_prod_32f
++      32fc_s32fc_multiply_32fc
++      32fc_x2_multiply_32fc
++   
++   Additionally the NEON asm based 32f_x2_add_32f protokernels were not being
++   used and are now included and available for use via the dispatcher.
++   
++   The 32f_s32f_x2_fm_detect_32f kernel now has a puppet. This solves QA seg
++   faults on 32-bit machines and provide a better test for this kernel.
++   
++   The 32fc_s32fc_x2_rotator_32fc generic protokernel replaced cabsf with
++   hypotf for better Android support.
++
++  * Building
++   
++    Static builds now trigger the applications (volk_profile and
++    volk-config-info) to be statically linked.
++    
++    The file gcc_x86_cpuid.h has been removed since it was no longer being
++    used. Previously it provided cpuid functionality for ancient compilers
++    that we do not support.
++    
++    All build types now use -Wall.
++
++  * QA and Testing
++   
++   The documentation around the --update option to volk_profile now makes it
++   clear that the option will only profile kernels without entries in
++   volk_profile. The signature of run_volk_tests with expanded args changed
++   signed types to unsigned types to reflect the actual input.
++   
++   The remaining changes are all non-functional changes to address issues
++   from Coverity.
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Fri, 10 Jul 2015 17:57:42 -0400
++
++volk (1.0-5) unstable; urgency=medium
++
++  * native-armv7-build-support skips neon on Debian armel (Closes: #789972)
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sat, 04 Jul 2015 12:36:36 -0400
++
++volk (1.0-4) unstable; urgency=low
++
++  * update native-armv7-build-support patch from gnuradio volk package
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Thu, 25 Jun 2015 16:38:49 -0400
++
++volk (1.0-3) unstable; urgency=medium
++
++  * Add Breaks/Replaces (Closes: #789893, #789894)
++  * Allow failing tests
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Thu, 25 Jun 2015 12:46:06 -0400
++
++volk (1.0-2) unstable; urgency=medium
++
++  * kernels-add-missing-math.h-include-to-rotator
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Wed, 24 Jun 2015 21:09:32 -0400
++
++volk (1.0-1) unstable; urgency=low
++
++  * Initial package (Closes: #782417)
++  Initial Release 11 Apr 2015 by Nathan West
++  
++  VOLK 1.0 is available. This is the first release of VOLK as an independently
++  tracked sub-project of GNU Radio.
++
++  * Contributors
++  
++  VOLK has been tracked separately from GNU Radio since 2014 Dec 23.
++  Contributors between the split and the initial release are
++
++  Albert Holguin aholguin_77@yahoo.com
++  Doug Geiger doug.geiger@bioradiation.net
++  Elliot Briggs elliot.briggs@gmail.com
++  Julien Olivain julien.olivain@lsv.ens-cachan.fr
++  Michael Dickens michael.dickens@ettus.com
++  Nathan West nathan.west@okstate.edu
++  Tom Rondeau tom@trondeau.com
++  
++  * QA
++  
++  The test and profiler have significantly changed. The profiler supports
++  run-time changes to vlen and iters to help kernel development and provide
++  more flexibility on embedded systems. Additionally there is a new option
++  to update an existing volk_profile results file with only new kernels which
++  will save time when updating to newer versions of VOLK
++  
++  The QA system creates a static list of kernels and test cases. The QA
++  testing and profiler iterate over this static list rather than each source
++  file keeping its own list. The QA also emits XML results to
++  lib/.unittest/kernels.xml which is formatted similarly to JUnit results.
++  
++  * Modtool
++  
++  Modtool was updated to support the QA and profiler changes.
++
++  * Kernels
++  
++  New proto-kernels:
++  
++  16ic_deinterleave_real_8i_neon
++  16ic_s32f_deinterleave_32f_neon
++  fix preprocessor errors for some compilers on byteswap and popcount puppets
++  
++  ORC was moved to the asm kernels directory.
++  volk_malloc
++  
++  The posix_memalign implementation of Volk_malloc now falls back to a standard
++  malloc if alignment is 1.
++  
++  * Miscellaneous
++  
++  Several build system and cmake changes have made it possible to build VOLK
++  both independently with proper soname versions and in-tree for projects
++  such as GNU Radio.
++  
++  The static builds take advantage of cmake object libraries to speed up builds.
++  
++  Finally, there are a number of changes to satisfy compiler warnings and make
++  QA work on multiple machines.
++
++ -- A. Maitland Bottoms <bottoms@debian.org>  Sun, 12 Apr 2015 23:20:41 -0400
diff --cc debian/compat
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ec635144f60048986bc560c5576355344005e6e7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++9
diff --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6891b13925eb36bcaf3e1ed86b7553bacbb8c7ca
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,72 @@@
++Source: volk
++Section: libdevel
++Priority: optional
++Maintainer: A. Maitland Bottoms <bottoms@debian.org>
++Build-Depends: cmake,
++               debhelper (>= 9.0.0~),
++               dh-python,
++               doxygen,
++               libboost-filesystem-dev,
++               libboost-program-options-dev,
++               libboost-system-dev,
++               libboost-test-dev,
++               liborc-0.4-dev,
++               pkg-config,
++               python,
++             python3,
++               python-mako,
++             python3-mako,
++             python-six,
++             python3-six
++Standards-Version: 4.1.4
++Homepage: http://libvolk.org
++Vcs-Browser: https://salsa.debian.org/bottoms/pkg-volk
++Vcs-Git: https://salsa.debian.org/bottoms/pkg-volk.git
++
++Package: libvolk1.4
++Section: libs
++Architecture: any
++Pre-Depends: ${misc:Pre-Depends}
++Depends: ${misc:Depends}, ${shlibs:Depends}
++Multi-Arch: same
++Recommends: libvolk1-bin
++Suggests: libvolk1-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: libvolk1-dev
++Architecture: any
++Pre-Depends: ${misc:Pre-Depends}
++Depends: libvolk1.4 (=${binary:Version}), ${misc:Depends}
++Breaks: gnuradio-dev (<<3.7.8), libvolk-dev, libvolk1.0-dev
++Replaces: gnuradio-dev (<<3.7.8), libvolk-dev, libvolk1.0-dev
++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: libvolk1-bin
++Section: libs
++Architecture: any
++Pre-Depends: ${misc:Pre-Depends}
++Depends: libvolk1.4 (=${binary:Version}),
++         ${misc:Depends},
++         ${python:Depends},
++         ${shlibs:Depends}
++Breaks: libvolk-bin, libvolk1.0-bin, gnuradio (<=3.7.2.1)
++Replaces: 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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..34e4faf8727d7140cbfba5944d6f02aa3543dcb0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,191 @@@
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: volk
++Upstream-Contact: http://libvolk.org/
++Source:
++ https://github.com/gnuradio/volk
++Comment:
++ Debian packages by A. Maitland Bottoms <bottoms@debian.org>
++ .
++ Upstream Authors:
++  Albert Holguin <aholguin_77@yahoo.com>
++  Doug Geiger <doug.geiger@bioradiation.net>
++  Elliot Briggs <elliot.briggs@gmail.com>
++  Julien Olivain <julien.olivain@lsv.ens-cachan.fr>
++  Michael Dickens <michael.dickens@ettus.com>
++  Nathan West <nathan.west@okstate.edu>
++  Tom Rondeau <tom@trondeau.com>
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: *
++Copyright: 2006, 2009-2016, Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: Doxyfile.in
++  DoxygenLayout.xml
++  volk.pc.in
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: apps/volk_profile.h
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: appveyor.yml
++Copyright: 2016 Paul Cercueil <paul.cercueil@analog.com>
++License: GPL-3+
++
++Files: cmake/*
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: cmake/Modules/*
++Copyright: 2006, 2009-2016, Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: cmake/Modules/CMakeParseArgumentsCopy.cmake
++Copyright: 2010 Alexander Neundorf <neundorf@kde.org>
++License: Kitware-BSD
++ All rights reserved.
++ .
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions
++ are met:
++ .
++ * Redistributions of source code must retain the above copyright
++   notice, this list of conditions and the following disclaimer.
++ .
++ * Redistributions in binary form must reproduce the above copyright
++   notice, this list of conditions and the following disclaimer in the
++   documentation and/or other materials provided with the distribution.
++ .
++ * Neither the names of Kitware, Inc., the Insight Software Consortium,
++   nor the names of their contributors may be used to endorse or promote
++   products derived from this software without specific prior written
++   permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++Files: cmake/Modules/FindORC.cmake
++  cmake/Modules/VolkConfig.cmake.in
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: cmake/msvc/*
++Copyright: 2006-2008, Alexander Chemeris
++License: BSD-2-clause
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are met:
++ .
++   1. Redistributions of source code must retain the above copyright notice,
++      this list of conditions and the following disclaimer.
++ .
++   2. Redistributions in binary form must reproduce the above copyright
++      notice, this list of conditions and the following disclaimer in the
++      documentation and/or other materials provided with the distribution.
++ .
++   3. The name of the author may be used to endorse or promote products
++      derived from this software without specific prior written permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
++ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
++ EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
++ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
++ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
++ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
++ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++Files: cmake/msvc/config.h
++Copyright: 2005, 2006 Apple Computer, Inc.
++License: LGPL-2+
++
++Files: cmake/msvc/stdbool.h
++Copyright: 2005, 2006, Apple Computer, Inc.
++License: LGPL-2+
++
++Files: debian/*
++Copyright: 2015 Free Software Foundation, Inc
++License: GPL-3+
++Comment: assigned by A. Maitland Bottoms <bottoms@debian.org>
++
++Files: debian/libvolk1-dev.abi.tar.gz.amd64
++Copyright: 2016 Free Software Foundation, Inc
++License: GPL-3+
++
++Files: docs/*
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: gen/archs.xml
++  gen/machines.xml
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: include/volk/volk_common.h
++  include/volk/volk_complex.h
++  include/volk/volk_prefs.h
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: kernels/volk/asm/*
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: kernels/volk/volk_16u_byteswappuppet_16u.h
++  kernels/volk/volk_32u_byteswappuppet_32u.h
++  kernels/volk/volk_64u_byteswappuppet_64u.h
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++Files: lib/kernel_tests.h
++  lib/qa_utils.cc
++  lib/qa_utils.h
++  lib/volk_prefs.c
++Copyright: 2014-2015 Free Software Foundation, Inc.
++License: GPL-3+
++
++License: LGPL-2+
++ This library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public
++ License as published by the Free Software Foundation; either
++ version 2 of the License, or (at your option) any later version.
++ .
++ This library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ Library General Public License for more details.
++ .
++ You should have received a copy of the GNU Library General Public License
++ along with this library; see the file COPYING.LIB.  If not, write to
++ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA.
++
++License: GPL-3+
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 3 of the License, or
++ (at your option) any later version.
++ .
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ GNU General Public License for more details.
++ .
++ You should have received a copy of the GNU General Public License
++ along with this program.  If not, see <http://www.gnu.org/licenses/>.
++ .
++ On Debian systems, the complete text of the GNU General
++ Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b8fc4847ca74d8cf1d5e7746035c5cc9eb3185b8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/bin/volk*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..95bae9ed64bf63074c84a8443157200593ecd7b9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++debian/volk-config-info.1
++debian/volk_modtool.1
++debian/volk_profile.1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ddc5bdd74c2d9505a57b8d5063a85f8484be7142
new file mode 100644 (file)
Binary files differ
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c8503c63a445d980c92bc9fc7f38af3d10456170
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,12 @@@
++<?xml version="1.0" encoding="utf-8"?>
++<descriptor>
++
++<headers>
++debian/libvolk1-dev/usr/include/
++</headers>
++
++<libs>
++debian/libvolk1.4/usr/lib/
++</libs>
++
++</descriptor>
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4b391be67c9926a96be9efc4c368128bdce73c0b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++usr/include/*
++usr/lib/*/*volk*so
++usr/lib/*/cmake/volk
++usr/lib/*/pkgconfig/*volk*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f9614d6f3d39402d70ad322568455a2f9267adf7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1069 @@@
++<!-- kind:binary;verdict:incompatible;affected:0.2;added:45;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:1;interface_problems_high:1;interface_problems_medium:0;interface_problems_low:0;changed_constants:1;tool_version:2.2 -->
++<!-- kind:source;verdict:incompatible;affected:0.9;added:46;removed:5;type_problems_high:0;type_problems_medium:0;type_problems_low:1;interface_problems_high:1;interface_problems_medium:0;interface_problems_low:0;changed_constants:1;constant_changes_other:2;tool_version:2.2 -->
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
++<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
++<head>
++<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
++<meta name="keywords" content="libvolk1-dev, compatibility, API, ABI, report" />
++<meta name="description" content="API/ABI compatibility report for the libvolk1-dev library between 1.3-3 and 1.4-1 versions" />
++<title>libvolk1-dev: 1.3-3 to 1.4-1 compatibility report</title>
++<style type="text/css">
++body {
++    font-family:Arial, sans-serif;
++    background-color:White;
++    color:Black;
++}
++hr {
++    color:Black;
++    background-color:Black;
++    height:1px;
++    border:0;
++}
++h1 {
++    margin-bottom:0px;
++    padding-bottom:0px;
++    font-size:1.625em;
++}
++h2 {
++    margin-bottom:0px;
++    padding-bottom:0px;
++    font-size:1.25em;
++    white-space:nowrap;
++}
++span.section {
++    font-weight:bold;
++    cursor:pointer;
++    color:#003E69;
++    white-space:nowrap;
++    margin-left:0.3125em;
++}
++span.new_sign {
++    font-weight:bold;
++    margin-left:1.65em;
++    color:#003E69;
++}
++span.new_sign_lbl {
++    margin-left:3em;
++    font-size:1em;
++    color:Black;
++}
++span:hover.section {
++    color:#336699;
++}
++span.sect_aff {
++    cursor:pointer;
++    padding-left:1.55em;
++    font-size:0.875em;
++    color:#cc3300;
++}
++span.sect_info {
++    cursor:pointer;
++    padding-left:1.55em;
++    font-size:0.875em;
++    color:Black;
++}
++span.ext {
++    font-weight:normal;
++}
++span.h_name {
++    color:#cc3300;
++    font-size:0.875em;
++    font-weight:bold;
++}
++div.h_list, div.lib_list {
++    font-size:0.94em;
++    padding-left:0.4em;
++}
++span.ns {
++    color:#408080;
++    font-size:0.94em;
++}
++span.lib_name {
++    color:Green;
++    font-size:0.875em;
++    font-weight:bold;
++}
++span.iname {
++    font-weight:bold;
++    color:#003E69;
++    margin-left:0.3125em;
++}
++span.iname_b {
++    font-weight:bold;
++}
++span.iname_a {
++    color:#333333;
++    font-weight:bold;
++    font-size:0.94em;
++}
++span.sym_p {
++    font-weight:normal;
++    white-space:normal;
++}
++span.sym_pd {
++    white-space:normal;
++}
++span.sym_p span, span.sym_pd span {
++    white-space:nowrap;
++}
++div.affect {
++    padding-left:1em;
++    padding-bottom:10px;
++    font-size:0.87em;
++    font-style:italic;
++    line-height:0.9em;
++}
++div.affected {
++    padding-left:1.9em;
++    padding-top:10px;
++}
++table.ptable {
++    border-collapse:collapse;
++    border:1px outset black;
++    margin-left:0.95em;
++    margin-top:3px;
++    margin-bottom:3px;
++    width:56.25em;
++}
++table.ptable td {
++    border:1px solid gray;
++    padding:3px;
++    font-size:0.875em;
++    text-align:left;
++    vertical-align:top;
++    max-width:28em;
++    word-wrap:break-word;
++}
++table.ptable th.pn {
++    width:2%;
++}
++table.ptable th.chg {
++    width:47%;
++}
++table.vtable {
++    border-collapse:collapse;
++    border:1px outset black;
++    margin-left:1.9em;
++    margin-top:0.7em;
++}
++table.vtable td {
++    border:1px solid gray;
++    padding:3px;
++    font-size:0.875em;
++    vertical-align:top;
++    max-width:450px;
++    word-wrap:break-word;
++}
++table.ptable th, table.vtable th {
++    background-color:#eeeeee;
++    font-weight:bold;
++    color:#333333;
++    font-family:Verdana, Arial;
++    font-size:0.875em;
++    border:1px solid gray;
++    text-align:center;
++    vertical-align:top;
++    white-space:nowrap;
++    padding:3px;
++}
++table.summary {
++    border-collapse:collapse;
++    border:1px outset black;
++}
++table.summary th {
++    background-color:#eeeeee;
++    font-weight:normal;
++    text-align:left;
++    font-size:0.94em;
++    white-space:nowrap;
++    border:1px inset gray;
++    padding:3px;
++}
++table.summary td {
++    text-align:right;
++    white-space:nowrap;
++    border:1px inset gray;
++    padding:3px 5px 3px 10px;
++}
++span.mngl {
++    padding-left:1em;
++    font-size:0.875em;
++    cursor:text;
++    color:#444444;
++    font-weight:bold;
++}
++span.pleft {
++    padding-left:2.5em;
++}
++span.sym_ver {
++    color:#333333;
++    white-space:nowrap;
++    font-family:"DejaVu Sans Mono", Monospace;
++}
++span.attr {
++    color:#333333;
++    font-weight:normal;
++}
++span.color_p {
++    font-style:italic;
++    color:Brown;
++}
++span.p {
++    font-style:italic;
++}
++span.fp {
++    font-style:italic;
++    background-color:#DCDCDC;
++}
++span.ttype {
++    font-weight:normal;
++}
++span.nowrap {
++    white-space:nowrap;
++}
++span.value {
++    font-weight:bold;
++}
++.passed {
++    background-color:#CCFFCC;
++    font-weight:normal;
++}
++.warning {
++    background-color:#F4F4AF;
++    font-weight:normal;
++}
++.failed {
++    background-color:#FFCCCC;
++    font-weight:normal;
++}
++.new {
++    background-color:#C6DEFF;
++    font-weight:normal;
++}
++.compatible {
++    background-color:#CCFFCC;
++    font-weight:normal;
++}
++.almost_compatible {
++    background-color:#FFDAA3;
++    font-weight:normal;
++}
++.incompatible {
++    background-color:#FFCCCC;
++    font-weight:normal;
++}
++.gray {
++    background-color:#DCDCDC;
++    font-weight:normal;
++}
++.top_ref {
++    font-size:0.69em;
++}
++.footer {
++    font-size:0.75em;
++}
++
++.tabset {
++    float:left;
++}
++a.tab {
++    border:1px solid Black;
++    float:left;
++    margin:0px 5px -1px 0px;
++    padding:3px 5px 3px 5px;
++    position:relative;
++    font-size:0.875em;
++    background-color:#DDD;
++    text-decoration:none;
++    color:Black;
++}
++a.disabled:hover
++{
++    color:Black;
++    background:#EEE;
++}
++a.active:hover
++{
++    color:Black;
++    background:White;
++}
++a.active {
++    border-bottom-color:White;
++    background-color:White;
++}
++div.tab {
++    border-top:1px solid Black;
++    padding:0px;
++    width:100%;
++    clear:both;
++}
++</style>
++<script type="text/javascript" language="JavaScript">
++<!--
++function showContent(header, id)
++{
++    e = document.getElementById(id);
++    if(e.style.display == 'none')
++    {
++        e.style.display = 'block';
++        e.style.visibility = 'visible';
++        header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[&minus;]");
++    }
++    else
++    {
++        e.style.display = 'none';
++        e.style.visibility = 'hidden';
++        header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
++    }
++}
++function initTabs()
++{
++    var url = window.location.href;
++    if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
++    {
++        var tab1 = document.getElementById('BinaryID');
++        var tab2 = document.getElementById('SourceID');
++        tab1.className='tab disabled';
++        tab2.className='tab active';
++    }
++    var sets = document.getElementsByTagName('div');
++    for (var i = 0; i < sets.length; i++)
++    {
++        if (sets[i].className.indexOf('tabset') != -1)
++        {
++            var tabs = [];
++            var links = sets[i].getElementsByTagName('a');
++            for (var j = 0; j < links.length; j++)
++            {
++                if (links[j].className.indexOf('tab') != -1)
++                {
++                    tabs.push(links[j]);
++                    links[j].tabs = tabs;
++                    var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
++                    //reset all tabs on start
++                    if (tab)
++                    {
++                        if (links[j].className.indexOf('active')!=-1) {
++                            tab.style.display = 'block';
++                        }
++                        else {
++                            tab.style.display = 'none';
++                        }
++                    }
++                    links[j].onclick = function()
++                    {
++                        var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
++                        if (tab)
++                        {
++                            //reset all tabs before change
++                            for (var k = 0; k < this.tabs.length; k++)
++                            {
++                                document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
++                                this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
++                            }
++                            this.className = 'tab active';
++                            tab.style.display = 'block';
++                            // window.location.hash = this.id.replace('ID', '');
++                            return false;
++                        }
++                    }
++                }
++            }
++        }
++    }
++    if(url.indexOf('#')!=-1) {
++        location.href=location.href;
++    }
++}
++if (window.addEventListener) window.addEventListener('load', initTabs, false);
++else if (window.attachEvent) window.attachEvent('onload', initTabs);
++-->
++</script>
++</head>
++<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>libvolk1-dev</span> library between <span style='color:Red;'>1.3-3</span> and <span style='color:Red;'>1.4-1</span> versions on <span style='color:Blue;'>x86_64</span></h1>
++
++            <br/>
++            <div class='tabset'>
++            <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
++            <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
++            </div><div id='BinaryTab' class='tab'>
++<h2>Test Info</h2><hr/>
++<table class='summary'>
++<tr><th>Library Name</th><td>libvolk1-dev</td></tr>
++<tr><th>Version #1</th><td>1.3-3</td></tr>
++<tr><th>Version #2</th><td>1.4-1</td></tr>
++<tr><th>Arch</th><td>x86_64</td></tr>
++<tr><th>GCC Version</th><td>7</td></tr>
++<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>
++</table>
++<h2>Test Results</h2><hr/>
++<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>135</a></td></tr>
++<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
++<tr><th>Total Symbols / Types</th><td>614 / 233</td></tr>
++<tr><th>Compatibility</th>
++<td class='warning'>99.8%</td>
++</tr>
++</table>
++<h2>Problem Summary</h2><hr/>
++<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>45</a></td></tr>
++<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
++<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
++<tr><td>Medium</td><td>0</td></tr>
++<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>1</a></td></tr>
++<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td class='failed'><a href='#Symbol_Binary_Problems_High' style='color:Blue;'>1</a></td></tr>
++<tr><td>Medium</td><td>0</td></tr>
++<tr><td>Low</td><td>0</td></tr>
++<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>1</a></td></tr>
++</table>
++
++<a name='Binary_Added'></a><h2>Added Symbols <span class='new'>&nbsp;45&nbsp;</span></h2><hr/>
++<span class='h_name'>volk.h</span>, <span class='lib_name'>libvolk.so.1.4</span><br/>
++<span class="iname">volk_32f_64f_add_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_manual&#160;<span class='sym_p'><span>(&#160;double* <span class='color_p'>cVector</span></span>, <span>float const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_manual&#160;<span class='sym_p'><span>(&#160;double* <span class='color_p'>cVector</span></span>, <span>float const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_manual&#160;<span class='sym_p'><span>(&#160;float* <span class='color_p'>output</span></span>, <span>float const* <span class='color_p'>input</span></span>, <span>float <span class='color_p'>bound</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_manual&#160;<span class='sym_p'><span>(&#160;float* <span class='color_p'>outputVector</span></span>, <span>float const* <span class='color_p'>inputVector</span></span>, <span>float const <span class='color_p'>lower_bound</span></span>, <span>float const <span class='color_p'>upper_bound</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_manual&#160;<span class='sym_p'><span>(&#160;lv_32fc_t* <span class='color_p'>cVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>aVector</span></span>, <span>float const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_manual&#160;<span class='sym_p'><span>(&#160;lv_32fc_t* <span class='color_p'>cVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>aVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_manual&#160;<span class='sym_p'><span>(&#160;uint32_t* <span class='color_p'>out</span></span>, <span>uint32_t const* <span class='color_p'>in</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_manual&#160;<span class='sym_p'><span>(&#160;double* <span class='color_p'>cVector</span></span>, <span>double const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_manual&#160;<span class='sym_p'><span>(&#160;double* <span class='color_p'>cVector</span></span>, <span>double const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_u <span class='attr'>[data]</span></span><br/>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='High_Risk_Binary_Problems'></a><a name='Symbol_Binary_Problems_High'></a><a name='Interface_Binary_Problems_High'></a>
++<h2>Problems with Symbols, High Severity <span class='failed'>&nbsp;1&nbsp;</span></h2><hr/>
++<span class='h_name'>volk.h</span>, <span class='lib_name'>libvolk.so.1.3</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_1')">
++<span class='ext'>[+]</span> volk_32f_8u_polarbutterfly_32f_manual&#160;<span class='sym_p'><span>(&#160;float* <span class='color_p'>llrs</span></span>, <span>unsigned char* <span class='color_p'>u</span></span>, <span>int const <span class='color_p'>frame_size</span></span>, <span>int const <span class='color_p'>frame_exp</span></span>, <span>int const <span class='color_p'>stage</span></span>, <span>int const <span class='color_p'>u_num</span></span>, <span>int const <span class='color_p'>row</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span> <span class='failed'>&nbsp;1&nbsp;</span></span>
++<br/>
++<div id="c_1" style="display:none;">
++
++
++<span class='new_sign_lbl'>&#8675;</span>
++<br/>
++<span class='new_sign'>volk_32f_8u_polarbutterfly_32f_manual&#160;<span class='sym_p'><span>(&#160;float* <span class='color_p'>llrs</span></span>, <span>unsigned char* <span class='color_p'>u</span></span>, <span>int const <span class='color_p'>frame_exp</span></span>, <span>int const <span class='color_p'>stage</span></span>, <span>int const <span class='color_p'>u_num</span></span>, <span>int const <span class='color_p'>row</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td><b>3rd</b> middle parameter <b>frame_size</b> has been removed from the calling stack.</td>
++<td>Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.</td>
++</tr>
++</table>
++<br/>
++</div>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a>
++<h2>Problems with Data Types, Low Severity <span class='warning'>&nbsp;1&nbsp;</span></h2><hr/>
++<span class='h_name'>volk_typedefs.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_2')">
++<span class='ext'>[+]</span> <span class='ttype'>typedef</span> p_32f_8u_polarbutterfly_32f <span class='warning'>&nbsp;1&nbsp;</span></span>
++<br/>
++<div id="c_2" style="display:none;">
++<table class='ptable'><tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th></tr><tr>
++<th>1</th>
++<td>Base type has been changed from <span class='value'>void(*)(float*, unsigned char*, int, int, int, int, int)</span> to <span class='value'>void(*)(float*, unsigned char*, int, int, int, int)</span>.</td>
++<td>Replacement of the base data type may indicate a change in its semantic meaning.</td>
++</tr>
++</table>
++<span class="sect_aff" onclick="javascript:showContent(this, 'c_3')">
++[+] affected symbols: 3 (0.5%)</span>
++<div id="c_3" style="display:none;">
++<div class='affected'><span class='iname_a'>volk_32f_8u_polarbutterfly_32f <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type &#39;p_32f_8u_polarbutterfly_32f&#39;.</div>
++<span class='iname_a'>volk_32f_8u_polarbutterfly_32f_a <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type &#39;p_32f_8u_polarbutterfly_32f&#39;.</div>
++<span class='iname_a'>volk_32f_8u_polarbutterfly_32f_u <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type &#39;p_32f_8u_polarbutterfly_32f&#39;.</div>
++</div>
++</div>
++<br/><br/></div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Constant_Binary_Problems_Low'></a>
++<h2>Problems with Constants, Low Severity <span class='warning'>&nbsp;1&nbsp;</span></h2><hr/>
++<span class='h_name'>volk_32f_log2_32f.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_4')">
++<span class='ext'>[+]</span> LOG_POLY_DEGREE</span>
++<br/>
++<div id="c_4" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LOG_POLY_DEGREE</b> with value <b>6</b> has been removed.</td>
++<td>The value of this constant may no longer be properly handled by new-version library functions.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;135&nbsp;</span></h2><hr/>
++<div class='h_list'>
++constants.h<br/>
++saturation_arithmetic.h<br/>
++volk.h<br/>
++volk_16i_32fc_dot_prod_32fc.h<br/>
++volk_16i_branch_4_state_8.h<br/>
++volk_16i_convert_8i.h<br/>
++volk_16i_max_star_16i.h<br/>
++volk_16i_max_star_horizontal_16i.h<br/>
++volk_16i_permute_and_scalar_add.h<br/>
++volk_16i_s32f_convert_32f.h<br/>
++volk_16i_x4_quad_max_star_16i.h<br/>
++volk_16i_x5_add_quad_16i_x4.h<br/>
++volk_16ic_convert_32fc.h<br/>
++volk_16ic_deinterleave_16i_x2.h<br/>
++volk_16ic_deinterleave_real_16i.h<br/>
++volk_16ic_deinterleave_real_8i.h<br/>
++volk_16ic_magnitude_16i.h<br/>
++volk_16ic_s32f_deinterleave_32f_x2.h<br/>
++volk_16ic_s32f_deinterleave_real_32f.h<br/>
++volk_16ic_s32f_magnitude_32f.h<br/>
++volk_16ic_x2_dot_prod_16ic.h<br/>
++volk_16ic_x2_multiply_16ic.h<br/>
++volk_16u_byteswap.h<br/>
++volk_16u_byteswappuppet_16u.h<br/>
++volk_32f_8u_polarbutterfly_32f.h<br/>
++volk_32f_8u_polarbutterflypuppet_32f.h<br/>
++volk_32f_accumulator_s32f.h<br/>
++volk_32f_acos_32f.h<br/>
++volk_32f_asin_32f.h<br/>
++volk_32f_atan_32f.h<br/>
++volk_32f_binary_slicer_32i.h<br/>
++volk_32f_binary_slicer_8i.h<br/>
++volk_32f_convert_64f.h<br/>
++volk_32f_cos_32f.h<br/>
++volk_32f_expfast_32f.h<br/>
++volk_32f_index_max_16u.h<br/>
++volk_32f_index_max_32u.h<br/>
++volk_32f_invsqrt_32f.h<br/>
++volk_32f_log2_32f.h<br/>
++volk_32f_null_32f.h<br/>
++volk_32f_s32f_32f_fm_detect_32f.h<br/>
++volk_32f_s32f_calc_spectral_noise_floor_32f.h<br/>
++volk_32f_s32f_convert_16i.h<br/>
++volk_32f_s32f_convert_32i.h<br/>
++volk_32f_s32f_convert_8i.h<br/>
++volk_32f_s32f_multiply_32f.h<br/>
++volk_32f_s32f_normalize.h<br/>
++volk_32f_s32f_power_32f.h<br/>
++volk_32f_s32f_stddev_32f.h<br/>
++volk_32f_sin_32f.h<br/>
++volk_32f_sqrt_32f.h<br/>
++volk_32f_stddev_and_mean_32f_x2.h<br/>
++volk_32f_tan_32f.h<br/>
++volk_32f_tanh_32f.h<br/>
++volk_32f_x2_add_32f.h<br/>
++volk_32f_x2_divide_32f.h<br/>
++volk_32f_x2_dot_prod_16i.h<br/>
++volk_32f_x2_dot_prod_32f.h<br/>
++volk_32f_x2_fm_detectpuppet_32f.h<br/>
++volk_32f_x2_interleave_32fc.h<br/>
++volk_32f_x2_max_32f.h<br/>
++volk_32f_x2_min_32f.h<br/>
++volk_32f_x2_multiply_32f.h<br/>
++volk_32f_x2_pow_32f.h<br/>
++volk_32f_x2_s32f_interleave_16ic.h<br/>
++volk_32f_x2_subtract_32f.h<br/>
++volk_32f_x3_sum_of_poly_32f.h<br/>
++volk_32fc_32f_dot_prod_32fc.h<br/>
++volk_32fc_32f_multiply_32fc.h<br/>
++volk_32fc_conjugate_32fc.h<br/>
++volk_32fc_convert_16ic.h<br/>
++volk_32fc_deinterleave_32f_x2.h<br/>
++volk_32fc_deinterleave_64f_x2.h<br/>
++volk_32fc_deinterleave_imag_32f.h<br/>
++volk_32fc_deinterleave_real_32f.h<br/>
++volk_32fc_deinterleave_real_64f.h<br/>
++volk_32fc_index_max_16u.h<br/>
++volk_32fc_index_max_32u.h<br/>
++volk_32fc_magnitude_32f.h<br/>
++volk_32fc_magnitude_squared_32f.h<br/>
++volk_32fc_s32f_atan2_32f.h<br/>
++volk_32fc_s32f_deinterleave_real_16i.h<br/>
++volk_32fc_s32f_magnitude_16i.h<br/>
++volk_32fc_s32f_power_32fc.h<br/>
++volk_32fc_s32f_power_spectrum_32f.h<br/>
++volk_32fc_s32f_x2_power_spectral_density_32f.h<br/>
++volk_32fc_s32fc_multiply_32fc.h<br/>
++volk_32fc_s32fc_rotatorpuppet_32fc.h<br/>
++volk_32fc_s32fc_x2_rotator_32fc.h<br/>
++volk_32fc_x2_conjugate_dot_prod_32fc.h<br/>
++volk_32fc_x2_divide_32fc.h<br/>
++volk_32fc_x2_dot_prod_32fc.h<br/>
++volk_32fc_x2_multiply_32fc.h<br/>
++volk_32fc_x2_multiply_conjugate_32fc.h<br/>
++volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h<br/>
++volk_32fc_x2_square_dist_32f.h<br/>
++volk_32i_s32f_convert_32f.h<br/>
++volk_32i_x2_and_32i.h<br/>
++volk_32i_x2_or_32i.h<br/>
++volk_32u_byteswap.h<br/>
++volk_32u_byteswappuppet_32u.h<br/>
++volk_32u_popcnt.h<br/>
++volk_32u_popcntpuppet_32u.h<br/>
++volk_64f_convert_32f.h<br/>
++volk_64f_x2_max_64f.h<br/>
++volk_64f_x2_min_64f.h<br/>
++volk_64u_byteswap.h<br/>
++volk_64u_byteswappuppet_64u.h<br/>
++volk_64u_popcnt.h<br/>
++volk_64u_popcntpuppet_64u.h<br/>
++volk_8i_convert_16i.h<br/>
++volk_8i_s32f_convert_32f.h<br/>
++volk_8ic_deinterleave_16i_x2.h<br/>
++volk_8ic_deinterleave_real_16i.h<br/>
++volk_8ic_deinterleave_real_8i.h<br/>
++volk_8ic_s32f_deinterleave_32f_x2.h<br/>
++volk_8ic_s32f_deinterleave_real_32f.h<br/>
++volk_8ic_x2_multiply_conjugate_16ic.h<br/>
++volk_8ic_x2_s32f_multiply_conjugate_32fc.h<br/>
++volk_8u_conv_k7_r2puppet_8u.h<br/>
++volk_8u_x2_encodeframepolar_8u.h<br/>
++volk_8u_x3_encodepolar_8u_x2.h<br/>
++volk_8u_x3_encodepolarpuppet_8u.h<br/>
++volk_8u_x4_conv_k7_r2_8u.h<br/>
++volk_avx_intrinsics.h<br/>
++volk_common.h<br/>
++volk_complex.h<br/>
++volk_config_fixed.h<br/>
++volk_cpu.h<br/>
++volk_malloc.h<br/>
++volk_neon_intrinsics.h<br/>
++volk_prefs.h<br/>
++volk_sse3_intrinsics.h<br/>
++volk_sse_intrinsics.h<br/>
++volk_typedefs.h<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Libs'></a><h2>Libraries <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
++<div class='lib_list'>
++libvolk.so.1.3<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<br/><br/><br/></div><div id='SourceTab' class='tab'>
++<h2>Test Info</h2><hr/>
++<table class='summary'>
++<tr><th>Library Name</th><td>libvolk1-dev</td></tr>
++<tr><th>Version #1</th><td>1.3-3</td></tr>
++<tr><th>Version #2</th><td>1.4-1</td></tr>
++<tr><th>Arch</th><td>x86_64</td></tr>
++<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>
++</table>
++<h2>Test Results</h2><hr/>
++<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>135</a></td></tr>
++<tr><th>Total Libraries</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
++<tr><th>Total Symbols / Types</th><td>660 / 235</td></tr>
++<tr><th>Compatibility</th>
++<td class='warning'>99.1%</td>
++</tr>
++</table>
++<h2>Problem Summary</h2><hr/>
++<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>46</a></td></tr>
++<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Source_Removed' style='color:Blue;'>5</a></td></tr>
++<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
++<tr><td>Medium</td><td>0</td></tr>
++<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>1</a></td></tr>
++<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td class='failed'><a href='#Symbol_Source_Problems_High' style='color:Blue;'>1</a></td></tr>
++<tr><td>Medium</td><td>0</td></tr>
++<tr><td>Low</td><td>0</td></tr>
++<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>1</a></td></tr>
++<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>2</a></td></tr>
++</table>
++
++<a name='Source_Added'></a><h2>Added Symbols <span class='new'>&nbsp;46&nbsp;</span></h2><hr/>
++<span class='h_name'>volk.h</span><br/>
++<span class="iname">volk_32f_64f_add_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_manual&#160;<span class='sym_p'><span>(&#160;double* <span class='color_p'>cVector</span></span>, <span>float const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_add_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_manual&#160;<span class='sym_p'><span>(&#160;double* <span class='color_p'>cVector</span></span>, <span>float const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32f_64f_multiply_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_manual&#160;<span class='sym_p'><span>(&#160;float* <span class='color_p'>output</span></span>, <span>float const* <span class='color_p'>input</span></span>, <span>float <span class='color_p'>bound</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_mod_rangepuppet_32f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_manual&#160;<span class='sym_p'><span>(&#160;float* <span class='color_p'>outputVector</span></span>, <span>float const* <span class='color_p'>inputVector</span></span>, <span>float const <span class='color_p'>lower_bound</span></span>, <span>float const <span class='color_p'>upper_bound</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32f_s32f_s32f_mod_range_32f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_manual&#160;<span class='sym_p'><span>(&#160;lv_32fc_t* <span class='color_p'>cVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>aVector</span></span>, <span>float const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32fc_32f_add_32fc_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_manual&#160;<span class='sym_p'><span>(&#160;lv_32fc_t* <span class='color_p'>cVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>aVector</span></span>, <span>lv_32fc_t const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32fc_x2_add_32fc_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_manual&#160;<span class='sym_p'><span>(&#160;uint32_t* <span class='color_p'>out</span></span>, <span>uint32_t const* <span class='color_p'>in</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_32u_reverse_32u_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_manual&#160;<span class='sym_p'><span>(&#160;double* <span class='color_p'>cVector</span></span>, <span>double const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_add_64f_u <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_a <span class='attr'>[data]</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_get_func_desc&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_manual&#160;<span class='sym_p'><span>(&#160;double* <span class='color_p'>cVector</span></span>, <span>double const* <span class='color_p'>aVector</span></span>, <span>double const* <span class='color_p'>bVector</span></span>, <span>unsigned int <span class='color_p'>num_points</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<span class="iname">volk_64f_x2_multiply_64f_u <span class='attr'>[data]</span></span><br/>
++<br/>
++<span class='h_name'>volk_32u_reverse_32u.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_5')">
++BitReverseTable256 <span class='attr'>[data]</span></span>
++<br/>
++<div id="c_5" style="display:none;">
++<span class='mngl'>_ZL18BitReverseTable256</span>
++<br/>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Source_Removed'></a><a name='Source_Withdrawn'></a><h2>Removed Symbols <span class='failed'>&nbsp;5&nbsp;</span></h2><hr/>
++<span class='h_name'>constants.h</span><br/>
++<span class="iname">volk_available_machines&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_c_compiler&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_compiler_flags&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_prefix&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<span class="iname">volk_version&#160;<span class='sym_p'>(&#160;)</span></span><br/>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='High_Risk_Source_Problems'></a><a name='Symbol_Source_Problems_High'></a><a name='Interface_Source_Problems_High'></a>
++<h2>Problems with Symbols, High Severity <span class='failed'>&nbsp;1&nbsp;</span></h2><hr/>
++<span class='h_name'>volk.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_6')">
++<span class='ext'>[+]</span> volk_32f_8u_polarbutterfly_32f_manual&#160;<span class='sym_p'><span>(&#160;float* <span class='color_p'>llrs</span></span>, <span>unsigned char* <span class='color_p'>u</span></span>, <span>int const <span class='color_p'>frame_size</span></span>, <span>int const <span class='color_p'>frame_exp</span></span>, <span>int const <span class='color_p'>stage</span></span>, <span>int const <span class='color_p'>u_num</span></span>, <span>int const <span class='color_p'>row</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span> <span class='failed'>&nbsp;1&nbsp;</span></span>
++<br/>
++<div id="c_6" style="display:none;">
++
++
++<span class='new_sign_lbl'>&#8675;</span>
++<br/>
++<span class='new_sign'>volk_32f_8u_polarbutterfly_32f_manual&#160;<span class='sym_p'><span>(&#160;float* <span class='color_p'>llrs</span></span>, <span>unsigned char* <span class='color_p'>u</span></span>, <span>int const <span class='color_p'>frame_exp</span></span>, <span>int const <span class='color_p'>stage</span></span>, <span>int const <span class='color_p'>u_num</span></span>, <span>int const <span class='color_p'>row</span></span>, <span>char const* <span class='color_p'>impl_name</span></span>&#160;)</span></span><br/>
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td><b>3rd</b> middle parameter <b>frame_size</b> has been removed from the calling stack.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a>
++<h2>Problems with Data Types, Low Severity <span class='warning'>&nbsp;1&nbsp;</span></h2><hr/>
++<span class='h_name'>volk_typedefs.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_7')">
++<span class='ext'>[+]</span> <span class='ttype'>typedef</span> p_32f_8u_polarbutterfly_32f <span class='warning'>&nbsp;1&nbsp;</span></span>
++<br/>
++<div id="c_7" style="display:none;">
++<table class='ptable'><tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th></tr><tr>
++<th>1</th>
++<td>Base type has been changed from <span class='value'>void(*)(float*, unsigned char*, int, int, int, int, int)</span> to <span class='value'>void(*)(float*, unsigned char*, int, int, int, int)</span>.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<span class="sect_aff" onclick="javascript:showContent(this, 'c_8')">
++[+] affected symbols: 3 (0.5%)</span>
++<div id="c_8" style="display:none;">
++<div class='affected'><span class='iname_a'>volk_32f_8u_polarbutterfly_32f <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type &#39;p_32f_8u_polarbutterfly_32f&#39;.</div>
++<span class='iname_a'>volk_32f_8u_polarbutterfly_32f_a <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type &#39;p_32f_8u_polarbutterfly_32f&#39;.</div>
++<span class='iname_a'>volk_32f_8u_polarbutterfly_32f_u <span class='attr'>[data]</span></span><br/>
++<div class='affect'>Return value is of type &#39;p_32f_8u_polarbutterfly_32f&#39;.</div>
++</div>
++</div>
++<br/><br/></div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Constant_Source_Problems_Low'></a>
++<h2>Problems with Constants, Low Severity <span class='warning'>&nbsp;1&nbsp;</span></h2><hr/>
++<span class='h_name'>volk_32f_log2_32f.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_9')">
++<span class='ext'>[+]</span> LOG_POLY_DEGREE</span>
++<br/>
++<div id="c_9" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>LOG_POLY_DEGREE</b> with value <b>6</b> has been removed.</td>
++<td>Recompilation of a client program may be broken.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Constants'></a>
++<h2>Other Changes in Constants <span class='passed'>&nbsp;2&nbsp;</span></h2><hr/>
++<span class='h_name'>volk_common.h</span><br/>
++<span class="section" onclick="javascript:showContent(this, 'c_10')">
++<span class='ext'>[+]</span> __VOLK_ASM</span>
++<br/>
++<div id="c_10" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>__VOLK_ASM</b> with value <b>__asm__</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<span class="section" onclick="javascript:showContent(this, 'c_11')">
++<span class='ext'>[+]</span> __VOLK_VOLATILE</span>
++<br/>
++<div id="c_11" style="display:none;">
++<table class='ptable'>
++<tr>
++<th class='pn'></th>
++<th class='chg'>Change</th>
++<th>Effect</th>
++</tr>
++<tr>
++<th>1</th>
++<td>The constant <b>__VOLK_VOLATILE</b> with value <b>__volatile__</b> has been added.</td>
++<td>No effect.</td>
++</tr>
++</table>
++<br/>
++</div>
++
++<br/>
++<a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;135&nbsp;</span></h2><hr/>
++<div class='h_list'>
++constants.h<br/>
++saturation_arithmetic.h<br/>
++volk.h<br/>
++volk_16i_32fc_dot_prod_32fc.h<br/>
++volk_16i_branch_4_state_8.h<br/>
++volk_16i_convert_8i.h<br/>
++volk_16i_max_star_16i.h<br/>
++volk_16i_max_star_horizontal_16i.h<br/>
++volk_16i_permute_and_scalar_add.h<br/>
++volk_16i_s32f_convert_32f.h<br/>
++volk_16i_x4_quad_max_star_16i.h<br/>
++volk_16i_x5_add_quad_16i_x4.h<br/>
++volk_16ic_convert_32fc.h<br/>
++volk_16ic_deinterleave_16i_x2.h<br/>
++volk_16ic_deinterleave_real_16i.h<br/>
++volk_16ic_deinterleave_real_8i.h<br/>
++volk_16ic_magnitude_16i.h<br/>
++volk_16ic_s32f_deinterleave_32f_x2.h<br/>
++volk_16ic_s32f_deinterleave_real_32f.h<br/>
++volk_16ic_s32f_magnitude_32f.h<br/>
++volk_16ic_x2_dot_prod_16ic.h<br/>
++volk_16ic_x2_multiply_16ic.h<br/>
++volk_16u_byteswap.h<br/>
++volk_16u_byteswappuppet_16u.h<br/>
++volk_32f_8u_polarbutterfly_32f.h<br/>
++volk_32f_8u_polarbutterflypuppet_32f.h<br/>
++volk_32f_accumulator_s32f.h<br/>
++volk_32f_acos_32f.h<br/>
++volk_32f_asin_32f.h<br/>
++volk_32f_atan_32f.h<br/>
++volk_32f_binary_slicer_32i.h<br/>
++volk_32f_binary_slicer_8i.h<br/>
++volk_32f_convert_64f.h<br/>
++volk_32f_cos_32f.h<br/>
++volk_32f_expfast_32f.h<br/>
++volk_32f_index_max_16u.h<br/>
++volk_32f_index_max_32u.h<br/>
++volk_32f_invsqrt_32f.h<br/>
++volk_32f_log2_32f.h<br/>
++volk_32f_null_32f.h<br/>
++volk_32f_s32f_32f_fm_detect_32f.h<br/>
++volk_32f_s32f_calc_spectral_noise_floor_32f.h<br/>
++volk_32f_s32f_convert_16i.h<br/>
++volk_32f_s32f_convert_32i.h<br/>
++volk_32f_s32f_convert_8i.h<br/>
++volk_32f_s32f_multiply_32f.h<br/>
++volk_32f_s32f_normalize.h<br/>
++volk_32f_s32f_power_32f.h<br/>
++volk_32f_s32f_stddev_32f.h<br/>
++volk_32f_sin_32f.h<br/>
++volk_32f_sqrt_32f.h<br/>
++volk_32f_stddev_and_mean_32f_x2.h<br/>
++volk_32f_tan_32f.h<br/>
++volk_32f_tanh_32f.h<br/>
++volk_32f_x2_add_32f.h<br/>
++volk_32f_x2_divide_32f.h<br/>
++volk_32f_x2_dot_prod_16i.h<br/>
++volk_32f_x2_dot_prod_32f.h<br/>
++volk_32f_x2_fm_detectpuppet_32f.h<br/>
++volk_32f_x2_interleave_32fc.h<br/>
++volk_32f_x2_max_32f.h<br/>
++volk_32f_x2_min_32f.h<br/>
++volk_32f_x2_multiply_32f.h<br/>
++volk_32f_x2_pow_32f.h<br/>
++volk_32f_x2_s32f_interleave_16ic.h<br/>
++volk_32f_x2_subtract_32f.h<br/>
++volk_32f_x3_sum_of_poly_32f.h<br/>
++volk_32fc_32f_dot_prod_32fc.h<br/>
++volk_32fc_32f_multiply_32fc.h<br/>
++volk_32fc_conjugate_32fc.h<br/>
++volk_32fc_convert_16ic.h<br/>
++volk_32fc_deinterleave_32f_x2.h<br/>
++volk_32fc_deinterleave_64f_x2.h<br/>
++volk_32fc_deinterleave_imag_32f.h<br/>
++volk_32fc_deinterleave_real_32f.h<br/>
++volk_32fc_deinterleave_real_64f.h<br/>
++volk_32fc_index_max_16u.h<br/>
++volk_32fc_index_max_32u.h<br/>
++volk_32fc_magnitude_32f.h<br/>
++volk_32fc_magnitude_squared_32f.h<br/>
++volk_32fc_s32f_atan2_32f.h<br/>
++volk_32fc_s32f_deinterleave_real_16i.h<br/>
++volk_32fc_s32f_magnitude_16i.h<br/>
++volk_32fc_s32f_power_32fc.h<br/>
++volk_32fc_s32f_power_spectrum_32f.h<br/>
++volk_32fc_s32f_x2_power_spectral_density_32f.h<br/>
++volk_32fc_s32fc_multiply_32fc.h<br/>
++volk_32fc_s32fc_rotatorpuppet_32fc.h<br/>
++volk_32fc_s32fc_x2_rotator_32fc.h<br/>
++volk_32fc_x2_conjugate_dot_prod_32fc.h<br/>
++volk_32fc_x2_divide_32fc.h<br/>
++volk_32fc_x2_dot_prod_32fc.h<br/>
++volk_32fc_x2_multiply_32fc.h<br/>
++volk_32fc_x2_multiply_conjugate_32fc.h<br/>
++volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h<br/>
++volk_32fc_x2_square_dist_32f.h<br/>
++volk_32i_s32f_convert_32f.h<br/>
++volk_32i_x2_and_32i.h<br/>
++volk_32i_x2_or_32i.h<br/>
++volk_32u_byteswap.h<br/>
++volk_32u_byteswappuppet_32u.h<br/>
++volk_32u_popcnt.h<br/>
++volk_32u_popcntpuppet_32u.h<br/>
++volk_64f_convert_32f.h<br/>
++volk_64f_x2_max_64f.h<br/>
++volk_64f_x2_min_64f.h<br/>
++volk_64u_byteswap.h<br/>
++volk_64u_byteswappuppet_64u.h<br/>
++volk_64u_popcnt.h<br/>
++volk_64u_popcntpuppet_64u.h<br/>
++volk_8i_convert_16i.h<br/>
++volk_8i_s32f_convert_32f.h<br/>
++volk_8ic_deinterleave_16i_x2.h<br/>
++volk_8ic_deinterleave_real_16i.h<br/>
++volk_8ic_deinterleave_real_8i.h<br/>
++volk_8ic_s32f_deinterleave_32f_x2.h<br/>
++volk_8ic_s32f_deinterleave_real_32f.h<br/>
++volk_8ic_x2_multiply_conjugate_16ic.h<br/>
++volk_8ic_x2_s32f_multiply_conjugate_32fc.h<br/>
++volk_8u_conv_k7_r2puppet_8u.h<br/>
++volk_8u_x2_encodeframepolar_8u.h<br/>
++volk_8u_x3_encodepolar_8u_x2.h<br/>
++volk_8u_x3_encodepolarpuppet_8u.h<br/>
++volk_8u_x4_conv_k7_r2_8u.h<br/>
++volk_avx_intrinsics.h<br/>
++volk_common.h<br/>
++volk_complex.h<br/>
++volk_config_fixed.h<br/>
++volk_cpu.h<br/>
++volk_malloc.h<br/>
++volk_neon_intrinsics.h<br/>
++volk_prefs.h<br/>
++volk_sse3_intrinsics.h<br/>
++volk_sse_intrinsics.h<br/>
++volk_typedefs.h<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<a name='Libs'></a><h2>Libraries <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
++<div class='lib_list'>
++libvolk.so.1.3<br/>
++</div>
++<br/><a class='top_ref' href='#Top'>to the top</a><br/>
++<br/><br/><br/></div><hr/>
++<div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/abi-compliance-checker'>ABI Compliance Checker</a> 2.2 &#160;</i>
++</div>
++<br/>
++
++</body></html>
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e4252f46b63bd3c4b8896a2294216d7023ea526b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/libvolk.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d4a24acaccc9e0a36335662320bebfffd064de00
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++From da56e316ca095a09b53ce308a79b522bcb4a6504 Mon Sep 17 00:00:00 2001
++From: Nathan West <nwest@deepsig.io>
++Date: Tue, 27 Mar 2018 12:50:12 -0400
++Subject: [PATCH 1/9] Update CMakeLists for 1.5 development versions
++
++---
++ CMakeLists.txt | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/CMakeLists.txt b/CMakeLists.txt
++index a02ae80..d0f076c 100644
++--- a/CMakeLists.txt
+++++ b/CMakeLists.txt
++@@ -45,7 +45,7 @@ message(STATUS "Build type set to ${CMAKE_BUILD_TYPE}.")
++ 
++ set(VERSION_INFO_MAJOR_VERSION 1)
++ set(VERSION_INFO_MINOR_VERSION 4)
++-set(VERSION_INFO_MAINT_VERSION 0)
+++set(VERSION_INFO_MAINT_VERSION 1git)
++ include(VolkVersion) #setup version info
++ 
++ ########################################################################
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..321beda10d89a1051837e517a555ab125d0c6fa5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,98 @@@
++From 83832b2b922cb3ed979aa520ef7ce27557d5f705 Mon Sep 17 00:00:00 2001
++From: "Brandon P. Enochs" <brandon.enochs@nrl.navy.mil>
++Date: Tue, 3 Apr 2018 16:22:16 -0400
++Subject: [PATCH 2/9] Added an AVX protokernel for
++ volk_32fc_x2_32f_square_dist_scalar_mult_32f.
++
++---
++ ...volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h | 63 ++++++++++++++++++++--
++ 1 file changed, 60 insertions(+), 3 deletions(-)
++
++diff --git a/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h b/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
++index e983578..6180337 100644
++--- a/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
+++++ b/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
++@@ -84,6 +84,65 @@
++ #include<volk/volk_complex.h>
++ #include <string.h>
++ 
+++#ifdef LV_HAVE_AVX
+++#include <immintrin.h>
+++
+++static inline void
+++volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx(
+++        float *target, lv_32fc_t *src0, lv_32fc_t *points,
+++        float scalar, unsigned int num_points) {
+++  static const unsigned int work_size = 8;
+++  unsigned int avx_work_size = num_points / work_size * work_size;
+++  int i = 0;
+++
+++  for (; i < avx_work_size; i += work_size) {
+++    lv_32fc_t src = *src0;
+++    __m256 source = _mm256_setr_ps(
+++            lv_creal(src), lv_cimag(src),
+++            lv_creal(src), lv_cimag(src),
+++            lv_creal(src), lv_cimag(src),
+++            lv_creal(src), lv_cimag(src)
+++    );
+++    __m256 points_low = _mm256_load_ps((const float *) points);
+++    __m256 points_high = _mm256_load_ps((const float *) (points + work_size / 2));
+++    __m256 difference_low = _mm256_sub_ps(source, points_low);
+++    __m256 difference_high = _mm256_sub_ps(source, points_high);
+++
+++    difference_low = _mm256_mul_ps(difference_low, difference_low);
+++    difference_high = _mm256_mul_ps(difference_high, difference_high);
+++
+++    __m256 magnitudes_squared = _mm256_hadd_ps(difference_low, difference_high);
+++    __m128 lower_magnitudes_squared_bottom = _mm256_extractf128_ps(magnitudes_squared, 0);
+++    __m128 upper_magnitudes_squared_top = _mm256_extractf128_ps(magnitudes_squared, 1);
+++    __m256 lower_magnitudes_squared = _mm256_castps128_ps256(lower_magnitudes_squared_bottom);
+++
+++    lower_magnitudes_squared = _mm256_insertf128_ps(
+++            lower_magnitudes_squared, _mm_permute_ps(lower_magnitudes_squared_bottom, 0x4E), 1
+++    );
+++
+++    __m256 upper_magnitudes_squared = _mm256_castps128_ps256(upper_magnitudes_squared_top);
+++
+++    upper_magnitudes_squared = _mm256_insertf128_ps(upper_magnitudes_squared, upper_magnitudes_squared_top, 1);
+++    upper_magnitudes_squared_top = _mm_permute_ps(upper_magnitudes_squared_top, 0x4E);
+++    upper_magnitudes_squared = _mm256_insertf128_ps(upper_magnitudes_squared, upper_magnitudes_squared_top, 0);
+++
+++    __m256 ordered_magnitudes_squared = _mm256_blend_ps(lower_magnitudes_squared, upper_magnitudes_squared, 0xCC);
+++    __m256 scalars = _mm256_set1_ps(scalar);
+++    __m256 output = _mm256_mul_ps(ordered_magnitudes_squared, scalars);
+++
+++    _mm256_store_ps(target, output);
+++    target += work_size;
+++    points += work_size;
+++  }
+++  for (; i < num_points; ++i) {
+++    lv_32fc_t diff = src0[0] - points[i];
+++
+++    target[i] = scalar * (lv_creal(diff) * lv_creal(diff) + lv_cimag(diff) * lv_cimag(diff));
+++  }
+++}
+++
+++#endif /* LV_HAVE_AVX */
+++
++ #ifdef LV_HAVE_SSE3
++ #include<xmmintrin.h>
++ #include<pmmintrin.h>
++@@ -183,13 +242,11 @@ static inline void
++ volk_32fc_x2_s32f_square_dist_scalar_mult_32f_generic(float* target, lv_32fc_t* src0, lv_32fc_t* points,
++                                                       float scalar, unsigned int num_points)
++ {
++-  const unsigned int num_bytes = num_points*8;
++-
++   lv_32fc_t diff;
++   float sq_dist;
++   unsigned int i = 0;
++ 
++-  for(; i < num_bytes >> 3; ++i) {
+++  for(; i < num_points; ++i) {
++     diff = src0[0] - points[i];
++ 
++     sq_dist = scalar * (lv_creal(diff) * lv_creal(diff) + lv_cimag(diff) * lv_cimag(diff));
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1e64640413dbb1aff356283e494fa4efed1d5e7a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,33 @@@
++From 446c79567fd7b39b9f0fabc72bcb952df8778018 Mon Sep 17 00:00:00 2001
++From: "Brandon P. Enochs" <brandon.enochs@nrl.navy.mil>
++Date: Tue, 3 Apr 2018 16:29:40 -0400
++Subject: [PATCH 3/9] extracted variables for the source real and imaginary
++ parts in volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx.
++
++---
++ kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h | 9 +++------
++ 1 file changed, 3 insertions(+), 6 deletions(-)
++
++diff --git a/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h b/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
++index 6180337..0a3f7ca 100644
++--- a/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
+++++ b/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
++@@ -97,12 +97,9 @@ volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx(
++ 
++   for (; i < avx_work_size; i += work_size) {
++     lv_32fc_t src = *src0;
++-    __m256 source = _mm256_setr_ps(
++-            lv_creal(src), lv_cimag(src),
++-            lv_creal(src), lv_cimag(src),
++-            lv_creal(src), lv_cimag(src),
++-            lv_creal(src), lv_cimag(src)
++-    );
+++    float src_real = lv_creal(src);
+++    float src_imag = lv_cimag(src);
+++    __m256 source = _mm256_setr_ps(src_real, src_imag, src_real, src_imag, src_real, src_imag, src_real, src_imag);
++     __m256 points_low = _mm256_load_ps((const float *) points);
++     __m256 points_high = _mm256_load_ps((const float *) (points + work_size / 2));
++     __m256 difference_low = _mm256_sub_ps(source, points_low);
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a05e8d51bd93663c980d6c2e5036e8380ec234d1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,31 @@@
++From 3d0f47381454cf6f79fddb081cee0a50b2a684eb Mon Sep 17 00:00:00 2001
++From: "Brandon P. Enochs" <brandon.enochs@nrl.navy.mil>
++Date: Tue, 3 Apr 2018 18:20:53 -0400
++Subject: [PATCH 4/9] fixed a buffer over-read and over-write in
++ volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx.
++
++---
++ kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h | 6 ++++--
++ 1 file changed, 4 insertions(+), 2 deletions(-)
++
++diff --git a/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h b/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
++index 0a3f7ca..8f5b02a 100644
++--- a/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
+++++ b/kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h
++@@ -132,9 +132,11 @@ volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx(
++     points += work_size;
++   }
++   for (; i < num_points; ++i) {
++-    lv_32fc_t diff = src0[0] - points[i];
+++    lv_32fc_t diff = src0[0] - *points;
++ 
++-    target[i] = scalar * (lv_creal(diff) * lv_creal(diff) + lv_cimag(diff) * lv_cimag(diff));
+++    *target = scalar * (lv_creal(diff) * lv_creal(diff) + lv_cimag(diff) * lv_cimag(diff));
+++    ++target;
+++    ++points;
++   }
++ }
++ 
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e471d5e65064d1dfc8d09f5e57e61853c513ca31
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++From 21d86728946b915bfe2f177dfa97fb2c94a5957a Mon Sep 17 00:00:00 2001
++From: Michael Dickens <michael.dickens@ettus.com>
++Date: Thu, 5 Apr 2018 14:02:57 -0400
++Subject: [PATCH 5/9] cmake: Fix 'endif' to match 'if'
++
++---
++ cmake/Modules/VolkConfigVersion.cmake.in | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/cmake/Modules/VolkConfigVersion.cmake.in b/cmake/Modules/VolkConfigVersion.cmake.in
++index 265daeb..988336d 100644
++--- a/cmake/Modules/VolkConfigVersion.cmake.in
+++++ b/cmake/Modules/VolkConfigVersion.cmake.in
++@@ -30,5 +30,5 @@ if(${PACKAGE_FIND_VERSION_MAJOR} EQUAL ${MAJOR_VERSION})
++       set(PACKAGE_VERSION_EXACT 1)    # exact match for API version
++       set(PACKAGE_VERSION_COMPATIBLE 1)  # compat for minor/patch version
++     endif(NOT ${PACKAGE_FIND_VERSION_PATCH} GREATER ${MINOR_VERSION})
++-  endif(${PACKAGE_FIND_VERSION_MINOR} EQUAL ${API_COMPAT})
+++  endif(${PACKAGE_FIND_VERSION_MINOR} EQUAL ${MINOR_VERSION})
++ endif(${PACKAGE_FIND_VERSION_MAJOR} EQUAL ${MAJOR_VERSION})
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cd1bf7b33efc77557834b921cec385b2d483163f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,91 @@@
++From 1b4604aa51c60c10dc4b1ac11b9d6d6ce5ced21e Mon Sep 17 00:00:00 2001
++From: Ryan Volz <rvolz@mit.edu>
++Date: Fri, 13 Apr 2018 16:37:23 -0400
++Subject: [PATCH 6/9] Add <sys/time.h> header (copied from gnuradio) to fix
++ Windows build.
++
++---
++ cmake/msvc/sys/time.h | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++
++ 1 file changed, 71 insertions(+)
++ create mode 100644 cmake/msvc/sys/time.h
++
++diff --git a/cmake/msvc/sys/time.h b/cmake/msvc/sys/time.h
++new file mode 100644
++index 0000000..dca0fdf
++--- /dev/null
+++++ b/cmake/msvc/sys/time.h
++@@ -0,0 +1,71 @@
+++#ifndef _MSC_VER // [
+++#error "Use this header only with Microsoft Visual C++ compilers!"
+++#endif // _MSC_VER ]
+++
+++#ifndef _MSC_SYS_TIME_H_
+++#define _MSC_SYS_TIME_H_
+++
+++//http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/430449b3-f6dd-4e18-84de-eebd26a8d668
+++#include < time.h >
+++#include <windows.h> //I've omitted this line.
+++#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS)
+++  #define DELTA_EPOCH_IN_MICROSECS  11644473600000000Ui64
+++#else
+++  #define DELTA_EPOCH_IN_MICROSECS  11644473600000000ULL
+++#endif
+++
+++#if _MSC_VER < 1900
+++struct timespec {
+++
+++time_t tv_sec; /* Seconds since 00:00:00 GMT, */
+++
+++/* 1 January 1970 */
+++
+++long tv_nsec; /* Additional nanoseconds since */
+++
+++/* tv_sec */
+++
+++};
+++#endif
+++
+++struct timezone
+++{
+++  int  tz_minuteswest; /* minutes W of Greenwich */
+++  int  tz_dsttime;     /* type of dst correction */
+++};
+++
+++static inline int gettimeofday(struct timeval *tv, struct timezone *tz)
+++{
+++  FILETIME ft;
+++  unsigned __int64 tmpres = 0;
+++  static int tzflag;
+++
+++  if (NULL != tv)
+++  {
+++    GetSystemTimeAsFileTime(&ft);
+++
+++    tmpres |= ft.dwHighDateTime;
+++    tmpres <<= 32;
+++    tmpres |= ft.dwLowDateTime;
+++
+++    /*converting file time to unix epoch*/
+++    tmpres -= DELTA_EPOCH_IN_MICROSECS;
+++    tv->tv_sec = (long)(tmpres / 1000000UL);
+++    tv->tv_usec = (long)(tmpres % 1000000UL);
+++  }
+++
+++  if (NULL != tz)
+++  {
+++    if (!tzflag)
+++    {
+++      _tzset();
+++      tzflag++;
+++    }
+++    tz->tz_minuteswest = _timezone / 60;
+++    tz->tz_dsttime = _daylight;
+++  }
+++
+++  return 0;
+++}
+++
+++#endif //_MSC_SYS_TIME_H_
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f84d51312fde2d674e5ac8f97845091f6cdb00bd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++From 8eef886bb94b927364314877164600701678e864 Mon Sep 17 00:00:00 2001
++From: Ryan Volz <rvolz@mit.edu>
++Date: Tue, 17 Apr 2018 10:23:32 -0400
++Subject: [PATCH 7/9] Fix compile on Windows by avoiding min/max macros in
++ windows.h.
++
++---
++ cmake/msvc/sys/time.h | 5 +++++
++ 1 file changed, 5 insertions(+)
++
++diff --git a/cmake/msvc/sys/time.h b/cmake/msvc/sys/time.h
++index dca0fdf..aa0f5dc 100644
++--- a/cmake/msvc/sys/time.h
+++++ b/cmake/msvc/sys/time.h
++@@ -5,6 +5,11 @@
++ #ifndef _MSC_SYS_TIME_H_
++ #define _MSC_SYS_TIME_H_
++ 
+++// prevent windows.h from clobbering min and max functions with macros
+++#ifndef NOMINMAX
+++#define NOMINMAX
+++#endif
+++
++ //http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/430449b3-f6dd-4e18-84de-eebd26a8d668
++ #include < time.h >
++ #include <windows.h> //I've omitted this line.
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cfb01b15f53f3f3b8f7c4457652ea5d2d62edb31
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,71 @@@
++From c88395979c25a952b2c8deb9a37138fa2dc6e9e7 Mon Sep 17 00:00:00 2001
++From: Ryan Volz <rvolz@mit.edu>
++Date: Tue, 17 Apr 2018 13:45:38 -0400
++Subject: [PATCH 8/9] Fix add_test for Windows.
++
++---
++ cmake/Modules/VolkAddTest.cmake | 35 +++++++++++++++++++----------------
++ 1 file changed, 19 insertions(+), 16 deletions(-)
++
++diff --git a/cmake/Modules/VolkAddTest.cmake b/cmake/Modules/VolkAddTest.cmake
++index 16c04f3..46f35f0 100644
++--- a/cmake/Modules/VolkAddTest.cmake
+++++ b/cmake/Modules/VolkAddTest.cmake
++@@ -176,20 +176,19 @@ function(VOLK_ADD_TEST test_name executable_name)
++     #set them in the PATH to run tests.  The following appends the
++     #path of a target dependency.
++     #
++-    #NOTE: get_target_property LOCATION is being deprecated as of
++-    #CMake 3.2.0, which just prints a warning & notes that this
++-    #functionality will be removed in the future.  Leave it here for
++-    #now until someone can figure out how to do this in Windows.
++-    foreach(target ${test_name} ${VOLK_TEST_TARGET_DEPS})
++-      get_target_property(location "${target}" LOCATION)
++-      if(location)
++-        get_filename_component(path ${location} PATH)
++-        string(REGEX REPLACE "\\$\\(.*\\)" ${CMAKE_BUILD_TYPE} path ${path})
++-        list(APPEND libpath ${path})
++-      endif(location)
++-    endforeach(target)
++-
++-    list(APPEND libpath ${DLL_PATHS} "%PATH%")
+++    #create a list of target directories to be determined by the
+++    #"add_test" command, via the $<FOO:BAR> operator; make sure the
+++    #test's directory is first, since it ($1) is prepended to PATH.
+++    unset(TARGET_DIR_LIST)
+++    foreach(target ${executable_name} ${VOLK_TEST_TARGET_DEPS})
+++      list(APPEND TARGET_DIR_LIST "$<TARGET_FILE_DIR:${target}>")
+++    endforeach()
+++    #replace list separator with the path separator (escaped)
+++    string(REPLACE ";" "\\\\;" TARGET_DIR_LIST "${TARGET_DIR_LIST}")
+++
+++    #add command line argument (TARGET_DIR_LIST) to path and append current path
+++    list(INSERT libpath 0 "%1")
+++    list(APPEND libpath "%PATH%")
++ 
++     #replace list separator with the path separator (escaped)
++     string(REPLACE ";" "\\;" libpath "${libpath}")
++@@ -204,14 +203,18 @@ function(VOLK_ADD_TEST test_name executable_name)
++       file(APPEND ${bat_file} "SET ${environ}\n")
++     endforeach(environ)
++ 
+++    set(VOLK_TEST_ARGS "${test_name}")
+++
++     #redo the test args to have a space between each
++     string(REPLACE ";" " " VOLK_TEST_ARGS "${VOLK_TEST_ARGS}")
++ 
++     #finally: append the test name to execute
++-    file(APPEND ${bat_file} ${test_name} " " ${VOLK_TEST_ARGS} "\n")
+++    file(APPEND ${bat_file} "${executable_name} ${VOLK_TEST_ARGS}\n")
++     file(APPEND ${bat_file} "\n")
++ 
++-    add_test(${test_name} ${bat_file})
+++    add_test(NAME qa_${test_name}
+++        COMMAND ${bat_file} ${TARGET_DIR_LIST}
+++    )
++   endif(WIN32)
++ 
++ endfunction(VOLK_ADD_TEST)
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f57e22e504128d28dbc3128e572fc2111b5b135a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,31 @@@
++From 297fefdd16e5a230f094e0f4ac2918f0586154be Mon Sep 17 00:00:00 2001
++From: Philip Balister <philip@balister.org>
++Date: Fri, 27 Apr 2018 10:54:33 +0000
++Subject: [PATCH 9/9] Fix 32u_reverse_32u for ARM.
++
++ * Order of operands in inline asm reversed.
++ * Worked for some tune setting since gcc generated rbit lr, lr so
++   order didn't matter. For other tune settings it generated rbit r3, r2
++   which would fail QA test.
++
++Signed-off-by: Philip Balister <philip@balister.org>
++---
++ kernels/volk/volk_32u_reverse_32u.h | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/kernels/volk/volk_32u_reverse_32u.h b/kernels/volk/volk_32u_reverse_32u.h
++index acdbacd..417a5d1 100644
++--- a/kernels/volk/volk_32u_reverse_32u.h
+++++ b/kernels/volk/volk_32u_reverse_32u.h
++@@ -337,7 +337,7 @@ static inline void volk_32u_reverse_32u_bintree_permute_bottom_up(uint32_t* out,
++ #include <arm_neon.h>
++ 
++ #define DO_RBIT                                          \
++-    asm("rbit %1,%0" : "=r" (*out_ptr) : "r" (*in_ptr)); \
+++    asm("rbit %0,%1" : "=r" (*out_ptr) : "r" (*in_ptr)); \
++     in_ptr++;                                            \
++     out_ptr++;
++ 
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b8f631402dd939ab5a513b9ea15a9524ac665bc5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,20 @@@
++--- a/lib/CMakeLists.txt
+++++ b/lib/CMakeLists.txt
++@@ -542,7 +542,7 @@
++ 
++     #Add dynamic library
++     add_library(volk SHARED $<TARGET_OBJECTS:volk_obj>)
++-    target_link_libraries(volk ${volk_libraries})
+++    target_link_libraries(volk ${volk_libraries} m)
++     target_include_directories(volk
++         PUBLIC ${PROJECT_BINARY_DIR}/include
++         PUBLIC ${PROJECT_SOURCE_DIR}/include
++@@ -584,7 +584,7 @@
++ else()
++     #create the volk runtime library
++     add_library(volk SHARED ${volk_sources})
++-    target_link_libraries(volk ${volk_libraries})
+++    target_link_libraries(volk ${volk_libraries} m)
++     include_directories(volk
++         PUBLIC ${PROJECT_BINARY_DIR}/include
++         PUBLIC ${PROJECT_SOURCE_DIR}/include
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..08ebf349db418488db0ef07faf8035293b836072
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,69 @@@
++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(-)
++
++diff --git a/include/volk/volk_neon_intrinsics.h b/include/volk/volk_neon_intrinsics.h
++index 3f121a8..ef42dea 100644
++--- 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>
++ 
++ static inline float32x4_t
++@@ -119,4 +120,5 @@ _vlog2q_f32(float32x4_t aval)
++   return log2_approx;
++ }
++ 
+++#endif /*LV_HAVE_NEON*/
++ #endif /* INCLUDE_VOLK_VOLK_NEON_INTRINSICS_H_ */
++diff --git a/kernels/volk/volk_32f_8u_polarbutterflypuppet_32f.h b/kernels/volk/volk_32f_8u_polarbutterflypuppet_32f.h
++index 49a3076..4f84352 100644
++--- 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
++diff --git a/kernels/volk/volk_8u_x2_encodeframepolar_8u.h b/kernels/volk/volk_8u_x2_encodeframepolar_8u.h
++index 6a605c6..ff729a8 100644
++--- a/kernels/volk/volk_8u_x2_encodeframepolar_8u.h
+++++ b/kernels/volk/volk_8u_x2_encodeframepolar_8u.h
++@@ -58,8 +58,6 @@ encodepolar_single_stage(unsigned char* frame_ptr, const unsigned char* temp_ptr
++   }
++ }
++ 
++-#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 @@ volk_8u_x2_encodeframepolar_8u_generic(unsigned char* frame, unsigned char* temp
++     --stage;
++   }
++ }
++-#endif /* LV_HAVE_GENERIC */
++ 
++ #ifdef LV_HAVE_SSSE3
++ #include <tmmintrin.h>
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..860bf41be21502559b91d6b0c28e7e199d5ccc5b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,64 @@@
++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
++@@ -250,6 +250,13 @@
++ endif(NOT CPU_IS_x86)
++ 
++ ########################################################################
+++# 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
++ ########################################################################
++@@ -404,7 +411,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 "neon")
++ 
++   set(FULL_C_FLAGS "${CMAKE_C_FLAGS}" "${CMAKE_CXX_COMPILER_ARG1}")
++@@ -414,7 +421,7 @@
++   # set up the assembler flags and include the source files
++   foreach(ARCH ${ASM_ARCHS_AVAILABLE})
++       string(REGEX MATCH "${ARCH}" ASM_ARCH "${available_archs}")
++-    if( ASM_ARCH STREQUAL "neon" )
+++    if(( ASM_ARCH STREQUAL "neon" ) OR ( ${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7"))
++       message(STATUS "---- Adding ASM files") # we always use ATT syntax
++       message(STATUS "-- Detected neon architecture; enabling ASM")
++       # setup architecture specific assembler flags
++@@ -433,7 +440,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})
++@@ -441,7 +448,7 @@
++       message(FATAL_ERROR "CMake >= 2.8.10 is required for ARM NEON support")
++     endif()
++   endforeach()
++-endif(${CMAKE_VERSION} VERSION_GREATER "2.8.9")
+++endif((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND NOT (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi"))
++ 
++ ########################################################################
++ # Handle orc support
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b3f65ad312d9b978c66218623596a20fc284c712
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,12 @@@
++0002-Added-an-AVX-protokernel-for-volk_32fc_x2_32f_square.patch
++0003-extracted-variables-for-the-source-real-and-imaginar.patch
++0004-fixed-a-buffer-over-read-and-over-write-in-volk_32fc.patch
++0005-cmake-Fix-endif-to-match-if.patch
++0006-Add-sys-time.h-header-copied-from-gnuradio-to-fix-Wi.patch
++0007-Fix-compile-on-Windows-by-avoiding-min-max-macros-in.patch
++0008-Fix-add_test-for-Windows.patch
++0009-Fix-32u_reverse_32u-for-ARM.patch
++native-armv7-build-support
++make-acc-happy
++sort-cmake-glob-lists
++libm-link
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..eeefb5a4213d7955c5c59ddafa61f6b9b01cff75
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++From 9d32c341220aeb5a07011b7ef349f8c606941ee4 Mon Sep 17 00:00:00 2001
++From: "A. Maitland Bottoms" <bottoms@debian.org>
++Date: Tue, 27 Mar 2018 22:04:11 -0400
++Subject: [PATCH 3/6] sort cmake glob lists
++
++File lists are generated in a CMakeLists.txt file with file(GLOB ...), which varies
++with the readdir() order. Sorting the lists should help make reproducible builds.
++---
++ lib/CMakeLists.txt | 3 +++
++ 1 file changed, 3 insertions(+)
++
++--- a/lib/CMakeLists.txt
+++++ b/lib/CMakeLists.txt
++@@ -328,8 +328,11 @@
++ 
++ #dependencies are all python, xml, and header implementation files
++ file(GLOB xml_files ${PROJECT_SOURCE_DIR}/gen/*.xml)
+++list(SORT xml_files)
++ file(GLOB py_files ${PROJECT_SOURCE_DIR}/gen/*.py)
+++list(SORT py_files)
++ file(GLOB h_files ${PROJECT_SOURCE_DIR}/kernels/volk/*.h)
+++list(SORT h_files)
++ 
++ macro(gen_template tmpl output)
++     list(APPEND volk_gen_sources ${output})
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9b64527b73250c65df64ca6112dbf0e4b00cc486
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,201 @@@
++<!DOCTYPE html>
++<html lang="en">
++<head>
++    <meta charset="utf-8">
++    <title>Vector Optimized Library of Kernels</title>
++    <link href="http://libvolk.org/theme/css/bootstrap.min.css" rel="stylesheet">
++    <link href="http://libvolk.org/theme/css/material.css" rel="stylesheet">
++    <link href="http://libvolk.org/theme/css/font-awesome.min.css" rel="stylesheet">
++    <meta name="viewport" content="width=device-width, initial-scale=1">
++    <link rel="icon" type="image/png" href="http://libvolk.org/theme/assets/volk.png" />
++</head>
++<body>
++<div class="header-panel shadow-z-2 row" style="background-color:#e0f7fa;">
++    <div class="row-fluid">
++    <div class="col-xs-3" style="display: inline-block; vertical-align: middle; float: none;">
++        <a href="http://libvolk.org">
++        <img src="http://libvolk.org/theme/assets/volk_wolves_only.png" alt="VOLK logo" class="center-block" height="64">
++        </a>
++    </div><!--
++    --><div class="col-xs-9" style="display: inline-block; vertical-align: middle; float: none;">
++    <div class="text-center" style="height: 64; vertical-align: bottom;">
++        <h2>
++        <a href="http://libvolk.org">
++            Vector-Optimized Library of Kernels
++        </a> :
++Release v1.4
++        </h2>
++    </div>
++    </div>
++    </div>
++</div>
++<div class="container-fluid">
++    <div class="row">
++        <nav class="col-sm-3 menu">
++        <div class="panel panel-primary">
++            <div class="panel-heading">
++                <h4>Information</h4>
++            </div>
++            <div class="panel-body">
++            <ul class="nav nav-pills nav-stacked">
++                <li><a href="http://libvolk.org/about.html">About</a></li>
++                <li><a href="http://libvolk.org/category/news.html">News</a></li>
++                <li><a href="http://libvolk.org/platforms.html">Supported Platforms</a></li>
++                <li><a href="http://libvolk.org/comparisons.html">Related Libraries</a></li>
++            </ul>
++            </div>
++        </div>
++        <div class="panel panel-primary">
++            <div class="panel-heading">
++                <h4>Source Code</h4>
++            </div>
++            <div class="panel-body">
++            <ul class="nav nav-pills nav-stacked">
++                <li><a href="releases.html">Releases</a></li>
++                <li><a href="https://github.com/gnuradio/volk">Code Repository</a></li>
++                <li><a href="doxygen/index.html">Documentation</a></li>
++            </ul>
++            </div>
++        </div>
++        <div class="panel panel-primary">
++            <div class="panel-heading">
++                <h4>Community</h4>
++            </div>
++            <div class="panel-body">
++            <ul class="nav nav-pills nav-stacked">
++                <li><a href="lists.html">Mailing List and IRC</a></li>
++                <li><a href="bugs.html">Bug Reports</a></li>
++                <li><a href="contributing.html">Contributing</a></li>
++            </ul>
++            </div>
++        </div>
++
++        </nav>
++
++        <div id="content" class="col-sm-9">
++<div class="pages col-sm-12">
++  <div class="well page active">
++    <h1>VOLK v1.4</h1>
++<p>A lot of really good changes came to VOLK with v1.4. It wouldn't have been possible without the following contributors:</p>
++<h2>Contributors</h2>
++<ul>
++<li>Andrej Rode <a href="mailto:mail@andrejro.de">mail@andrejro.de</a></li>
++<li>Bernhard M. Wiedemann <a href="mailto:bwiedemann@suse.de">bwiedemann@suse.de</a></li>
++<li>Carles Fernandez <a href="mailto:carles.fernandez@gmail.com">carles.fernandez@gmail.com</a></li>
++<li>Christoph Mayer <a href="mailto:Christoph.Mayer@cern.ch">Christoph.Mayer@cern.ch</a></li>
++<li>Damian Miralles <a href="mailto:damian.miralles@colorado.edu">damian.miralles@colorado.edu</a></li>
++<li>Douglas Anderson <a href="mailto:douglas.j.anderson@gmail.com">douglas.j.anderson@gmail.com</a></li>
++<li>hcab14 <a href="mailto:hcab14@gmail.com">hcab14@gmail.com</a></li>
++<li>Johannes Demel <a href="mailto:ufcsy@student.kit.edu">ufcsy@student.kit.edu</a></li>
++<li>Josh Blum <a href="mailto:josh@joshknows.com">josh@joshknows.com</a></li>
++<li>luz.paz <a href="mailto:luzpaz@users.noreply.github.com">luzpaz@users.noreply.github.com</a></li>
++<li>Magnus Lundmark <a href="mailto:magnus@skysense.io">magnus@skysense.io</a></li>
++<li>Marcus Müller <a href="mailto:marcus@hostalia.de">marcus@hostalia.de</a></li>
++<li>Michael Dickens <a href="mailto:michael.dickens@ettus.com">michael.dickens@ettus.com</a></li>
++<li>Nathan West <a href="mailto:nwest@deepsig.io">nwest@deepsig.io</a></li>
++<li>Nick Foster <a href="mailto:bistromath@gmail.com">bistromath@gmail.com</a></li>
++<li>Paul Cercueil <a href="mailto:paul.cercueil@analog.com">paul.cercueil@analog.com</a></li>
++<li>Stefan Wunsch <a href="mailto:stefan.wunsch@student.kit.edu">stefan.wunsch@student.kit.edu</a></li>
++</ul>
++<h2>Changes</h2>
++<p>Generally, there are a lot of kernel changes and some minor dependency changes. I'm trying to remove boost as a dependency and we've introduced mako templates rather than the old Cheetah-templates to keep in line with GNU Radio. There are also several new CI files that support appveyor, travis-ci, and gitlab. Right now all pull requests must pass travis-ci.</p>
++<h3>Kernels</h3>
++<p>The easiest way to show these changes is simply with two lists:</p>
++<p>New kernels</p>
++<ul>
++<li><code>32 bit reversal</code></li>
++<li><code>32f_s32f_s32f_mod_range_32f</code></li>
++<li>double precision (<code>64f_XXX</code>...)<ul>
++<li>multiply</li>
++<li>add</li>
++</ul>
++</li>
++<li><code>32f_64f_multiply_64f</code></li>
++<li><code>add 32f_64f_add_64f</code></li>
++<li><code>32fc_x2_add_32fc</code></li>
++</ul>
++<p>New proto-kernels by architecture</p>
++<p>AVX(2):</p>
++<p>Note that in some cases an unaligned version was added where an aligned version already existed</p>
++<ul>
++<li><code>volk_64f_convert_32f</code></li>
++<li><code>volk_64f_x2_max_64f</code></li>
++<li><code>volk_64f_x2_min_64f</code></li>
++<li><code>volk_32f_x2_add_32f</code></li>
++<li><code>32i_x2_and_32i</code></li>
++<li><code>32i_x2_or_32i</code></li>
++<li>conjugate dot products</li>
++<li><code>32f_accumulator_32f</code></li>
++<li><code>stddev_and_mean</code></li>
++<li><code>volk_32f_*</code> kernels</li>
++<li><code>32f_x2_divide_32f</code></li>
++<li><code>32f_x2_dot_prod_16i</code></li>
++<li><code>volk_32f_s32f_normalize</code></li>
++<li><code>volk_32f_s32f_stddev_32f</code></li>
++<li><code>volk_32f_sqrt_32f</code></li>
++<li><code>volk_32f_x2_max_32f</code></li>
++<li><code>volk_32f_x2_min_32f</code></li>
++<li><code>32f_x2_s32f_interleave_16ic</code></li>
++<li><code>32f_x2_subtract_32f</code></li>
++<li><code>32f_x2_s32f_interleave_16ic</code></li>
++<li><code>32f_x2_subtract_32f</code></li>
++<li><code>32f_x2_subtract_32f</code></li>
++<li><code>32f_x2_s32f_interleave_16ic</code></li>
++<li><code>volk_8ic_s32f_deinterleave_*</code></li>
++<li><code>32f_log2_32f</code></li>
++<li><code>volk_32f_s32f_convert_8i</code> and <code>16i</code></li>
++</ul>
++<p>NEON:</p>
++<ul>
++<li>move all neonasm to aligned protokernels</li>
++<li>added ARM version of volk_32u_reverse_32u (RBIT)</li>
++<li><code>volk_32fc_x2_divide_32fc</code></li>
++<li><code>volk_32fc_32f_add_32fc</code></li>
++<li><code>volk_32f_x2_divide_32f</code></li>
++<li><code>volk_8i_s32f_convert_32f</code></li>
++</ul>
++<p>Additionally, there are new protokernel intrinsics available for use in writing new kernels.</p>
++<p>Then, we also had some general kernel and protokernel bug fixes and using proper type-named C functions which happened to increase performance:</p>
++<p>The polarbutterfly went through some heavy refactoring and bug fixes as well as adding an AVX version.
++Fix GH issue #139 for <code>32fc_index_max_*</code> kernels resulting in a slightly wrong index being returned.
++Fix bug 106 (volk_64u_popcnt bug in generic implementation)</p>
++<h3>CI and Builds</h3>
++<p>As previously mentioned there are appveyor, travis-ci, and gitlab CI files available. There is a travis-ci instance checking all pull requests at https://travis-ci.org/gnuradio/volk/ and a gitlab mirror running CI checks at https://gitlab.com/n-west/volk.</p>
++<p>While working on these CI files the kernel tests were split in to individual ctest targets so that each kernel is its own test rather than running them as a monolithic binary. This allows parallel testing, but mostly enables easier diagnostics when a test fails. The readme is now a markdown file that renders well on GitHub and Gitlab along with the travis-ci status as a badge.</p>
++<p>Within this release two tools were run that reorganized includes and fixed a bunch of typos within code.</p>
++<p>As part of the attempt to build VOLK without boost a bunch of app and build utilities were written to replace boost-code. This shouldnt be visible to the user, but will hopefully make future builds easier and smaller with fewer build and run-time dependencies. Builds with python 2.7 and 3 should work-- although six is required for python2.7 support.</p>
++<p>Some build changes make it easier to do a relocatable build and order all files before building so that building from a particular revision (from now on) should be reproducible across machines building the same architectures. To use a relocatable install use the VOLK_PREFIX environment variable. This should support snaps (Canonical packaging environment).</p>
++<h3>Modtool</h3>
++<div class="highlight"><pre><span class="n">modtool</span><span class="o">:</span> <span class="n">update</span> <span class="n">the</span> <span class="n">cmake</span> <span class="n">find</span> <span class="n">module</span> <span class="k">for</span> <span class="n">volk</span> <span class="n">mods</span>
++<span class="n">modtool</span><span class="o">:</span> <span class="n">deconflict</span> <span class="n">module</span> <span class="k">include</span> <span class="n">guards</span> <span class="n">from</span> <span class="n">main</span> <span class="n">volk</span>
++</pre></div>
++  </div>
++</div>
++
++        </div>
++    </div>
++</div>
++<div class="container-fluid">
++<footer class="footer text-center">
++Website content copyright &copy; 2015 Nathan West.<br>
++This page is licensed under a <a href="https://creativecommons.org/licenses/by-nd/4.0/legalcode">Creative Commons Attribution-NoDerivs 4.0 International</a><br>
++The VOLK logo copyright &copy; Marcus Müller.
++</footer>
++</div>
++
++<!-- jQuery -->
++<script src="theme/js/jquery.min.js"></script>
++
++<!-- Bootstrap js -->
++<script src="theme/js/bootstrap.min.js"></script>
++
++<!-- Material and ripple js -->
++<script src="theme/js/material.min.js"></script>
++<script>
++            $(document).ready(function() {
++                $.material.init();
++            });
++</script>
++
++</body>
++</html>
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d58ca4bf7bc34c33a2fd682fdd8db8e8ecbfe102
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,17 @@@
++#!/usr/bin/make -f
++DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
++export DEB_HOST_MULTIARCH
++DH_VERBOSE=1
++export DH_VERBOSE
++
++%:
++      dh $@ --with python2
++
++override_dh_auto_configure:
++      dh_auto_configure -- -DLIB_SUFFIX="/$(DEB_HOST_MULTIARCH)" -DPYTHON_EXECUTABLE=/usr/bin/python
++
++override_dh_auto_test:
++      - dh_auto_test -- CTEST_TEST_TIMEOUT=60
++
++override_dh_acc:
++      - dh_acc
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bc68a006fbe0efb5546f8f70ea442dcc416d877c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++debian/libvolk1-dev.abi.tar.gz.amd64
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f6d7f93d8a95356e279850b59ab42e5ba964f520
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,52 @@@
++-----BEGIN PGP PUBLIC KEY BLOCK-----
++Version: GnuPG v1
++
++mQINBFcTzE0BEACWkwa+pAwjBPwUvL8E9adB6sFlH/bw/3Dj2Vr/bXDkNrZDEQzc
++C3wmoX3AZo0GSWpjlmlOGOPy6u4wZxEPfilKs+eDNnuIZN3gmLoRTThgbbrnH9bw
++kIaUMiUn8VJ0pk5ULaygG6APxl4EOVrMfzgRnxmIbUfggiBLaW/xq2a/BaVrUAuA
++oHv1GTGJkwcK0RfYigJMfZl9iHVJVopffexBt1hOeGYxiyLXSDWjOhLLVzhlfgTE
++T9YdLGyjoXFmImsCvkAA2MA52e5YGUQIBrqmiXdHFit7sve0e5Dw0aLyuTnMR0MO
++a2eIHWU6TYYv5GTJPzjBbWM1pRCgtupNilg2+RfN0tOTp27RQnUtgcCo26uBU+jV
++pyvnidpDGnuUBL3WNLZlUiqmiZs8Hc9BGNw3rKB37sUOMXz6XessnhRspXC1Mot4
++V3I1NoKwb0wjgqlkAYIGCCSuySosC5HH2OssopBUH6U5QXjFp11QbP2e+QkvKPKA
++S9V4ouSMrIDZ4krtu6QFDYsHa0zZ54yRl3O4UpfISlz3yngO2eKM019C5n51kd62
++Ia00rtx8ypvUxMy67PTEFdCKLJ6Ua/hEGcpxGygFMRa0pjHSrC6e9LvPudK92jsq
++qO0TjhUytig5k9YPoEa2JGn/kqP+K1HGAdJPay/HmcNTZWh0hoamhuJ6NwARAQAB
++tCZOYXRoYW4gV2VzdCA8bmF0aGFuLndlc3RAZ251cmFkaW8ub3JnPokCPgQTAQIA
++KAUCVxPMTQIbAwUJA8JnAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQOFMj
++7mQCCR20CA//VJfDu8W8BI/44JkucC+XBVqwOcfg/rcSHflgi0mNNz7hyJ+idwcB
++JVFSbhSpXucl6baJ0nDe8gcMuGFLyF4uLwCByX3ExDAnFL3Mu/jIyOUX8TGudZU7
++wTEhzOLPxmXfbo8lw3TETC1Xsl8g1gU/KBJnTl3WbdGZUlKW6fP0TR5BMdYskNHm
++CCqAvXWniZwjSX/jlpWremfTU9i9DUad8ufcdJue7uiZRNq4JLaWmSbtGNzDzJIq
++6csHc3GFcd0Q/LDEDcm1AG081yLEmRnbTstZo+xW27yaRyoe1Dpm9ehsl19dVaO7
++9ek2CEarqHjtRfO1MJMSBGiaS1lvujukYKZQRGNDKemDJwuQCVkxBMEef7SNX8XG
++2OPTARVp0hlrhMVFUk3hScekrKobq81YyCfWxBxxjRWySdInFhuT29cxxRLUxb69
++3MKLzFJRlq+oEbWJN8QGqILQ785TZA8MdnMsGywPk43x9spgYbwPhtJYb/Aes9B9
++NFkZ6EzVtzV7ztITuGhefRxt3eEmdFYNDHooWNFQdifcUgLoBgKOkP+oHOc+9mx7
++6CDN9ZJTHb87W3ISw7SLI4YcMPYipEN5g51ceInDc3kXFYQ+EqU691kOuGNtx3ov
++qqvPm9PBR00GSwhLQt7s127MFpYx9+in87+UMBFXyo/VstVBPQW2GLq5Ag0EVxPM
++TQEQAK+fh+ckP728ZVRn5mr8PtsG3gktyS6LlH7EjMsHnvQR16EVAjn5G915OQUY
++Bk6yk9l0VRX0NLautc41NwVlHI4FYBBjz6mEnDocvo+BT0g5KYTyjJPOxmEzgVZW
++3Zp/jPjK5Z9YZTCIalrk2iHVQCe8fFCnaXNGNQoku1jBPRUOOTI979LWPx4d7MI0
++7Yy+8xp5ogCrcTxea9VrMeXqnXzvy2peiceZDlvNmcEUCz222i6t2k9rUwY0+ozg
++TbsorE42h4B+a49ylY4zOX9fTPfsUj59/z/ilrxZy2qP2lBIFC+wFphKF3Qkilxd
++dnVGTsb9oKCQjuMcvh7MR27RVGLjW1pVMWGMmXBkIDu0U88Hn91XKfm1ZmWgksoU
++MC7BZocvUxIKnV+WiKy9ooP/HSzgP7ggdG+16B3yDdicB0DiBFEKZEmIWCBt5NXR
++q853WwFSH7xcrEOTXnqtkRUX4+obdwQhtqTueSC4xqX0+YVixZUC6ewqueFmPn+l
++WItCV7XU67NXTJNRC3i4kIF+hpT5YWtx56NuNcvhN25bZr1frTChOuXcCBNrOU+b
++yo2wpXAcfq+YmnaP0ZFFh7wKRi4leEPL/+JyitQbvSQU4Lejwanzvv7Ug1j4qZo1
++A6WSxXYUWJY5rhh8nWYtJJOn5Wj4Y3gWa1taUpYw1g2lf0o5ABEBAAGJAiUEGAEC
++AA8FAlcTzE0CGwwFCQPCZwAACgkQOFMj7mQCCR2uXRAAiBsOfqp+QuQqO3OPW8OZ
++I2+JNbaaFEC1TorUhGs5XiT4wKyn1wDni4mavO4kJ8nK4Zc1qBYWeMOClj6JySJL
++yf0aVTjLyn+4Q4jt/9Dmn15wbOWZvdSICipfcLWmPLYniizsJWA4Mqoefcztmyxk
++FrJZ+Vri6MH5PxVuZjHhOUVfXIsqRhqqrpRjVnjzGvNxLgP3aLHfQPim/jbxaeRK
++oVtDNDLA+1nwdpZ8Hehe5OVfUKWuz1DXrdM0eY7pTRcms8+7y//AXpRqygH7TLx5
++mXavdmAzgYcamQGfu/K4Mq9Bkgr1BNasgkxnPu+J0Z4jO9HsRBCJWf2BLKXmYedD
++5t0LR8bJHUTV7lsIifo0Ev47qsk1QX41KSKPAMwSzmtTLA0wzPJrkUEeVgm075N7
++btLneqw5EyDcz3pJ7aD3HceWh+HZOREnfYXyMLxWTND7SKx0k6nmM8xasYHP0/6y
++mR8picMjbPlyoETe6B6yKi5rDjOrDwrKqBjulcUHsRhjAAUUI6IHgj4v5gCfTPS7
++WrV98icGSHYnuxV40NT8Nt0lWNrPJhIUm1nu3UkEInznxMii1h6ga6REE/TJsStD
++C46x7fsiH4HkK1FJ+owoLhsVQo0OE4nWh8lWIBhTpR4wxThwfVHKt/H12st3tHuI
++CLIM6szb01rYgHTn9/vDgJE=
++=MlbD
++-----END PGP PUBLIC KEY BLOCK-----
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e8d6efdbbcbde3a07e31471d786985614a36aaad
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,45 @@@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.10.
++.TH VOLK-CONFIG-INFO "1" "July 2014" "volk-config-info 0.1" "User Commands"
++.SH NAME
++volk-config-info \- pkgconfig-like tool for Vector Optimized Library of Kernels 0.1
++.SH DESCRIPTION
++.SS "Program options: volk-config-info [options]:"
++.TP
++\fB\-h\fR [ \fB\-\-help\fR ]
++print help message
++.TP
++\fB\-\-prefix\fR
++print VOLK installation prefix
++.TP
++\fB\-\-builddate\fR
++print VOLK build date (RFC2822 format)
++.TP
++\fB\-\-cc\fR
++print VOLK C compiler version
++.TP
++\fB\-\-cflags\fR
++print VOLK CFLAGS
++.TP
++\fB\-\-all\-machines\fR
++print VOLK machines built into library
++.TP
++\fB\-\-avail\-machines\fR
++print VOLK machines the current platform can use
++.TP
++\fB\-\-machine\fR
++print the VOLK machine that will be used
++.TP
++\fB\-v\fR [ \fB\-\-version\fR ]
++print VOLK version
++.SH "SEE ALSO"
++The full documentation for
++.B volk-config-info
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B volk-config-info
++programs are properly installed at your site, the command
++.IP
++.B info volk-config-info
++.PP
++should give you access to the complete manual.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..752e7f53d2d30c2dccf506e7423df16eac02a1c8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,112 @@@
++.TH GNURADIO "1" "August 2013" "volk_modtool 3.7" "User Commands"
++.SH NAME
++volk_modtool \- tailor VOLK modules
++.SH DESCRIPTION
++The volk_modtool tool is installed along with VOLK as a way of helping
++to construct, add to, and interogate the VOLK library or companion
++libraries.
++.P
++volk_modtool is installed into $prefix/bin.
++.P
++VOLK modtool enables creating standalone (out-of-tree) VOLK modules
++and provides a few tools for sharing VOLK kernels between VOLK
++modules.  If you need to design or work with VOLK kernels away from
++the canonical VOLK library, this is the tool.  If you need to tailor
++your own VOLK library for whatever reason, this is the tool.
++.P
++The canonical VOLK library installs a volk.h and a libvolk.so.  Your
++own library will install volk_$name.h and libvolk_$name.so.  Ya Gronk?
++Good.
++.P
++There isn't a substantial difference between the canonical VOLK
++module and any other VOLK module.  They're all peers.  Any module
++created via VOLK modtool will come complete with a default
++volk_modtool.cfg file associating the module with the base from which
++it came, its distinctive $name and its destination (or path).  These
++values (created from user input if VOLK modtool runs without a
++user-supplied config file or a default config file) serve as default
++values for some VOLK modtool actions.  It's more or less intended for
++the user to change directories to the top level of a created VOLK
++module and then run volk_modtool to take advantage of the values
++stored in the default volk_modtool.cfg file.
++.P
++Apart from creating new VOLK modules, VOLK modtool allows you to list
++the names of kernels in other modules, list the names of kernels in
++the current module, add kernels from another module into the current
++module, and remove kernels from the current module.  When moving
++kernels between modules, VOLK modtool does its best to keep the qa
++and profiling code for those kernels intact.  If the base has a test
++or a profiling call for some kernel, those calls will follow the
++kernel when VOLK modtool adds that kernel.  If QA or profiling
++requires a puppet kernel, the puppet kernel will follow the original
++kernel when VOLK modtool adds that original kernel.  VOLK modtool
++respects puppets.
++.P
++======================================================================
++.P
++.SH Installing a new VOLK Library:
++.P
++Run the command "volk_modtool -i". This will ask you three questions:
++.P
++  name: // the name to give your VOLK library: volk_<name>
++  destination: // directory new source tree is built under -- must exists.
++               // It will create <directory>/volk_<name>
++  base: // the directory containing the original VOLK source code
++.P
++This will build a new skeleton directory in the destination provided
++with the name volk_<name>. It will contain the necessary structure to
++build:
++.P
++  mkdir build
++  cd build
++  cmake -DCMAKE_INSTALL_PREFIX=/opt/volk ../
++  make
++  sudo make install
++.P
++Right now, the library is empty and contains no kernels. Kernels can
++be added from another VOLK library using the '-a' option. If not
++specified, the kernel will be extracted from the base VOLK
++directory. Using the '-b' allows us to specify another VOLK library to
++use for this purpose.
++.P
++  volk_modtool -a -n 32fc_x2_conjugate_dot_prod_32fc
++.P
++This will put the code for the new kernel into
++<destination>/volk_<name>/kernels/volk_<name>/
++.P
++Other kernels must be added by hand. See the following webpages for
++more information about creating VOLK kernels:
++  http://gnuradio.org/doc/doxygen/volk_guide.html
++  http://gnuradio.org/redmine/projects/gnuradio/wiki/Volk
++.P
++======================================================================
++.P
++.SH OPTIONS
++.P
++Options for Adding and Removing Kernels:
++  -a, --add_kernel
++       Add kernel from existing VOLK module. Uses the base VOLK module
++       unless -b is used. Use -n to specify the kernel name.
++       Requires: -n.
++       Optional: -b
++.P
++  -A, --add_all_kernels
++       Add all kernels from existing VOLK module. Uses the base VOLK
++       module unless -b is used.
++       Optional: -b
++.P
++  -x, --remove_kernel
++       Remove kernel from module. 
++       Required: -n.
++       Optional: -b
++.P
++Options for Listing Kernels:
++  -l, --list
++       Lists all kernels available in the base VOLK module.
++.P
++  -k, --kernels 
++       Lists all kernels in this VOLK module.
++.P
++  -r, --remote-list
++       Lists all kernels in another VOLK module that is specified
++       using the -b option.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..405facbf04075e7ec73f9429398e46a5a51857c7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++.TH UHD_FFT "1" "March 2012" "volk_profile 3.5" "User Commands"
++.SH NAME
++volk_profile \- Quality Assurance application for libvolk functions
++.SH DESCRIPTION
++Writes profile results to a file.
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d7552686d638484befed9916f5eca166f013e6c9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++version=3
++opts="pgpsigurlmangle=s/$/.asc/" \
++  http://libvolk.org/releases/volk-(\d\S*)\.tar\.gz