summaryrefslogtreecommitdiff
path: root/volk/lib/qa_volk.cc
diff options
context:
space:
mode:
authorEric Blossom2010-12-21 13:31:58 -0800
committerEric Blossom2010-12-21 13:31:58 -0800
commit75b650ef2506fe5c607517a3d5188b0705f60fde (patch)
tree99cb6fd6adc3e91edc832cbaee236d2fe30fa3fd /volk/lib/qa_volk.cc
parent1984aab345857296564e174395cf3af1375e1469 (diff)
parented78ba5d9999bbe50507373a1aa2877ef0da64c6 (diff)
downloadgnuradio-75b650ef2506fe5c607517a3d5188b0705f60fde.tar.gz
gnuradio-75b650ef2506fe5c607517a3d5188b0705f60fde.tar.bz2
gnuradio-75b650ef2506fe5c607517a3d5188b0705f60fde.zip
Merge branch 'next' into guile.
Passes distcheck. * next: (32 commits) volk: Fix for popcnt's 64/32-bit issues. Using a copy of config.guess and config.sub instead of sym links. Including time header to qa files. Changed python env variable to more globally usable version. gr_uhd: Quick fix for make distcheck failures if UHD is not installed. PFB resampler: fix it this way to avoid the signed/unsigned warning. PFB resampler: fixes bug where filter could be looking past the number of inputs. resampler PFB: Sets relative rate when rate is changed. Create method to set rate on pfb_arb_resamp after it has been created. Allow it to be called from GRC. volk: fix for running 32-bit OS on 64-bit processor. System is correctly identified as 32-bit and compiles with the correct flags. volk: changing the path variables again. This works on my various systems tested. Using abs_ path names failed on Ubuntu 8.04 32-bit. volk: May be a hack, but it was required for my 32-bit Fedora 13 to work. volk: Removing unnecessary shell script; last commit takes care if its functions. volk: Fixing build system to handle making volk_mktables, volk_tables.h, and volk_config.h instead of a standalone shell script. volk: readding 16sc_magnitude_32f_sse with fix for SSE hadd_ps error. volk: Adding a few more generic-only test cases. volk: adding generic QA test for 16sc_magnitude_32f. volk: modified the configure scripts to output which architectures it will be building based on the configure tests. uhd: update notes in grc blocks for addressing scheme volk: Removing erroneous SSE function that actually usese an SSE3 intrin (mm_hadd_ps). ...
Diffstat (limited to 'volk/lib/qa_volk.cc')
-rw-r--r--volk/lib/qa_volk.cc211
1 files changed, 211 insertions, 0 deletions
diff --git a/volk/lib/qa_volk.cc b/volk/lib/qa_volk.cc
new file mode 100644
index 000000000..c3c27b69b
--- /dev/null
+++ b/volk/lib/qa_volk.cc
@@ -0,0 +1,211 @@
+/*
+ * Copyright 2008 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * GNU Radio 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, or (at your option)
+ * any later version.
+ *
+ * GNU Radio 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 GNU Radio; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/*
+ * This class gathers together all the test cases for the example
+ * directory into a single test suite. As you create new test cases,
+ * add them here.
+ */
+
+#include <qa_volk.h>
+#include <qa_16s_quad_max_star_aligned16.h>
+#include <qa_32fc_dot_prod_aligned16.h>
+#include <qa_32fc_square_dist_aligned16.h>
+#include <qa_32fc_square_dist_scalar_mult_aligned16.h>
+#include <qa_32f_sum_of_poly_aligned16.h>
+#include <qa_32fc_index_max_aligned16.h>
+#include <qa_32f_index_max_aligned16.h>
+#include <qa_32fc_conjugate_dot_prod_aligned16.h>
+#include <qa_16s_permute_and_scalar_add_aligned16.h>
+#include <qa_16s_branch_4_state_8_aligned16.h>
+#include <qa_16s_max_star_horizontal_aligned16.h>
+#include <qa_16s_max_star_aligned16.h>
+#include <qa_16s_add_quad_aligned16.h>
+#include <qa_32f_add_aligned16.h>
+#include <qa_32f_subtract_aligned16.h>
+#include <qa_32f_max_aligned16.h>
+#include <qa_32f_min_aligned16.h>
+#include <qa_64f_max_aligned16.h>
+#include <qa_64f_min_aligned16.h>
+#include <qa_32s_and_aligned16.h>
+#include <qa_32s_or_aligned16.h>
+#include <qa_32f_dot_prod_aligned16.h>
+#include <qa_32f_dot_prod_unaligned16.h>
+#include <qa_32f_fm_detect_aligned16.h>
+#include <qa_32fc_32f_multiply_aligned16.h>
+#include <qa_32fc_multiply_aligned16.h>
+#include <qa_32f_divide_aligned16.h>
+#include <qa_32f_multiply_aligned16.h>
+#include <qa_32f_sqrt_aligned16.h>
+#include <qa_8sc_multiply_conjugate_16sc_aligned16.h>
+#include <qa_8sc_multiply_conjugate_32fc_aligned16.h>
+#include <qa_32u_popcnt_aligned16.h>
+#include <qa_64u_popcnt_aligned16.h>
+#include <qa_16u_byteswap_aligned16.h>
+#include <qa_32u_byteswap_aligned16.h>
+#include <qa_64u_byteswap_aligned16.h>
+#include <qa_32f_normalize_aligned16.h>
+#include <qa_16sc_deinterleave_16s_aligned16.h>
+#include <qa_16sc_deinterleave_32f_aligned16.h>
+#include <qa_16sc_deinterleave_real_16s_aligned16.h>
+#include <qa_16sc_deinterleave_real_32f_aligned16.h>
+#include <qa_16sc_deinterleave_real_8s_aligned16.h>
+#include <qa_16sc_magnitude_16s_aligned16.h>
+#include <qa_16sc_magnitude_32f_aligned16.h>
+#include <qa_32fc_deinterleave_32f_aligned16.h>
+#include <qa_32fc_deinterleave_64f_aligned16.h>
+#include <qa_32fc_deinterleave_real_16s_aligned16.h>
+#include <qa_32fc_deinterleave_real_32f_aligned16.h>
+#include <qa_32fc_deinterleave_real_64f_aligned16.h>
+#include <qa_32fc_magnitude_16s_aligned16.h>
+#include <qa_32fc_magnitude_32f_aligned16.h>
+#include <qa_32f_interleave_16sc_aligned16.h>
+#include <qa_32f_interleave_32fc_aligned16.h>
+#include <qa_8sc_deinterleave_16s_aligned16.h>
+#include <qa_8sc_deinterleave_32f_aligned16.h>
+#include <qa_8sc_deinterleave_real_16s_aligned16.h>
+#include <qa_8sc_deinterleave_real_32f_aligned16.h>
+#include <qa_8sc_deinterleave_real_8s_aligned16.h>
+#include <qa_16s_convert_32f_aligned16.h>
+#include <qa_16s_convert_32f_unaligned16.h>
+#include <qa_16s_convert_8s_aligned16.h>
+#include <qa_16s_convert_8s_unaligned16.h>
+#include <qa_32f_convert_16s_aligned16.h>
+#include <qa_32f_convert_16s_unaligned16.h>
+#include <qa_32f_convert_32s_aligned16.h>
+#include <qa_32f_convert_32s_unaligned16.h>
+#include <qa_32f_convert_64f_aligned16.h>
+#include <qa_32f_convert_64f_unaligned16.h>
+#include <qa_32f_convert_8s_aligned16.h>
+#include <qa_32f_convert_8s_unaligned16.h>
+#include <qa_32s_convert_32f_aligned16.h>
+#include <qa_32s_convert_32f_unaligned16.h>
+#include <qa_64f_convert_32f_aligned16.h>
+#include <qa_64f_convert_32f_unaligned16.h>
+#include <qa_8s_convert_16s_aligned16.h>
+#include <qa_8s_convert_16s_unaligned16.h>
+#include <qa_8s_convert_32f_aligned16.h>
+#include <qa_8s_convert_32f_unaligned16.h>
+#include <qa_32fc_32f_power_32fc_aligned16.h>
+#include <qa_32f_power_aligned16.h>
+#include <qa_32fc_atan2_32f_aligned16.h>
+#include <qa_32fc_power_spectral_density_32f_aligned16.h>
+#include <qa_32fc_power_spectrum_32f_aligned16.h>
+#include <qa_32f_calc_spectral_noise_floor_aligned16.h>
+#include <qa_32f_accumulator_aligned16.h>
+#include <qa_32f_stddev_aligned16.h>
+#include <qa_32f_stddev_and_mean_aligned16.h>
+
+CppUnit::TestSuite *
+qa_volk::suite()
+{
+ CppUnit::TestSuite *s = new CppUnit::TestSuite("volk");
+
+ s->addTest(qa_16s_quad_max_star_aligned16::suite());
+ s->addTest(qa_32fc_dot_prod_aligned16::suite());
+ s->addTest(qa_32fc_square_dist_scalar_mult_aligned16::suite());
+ s->addTest(qa_32fc_square_dist_aligned16::suite());
+ s->addTest(qa_32f_sum_of_poly_aligned16::suite());
+ s->addTest(qa_32fc_index_max_aligned16::suite());
+ s->addTest(qa_32f_index_max_aligned16::suite());
+ s->addTest(qa_32fc_conjugate_dot_prod_aligned16::suite());
+ s->addTest(qa_16s_permute_and_scalar_add_aligned16::suite());
+ s->addTest(qa_16s_branch_4_state_8_aligned16::suite());
+ s->addTest(qa_16s_max_star_horizontal_aligned16::suite());
+ s->addTest(qa_16s_max_star_aligned16::suite());
+ s->addTest(qa_16s_add_quad_aligned16::suite());
+ s->addTest(qa_32f_add_aligned16::suite());
+ s->addTest(qa_32f_subtract_aligned16::suite());
+ s->addTest(qa_32f_max_aligned16::suite());
+ s->addTest(qa_32f_min_aligned16::suite());
+ s->addTest(qa_64f_max_aligned16::suite());
+ s->addTest(qa_64f_min_aligned16::suite());
+ s->addTest(qa_32s_and_aligned16::suite());
+ s->addTest(qa_32s_or_aligned16::suite());
+ s->addTest(qa_32f_dot_prod_aligned16::suite());
+ s->addTest(qa_32f_dot_prod_unaligned16::suite());
+ s->addTest(qa_32f_fm_detect_aligned16::suite());
+ s->addTest(qa_32fc_32f_multiply_aligned16::suite());
+ s->addTest(qa_32fc_multiply_aligned16::suite());
+ s->addTest(qa_32f_divide_aligned16::suite());
+ s->addTest(qa_32f_multiply_aligned16::suite());
+ s->addTest(qa_32f_sqrt_aligned16::suite());
+ s->addTest(qa_8sc_multiply_conjugate_16sc_aligned16::suite());
+ s->addTest(qa_8sc_multiply_conjugate_32fc_aligned16::suite());
+ s->addTest(qa_32u_popcnt_aligned16::suite());
+ s->addTest(qa_64u_popcnt_aligned16::suite());
+ s->addTest(qa_16u_byteswap_aligned16::suite());
+ s->addTest(qa_32u_byteswap_aligned16::suite());
+ s->addTest(qa_64u_byteswap_aligned16::suite());
+ s->addTest(qa_32f_normalize_aligned16::suite());
+ s->addTest(qa_16sc_deinterleave_16s_aligned16::suite());
+ s->addTest(qa_16sc_deinterleave_32f_aligned16::suite());
+ s->addTest(qa_16sc_deinterleave_real_16s_aligned16::suite());
+ s->addTest(qa_16sc_deinterleave_real_32f_aligned16::suite());
+ s->addTest(qa_16sc_deinterleave_real_8s_aligned16::suite());
+ s->addTest(qa_16sc_magnitude_16s_aligned16::suite());
+ s->addTest(qa_16sc_magnitude_32f_aligned16::suite());
+ s->addTest(qa_32fc_deinterleave_32f_aligned16::suite());
+ s->addTest(qa_32fc_deinterleave_64f_aligned16::suite());
+ s->addTest(qa_32fc_deinterleave_real_16s_aligned16::suite());
+ s->addTest(qa_32fc_deinterleave_real_32f_aligned16::suite());
+ s->addTest(qa_32fc_deinterleave_real_64f_aligned16::suite());
+ s->addTest(qa_32fc_magnitude_16s_aligned16::suite());
+ s->addTest(qa_32fc_magnitude_32f_aligned16::suite());
+ s->addTest(qa_32f_interleave_16sc_aligned16::suite());
+ s->addTest(qa_32f_interleave_32fc_aligned16::suite());
+ s->addTest(qa_8sc_deinterleave_16s_aligned16::suite());
+ s->addTest(qa_8sc_deinterleave_32f_aligned16::suite());
+ s->addTest(qa_8sc_deinterleave_real_16s_aligned16::suite());
+ s->addTest(qa_8sc_deinterleave_real_32f_aligned16::suite());
+ s->addTest(qa_8sc_deinterleave_real_8s_aligned16::suite());
+ s->addTest(qa_16s_convert_32f_aligned16::suite());
+ s->addTest(qa_16s_convert_32f_unaligned16::suite());
+ s->addTest(qa_16s_convert_8s_aligned16::suite());
+ s->addTest(qa_16s_convert_8s_unaligned16::suite());
+ s->addTest(qa_32f_convert_16s_aligned16::suite());
+ s->addTest(qa_32f_convert_16s_unaligned16::suite());
+ s->addTest(qa_32f_convert_32s_aligned16::suite());
+ s->addTest(qa_32f_convert_32s_unaligned16::suite());
+ s->addTest(qa_32f_convert_64f_aligned16::suite());
+ s->addTest(qa_32f_convert_64f_unaligned16::suite());
+ s->addTest(qa_32f_convert_8s_aligned16::suite());
+ s->addTest(qa_32f_convert_8s_unaligned16::suite());
+ s->addTest(qa_32s_convert_32f_aligned16::suite());
+ s->addTest(qa_32s_convert_32f_unaligned16::suite());
+ s->addTest(qa_64f_convert_32f_aligned16::suite());
+ s->addTest(qa_64f_convert_32f_unaligned16::suite());
+ s->addTest(qa_8s_convert_16s_aligned16::suite());
+ s->addTest(qa_8s_convert_16s_unaligned16::suite());
+ s->addTest(qa_8s_convert_32f_aligned16::suite());
+ s->addTest(qa_8s_convert_32f_unaligned16::suite());
+ s->addTest(qa_32fc_32f_power_32fc_aligned16::suite());
+ s->addTest(qa_32f_power_aligned16::suite());
+ s->addTest(qa_32fc_atan2_32f_aligned16::suite());
+ s->addTest(qa_32fc_power_spectral_density_32f_aligned16::suite());
+ s->addTest(qa_32fc_power_spectrum_32f_aligned16::suite());
+ s->addTest(qa_32f_calc_spectral_noise_floor_aligned16::suite());
+ s->addTest(qa_32f_accumulator_aligned16::suite());
+ s->addTest(qa_32f_stddev_aligned16::suite());
+ s->addTest(qa_32f_stddev_and_mean_aligned16::suite());
+
+ return s;
+}