summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/general
diff options
context:
space:
mode:
authorJohnathan Corgan <johnathan@corganlabs.com>2013-03-26 20:18:53 -0700
committerJohnathan Corgan <johnathan@corganlabs.com>2013-03-26 20:18:53 -0700
commit26dceecc80390f10cedb94bd9e4fd655827d7f17 (patch)
treef88cb2995133048b4a2191bae688fa09b33a19ae /gnuradio-core/src/lib/general
parent9bbbda510c265b211b5b571db79ba259c67ee049 (diff)
runtime: migrate remaining gnuradio-core contents into gnuradio-runtime
Diffstat (limited to 'gnuradio-core/src/lib/general')
-rw-r--r--gnuradio-core/src/lib/general/CMakeLists.txt159
-rw-r--r--gnuradio-core/src/lib/general/atsc_rrc1x.dat57
-rw-r--r--gnuradio-core/src/lib/general/atsc_rrc20.dat101
-rw-r--r--gnuradio-core/src/lib/general/atsc_rrc2x.dat102
-rw-r--r--gnuradio-core/src/lib/general/complex_vec_test.cc82
-rw-r--r--gnuradio-core/src/lib/general/complex_vec_test.h28
-rw-r--r--gnuradio-core/src/lib/general/complex_vec_test.i25
-rwxr-xr-xgnuradio-core/src/lib/general/gen_sine_table.py77
-rw-r--r--gnuradio-core/src/lib/general/general.i41
-rw-r--r--gnuradio-core/src/lib/general/gr_block_gateway.cc184
-rw-r--r--gnuradio-core/src/lib/general/gr_block_gateway.h264
-rw-r--r--gnuradio-core/src/lib/general/gr_block_gateway.i46
-rw-r--r--gnuradio-core/src/lib/general/gr_circular_file.cc203
-rw-r--r--gnuradio-core/src/lib/general/gr_circular_file.h60
-rw-r--r--gnuradio-core/src/lib/general/gr_constants.cc.in57
-rw-r--r--gnuradio-core/src/lib/general/gr_constants.h53
-rw-r--r--gnuradio-core/src/lib/general/gr_constants.i13
-rw-r--r--gnuradio-core/src/lib/general/gr_core_api.h33
-rw-r--r--gnuradio-core/src/lib/general/gr_endianness.h27
-rw-r--r--gnuradio-core/src/lib/general/gr_expj.h38
-rw-r--r--gnuradio-core/src/lib/general/gr_fast_atan2f.cc199
-rw-r--r--gnuradio-core/src/lib/general/gr_feval.cc132
-rw-r--r--gnuradio-core/src/lib/general/gr_feval.h177
-rw-r--r--gnuradio-core/src/lib/general/gr_feval.i233
-rw-r--r--gnuradio-core/src/lib/general/gr_fxpt.cc35
-rw-r--r--gnuradio-core/src/lib/general/gr_fxpt.h104
-rw-r--r--gnuradio-core/src/lib/general/gr_fxpt_nco.h153
-rw-r--r--gnuradio-core/src/lib/general/gr_fxpt_vco.h73
-rw-r--r--gnuradio-core/src/lib/general/gr_math.h209
-rw-r--r--gnuradio-core/src/lib/general/gr_misc.cc65
-rw-r--r--gnuradio-core/src/lib/general/gr_misc.h39
-rw-r--r--gnuradio-core/src/lib/general/gr_nco.h198
-rw-r--r--gnuradio-core/src/lib/general/gr_prefs.cc391
-rw-r--r--gnuradio-core/src/lib/general/gr_prefs.h143
-rw-r--r--gnuradio-core/src/lib/general/gr_prefs.i66
-rw-r--r--gnuradio-core/src/lib/general/gr_random.cc183
-rw-r--r--gnuradio-core/src/lib/general/gr_random.h65
-rw-r--r--gnuradio-core/src/lib/general/gr_reverse.cc60
-rw-r--r--gnuradio-core/src/lib/general/gr_reverse.h34
-rw-r--r--gnuradio-core/src/lib/general/gr_sincos.c83
-rw-r--r--gnuradio-core/src/lib/general/gr_sincos.h41
-rw-r--r--gnuradio-core/src/lib/general/gr_test.cc177
-rw-r--r--gnuradio-core/src/lib/general/gr_test.h195
-rw-r--r--gnuradio-core/src/lib/general/gr_test.i64
-rw-r--r--gnuradio-core/src/lib/general/gr_test_types.h46
-rw-r--r--gnuradio-core/src/lib/general/gr_vco.h94
-rw-r--r--gnuradio-core/src/lib/general/gri_debugger_hook.cc29
-rw-r--r--gnuradio-core/src/lib/general/gri_debugger_hook.h30
-rw-r--r--gnuradio-core/src/lib/general/malloc16.c46
-rw-r--r--gnuradio-core/src/lib/general/malloc16.h37
-rw-r--r--gnuradio-core/src/lib/general/qa_general.cc49
-rw-r--r--gnuradio-core/src/lib/general/qa_general.h38
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_circular_file.cc72
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_circular_file.h40
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_fxpt.cc103
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_fxpt.h48
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_fxpt_nco.cc119
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_fxpt_nco.h48
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_fxpt_vco.cc110
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_fxpt_vco.h48
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_math.cc105
-rw-r--r--gnuradio-core/src/lib/general/qa_gr_math.h42
-rw-r--r--gnuradio-core/src/lib/general/qa_sincos.cc75
-rw-r--r--gnuradio-core/src/lib/general/qa_sincos.h47
-rw-r--r--gnuradio-core/src/lib/general/random.h38
-rw-r--r--gnuradio-core/src/lib/general/sine_table.h1025
66 files changed, 0 insertions, 7058 deletions
diff --git a/gnuradio-core/src/lib/general/CMakeLists.txt b/gnuradio-core/src/lib/general/CMakeLists.txt
deleted file mode 100644
index d85039fe60..0000000000
--- a/gnuradio-core/src/lib/general/CMakeLists.txt
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 2010-2012 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 file included, use CMake directory variables
-########################################################################
-
-########################################################################
-# Handle the generated sine table
-########################################################################
-add_custom_command(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gen_sine_table.py
- COMMAND ${PYTHON_EXECUTABLE}
- ${CMAKE_CURRENT_SOURCE_DIR}/gen_sine_table.py >
- ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
-)
-
-include(AddFileDependencies)
-ADD_FILE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt.cc
- ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
-)
-
-add_custom_target(general_generated DEPENDS
- ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
-)
-
-########################################################################
-# Handle the generated constants
-########################################################################
-execute_process(COMMAND ${PYTHON_EXECUTABLE} -c
- "import time;print time.strftime('%a, %d %b %Y %H:%M:%S', time.gmtime())"
- OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE
-)
-message(STATUS "Loading build date ${BUILD_DATE} into gr_constants...")
-
-message(STATUS "Loading version ${VERSION} into gr_constants...")
-
-#double escape for windows backslash path separators
-string(REPLACE "\\" "\\\\" prefix ${prefix})
-string(REPLACE "\\" "\\\\" SYSCONFDIR ${SYSCONFDIR})
-string(REPLACE "\\" "\\\\" GR_PREFSDIR ${GR_PREFSDIR})
-
-configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_constants.cc.in
- ${CMAKE_CURRENT_BINARY_DIR}/gr_constants.cc
-@ONLY)
-
-list(APPEND gnuradio_core_sources ${CMAKE_CURRENT_BINARY_DIR}/gr_constants.cc)
-
-########################################################################
-# Append gnuradio-core library sources
-########################################################################
-list(APPEND gnuradio_core_sources
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_circular_file.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_fast_atan2f.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_misc.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_random.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_reverse.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_sincos.c
- ${CMAKE_CURRENT_SOURCE_DIR}/gri_debugger_hook.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/malloc16.c
-)
-
-########################################################################
-# Append gnuradio-core test sources
-########################################################################
-list(APPEND test_gnuradio_core_sources
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_general.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_circular_file.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_fxpt.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_fxpt_nco.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_fxpt_vco.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_math.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_sincos.cc
-)
-
-########################################################################
-# Install runtime headers
-########################################################################
-install(FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_core_api.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_circular_file.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_constants.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_endianness.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_expj.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt_nco.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt_vco.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_math.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_misc.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_nco.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_random.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_reverse.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_sincos.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_test_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_vco.h
- ${CMAKE_CURRENT_SOURCE_DIR}/gri_debugger_hook.h
- ${CMAKE_CURRENT_SOURCE_DIR}/malloc16.h
- ${CMAKE_CURRENT_SOURCE_DIR}/random.h
- DESTINATION ${GR_INCLUDE_DIR}/gnuradio
- COMPONENT "core_devel"
-)
-
-########################################################################
-# Install swig headers
-########################################################################
-if(ENABLE_PYTHON)
-install(FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/general.i
- ${CMAKE_CURRENT_SOURCE_DIR}/gr_constants.i
- DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
- COMPONENT "core_swig"
-)
-endif(ENABLE_PYTHON)
-
-########################################################################
-# Handle triple-threat files that have cc, h, and i
-########################################################################
-set(gr_core_general_triple_threats
- complex_vec_test
- gr_block_gateway
- gr_feval
- gr_prefs
- gr_test
-)
-
-foreach(file_tt ${gr_core_general_triple_threats})
- list(APPEND gnuradio_core_sources ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.cc)
- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.h DESTINATION ${GR_INCLUDE_DIR}/gnuradio COMPONENT "core_devel")
- if(ENABLE_PYTHON)
- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.i DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig COMPONENT "core_swig")
- endif(ENABLE_PYTHON)
-endforeach(file_tt ${gr_core_general_triple_threats})
-
-CHECK_CXX_SOURCE_COMPILES("
- #define _GNU_SOURCE
- #include <math.h>
- int main(){double x, sin, cos; sincos(x, &sin, &cos); return 0;}
- " HAVE_SINCOS
-)
-GR_ADD_COND_DEF(HAVE_SINCOS)
diff --git a/gnuradio-core/src/lib/general/atsc_rrc1x.dat b/gnuradio-core/src/lib/general/atsc_rrc1x.dat
deleted file mode 100644
index 3dc87bb0b7..0000000000
--- a/gnuradio-core/src/lib/general/atsc_rrc1x.dat
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * FILTER SPECIFICATION FILE
- * FILTER TYPE:ROOT RAISED COSINE 12H
- * PASSBAND RIPPLE IN -dB -.0500
- * STOPBAND RIPPLE IN -dB -50.0000
- * SYMBOL RATE .538112E+07 HERTZ
- * ROLLOF FACTOR .115200
- * SAMPLING FREQUENCY .107622E+08 HERTZ
- * SAMPLING FREQUENCY .107622E+08 HERTZ
- */
- .1821269281208515e-02,
- -.9323525242507458e-02,
- -.8581001311540604e-02,
- .2809949219226837e-02,
- .9649330750107765e-03,
- -.4944681189954281e-02,
- .1624439377337694e-02,
- .6519509013742209e-02,
- -.4803944379091263e-02,
- -.8026130497455597e-02,
- .8922342676669359e-02,
- .9611152112483978e-02,
- -.1463735569268465e-01,
- -.1107082655653358e-01,
- .2262782817706466e-01,
- .1240625558421016e-01,
- -.3461387194693089e-01,
- -.1348070800304413e-01,
- .5474480940029025e-01,
- .1432673400267959e-01,
- -.9872047463431954e-01,
- -.1482593175023794e-01,
- .3077511447481811e+00,
- .5007477863691747e+00,
- .3077511447481811e+00,
- -.1482593175023794e-01,
- -.9872047463431954e-01,
- .1432673400267959e-01,
- .5474480940029025e-01,
- -.1348070800304413e-01,
- -.3461387194693089e-01,
- .1240625558421016e-01,
- .2262782817706466e-01,
- -.1107082655653358e-01,
- -.1463735569268465e-01,
- .9611152112483978e-02,
- .8922342676669359e-02,
- -.8026130497455597e-02,
- -.4803944379091263e-02,
- .6519509013742209e-02,
- .1624439377337694e-02,
- -.4944681189954281e-02,
- .9649330750107765e-03,
- .2809949219226837e-02,
- -.8581001311540604e-02,
- -.9323525242507458e-02,
- .1821269281208515e-02
diff --git a/gnuradio-core/src/lib/general/atsc_rrc20.dat b/gnuradio-core/src/lib/general/atsc_rrc20.dat
deleted file mode 100644
index 94445e96ec..0000000000
--- a/gnuradio-core/src/lib/general/atsc_rrc20.dat
+++ /dev/null
@@ -1,101 +0,0 @@
- -.1141865178942680e-01,
- .2192483097314835e-01,
- -.6814673542976379e-04,
- -.5894266534596682e-02,
- -.3580642864108086e-02,
- .7064016535878182e-03,
- .3225978463888168e-02,
- .2832664176821709e-02,
- .4997388459742069e-03,
- -.1796286087483168e-02,
- -.2396093215793371e-02,
- -.1009003724902868e-02,
- .1184449531137943e-02,
- .2406611572951078e-02,
- .1609810627996922e-02,
- -.6790305487811565e-03,
- -.2634476870298386e-02,
- -.2524725627154112e-02,
- -.1492514275014401e-03,
- .2789965830743313e-02,
- .3848167601972818e-02,
- .1755146309733391e-02,
- -.2288600429892540e-02,
- -.5209952127188444e-02,
- -.4314901307225227e-02,
- .3885449841618538e-03,
- .5747230723500252e-02,
- .7460035849362612e-02,
- .3387423232197762e-02,
- -.4307936877012253e-02,
- -.1007711654528976e-01,
- -.8849395904690027e-02,
- -.1979861408472061e-03,
- .1040456583723426e-01,
- .1484309835359454e-01,
- .8285604882985354e-02,
- -.6346960552036762e-02,
- -.1915087224915624e-01,
- -.1949162455275655e-01,
- -.4145141225308180e-02,
- .1850909460335970e-01,
- .3220130456611514e-01,
- .2337836893275380e-01,
- -.7863232865929604e-02,
- -.4402747144922614e-01,
- -.5751598253846169e-01,
- -.2598480274900794e-01,
- .5246857088059187e-01,
- .1544690094888210e+00,
- .2405302016995847e+00,
- .2741314689628780e+00,
- .2405302016995847e+00,
- .1544690094888210e+00,
- .5246857088059187e-01,
- -.2598480274900794e-01,
- -.5751598253846169e-01,
- -.4402747144922614e-01,
- -.7863232865929604e-02,
- .2337836893275380e-01,
- .3220130456611514e-01,
- .1850909460335970e-01,
- -.4145141225308180e-02,
- -.1949162455275655e-01,
- -.1915087224915624e-01,
- -.6346960552036762e-02,
- .8285604882985354e-02,
- .1484309835359454e-01,
- .1040456583723426e-01,
- -.1979861408472061e-03,
- -.8849395904690027e-02,
- -.1007711654528976e-01,
- -.4307936877012253e-02,
- .3387423232197762e-02,
- .7460035849362612e-02,
- .5747230723500252e-02,
- .3885449841618538e-03,
- -.4314901307225227e-02,
- -.5209952127188444e-02,
- -.2288600429892540e-02,
- .1755146309733391e-02,
- .3848167601972818e-02,
- .2789965830743313e-02,
- -.1492514275014401e-03,
- -.2524725627154112e-02,
- -.2634476870298386e-02,
- -.6790305487811565e-03,
- .1609810627996922e-02,
- .2406611572951078e-02,
- .1184449531137943e-02,
- -.1009003724902868e-02,
- -.2396093215793371e-02,
- -.1796286087483168e-02,
- .4997388459742069e-03,
- .2832664176821709e-02,
- .3225978463888168e-02,
- .7064016535878182e-03,
- -.3580642864108086e-02,
- -.5894266534596682e-02,
- -.6814673542976379e-04,
- .2192483097314835e-01,
- -.1141865178942680e-01
diff --git a/gnuradio-core/src/lib/general/atsc_rrc2x.dat b/gnuradio-core/src/lib/general/atsc_rrc2x.dat
deleted file mode 100644
index 8eae94d773..0000000000
--- a/gnuradio-core/src/lib/general/atsc_rrc2x.dat
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * FILTER SPECIFICATION FILE
- * FILTER TYPE:ROOT RAISED COSINE 12H
- * PASSBAND RIPPLE IN -dB -.0500
- * STOPBAND RIPPLE IN -dB -50.0000
- * SYMBOL RATE .538112E+07 HERTZ
- * ROLLOF FACTOR .115200
- * SAMPLING FREQUENCY .215245E+08 HERTZ
-*/
- .8186036720871925E-03,
- -.1256920862942934E-02,
- -.4844595678150654E-02,
- -.6055080797523260E-02,
- -.4247304052114487E-02,
- -.9502284228801727E-03,
- .1615938264876604E-02,
- .2120061777532101E-02,
- .6354246288537979E-03,
- -.1464351080358028E-02,
- -.2508673351258040E-02,
- -.1573510002344847E-02,
- .8145328611135483E-03,
- .2996938303112984E-02,
- .3244197461754084E-02,
- .1038576476275921E-02,
- -.2401810139417648E-02,
- -.4728596191853285E-02,
- -.4019895102828741E-02,
- -.2215979620814323E-03,
- .4481043666601181E-02,
- .6867439020425081E-02,
- .4793671425431967E-02,
- -.1089230179786682E-02,
- -.7325290236622095E-02,
- -.9580074809491634E-02,
- -.5532339215278626E-02,
- .3166179172694683E-02,
- .1132524851709604E-01,
- .1316944882273674E-01,
- .6192639470100403E-02,
- -.6509334780275822E-02,
- -.1730504119768739E-01,
- -.1832502009347081E-01,
- -.6741075310856104E-02,
- .1229691226035357E-01,
- .2738198731094599E-01,
- .2702147699892521E-01,
- .7156732492148876E-02,
- -.2432488137856126E-01,
- -.4934547096490860E-01,
- -.4763523396104574E-01,
- -.7410581223666668E-02,
- .6681889295578003E-01,
- .1538293845951557E+00,
- .2236228249967098E+00,
- .2502835178747773E+00,
- .2236228249967098E+00,
- .1538293845951557E+00,
- .6681889295578003E-01,
- -.7410581223666668E-02,
- -.4763523396104574E-01,
- -.4934547096490860E-01,
- -.2432488137856126E-01,
- .7156732492148876E-02,
- .2702147699892521E-01,
- .2738198731094599E-01,
- .1229691226035357E-01,
- -.6741075310856104E-02,
- -.1832502009347081E-01,
- -.1730504119768739E-01,
- -.6509334780275822E-02,
- .6192639470100403E-02,
- .1316944882273674E-01,
- .1132524851709604E-01,
- .3166179172694683E-02,
- -.5532339215278626E-02,
- -.9580074809491634E-02,
- -.7325290236622095E-02,
- -.1089230179786682E-02,
- .4793671425431967E-02,
- .6867439020425081E-02,
- .4481043666601181E-02,
- -.2215979620814323E-03,
- -.4019895102828741E-02,
- -.4728596191853285E-02,
- -.2401810139417648E-02,
- .1038576476275921E-02,
- .3244197461754084E-02,
- .2996938303112984E-02,
- .8145328611135483E-03,
- -.1573510002344847E-02,
- -.2508673351258040E-02,
- -.1464351080358028E-02,
- .6354246288537979E-03,
- .2120061777532101E-02,
- .1615938264876604E-02,
- -.9502284228801727E-03,
- -.4247304052114487E-02,
- -.6055080797523260E-02,
- -.4844595678150654E-02,
- -.1256920862942934E-02,
- .8186036720871925E-03
diff --git a/gnuradio-core/src/lib/general/complex_vec_test.cc b/gnuradio-core/src/lib/general/complex_vec_test.cc
deleted file mode 100644
index 99acc2f355..0000000000
--- a/gnuradio-core/src/lib/general/complex_vec_test.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-#include <complex_vec_test.h>
-#include <stddef.h>
-
-std::vector<std::complex<float> >
-complex_vec_test0()
-{
- std::vector<std::complex<float> > r(5);
-
- for (size_t i = 0; i < r.size(); i++)
- r[i] = std::complex<float>(i, i);
-
- return r;
-}
-
-std::vector<std::complex<float> >
-complex_vec_test1(const std::vector<std::complex<float> > &input)
-{
- std::vector<std::complex<float> > r(input.size());
-
- for (size_t i = 0; i < input.size(); i++)
- r[i] = std::complex<float>(input[i].real()+0.5, input[i].imag()-0.5);
-
- return r;
-}
-
-std::complex<float>
-complex_scalar_test0()
-{
- return std::complex<float>(5, 5);
-}
-
-std::complex<float>
-complex_scalar_test1(std::complex<float> input)
-{
- return std::complex<float>(input.real()+0.5, input.imag()-0.5);
-}
-
-
-std::vector<float>
-float_vec_test0()
-{
- std::vector<float> r(5);
-
- for (size_t i = 0; i < r.size(); i++)
- r[i] = (float) i;
-
- return r;
-}
-
-std::vector<float>
-float_vec_test1(const std::vector<float> &input)
-{
- std::vector<float> r(input.size());
-
- for (size_t i = 0; i < input.size(); i++)
- r[i] = input[i] + 0.5;
-
- return r;
-}
-
-std::vector<int>
-int_vec_test0()
-{
- std::vector<int> r(5);
-
- for (size_t i = 0; i < r.size(); i++)
- r[i] = (int) i;
-
- return r;
-}
-
-std::vector<int>
-int_vec_test1(const std::vector<int> &input)
-{
- std::vector<int> r(input.size());
-
- for (size_t i = 0; i < input.size(); i++)
- r[i] = input[i] + 1;
-
- return r;
-}
-
diff --git a/gnuradio-core/src/lib/general/complex_vec_test.h b/gnuradio-core/src/lib/general/complex_vec_test.h
deleted file mode 100644
index be4de41fb0..0000000000
--- a/gnuradio-core/src/lib/general/complex_vec_test.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <gr_core_api.h>
-#include <vector>
-#include <complex>
-
-GR_CORE_API std::vector<std::complex<float> >
-complex_vec_test0();
-
-GR_CORE_API std::vector<std::complex<float> >
-complex_vec_test1(const std::vector<std::complex<float> > &input);
-
-GR_CORE_API std::complex<float>
-complex_scalar_test0();
-
-GR_CORE_API std::complex<float>
-complex_scalar_test1(std::complex<float> input);
-
-GR_CORE_API std::vector<int>
-int_vec_test0();
-
-GR_CORE_API std::vector<int>
-int_vec_test1(const std::vector<int> &input);
-
-GR_CORE_API std::vector<float>
-float_vec_test0();
-
-GR_CORE_API std::vector<float>
-float_vec_test1(const std::vector<float> &input);
-
diff --git a/gnuradio-core/src/lib/general/complex_vec_test.i b/gnuradio-core/src/lib/general/complex_vec_test.i
deleted file mode 100644
index 4b95633be7..0000000000
--- a/gnuradio-core/src/lib/general/complex_vec_test.i
+++ /dev/null
@@ -1,25 +0,0 @@
-
-std::vector<std::complex<float> >
-complex_vec_test0();
-
-std::vector<std::complex<float> >
-complex_vec_test1(const std::vector<std::complex<float> > &input);
-
-std::complex<float>
-complex_scalar_test0();
-
-std::complex<float>
-complex_scalar_test1(std::complex<float> input);
-
-std::vector<int>
-int_vec_test0();
-
-std::vector<int>
-int_vec_test1(const std::vector<int> &input);
-
-std::vector<float>
-float_vec_test0();
-
-std::vector<float>
-float_vec_test1(const std::vector<float> &input);
-
diff --git a/gnuradio-core/src/lib/general/gen_sine_table.py b/gnuradio-core/src/lib/general/gen_sine_table.py
deleted file mode 100755
index d7d11eff11..0000000000
--- a/gnuradio-core/src/lib/general/gen_sine_table.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2004 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.
-#
-
-import math
-import sys
-
-def wrap (x):
- if x >= 2**31:
- return x - 2**32
- return x
-
-def gen_approx_table (f, nentries, min_x, max_x):
- """return a list of nentries containing tuples of the form:
- (m, c, abs_error). min_x and max_x specify the domain
- of the table.
- """
- r = []
- incx = float (max_x - min_x) / nentries
- for i in range (nentries):
- a = (i * incx) + min_x
- b = ((i + 1) * incx) + min_x
- m = (f(b)-f(a))/(b-a)
- c = (3*a+b)*(f(a)-f(b))/(4*(b-a)) + (f((a+b)/2) + f(a))/2
- abs_error = c+m*a-f(a)
- r.append ((m, c, abs_error))
- return r
-
-def scaled_sine (x):
- return math.sin (x * math.pi / 2**31)
-
-def gen_sine_table ():
- nbits = 10
- nentries = 2**nbits
-
- # min_x = -2**31
- # max_x = 2**31-1
- min_x = 0
- max_x = 2**32-1
- t = gen_approx_table (scaled_sine, nentries, min_x, max_x)
-
- max_error = 0
- for e in t:
- max_error = max (max_error, abs (e[2]))
-
- # sys.stdout.write ('static const int WORDBITS = 32;\n')
- # sys.stdout.write ('static const int NBITS = %d;\n' % (nbits,))
-
- sys.stdout.write (' // max_error = %22.15e\n' % (max_error,))
-
- # sys.stdout.write ('static const double sine_table[%d][2] = {\n'% (nentries,))
-
- for e in t:
- sys.stdout.write (' { %22.15e, %22.15e },\n' % (2 * e[0], e[1]))
-
- # sys.stdout.write ('};\n')
-
-if __name__ == '__main__':
- gen_sine_table ()
diff --git a/gnuradio-core/src/lib/general/general.i b/gnuradio-core/src/lib/general/general.i
deleted file mode 100644
index 68b963702c..0000000000
--- a/gnuradio-core/src/lib/general/general.i
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004-2012 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.
- */
-
-%{
-
-#include <gr_prefs.h>
-#include <gr_constants.h>
-#include <gr_test_types.h>
-#include <gr_test.h>
-#include <gr_feval.h>
-#include <complex_vec_test.h>
-#include <gr_endianness.h>
-%}
-
-%include "gr_prefs.i"
-%include "gr_constants.i"
-%include "gr_test_types.h"
-%include "gr_test.i"
-%include "gr_feval.i"
-%include "complex_vec_test.i"
-%include "gr_block_gateway.i"
-%include "gr_endianness.h"
diff --git a/gnuradio-core/src/lib/general/gr_block_gateway.cc b/gnuradio-core/src/lib/general/gr_block_gateway.cc
deleted file mode 100644
index 79b42803af..0000000000
--- a/gnuradio-core/src/lib/general/gr_block_gateway.cc
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright 2011-2012 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.
- */
-
-#include <gr_block_gateway.h>
-#include <gr_io_signature.h>
-#include <iostream>
-#include <boost/bind.hpp>
-
-/***********************************************************************
- * Helper routines
- **********************************************************************/
-template <typename OutType, typename InType>
-void copy_pointers(OutType &out, const InType &in){
- out.resize(in.size());
- for (size_t i = 0; i < in.size(); i++){
- out[i] = (void *)(in[i]);
- }
-}
-
-/***********************************************************************
- * The gr_block gateway implementation class
- **********************************************************************/
-class gr_block_gateway_impl : public gr_block_gateway{
-public:
- gr_block_gateway_impl(
- gr_feval_ll *handler,
- const std::string &name,
- gr_io_signature_sptr in_sig,
- gr_io_signature_sptr out_sig,
- const gr_block_gw_work_type work_type,
- const unsigned factor
- ):
- gr_block(name, in_sig, out_sig),
- _handler(handler),
- _work_type(work_type)
- {
- switch(_work_type){
- case GR_BLOCK_GW_WORK_GENERAL:
- _decim = 1; //not relevant, but set anyway
- _interp = 1; //not relevant, but set anyway
- break;
-
- case GR_BLOCK_GW_WORK_SYNC:
- _decim = 1;
- _interp = 1;
- this->set_fixed_rate(true);
- break;
-
- case GR_BLOCK_GW_WORK_DECIM:
- _decim = factor;
- _interp = 1;
- break;
-
- case GR_BLOCK_GW_WORK_INTERP:
- _decim = 1;
- _interp = factor;
- this->set_output_multiple(_interp);
- break;
- }
- }
-
- /*******************************************************************
- * Overloads for various scheduler-called functions
- ******************************************************************/
- void forecast(
- int noutput_items,
- gr_vector_int &ninput_items_required
- ){
- switch(_work_type){
- case GR_BLOCK_GW_WORK_GENERAL:
- _message.action = gr_block_gw_message_type::ACTION_FORECAST;
- _message.forecast_args_noutput_items = noutput_items;
- _message.forecast_args_ninput_items_required = ninput_items_required;
- _handler->calleval(0);
- ninput_items_required = _message.forecast_args_ninput_items_required;
- return;
-
- default:
- unsigned ninputs = ninput_items_required.size();
- for (unsigned i = 0; i < ninputs; i++)
- ninput_items_required[i] = fixed_rate_noutput_to_ninput(noutput_items);
- return;
- }
- }
-
- int general_work(
- int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items
- ){
- switch(_work_type){
- case GR_BLOCK_GW_WORK_GENERAL:
- _message.action = gr_block_gw_message_type::ACTION_GENERAL_WORK;
- _message.general_work_args_noutput_items = noutput_items;
- _message.general_work_args_ninput_items = ninput_items;
- copy_pointers(_message.general_work_args_input_items, input_items);
- _message.general_work_args_output_items = output_items;
- _handler->calleval(0);
- return _message.general_work_args_return_value;
-
- default:
- int r = work (noutput_items, input_items, output_items);
- if (r > 0) consume_each(r*_decim/_interp);
- return r;
- }
- }
-
- int work(
- int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items
- ){
- _message.action = gr_block_gw_message_type::ACTION_WORK;
- _message.work_args_ninput_items = fixed_rate_noutput_to_ninput(noutput_items);
- if (_message.work_args_ninput_items == 0) return -1;
- _message.work_args_noutput_items = noutput_items;
- copy_pointers(_message.work_args_input_items, input_items);
- _message.work_args_output_items = output_items;
- _handler->calleval(0);
- return _message.work_args_return_value;
- }
-
- int fixed_rate_noutput_to_ninput(int noutput_items){
- return (noutput_items*_decim/_interp) + history() - 1;
- }
-
- int fixed_rate_ninput_to_noutput(int ninput_items){
- return std::max(0, ninput_items - (int)history() + 1)*_interp/_decim;
- }
-
- bool start(void){
- _message.action = gr_block_gw_message_type::ACTION_START;
- _handler->calleval(0);
- return _message.start_args_return_value;
- }
-
- bool stop(void){
- _message.action = gr_block_gw_message_type::ACTION_STOP;
- _handler->calleval(0);
- return _message.stop_args_return_value;
- }
-
- gr_block_gw_message_type &gr_block_message(void){
- return _message;
- }
-
-private:
- gr_feval_ll *_handler;
- gr_block_gw_message_type _message;
- const gr_block_gw_work_type _work_type;
- unsigned _decim, _interp;
-};
-
-boost::shared_ptr<gr_block_gateway> gr_make_block_gateway(
- gr_feval_ll *handler,
- const std::string &name,
- gr_io_signature_sptr in_sig,
- gr_io_signature_sptr out_sig,
- const gr_block_gw_work_type work_type,
- const unsigned factor
-){
- return boost::shared_ptr<gr_block_gateway>(
- new gr_block_gateway_impl(handler, name, in_sig, out_sig, work_type, factor)
- );
-}
diff --git a/gnuradio-core/src/lib/general/gr_block_gateway.h b/gnuradio-core/src/lib/general/gr_block_gateway.h
deleted file mode 100644
index ce87a76c25..0000000000
--- a/gnuradio-core/src/lib/general/gr_block_gateway.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright 2011-2012 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.
- */
-
-#ifndef INCLUDED_GRBLOCK_GATEWAY_H
-#define INCLUDED_GRBLOCK_GATEWAY_H
-
-#include <gr_core_api.h>
-#include <gr_block.h>
-#include <gr_feval.h>
-
-/*!
- * The work type enum tells the gateway what kind of block to implement.
- * The choices are familiar gnuradio block overloads (sync, decim, interp).
- */
-enum gr_block_gw_work_type{
- GR_BLOCK_GW_WORK_GENERAL,
- GR_BLOCK_GW_WORK_SYNC,
- GR_BLOCK_GW_WORK_DECIM,
- GR_BLOCK_GW_WORK_INTERP,
-};
-
-/*!
- * Shared message structure between python and gateway.
- * Each action type represents a scheduler-called function.
- */
-struct gr_block_gw_message_type{
- enum action_type{
- ACTION_GENERAL_WORK, //dispatch work
- ACTION_WORK, //dispatch work
- ACTION_FORECAST, //dispatch forecast
- ACTION_START, //dispatch start
- ACTION_STOP, //dispatch stop
- };
-
- action_type action;
-
- int general_work_args_noutput_items;
- std::vector<int> general_work_args_ninput_items;
- std::vector<void *> general_work_args_input_items; //TODO this should be const void*, but swig cant int cast it right
- std::vector<void *> general_work_args_output_items;
- int general_work_args_return_value;
-
- int work_args_ninput_items;
- int work_args_noutput_items;
- std::vector<void *> work_args_input_items; //TODO this should be const void*, but swig cant int cast it right
- std::vector<void *> work_args_output_items;
- int work_args_return_value;
-
- int forecast_args_noutput_items;
- std::vector<int> forecast_args_ninput_items_required;
-
- bool start_args_return_value;
-
- bool stop_args_return_value;
-};
-
-/*!
- * The gateway block which performs all the magic.
- *
- * The gateway provides access to all the gr_block routines.
- * The methods prefixed with gr_block__ are renamed
- * to class methods without the prefix in python.
- */
-class GR_CORE_API gr_block_gateway : virtual public gr_block{
-public:
- //! Provide access to the shared message object
- virtual gr_block_gw_message_type &gr_block_message(void) = 0;
-
- long gr_block__unique_id(void) const{
- return gr_block::unique_id();
- }
-
- std::string gr_block__name(void) const{
- return gr_block::name();
- }
-
- unsigned gr_block__history(void) const{
- return gr_block::history();
- }
-
- void gr_block__set_history(unsigned history){
- return gr_block::set_history(history);
- }
-
- void gr_block__set_fixed_rate(bool fixed_rate){
- return gr_block::set_fixed_rate(fixed_rate);
- }
-
- bool gr_block__fixed_rate(void) const{
- return gr_block::fixed_rate();
- }
-
- void gr_block__set_output_multiple(int multiple){
- return gr_block::set_output_multiple(multiple);
- }
-
- int gr_block__output_multiple(void) const{
- return gr_block::output_multiple();
- }
-
- void gr_block__consume(int which_input, int how_many_items){
- return gr_block::consume(which_input, how_many_items);
- }
-
- void gr_block__consume_each(int how_many_items){
- return gr_block::consume_each(how_many_items);
- }
-
- void gr_block__produce(int which_output, int how_many_items){
- return gr_block::produce(which_output, how_many_items);
- }
-
- void gr_block__set_relative_rate(double relative_rate){
- return gr_block::set_relative_rate(relative_rate);
- }
-
- double gr_block__relative_rate(void) const{
- return gr_block::relative_rate();
- }
-
- uint64_t gr_block__nitems_read(unsigned int which_input){
- return gr_block::nitems_read(which_input);
- }
-
- uint64_t gr_block__nitems_written(unsigned int which_output){
- return gr_block::nitems_written(which_output);
- }
-
- gr_block::tag_propagation_policy_t gr_block__tag_propagation_policy(void){
- return gr_block::tag_propagation_policy();
- }
-
- void gr_block__set_tag_propagation_policy(gr_block::tag_propagation_policy_t p){
- return gr_block::set_tag_propagation_policy(p);
- }
-
- void gr_block__add_item_tag(
- unsigned int which_output, const gr_tag_t &tag
- ){
- return gr_block::add_item_tag(which_output, tag);
- }
-
- void gr_block__add_item_tag(
- unsigned int which_output,
- uint64_t abs_offset,
- const pmt::pmt_t &key,
- const pmt::pmt_t &value,
- const pmt::pmt_t &srcid=pmt::PMT_F
- ){
- return gr_block::add_item_tag(which_output, abs_offset, key, value, srcid);
- }
-
- std::vector<gr_tag_t> gr_block__get_tags_in_range(
- unsigned int which_input,
- uint64_t abs_start,
- uint64_t abs_end
- ){
- std::vector<gr_tag_t> tags;
- gr_block::get_tags_in_range(tags, which_input, abs_start, abs_end);
- return tags;
- }
-
- std::vector<gr_tag_t> gr_block__get_tags_in_range(
- unsigned int which_input,
- uint64_t abs_start,
- uint64_t abs_end,
- const pmt::pmt_t &key
- ){
- std::vector<gr_tag_t> tags;
- gr_block::get_tags_in_range(tags, which_input, abs_start, abs_end, key);
- return tags;
- }
-
- /* Message passing interface */
- void gr_block__message_port_register_in(pmt::pmt_t port_id){
- gr_basic_block::message_port_register_in(port_id);
- }
-
- void gr_block__message_port_register_out(pmt::pmt_t port_id){
- gr_basic_block::message_port_register_out(port_id);
- }
-
- void gr_block__message_port_pub(pmt::pmt_t port_id, pmt::pmt_t msg){
- gr_basic_block::message_port_pub(port_id, msg);
- }
-
- void gr_block__message_port_sub(pmt::pmt_t port_id, pmt::pmt_t target){
- gr_basic_block::message_port_sub(port_id, target);
- }
-
- void gr_block__message_port_unsub(pmt::pmt_t port_id, pmt::pmt_t target){
- gr_basic_block::message_port_unsub(port_id, target);
- }
-
- pmt::pmt_t gr_block__message_ports_in(){
- return gr_basic_block::message_ports_in();
- }
-
- pmt::pmt_t gr_block__message_ports_out(){
- return gr_basic_block::message_ports_out();
- }
-
- void set_msg_handler_feval(pmt::pmt_t which_port, gr_feval_p *msg_handler)
- {
- if(msg_queue.find(which_port) == msg_queue.end()){
- throw std::runtime_error("attempt to set_msg_handler_feval() on bad input message port!");
- }
- d_msg_handlers_feval[which_port] = msg_handler;
- }
-
-protected:
- typedef std::map<pmt::pmt_t, gr_feval_p *, pmt::comperator> msg_handlers_feval_t;
- msg_handlers_feval_t d_msg_handlers_feval;
-
- void dispatch_msg(pmt::pmt_t which_port, pmt::pmt_t msg){
- // Is there a handler?
- if (d_msg_handlers_feval.find(which_port) != d_msg_handlers_feval.end()){
- d_msg_handlers_feval[which_port]->calleval(msg); // Yes, invoke it.
- }
- else {
- // Pass to generic dispatcher if not found
- gr_basic_block::dispatch_msg(which_port, msg);
- }
- }
-};
-
-/*!
- * Make a new gateway block.
- * \param handler the swig director object with callback
- * \param name the name of the block (Ex: "Shirley")
- * \param in_sig the input signature for this block
- * \param out_sig the output signature for this block
- * \param work_type the type of block overload to implement
- * \param factor the decimation or interpolation factor
- * \return a new gateway block
- */
-GR_CORE_API boost::shared_ptr<gr_block_gateway> gr_make_block_gateway(
- gr_feval_ll *handler,
- const std::string &name,
- gr_io_signature_sptr in_sig,
- gr_io_signature_sptr out_sig,
- const gr_block_gw_work_type work_type,
- const unsigned factor
-);
-
-#endif /* INCLUDED_GRBLOCK_GATEWAY_H */
diff --git a/gnuradio-core/src/lib/general/gr_block_gateway.i b/gnuradio-core/src/lib/general/gr_block_gateway.i
deleted file mode 100644
index 8adafdfea3..0000000000
--- a/gnuradio-core/src/lib/general/gr_block_gateway.i
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2011-2012 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.
- */
-
-////////////////////////////////////////////////////////////////////////
-// standard includes
-////////////////////////////////////////////////////////////////////////
-%include <gnuradio.i>
-%include <gr_tags.i>
-%include <gr_feval.i>
-
-////////////////////////////////////////////////////////////////////////
-// block headers
-////////////////////////////////////////////////////////////////////////
-%{
-#include <gr_block_gateway.h>
-%}
-
-////////////////////////////////////////////////////////////////////////
-// data type support
-////////////////////////////////////////////////////////////////////////
-%template(int_vector_t) std::vector<int>;
-%template(void_star_vector_t) std::vector<void *>;
-
-////////////////////////////////////////////////////////////////////////
-// block magic
-////////////////////////////////////////////////////////////////////////
-GR_SWIG_BLOCK_MAGIC(gr,block_gateway);
-%include <gr_block_gateway.h>
diff --git a/gnuradio-core/src/lib/general/gr_circular_file.cc b/gnuradio-core/src/lib/general/gr_circular_file.cc
deleted file mode 100644
index 6f710c49b1..0000000000
--- a/gnuradio-core/src/lib/general/gr_circular_file.cc
+++ /dev/null
@@ -1,203 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002,2010 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gr_circular_file.h>
-
-#include <unistd.h>
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <assert.h>
-#include <stdlib.h>
-
-#include <algorithm>
-#include <stdio.h>
-#include <string.h>
-
-#ifdef HAVE_IO_H
-#include <io.h>
-#endif
-
-static const int HEADER_SIZE = 4096;
-static const int HEADER_MAGIC = 0xEB021026;
-
-static const int HD_MAGIC = 0;
-static const int HD_HEADER_SIZE = 1; // integer offsets into header
-static const int HD_BUFFER_SIZE = 2;
-static const int HD_BUFFER_BASE = 3;
-static const int HD_BUFFER_CURRENT = 4;
-
-gr_circular_file::gr_circular_file (const char *filename,
- bool writable, int size)
- : d_fd (-1), d_header (0), d_buffer (0), d_mapped_size (0), d_bytes_read (0)
-{
- int mm_prot;
- if (writable){
-#ifdef HAVE_MMAP
- mm_prot = PROT_READ | PROT_WRITE;
-#endif
- d_fd = open (filename, O_CREAT | O_RDWR | O_TRUNC, 0664);
- if (d_fd < 0){
- perror (filename);
- exit (1);
- }
-#ifdef HAVE_MMAP /* FIXME */
- if(ftruncate (d_fd, size + HEADER_SIZE) != 0) {
- perror (filename);
- exit (1);
- }
-#endif
- }
- else {
-#ifdef HAVE_MMAP
- mm_prot = PROT_READ;
-#endif
- d_fd = open (filename, O_RDONLY);
- if (d_fd < 0){
- perror (filename);
- exit (1);
- }
- }
-
- struct stat statbuf;
- if (fstat (d_fd, &statbuf) < 0){
- perror (filename);
- exit (1);
- }
-
- if (statbuf.st_size < HEADER_SIZE){
- fprintf (stderr, "%s: file too small to be circular buffer\n", filename);
- exit (1);
- }
-
- d_mapped_size = statbuf.st_size;
-#ifdef HAVE_MMAP
- void *p = mmap (0, d_mapped_size, mm_prot, MAP_SHARED, d_fd, 0);
- if (p == MAP_FAILED){
- perror ("gr_circular_file: mmap failed");
- exit (1);
- }
-
- d_header = (int *) p;
-#else
- perror ("gr_circular_file: mmap unsupported by this system");
- exit (1);
-#endif
-
- if (writable){ // init header
-
- if (size < 0){
- fprintf (stderr, "gr_circular_buffer: size must be > 0 when writable\n");
- exit (1);
- }
-
- d_header[HD_MAGIC] = HEADER_MAGIC;
- d_header[HD_HEADER_SIZE] = HEADER_SIZE;
- d_header[HD_BUFFER_SIZE] = size;
- d_header[HD_BUFFER_BASE] = HEADER_SIZE; // right after header
- d_header[HD_BUFFER_CURRENT] = 0;
- }
-
- // sanity check (the asserts are a bit unforgiving...)
-
- assert (d_header[HD_MAGIC] == HEADER_MAGIC);
- assert (d_header[HD_HEADER_SIZE] == HEADER_SIZE);
- assert (d_header[HD_BUFFER_SIZE] > 0);
- assert (d_header[HD_BUFFER_BASE] >= d_header[HD_HEADER_SIZE]);
- assert (d_header[HD_BUFFER_BASE] + d_header[HD_BUFFER_SIZE] <= d_mapped_size);
- assert (d_header[HD_BUFFER_CURRENT] >= 0 &&
- d_header[HD_BUFFER_CURRENT] < d_header[HD_BUFFER_SIZE]);
-
- d_bytes_read = 0;
- d_buffer = (unsigned char *) d_header + d_header[HD_BUFFER_BASE];
-}
-
-gr_circular_file::~gr_circular_file ()
-{
-#ifdef HAVE_MMAP
- if (munmap ((char *) d_header, d_mapped_size) < 0){
- perror ("gr_circular_file: munmap");
- exit (1);
- }
-#endif
- close (d_fd);
-}
-
-bool
-gr_circular_file::write (void *vdata, int nbytes)
-{
- unsigned char *data = (unsigned char *) vdata;
- int buffer_size = d_header[HD_BUFFER_SIZE];
- int buffer_current = d_header[HD_BUFFER_CURRENT];
-
- while (nbytes > 0){
- int n = std::min (nbytes, buffer_size - buffer_current);
- memcpy (d_buffer + buffer_current, data, n);
-
- buffer_current += n;
- if (buffer_current >= buffer_size)
- buffer_current = 0;
-
- data += n;
- nbytes -= n;
- }
-
- d_header[HD_BUFFER_CURRENT] = buffer_current;
- return true;
-}
-
-int
-gr_circular_file::read (void *vdata, int nbytes)
-{
- unsigned char *data = (unsigned char *) vdata;
- int buffer_current = d_header[HD_BUFFER_CURRENT];
- int buffer_size = d_header[HD_BUFFER_SIZE];
- int total = 0;
-
- nbytes = std::min (nbytes, buffer_size - d_bytes_read);
-
- while (nbytes > 0){
- int offset = (buffer_current + d_bytes_read) % buffer_size;
- int n = std::min (nbytes, buffer_size - offset);
- memcpy (data, d_buffer + offset, n);
- data += n;
- d_bytes_read += n;
- total += n;
- nbytes -= n;
- }
- return total;
-}
-
-void
-gr_circular_file::reset_read_pointer ()
-{
- d_bytes_read = 0;
-}
diff --git a/gnuradio-core/src/lib/general/gr_circular_file.h b/gnuradio-core/src/lib/general/gr_circular_file.h
deleted file mode 100644
index ca1f793f37..0000000000
--- a/gnuradio-core/src/lib/general/gr_circular_file.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002 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.
- */
-
-#ifndef _GR_CIRCULAR_FILE_H_
-#define _GR_CIRCULAR_FILE_H_
-
-#include <gr_core_api.h>
-
-/*
- * writes input data into a circular buffer on disk.
- *
- * the file contains a fixed header:
- * 0x0000: int32 magic (0xEB021026)
- * 0x0004: int32 size in bytes of header (constant 4096)
- * 0x0008: int32 size in bytes of circular buffer (not including header)
- * 0x000C: int32 file offset to beginning of circular buffer
- * 0x0010: int32 byte offset from beginning of circular buffer to
- * current start of data
- *
- */
-class GR_CORE_API gr_circular_file {
- int d_fd;
- int *d_header;
- unsigned char *d_buffer;
- int d_mapped_size;
- int d_bytes_read;
-
-public:
- gr_circular_file (const char *filename, bool writable = false, int size = 0);
- ~gr_circular_file ();
-
- bool write (void *data, int nbytes);
-
- // returns # of bytes actually read or 0 if end of buffer, or -1 on error.
- int read (void *data, int nbytes);
-
- // reset read pointer to beginning of buffer.
- void reset_read_pointer ();
-};
-
-#endif /* _GR_CIRCULAR_FILE_H_ */ \ No newline at end of file
diff --git a/gnuradio-core/src/lib/general/gr_constants.cc.in b/gnuradio-core/src/lib/general/gr_constants.cc.in
deleted file mode 100644
index b94f254d66..0000000000
--- a/gnuradio-core/src/lib/general/gr_constants.cc.in
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2009 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.
- */
-
-#if HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gr_constants.h>
-
-const std::string
-gr_prefix()
-{
- return "@prefix@";
-}
-
-const std::string
-gr_sysconfdir()
-{
- return "@SYSCONFDIR@";
-}
-
-const std::string
-gr_prefsdir()
-{
- return "@GR_PREFSDIR@";
-}
-
-const std::string
-gr_build_date()
-{
- return "@BUILD_DATE@";
-}
-
-const std::string
-gr_version()
-{
- return "@VERSION@";
-}
diff --git a/gnuradio-core/src/lib/general/gr_constants.h b/gnuradio-core/src/lib/general/gr_constants.h
deleted file mode 100644
index 00ed9463d8..0000000000
--- a/gnuradio-core/src/lib/general/gr_constants.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2009 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.
- */
-#ifndef INCLUDED_GR_CONSTANTS_H
-#define INCLUDED_GR_CONSTANTS_H
-
-#include <gr_core_api.h>
-#include <string>
-
-/*!
- * \brief return ./configure --prefix argument. Typically /usr/local
- */
-GR_CORE_API const std::string gr_prefix();
-
-/*!
- * \brief return ./configure --sysconfdir argument. Typically $prefix/etc or /etc
- */
-GR_CORE_API const std::string gr_sysconfdir();
-
-/*!
- * \brief return preferences file directory. Typically $sysconfdir/etc/conf.d
- */
-GR_CORE_API const std::string gr_prefsdir();
-
-/*!
- * \brief return date/time of build, as set when 'bootstrap' is run
- */
-GR_CORE_API const std::string gr_build_date();
-
-/*!
- * \brief return version string defined in configure.ac
- */
-GR_CORE_API const std::string gr_version();
-
-#endif /* INCLUDED_GR_CONSTANTS_H */
diff --git a/gnuradio-core/src/lib/general/gr_constants.i b/gnuradio-core/src/lib/general/gr_constants.i
deleted file mode 100644
index a5aef14925..0000000000
--- a/gnuradio-core/src/lib/general/gr_constants.i
+++ /dev/null
@@ -1,13 +0,0 @@
-/* -*- c++ -*- */
-
-%rename(prefix) gr_prefix;
-%rename(sysconfdir) gr_sysconfdir;
-%rename(prefsdir) gr_prefsdir;
-%rename(build_date) gr_build_date;
-%rename(version) gr_version;
-
-const std::string gr_prefix();
-const std::string gr_sysconfdir();
-const std::string gr_prefsdir();
-const std::string gr_build_date();
-const std::string gr_version();
diff --git a/gnuradio-core/src/lib/general/gr_core_api.h b/gnuradio-core/src/lib/general/gr_core_api.h
deleted file mode 100644
index 74c802857b..0000000000
--- a/gnuradio-core/src/lib/general/gr_core_api.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2010-2011 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.
- */
-
-#ifndef INCLUDED_GR_CORE_API_H
-#define INCLUDED_GR_CORE_API_H
-
-#include <gruel/attributes.h>
-
-#ifdef gnuradio_core_EXPORTS
-# define GR_CORE_API __GR_ATTR_EXPORT
-#else
-# define GR_CORE_API __GR_ATTR_IMPORT
-#endif
-
-#endif /* INCLUDED_GR_CORE_API_H */
diff --git a/gnuradio-core/src/lib/general/gr_endianness.h b/gnuradio-core/src/lib/general/gr_endianness.h
deleted file mode 100644
index c4ecb1383e..0000000000
--- a/gnuradio-core/src/lib/general/gr_endianness.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-#ifndef INCLUDED_GR_ENDIANNESS_H
-#define INCLUDED_GR_ENDIANNESS_H
-
-typedef enum {GR_MSB_FIRST, GR_LSB_FIRST} gr_endianness_t;
-
-#endif /* INCLUDED_GR_ENDIANNESS_H */
diff --git a/gnuradio-core/src/lib/general/gr_expj.h b/gnuradio-core/src/lib/general/gr_expj.h
deleted file mode 100644
index 1d8633242b..0000000000
--- a/gnuradio-core/src/lib/general/gr_expj.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006 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.
- */
-#ifndef INCLUDED_GR_EXPJ_H
-#define INCLUDED_GR_EXPJ_H
-
-#include <gr_core_api.h>
-#include <gr_sincos.h>
-#include <gr_types.h>
-
-static inline gr_complex
-gr_expj(float phase)
-{
- float t_imag, t_real;
- gr_sincosf(phase, &t_imag, &t_real);
- return gr_complex(t_real, t_imag);
-}
-
-
-#endif /* INCLUDED_GR_EXPJ_H */
diff --git a/gnuradio-core/src/lib/general/gr_fast_atan2f.cc b/gnuradio-core/src/lib/general/gr_fast_atan2f.cc
deleted file mode 100644
index 8b7bfea12e..0000000000
--- a/gnuradio-core/src/lib/general/gr_fast_atan2f.cc
+++ /dev/null
@@ -1,199 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2005 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.
- */
-
-#include <gr_math.h> // declaration is in here
-#include <cmath>
-
-#define REAL float
-
-/***************************************************************************/
-/* Constant definitions */
-/***************************************************************************/
-
-#define TAN_MAP_RES 0.003921569 /* (smallest non-zero value in table) */
-#define RAD_PER_DEG 0.017453293
-#define TAN_MAP_SIZE 256
-
-/* arctangents from 0 to pi/4 radians */
-static REAL
-fast_atan_table[257] = {
- 0.000000e+00, 3.921549e-03, 7.842976e-03, 1.176416e-02,
- 1.568499e-02, 1.960533e-02, 2.352507e-02, 2.744409e-02,
- 3.136226e-02, 3.527947e-02, 3.919560e-02, 4.311053e-02,
- 4.702413e-02, 5.093629e-02, 5.484690e-02, 5.875582e-02,
- 6.266295e-02, 6.656816e-02, 7.047134e-02, 7.437238e-02,
- 7.827114e-02, 8.216752e-02, 8.606141e-02, 8.995267e-02,
- 9.384121e-02, 9.772691e-02, 1.016096e-01, 1.054893e-01,
- 1.093658e-01, 1.132390e-01, 1.171087e-01, 1.209750e-01,
- 1.248376e-01, 1.286965e-01, 1.325515e-01, 1.364026e-01,
- 1.402496e-01, 1.440924e-01, 1.479310e-01, 1.517652e-01,
- 1.555948e-01, 1.594199e-01, 1.632403e-01, 1.670559e-01,
- 1.708665e-01, 1.746722e-01, 1.784728e-01, 1.822681e-01,
- 1.860582e-01, 1.898428e-01, 1.936220e-01, 1.973956e-01,
- 2.011634e-01, 2.049255e-01, 2.086818e-01, 2.124320e-01,
- 2.161762e-01, 2.199143e-01, 2.236461e-01, 2.273716e-01,
- 2.310907e-01, 2.348033e-01, 2.385093e-01, 2.422086e-01,
- 2.459012e-01, 2.495869e-01, 2.532658e-01, 2.569376e-01,
- 2.606024e-01, 2.642600e-01, 2.679104e-01, 2.715535e-01,
- 2.751892e-01, 2.788175e-01, 2.824383e-01, 2.860514e-01,
- 2.896569e-01, 2.932547e-01, 2.968447e-01, 3.004268e-01,
- 3.040009e-01, 3.075671e-01, 3.111252e-01, 3.146752e-01,
- 3.182170e-01, 3.217506e-01, 3.252758e-01, 3.287927e-01,
- 3.323012e-01, 3.358012e-01, 3.392926e-01, 3.427755e-01,
- 3.462497e-01, 3.497153e-01, 3.531721e-01, 3.566201e-01,
- 3.600593e-01, 3.634896e-01, 3.669110e-01, 3.703234e-01,
- 3.737268e-01, 3.771211e-01, 3.805064e-01, 3.838825e-01,
- 3.872494e-01, 3.906070e-01, 3.939555e-01, 3.972946e-01,
- 4.006244e-01, 4.039448e-01, 4.072558e-01, 4.105574e-01,
- 4.138496e-01, 4.171322e-01, 4.204054e-01, 4.236689e-01,
- 4.269229e-01, 4.301673e-01, 4.334021e-01, 4.366272e-01,
- 4.398426e-01, 4.430483e-01, 4.462443e-01, 4.494306e-01,
- 4.526070e-01, 4.557738e-01, 4.589307e-01, 4.620778e-01,
- 4.652150e-01, 4.683424e-01, 4.714600e-01, 4.745676e-01,
- 4.776654e-01, 4.807532e-01, 4.838312e-01, 4.868992e-01,
- 4.899573e-01, 4.930055e-01, 4.960437e-01, 4.990719e-01,
- 5.020902e-01, 5.050985e-01, 5.080968e-01, 5.110852e-01,
- 5.140636e-01, 5.170320e-01, 5.199904e-01, 5.229388e-01,
- 5.258772e-01, 5.288056e-01, 5.317241e-01, 5.346325e-01,
- 5.375310e-01, 5.404195e-01, 5.432980e-01, 5.461666e-01,
- 5.490251e-01, 5.518738e-01, 5.547124e-01, 5.575411e-01,
- 5.603599e-01, 5.631687e-01, 5.659676e-01, 5.687566e-01,
- 5.715357e-01, 5.743048e-01, 5.770641e-01, 5.798135e-01,
- 5.825531e-01, 5.852828e-01, 5.880026e-01, 5.907126e-01,
- 5.934128e-01, 5.961032e-01, 5.987839e-01, 6.014547e-01,
- 6.041158e-01, 6.067672e-01, 6.094088e-01, 6.120407e-01,
- 6.146630e-01, 6.172755e-01, 6.198784e-01, 6.224717e-01,
- 6.250554e-01, 6.276294e-01, 6.301939e-01, 6.327488e-01,
- 6.352942e-01, 6.378301e-01, 6.403565e-01, 6.428734e-01,
- 6.453808e-01, 6.478788e-01, 6.503674e-01, 6.528466e-01,
- 6.553165e-01, 6.577770e-01, 6.602282e-01, 6.626701e-01,
- 6.651027e-01, 6.675261e-01, 6.699402e-01, 6.723452e-01,
- 6.747409e-01, 6.771276e-01, 6.795051e-01, 6.818735e-01,
- 6.842328e-01, 6.865831e-01, 6.889244e-01, 6.912567e-01,
- 6.935800e-01, 6.958943e-01, 6.981998e-01, 7.004964e-01,
- 7.027841e-01, 7.050630e-01, 7.073330e-01, 7.095943e-01,
- 7.118469e-01, 7.140907e-01, 7.163258e-01, 7.185523e-01,
- 7.207701e-01, 7.229794e-01, 7.251800e-01, 7.273721e-01,
- 7.295557e-01, 7.317307e-01, 7.338974e-01, 7.360555e-01,
- 7.382053e-01, 7.403467e-01, 7.424797e-01, 7.446045e-01,
- 7.467209e-01, 7.488291e-01, 7.509291e-01, 7.530208e-01,
- 7.551044e-01, 7.571798e-01, 7.592472e-01, 7.613064e-01,
- 7.633576e-01, 7.654008e-01, 7.674360e-01, 7.694633e-01,
- 7.714826e-01, 7.734940e-01, 7.754975e-01, 7.774932e-01,
- 7.794811e-01, 7.814612e-01, 7.834335e-01, 7.853983e-01,
- 7.853983e-01
- };
-
-
-/*****************************************************************************
-Function: Arc tangent
-
-Syntax: angle = fast_atan2(y, x);
-REAL y y component of input vector
-REAL x x component of input vector
-REAL angle angle of vector (x, y) in radians
-
-Description: This function calculates the angle of the vector (x,y) based
-on a table lookup and linear interpolation. The table uses
-a 256 point table covering -45 to +45 degrees and uses
-symetry to determine the final angle value in the range of
--180 to 180 degrees. Note that this function uses the small
-angle approximation for values close to zero. This routine
-calculates the arc tangent with an average error of
-+/- 0.045 degrees.
-*****************************************************************************/
-
-REAL
-gr_fast_atan2f(REAL y, REAL x)
-{
- REAL x_abs, y_abs, z;
- REAL alpha, angle, base_angle;
- int index;
-
- /* don't divide by zero! */ // FIXME could get hosed with -0.0
- if ((y == 0.0) && (x == 0.0))
- return 0.0;
-
- /* normalize to +/- 45 degree range */
- y_abs = fabs(y);
- x_abs = fabs(x);
- //z = (y_abs < x_abs ? y_abs / x_abs : x_abs / y_abs);
- if (y_abs < x_abs)
- z = y_abs / x_abs;
- else
- z = x_abs / y_abs;
-
- /* when ratio approaches the table resolution, the angle is */
- /* best approximated with the argument itself... */
- if (z < TAN_MAP_RES)
- base_angle = z;
- else {
- /* find index and interpolation value */
- alpha = z * (REAL) TAN_MAP_SIZE - .5;
- index = (int) alpha;
- alpha -= (REAL) index;
- /* determine base angle based on quadrant and */
- /* add or subtract table value from base angle based on quadrant */
- base_angle = fast_atan_table[index];
- base_angle +=
- (fast_atan_table[index + 1] - fast_atan_table[index]) * alpha;
- }
-
- if (x_abs > y_abs) { /* -45 -> 45 or 135 -> 225 */
- if (x >= 0.0) { /* -45 -> 45 */
- if (y >= 0.0)
- angle = base_angle; /* 0 -> 45, angle OK */
- else
- angle = -base_angle; /* -45 -> 0, angle = -angle */
- } else { /* 135 -> 180 or 180 -> -135 */
- angle = 3.14159265358979323846;
- if (y >= 0.0)
- angle -= base_angle; /* 135 -> 180, angle = 180 - angle */
- else
- angle = base_angle - angle; /* 180 -> -135, angle = angle - 180 */
- }
- } else { /* 45 -> 135 or -135 -> -45 */
- if (y >= 0.0) { /* 45 -> 135 */
- angle = 1.57079632679489661923;
- if (x >= 0.0)
- angle -= base_angle; /* 45 -> 90, angle = 90 - angle */
- else
- angle += base_angle; /* 90 -> 135, angle = 90 + angle */
- } else { /* -135 -> -45 */
- angle = -1.57079632679489661923;
- if (x >= 0.0)
- angle += base_angle; /* -90 -> -45, angle = -90 + angle */
- else
- angle -= base_angle; /* -135 -> -90, angle = -90 - angle */
- }
- }
-
-#ifdef ZERO_TO_TWOPI
- if (angle < 0)
- return (angle + TWOPI);
- else
- return (angle);
-#else
- return (angle);
-#endif
-}
-
diff --git a/gnuradio-core/src/lib/general/gr_feval.cc b/gnuradio-core/src/lib/general/gr_feval.cc
deleted file mode 100644
index 89f09984cf..0000000000
--- a/gnuradio-core/src/lib/general/gr_feval.cc
+++ /dev/null
@@ -1,132 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gr_feval.h>
-
-gr_feval_dd::~gr_feval_dd(){}
-
-double
-gr_feval_dd::eval(double x)
-{
- return 0;
-}
-
-double
-gr_feval_dd::calleval(double x)
-{
- return eval(x);
-}
-
-// ----------------------------------------------------------------
-
-gr_feval_cc::~gr_feval_cc(){}
-
-gr_complex
-gr_feval_cc::eval(gr_complex x)
-{
- return 0;
-}
-
-gr_complex
-gr_feval_cc::calleval(gr_complex x)
-{
- return eval(x);
-}
-
-// ----------------------------------------------------------------
-
-gr_feval_ll::~gr_feval_ll(){}
-
-long
-gr_feval_ll::eval(long x)
-{
- return 0;
-}
-
-long
-gr_feval_ll::calleval(long x)
-{
- return eval(x);
-}
-
-// ----------------------------------------------------------------
-
-gr_feval::~gr_feval(){}
-
-void
-gr_feval::eval(void)
-{
- // nop
-}
-
-void
-gr_feval::calleval(void)
-{
- eval();
-}
-
-// ----------------------------------------------------------------
-
-gr_feval_p::~gr_feval_p(){}
-
-void
-gr_feval_p::eval(pmt::pmt_t x)
-{
- // nop
-}
-
-void
-gr_feval_p::calleval(pmt::pmt_t x)
-{
- eval(x);
-}
-
-/*
- * Trivial examples showing C++ (transparently) calling Python
- */
-double
-gr_feval_dd_example(gr_feval_dd *f, double x)
-{
- return f->calleval(x);
-}
-
-gr_complex
-gr_feval_cc_example(gr_feval_cc *f, gr_complex x)
-{
- return f->calleval(x);
-}
-
-long
-gr_feval_ll_example(gr_feval_ll *f, long x)
-{
- return f->calleval(x);
-}
-
-void
-gr_feval_example(gr_feval *f)
-{
- f->calleval();
-}
diff --git a/gnuradio-core/src/lib/general/gr_feval.h b/gnuradio-core/src/lib/general/gr_feval.h
deleted file mode 100644
index a9bccfe51c..0000000000
--- a/gnuradio-core/src/lib/general/gr_feval.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006 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.
- */
-#ifndef INCLUDED_GR_FEVAL_H
-#define INCLUDED_GR_FEVAL_H
-
-#include <gr_core_api.h>
-#include <gr_complex.h>
-#include <gruel/pmt.h>
-
-/*!
- * \brief base class for evaluating a function: double -> double
- * \ingroup misc
- *
- * This class is designed to be subclassed in Python or C++
- * and is callable from both places. It uses SWIG's
- * "director" feature to implement the magic.
- * It's slow. Don't use it in a performance critical path.
- *
- * Override eval to define the behavior.
- * Use calleval to invoke eval (this kludge is required to allow a
- * python specific "shim" to be inserted.
- */
-class GR_CORE_API gr_feval_dd
-{
-protected:
- /*!
- * \brief override this to define the function
- */
- virtual double eval(double x);
-
-public:
- gr_feval_dd() {}
- virtual ~gr_feval_dd();
-
- virtual double calleval(double x); // invoke "eval"
-};
-
-/*!
- * \brief base class for evaluating a function: complex -> complex
- * \ingroup misc
- *
- * This class is designed to be subclassed in Python or C++
- * and is callable from both places. It uses SWIG's
- * "director" feature to implement the magic.
- * It's slow. Don't use it in a performance critical path.
- *
- * Override eval to define the behavior.
- * Use calleval to invoke eval (this kludge is required to allow a
- * python specific "shim" to be inserted.
- */
-class GR_CORE_API gr_feval_cc
-{
-protected:
- /*!
- * \brief override this to define the function
- */
- virtual gr_complex eval(gr_complex x);
-
-public:
- gr_feval_cc() {}
- virtual ~gr_feval_cc();
-
- virtual gr_complex calleval(gr_complex x); // invoke "eval"
-};
-
-/*!
- * \brief base class for evaluating a function: long -> long
- * \ingroup misc
- *
- * This class is designed to be subclassed in Python or C++
- * and is callable from both places. It uses SWIG's
- * "director" feature to implement the magic.
- * It's slow. Don't use it in a performance critical path.
- *
- * Override eval to define the behavior.
- * Use calleval to invoke eval (this kludge is required to allow a
- * python specific "shim" to be inserted.
- */
-class GR_CORE_API gr_feval_ll
-{
-protected:
- /*!
- * \brief override this to define the function
- */
- virtual long eval(long x);
-
-public:
- gr_feval_ll() {}
- virtual ~gr_feval_ll();
-
- virtual long calleval(long x); // invoke "eval"
-};
-
-/*!
- * \brief base class for evaluating a function: void -> void
- * \ingroup misc
- *
- * This class is designed to be subclassed in Python or C++
- * and is callable from both places. It uses SWIG's
- * "director" feature to implement the magic.
- * It's slow. Don't use it in a performance critical path.
- *
- * Override eval to define the behavior.
- * Use calleval to invoke eval (this kludge is required to allow a
- * python specific "shim" to be inserted.
- */
-class GR_CORE_API gr_feval
-{
-protected:
- /*!
- * \brief override this to define the function
- */
- virtual void eval();
-
-public:
- gr_feval() {}
- virtual ~gr_feval();
-
- virtual void calleval(); // invoke "eval"
-};
-
-/*!
- * \brief base class for evaluating a function: pmt -> void
- * \ingroup misc
- *
- * This class is designed to be subclassed in Python or C++
- * and is callable from both places. It uses SWIG's
- * "director" feature to implement the magic.
- * It's slow. Don't use it in a performance critical path.
- *
- * Override eval to define the behavior.
- * Use calleval to invoke eval (this kludge is required to allow a
- * python specific "shim" to be inserted.
- */
-class GR_CORE_API gr_feval_p
-{
-protected:
- /*!
- * \brief override this to define the function
- */
- virtual void eval(pmt::pmt_t x);
-
-public:
- gr_feval_p() {}
- virtual ~gr_feval_p();
-
- virtual void calleval(pmt::pmt_t x); // invoke "eval"
-};
-
-/*!
- * \brief trivial examples / test cases showing C++ calling Python code
- */
-GR_CORE_API double gr_feval_dd_example(gr_feval_dd *f, double x);
-GR_CORE_API gr_complex gr_feval_cc_example(gr_feval_cc *f, gr_complex x);
-GR_CORE_API long gr_feval_ll_example(gr_feval_ll *f, long x);
-GR_CORE_API void gr_feval_example(gr_feval *f);
-
-#endif /* INCLUDED_GR_FEVAL_H */
diff --git a/gnuradio-core/src/lib/general/gr_feval.i b/gnuradio-core/src/lib/general/gr_feval.i
deleted file mode 100644
index bcf4f1e646..0000000000
--- a/gnuradio-core/src/lib/general/gr_feval.i
+++ /dev/null
@@ -1,233 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2010 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.
- */
-
-
-/*
- * N.B., this is a _very_ non-standard SWIG .i file
- *
- * It contains a bunch of magic that is required to ensure that when
- * these classes are used as base classes for python code,
- * everything works when calling back from C++ into Python.
- *
- * The gist of the problem is that our C++ code is usually not holding
- * the Python Global Interpreter Lock (GIL). Thus if we invoke a
- * "director" method from C++, we'll end up in Python not holding the
- * GIL. Disaster (SIGSEGV) will result. To avoid this we insert a
- * "shim" that grabs and releases the GIL.
- *
- * If you don't understand SWIG "directors" or the Python GIL,
- * don't bother trying to understand what's going on in here.
- *
- * [We could eliminate a bunch of this hair by requiring SWIG 1.3.29
- * or later and some additional magic declarations, but many systems
- * aren't shipping that version yet. Thus we kludge...]
- */
-
-
-// Directors are only supported in Python, Java and C#
-#ifdef SWIGPYTHON
-%include "pmt_swig.i"
-using namespace pmt;
-
-// Enable SWIG directors for these classes
-%feature("director") gr_py_feval_dd;
-%feature("director") gr_py_feval_cc;
-%feature("director") gr_py_feval_ll;
-%feature("director") gr_py_feval;
-%feature("director") gr_py_feval_p;
-
-%feature("nodirector") gr_py_feval_dd::calleval;
-%feature("nodirector") gr_py_feval_cc::calleval;
-%feature("nodirector") gr_py_feval_ll::calleval;
-%feature("nodirector") gr_py_feval::calleval;
-%feature("nodirector") gr_py_feval_p::calleval;
-
-
-%rename(feval_dd) gr_py_feval_dd;
-%rename(feval_cc) gr_py_feval_cc;
-%rename(feval_ll) gr_py_feval_ll;
-%rename(feval) gr_py_feval;
-%rename(feval_p) gr_py_feval_p;
-
-//%exception {
-// try { $action }
-// catch (Swig::DirectorException &e) { std::cerr << e.getMessage(); SWIG_fail; }
-//}
-
-%{
-
-// class that ensures we acquire and release the Python GIL
-
-class ensure_py_gil_state {
- PyGILState_STATE d_gstate;
-public:
- ensure_py_gil_state() { d_gstate = PyGILState_Ensure(); }
- ~ensure_py_gil_state() { PyGILState_Release(d_gstate); }
-};
-
-%}
-
-/*
- * These are the real C++ base classes, however we don't want these exposed.
- */
-%ignore gr_feval_dd;
-class gr_feval_dd
-{
-protected:
- virtual double eval(double x);
-
-public:
- gr_feval_dd() {}
- virtual ~gr_feval_dd();
-
- virtual double calleval(double x);
-};
-
-%ignore gr_feval_cc;
-class gr_feval_cc
-{
-protected:
- virtual gr_complex eval(gr_complex x);
-
-public:
- gr_feval_cc() {}
- virtual ~gr_feval_cc();
-
- virtual gr_complex calleval(gr_complex x);
-};
-
-%ignore gr_feval_ll;
-class gr_feval_ll
-{
-protected:
- virtual long eval(long x);
-
-public:
- gr_feval_ll() {}
- virtual ~gr_feval_ll();
-
- virtual long calleval(long x);
-};
-
-%ignore gr_feval;
-class gr_feval
-{
-protected:
- virtual void eval();
-
-public:
- gr_feval() {}
- virtual ~gr_feval();
-
- virtual void calleval();
-};
-
-%ignore gr_feval_p;
-class gr_feval_p
-{
-protected:
- virtual void eval(pmt_t x);
-
-public:
- gr_feval_p() {}
- virtual ~gr_feval_p();
-
- virtual void calleval(pmt_t x);
-};
-
-/*
- * These are the ones to derive from in Python. They have the magic shim
- * that ensures that we're holding the Python GIL when we enter Python land...
- */
-
-%inline %{
-#include <gruel/pmt.h>
-
-class gr_py_feval_dd : public gr_feval_dd
-{
- public:
- double calleval(double x)
- {
- ensure_py_gil_state _lock;
- return eval(x);
- }
-};
-
-class gr_py_feval_cc : public gr_feval_cc
-{
- public:
- gr_complex calleval(gr_complex x)
- {
- ensure_py_gil_state _lock;
- return eval(x);
- }
-};
-
-class gr_py_feval_ll : public gr_feval_ll
-{
- public:
- long calleval(long x)
- {
- ensure_py_gil_state _lock;
- return eval(x);
- }
-};
-
-class gr_py_feval : public gr_feval
-{
- public:
- void calleval()
- {
- ensure_py_gil_state _lock;
- eval();
- }
-};
-
-class gr_py_feval_p : public gr_feval_p
-{
- public:
- void calleval(pmt::pmt_t x)
- {
- ensure_py_gil_state _lock;
- eval(x);
- }
-};
-
-%}
-
-
-
-// examples / test cases
-
-%rename(feval_dd_example) gr_feval_dd_example;
-double gr_feval_dd_example(gr_feval_dd *f, double x);
-
-%rename(feval_cc_example) gr_feval_cc_example;
-gr_complex gr_feval_cc_example(gr_feval_cc *f, gr_complex x);
-
-%rename(feval_ll_example) gr_feval_ll_example;
-long gr_feval_ll_example(gr_feval_ll *f, long x);
-
-%rename(feval_example) gr_feval_example;
-void gr_feval_example(gr_feval *f);
-
-#endif // SWIGPYTHON
diff --git a/gnuradio-core/src/lib/general/gr_fxpt.cc b/gnuradio-core/src/lib/general/gr_fxpt.cc
deleted file mode 100644
index 2ea8520e6b..0000000000
--- a/gnuradio-core/src/lib/general/gr_fxpt.cc
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gr_fxpt.h>
-
-const float gr_fxpt::s_sine_table[1 << NBITS][2] = {
-#include "sine_table.h"
-};
-
-const float gr_fxpt::PI = 3.14159265358979323846;
-const float gr_fxpt::TWO_TO_THE_31 = 2147483648.0;
-
diff --git a/gnuradio-core/src/lib/general/gr_fxpt.h b/gnuradio-core/src/lib/general/gr_fxpt.h
deleted file mode 100644
index 9de6c0c18a..0000000000
--- a/gnuradio-core/src/lib/general/gr_fxpt.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-#ifndef INCLUDED_GR_FXPT_H
-#define INCLUDED_GR_FXPT_H
-
-#include <gr_core_api.h>
-#include <gr_types.h>
-
-/*!
- * \brief fixed point sine and cosine and friends.
- * \ingroup misc
- *
- * fixed pt radians
- * --------- --------
- * -2**31 -pi
- * 0 0
- * 2**31-1 pi - epsilon
- *
- */
-class GR_CORE_API gr_fxpt
-{
- static const int WORDBITS = 32;
- static const int NBITS = 10;
- static const float s_sine_table[1 << NBITS][2];
- static const float PI;
- static const float TWO_TO_THE_31;
-public:
-
- static gr_int32
- float_to_fixed (float x)
- {
- // Fold x into -PI to PI.
- int d = (int)floor(x/2/PI+0.5);
- x -= d*2*PI;
- // And convert to an integer.
- return (gr_int32) ((float) x * TWO_TO_THE_31 / PI);
- }
-
- static float
- fixed_to_float (gr_int32 x)
- {
- return x * (PI / TWO_TO_THE_31);
- }
-
- /*!
- * \brief Given a fixed point angle x, return float sine (x)
- */
- static float
- sin (gr_int32 x)
- {
- gr_uint32 ux = x;
- int index = ux >> (WORDBITS - NBITS);
- return s_sine_table[index][0] * (ux >> 1) + s_sine_table[index][1];
- }
-
- /*
- * \brief Given a fixed point angle x, return float cosine (x)
- */
- static float
- cos (gr_int32 x)
- {
- gr_uint32 ux = x + 0x40000000;
- int index = ux >> (WORDBITS - NBITS);
- return s_sine_table[index][0] * (ux >> 1) + s_sine_table[index][1];
- }
-
- /*
- * \brief Given a fixedpoint angle x, return float cos(x) and sin (x)
- */
- static void sincos(gr_int32 x, float *s, float *c)
- {
- gr_uint32 ux = x;
- int sin_index = ux >> (WORDBITS - NBITS);
- *s = s_sine_table[sin_index][0] * (ux >> 1) + s_sine_table[sin_index][1];
-
- ux = x + 0x40000000;
- int cos_index = ux >> (WORDBITS - NBITS);
- *c = s_sine_table[cos_index][0] * (ux >> 1) + s_sine_table[cos_index][1];
-
- return;
- }
-
-};
-
-#endif /* INCLUDED_GR_FXPT_H */
diff --git a/gnuradio-core/src/lib/general/gr_fxpt_nco.h b/gnuradio-core/src/lib/general/gr_fxpt_nco.h
deleted file mode 100644
index 9defa083da..0000000000
--- a/gnuradio-core/src/lib/general/gr_fxpt_nco.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002,2004 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.
- */
-#ifndef INCLUDED_GR_FXPT_NCO_H
-#define INCLUDED_GR_FXPT_NCO_H
-
-#include <gr_core_api.h>
-#include <gr_fxpt.h>
-#include <gr_complex.h>
-
-/*!
- * \brief Numerically Controlled Oscillator (NCO)
- * \ingroup misc
- */
-class /*GR_CORE_API*/ gr_fxpt_nco {
- gr_uint32 d_phase;
- gr_int32 d_phase_inc;
-
-public:
- gr_fxpt_nco () : d_phase (0), d_phase_inc (0) {}
-
- ~gr_fxpt_nco () {}
-
- // radians
- void set_phase (float angle) {
- d_phase = gr_fxpt::float_to_fixed (angle);
- }
-
- void adjust_phase (float delta_phase) {
- d_phase += gr_fxpt::float_to_fixed (delta_phase);
- }
-
- // angle_rate is in radians / step
- void set_freq (float angle_rate){
- d_phase_inc = gr_fxpt::float_to_fixed (angle_rate);
- }
-
- // angle_rate is a delta in radians / step
- void adjust_freq (float delta_angle_rate)
- {
- d_phase_inc += gr_fxpt::float_to_fixed (delta_angle_rate);
- }
-
- // increment current phase angle
-
- void step ()
- {
- d_phase += d_phase_inc;
- }
-
- void step (int n)
- {
- d_phase += d_phase_inc * n;
- }
-
- // units are radians / step
- float get_phase () const { return gr_fxpt::fixed_to_float (d_phase); }
- float get_freq () const { return gr_fxpt::fixed_to_float (d_phase_inc); }
-
- // compute sin and cos for current phase angle
- void sincos (float *sinx, float *cosx) const
- {
- *sinx = gr_fxpt::sin (d_phase);
- *cosx = gr_fxpt::cos (d_phase);
- }
-
- // compute cos and sin for a block of phase angles
- void sincos (gr_complex *output, int noutput_items, double ampl=1.0)
- {
- for (int i = 0; i < noutput_items; i++){
- output[i] = gr_complex(gr_fxpt::cos (d_phase) * ampl, gr_fxpt::sin (d_phase) * ampl);
- step ();
- }
- }
-
- // compute sin for a block of phase angles
- void sin (float *output, int noutput_items, double ampl=1.0)
- {
- for (int i = 0; i < noutput_items; i++){
- output[i] = (float)(gr_fxpt::sin (d_phase) * ampl);
- step ();
- }
- }
-
- // compute cos for a block of phase angles
- void cos (float *output, int noutput_items, double ampl=1.0)
- {
- for (int i = 0; i < noutput_items; i++){
- output[i] = (float)(gr_fxpt::cos (d_phase) * ampl);
- step ();
- }
- }
-
- // compute sin for a block of phase angles
- void sin (short *output, int noutput_items, double ampl=1.0)
- {
- for (int i = 0; i < noutput_items; i++){
- output[i] = (short)(gr_fxpt::sin (d_phase) * ampl);
- step ();
- }
- }
-
- // compute cos for a block of phase angles
- void cos (short *output, int noutput_items, double ampl=1.0)
- {
- for (int i = 0; i < noutput_items; i++){
- output[i] = (short)(gr_fxpt::cos (d_phase) * ampl);
- step ();
- }
- }
-
- // compute sin for a block of phase angles
- void sin (int *output, int noutput_items, double ampl=1.0)
- {
- for (int i = 0; i < noutput_items; i++){
- output[i] = (int)(gr_fxpt::sin (d_phase) * ampl);
- step ();
- }
- }
-
- // compute cos for a block of phase angles
- void cos (int *output, int noutput_items, double ampl=1.0)
- {
- for (int i = 0; i < noutput_items; i++){
- output[i] = (int)(gr_fxpt::cos (d_phase) * ampl);
- step ();
- }
- }
-
- // compute cos or sin for current phase angle
- float cos () const { return gr_fxpt::cos (d_phase); }
- float sin () const { return gr_fxpt::sin (d_phase); }
-};
-
-#endif /* INCLUDED_GR_FXPT_NCO_H */
diff --git a/gnuradio-core/src/lib/general/gr_fxpt_vco.h b/gnuradio-core/src/lib/general/gr_fxpt_vco.h
deleted file mode 100644
index 13be2526bd..0000000000
--- a/gnuradio-core/src/lib/general/gr_fxpt_vco.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002,2004,2005 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.
- */
-#ifndef INCLUDED_GR_FXPT_VCO_H
-#define INCLUDED_GR_FXPT_VCO_H
-
-#include <gr_core_api.h>
-#include <gr_fxpt.h>
-#include <gr_complex.h>
-
-/*!
- * \brief Voltage Controlled Oscillator (VCO)
- * \ingroup misc
- */
-class /*GR_CORE_API*/ gr_fxpt_vco {
- gr_int32 d_phase;
-
-public:
- gr_fxpt_vco () : d_phase (0) {}
-
- ~gr_fxpt_vco () {}
-
- // radians
- void set_phase (float angle) {
- d_phase = gr_fxpt::float_to_fixed (angle);
- }
-
- void adjust_phase (float delta_phase) {
- d_phase += gr_fxpt::float_to_fixed (delta_phase);
- }
-
- float get_phase () const { return gr_fxpt::fixed_to_float (d_phase); }
-
- // compute sin and cos for current phase angle
- void sincos (float *sinx, float *cosx) const
- {
- *sinx = gr_fxpt::sin (d_phase);
- *cosx = gr_fxpt::cos (d_phase);
- }
-
- // compute a block at a time
- void cos (float *output, const float *input, int noutput_items, float k, float ampl = 1.0)
- {
- for (int i = 0; i < noutput_items; i++){
- output[i] = (float)(gr_fxpt::cos (d_phase) * ampl);
- adjust_phase(input[i] * k);
- }
- }
-
- // compute cos or sin for current phase angle
- float cos () const { return gr_fxpt::cos (d_phase); }
- float sin () const { return gr_fxpt::sin (d_phase); }
-};
-
-#endif /* INCLUDED_GR_FXPT_VCO_H */
diff --git a/gnuradio-core/src/lib/general/gr_math.h b/gnuradio-core/src/lib/general/gr_math.h
deleted file mode 100644
index b9a802da84..0000000000
--- a/gnuradio-core/src/lib/general/gr_math.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2003,2005,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.
- */
-
-/*
- * mathematical odds and ends.
- */
-
-#ifndef _GR_MATH_H_
-#define _GR_MATH_H_
-
-#include <gr_core_api.h>
-#include <gr_complex.h>
-
-static inline bool
-gr_is_power_of_2(long x)
-{
- return x != 0 && (x & (x-1)) == 0;
-}
-
-/*!
- * \brief Fast arc tangent using table lookup and linear interpolation
- * \ingroup misc
- *
- * \param y component of input vector
- * \param x component of input vector
- * \returns float angle angle of vector (x, y) in radians
- *
- * This function calculates the angle of the vector (x,y) based on a
- * table lookup and linear interpolation. The table uses a 256 point
- * table covering -45 to +45 degrees and uses symetry to determine the
- * final angle value in the range of -180 to 180 degrees. Note that
- * this function uses the small angle approximation for values close
- * to zero. This routine calculates the arc tangent with an average
- * error of +/- 0.045 degrees.
- */
-GR_CORE_API float gr_fast_atan2f(float y, float x);
-
-static inline float gr_fast_atan2f(gr_complex z)
-{
- return gr_fast_atan2f(z.imag(), z.real());
-}
-
-/* This bounds x by +/- clip without a branch */
-static inline float gr_branchless_clip(float x, float clip)
-{
- float x1 = fabsf(x+clip);
- float x2 = fabsf(x-clip);
- x1 -= x2;
- return 0.5*x1;
-}
-
-static inline float gr_clip(float x, float clip)
-{
- float y = x;
- if(x > clip)
- y = clip;
- else if(x < -clip)
- y = -clip;
- return y;
-}
-
-// Slicer Functions
-static inline unsigned int gr_binary_slicer(float x)
-{
- if(x >= 0)
- return 1;
- else
- return 0;
-}
-
-static inline unsigned int gr_quad_45deg_slicer(float r, float i)
-{
- unsigned int ret = 0;
- if((r >= 0) && (i >= 0))
- ret = 0;
- else if((r < 0) && (i >= 0))
- ret = 1;
- else if((r < 0) && (i < 0))
- ret = 2;
- else
- ret = 3;
- return ret;
-}
-
-static inline unsigned int gr_quad_0deg_slicer(float r, float i)
-{
- unsigned int ret = 0;
- if(fabsf(r) > fabsf(i)) {
- if(r > 0)
- ret = 0;
- else
- ret = 2;
- }
- else {
- if(i > 0)
- ret = 1;
- else
- ret = 3;
- }
-
- return ret;
-}
-
-static inline unsigned int gr_quad_45deg_slicer(gr_complex x)
-{
- return gr_quad_45deg_slicer(x.real(), x.imag());
-}
-
-static inline unsigned int gr_quad_0deg_slicer(gr_complex x)
-{
- return gr_quad_0deg_slicer(x.real(), x.imag());
-}
-
-// Branchless Slicer Functions
-static inline unsigned int gr_branchless_binary_slicer(float x)
-{
- return (x >= 0);
-}
-
-static inline unsigned int gr_branchless_quad_0deg_slicer(float r, float i)
-{
- unsigned int ret = 0;
- ret = (fabsf(r) > fabsf(i)) * (((r < 0) << 0x1)); // either 0 (00) or 2 (10)
- ret |= (fabsf(i) > fabsf(r)) * (((i < 0) << 0x1) | 0x1); // either 1 (01) or 3 (11)
-
- return ret;
-}
-
-static inline unsigned int gr_branchless_quad_0deg_slicer(gr_complex x)
-{
- return gr_branchless_quad_0deg_slicer(x.real(), x.imag());
-}
-
-static inline unsigned int gr_branchless_quad_45deg_slicer(float r, float i)
-{
- char ret = (r <= 0);
- ret |= ((i <= 0) << 1);
- return (ret ^ ((ret & 0x2) >> 0x1));
-}
-
-static inline unsigned int gr_branchless_quad_45deg_slicer(gr_complex x)
-{
- return gr_branchless_quad_45deg_slicer(x.real(), x.imag());
-}
-
-/*!
- * \param x any value
- * \param pow2 must be a power of 2
- * \returns \p x rounded down to a multiple of \p pow2.
- */
-static inline size_t
-gr_p2_round_down(size_t x, size_t pow2)
-{
- return x & -pow2;
-}
-
-/*!
- * \param x any value
- * \param pow2 must be a power of 2
- * \returns \p x rounded up to a multiple of \p pow2.
- */
-static inline size_t
-gr_p2_round_up(size_t x, size_t pow2)
-{
- return gr_p2_round_down(x + pow2 - 1, pow2);
-}
-
-/*!
- * \param x any value
- * \param pow2 must be a power of 2
- * \returns \p x modulo \p pow2.
- */
-static inline size_t
-gr_p2_modulo(size_t x, size_t pow2)
-{
- return x & (pow2 - 1);
-}
-
-/*!
- * \param x any value
- * \param pow2 must be a power of 2
- * \returns \p pow2 - (\p x modulo \p pow2).
- */
-static inline size_t
-gr_p2_modulo_neg(size_t x, size_t pow2)
-{
- return pow2 - gr_p2_modulo(x, pow2);
-}
-
-#endif /* _GR_MATH_H_ */
diff --git a/gnuradio-core/src/lib/general/gr_misc.cc b/gnuradio-core/src/lib/general/gr_misc.cc
deleted file mode 100644
index 1ed2a03d7f..0000000000
--- a/gnuradio-core/src/lib/general/gr_misc.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2005 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <gr_misc.h>
-
-unsigned int
-gr_rounduppow2(unsigned int n)
-{
- int i;
- for (i=0;((n-1)>>i) != 0;i++)
- ;
- return 1<<i;
-}
-
-// ----------------------------------------------------------------
-
-void
-gr_zero_vector(std::vector<float> &v)
-{
- for(unsigned int i=0; i < v.size(); i++)
- v[i] = 0;
-}
-
-void
-gr_zero_vector(std::vector<double> &v)
-{
- for(unsigned int i=0; i < v.size(); i++)
- v[i] = 0;
-}
-
-void
-gr_zero_vector(std::vector<int> &v)
-{
- for(unsigned int i=0; i < v.size(); i++)
- v[i] = 0;
-}
-
-void
-gr_zero_vector(std::vector<gr_complex> &v)
-{
- for(unsigned int i=0; i < v.size(); i++)
- v[i] = 0;
-}
diff --git a/gnuradio-core/src/lib/general/gr_misc.h b/gnuradio-core/src/lib/general/gr_misc.h
deleted file mode 100644
index 0c790e90ce..0000000000
--- a/gnuradio-core/src/lib/general/gr_misc.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2005 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.
- */
-
-#ifndef INCLUDED_GR_MISC_H
-#define INCLUDED_GR_MISC_H
-
-#include <gr_core_api.h>
-#include <gr_types.h>
-
-GR_CORE_API unsigned int
-gr_rounduppow2(unsigned int n);
-
-// FIXME should be template
-GR_CORE_API void gr_zero_vector(std::vector<float> &v);
-GR_CORE_API void gr_zero_vector(std::vector<double> &v);
-GR_CORE_API void gr_zero_vector(std::vector<int> &v);
-GR_CORE_API void gr_zero_vector(std::vector<gr_complex> &v);
-
-
-#endif /* INCLUDED_GR_MISC_H */
diff --git a/gnuradio-core/src/lib/general/gr_nco.h b/gnuradio-core/src/lib/general/gr_nco.h
deleted file mode 100644
index fb51106aab..0000000000
--- a/gnuradio-core/src/lib/general/gr_nco.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002 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.
- */
-#ifndef _GR_NCO_H_
-#define _GR_NCO_H_
-
-
-#include <vector>
-#include <gr_sincos.h>
-#include <cmath>
-#include <gr_complex.h>
-
-/*!
- * \brief base class template for Numerically Controlled Oscillator (NCO)
- * \ingroup misc
- */
-
-
-//FIXME Eventually generalize this to fixed point
-
-template<class o_type, class i_type>
-class gr_nco {
-public:
- gr_nco () : phase (0), phase_inc(0) {}
-
- virtual ~gr_nco () {}
-
- // radians
- void set_phase (double angle) {
- phase = angle;
- }
-
- void adjust_phase (double delta_phase) {
- phase += delta_phase;
- }
-
-
- // angle_rate is in radians / step
- void set_freq (double angle_rate){
- phase_inc = angle_rate;
- }
-
- // angle_rate is a delta in radians / step
- void adjust_freq (double delta_angle_rate)
- {
- phase_inc += delta_angle_rate;
- }
-
- // increment current phase angle
-
- void step ()
- {
- phase += phase_inc;
- if (fabs (phase) > M_PI){
-
- while (phase > M_PI)
- phase -= 2*M_PI;
-
- while (phase < -M_PI)
- phase += 2*M_PI;
- }
- }
-
- void step (int n)
- {
- phase += phase_inc * n;
- if (fabs (phase) > M_PI){
-
- while (phase > M_PI)
- phase -= 2*M_PI;
-
- while (phase < -M_PI)
- phase += 2*M_PI;
- }
- }
-
- // units are radians / step
- double get_phase () const { return phase; }
- double get_freq () const { return phase_inc; }
-
- // compute sin and cos for current phase angle
- void sincos (float *sinx, float *cosx) const;
-
- // compute cos or sin for current phase angle
- float cos () const { return std::cos (phase); }
- float sin () const { return std::sin (phase); }
-
- // compute a block at a time
- void sin (float *output, int noutput_items, double ampl = 1.0);
- void cos (float *output, int noutput_items, double ampl = 1.0);
- void sincos (gr_complex *output, int noutput_items, double ampl = 1.0);
- void sin (short *output, int noutput_items, double ampl = 1.0);
- void cos (short *output, int noutput_items, double ampl = 1.0);
- void sin (int *output, int noutput_items, double ampl = 1.0);
- void cos (int *output, int noutput_items, double ampl = 1.0);
-
-protected:
- double phase;
- double phase_inc;
-};
-
-template<class o_type, class i_type>
-void
-gr_nco<o_type,i_type>::sincos (float *sinx, float *cosx) const
-{
- gr_sincosf (phase, sinx, cosx);
-}
-
-template<class o_type, class i_type>
-void
-gr_nco<o_type,i_type>::sin (float *output, int noutput_items, double ampl)
-{
- for (int i = 0; i < noutput_items; i++){
- output[i] = (float)(sin () * ampl);
- step ();
- }
-}
-
-template<class o_type, class i_type>
-void
-gr_nco<o_type,i_type>::cos (float *output, int noutput_items, double ampl)
-{
- for (int i = 0; i < noutput_items; i++){
- output[i] = (float)(cos () * ampl);
- step ();
- }
-}
-
-template<class o_type, class i_type>
-void
-gr_nco<o_type,i_type>::sin (short *output, int noutput_items, double ampl)
-{
- for (int i = 0; i < noutput_items; i++){
- output[i] = (short)(sin() * ampl);
- step ();
- }
-}
-
-template<class o_type, class i_type>
-void
-gr_nco<o_type,i_type>::cos (short *output, int noutput_items, double ampl)
-{
- for (int i = 0; i < noutput_items; i++){
- output[i] = (short)(cos () * ampl);
- step ();
- }
-}
-
-template<class o_type, class i_type>
-void
-gr_nco<o_type,i_type>::sin (int *output, int noutput_items, double ampl)
-{
- for (int i = 0; i < noutput_items; i++){
- output[i] = (int)(sin () * ampl);
- step ();
- }
-}
-
-template<class o_type, class i_type>
-void
-gr_nco<o_type,i_type>::cos (int *output, int noutput_items, double ampl)
-{
- for (int i = 0; i < noutput_items; i++){
- output[i] = (int)(cos () * ampl);
- step ();
- }
-}
-
-template<class o_type, class i_type>
-void
-gr_nco<o_type,i_type>::sincos (gr_complex *output, int noutput_items, double ampl)
-{
- for (int i = 0; i < noutput_items; i++){
- float cosx, sinx;
- sincos (&sinx, &cosx);
- output[i] = gr_complex(cosx * ampl, sinx * ampl);
- step ();
- }
-}
-#endif /* _NCO_H_ */
diff --git a/gnuradio-core/src/lib/general/gr_prefs.cc b/gnuradio-core/src/lib/general/gr_prefs.cc
deleted file mode 100644
index 8a79c3335f..0000000000
--- a/gnuradio-core/src/lib/general/gr_prefs.cc
+++ /dev/null
@@ -1,391 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2013 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gr_prefs.h>
-#include <gr_sys_paths.h>
-#include <gr_constants.h>
-#include <algorithm>
-
-#include <boost/filesystem/operations.hpp>
-#include <boost/filesystem/path.hpp>
-#include <boost/filesystem/fstream.hpp>
-namespace fs = boost::filesystem;
-
-/*
- * Stub implementations
- */
-
-static gr_prefs s_default_singleton;
-static gr_prefs *s_singleton = &s_default_singleton;
-
-gr_prefs *
-gr_prefs::singleton()
-{
- return s_singleton;
-}
-
-void
-gr_prefs::set_singleton(gr_prefs *p)
-{
- s_singleton = p;
-}
-
-gr_prefs::gr_prefs()
-{
- _read_files();
-}
-
-gr_prefs::~gr_prefs()
-{
- // nop
-}
-
-std::vector<std::string>
-gr_prefs::_sys_prefs_filenames()
-{
- std::vector<std::string> fnames;
-
- fs::path dir = gr_prefsdir();
- if(!fs::is_directory(dir))
- return fnames;
-
- fs::directory_iterator diritr(dir);
- while(diritr != fs::directory_iterator()) {
- fs::path p = *diritr++;
- if(p.extension() != ".swp")
- fnames.push_back(p.string());
- }
- std::sort(fnames.begin(), fnames.end());
-
- // Find if there is a ~/.gnuradio/config.conf file and add this to
- // the end of the file list to override any preferences in the
- // installed path config files.
- fs::path homedir = fs::path(gr_appdata_path());
- homedir = homedir/".gnuradio/config.conf";
- if(fs::exists(homedir)) {
- fnames.push_back(homedir.string());
- }
-
- return fnames;
-}
-
-void
-gr_prefs::_read_files()
-{
- std::string config;
-
- std::vector<std::string> filenames = _sys_prefs_filenames();
- std::vector<std::string>::iterator sitr;
- char tmp[1024];
- for(sitr = filenames.begin(); sitr != filenames.end(); sitr++) {
- fs::ifstream fin(*sitr);
- while(!fin.eof()) {
- fin.getline(tmp, 1024);
- std::string t(tmp);
- // ignore empty lines or lines of just comments
- if((t.size() > 0) && (t[0] != '#')) {
- // remove any comments in the line
- size_t hash = t.find("#");
-
- // Use hash marks at the end of each segment as a delimiter
- config += t.substr(0, hash) + '#';
- }
- }
- fin.close();
- }
-
- // Remove all whitespace.
- config.erase(std::remove_if(config.begin(), config.end(), ::isspace), config.end());
-
- // Convert the string into a map
- _convert_to_map(config);
-}
-
-void
-gr_prefs::_convert_to_map(const std::string &conf)
-{
- // Convert the string into an map of maps
- // Map is structured as {section name: map of options}
- // And options map is simply: {option name: option value}
- std::string sub = conf;
- size_t sec_start = sub.find("[");
- while(sec_start != std::string::npos) {
- sub = sub.substr(sec_start);
-
- size_t sec_end = sub.find("]");
- if(sec_end == std::string::npos)
- throw std::runtime_error("Config file error: Mismatched section label.\n");
-
- std::string sec = sub.substr(1, sec_end-1);
- size_t next_sec_start = sub.find("[", sec_end);
- std::string subsec = sub.substr(sec_end+1, next_sec_start-sec_end-2);
-
- std::transform(sec.begin(), sec.end(), sec.begin(), ::tolower);
-
- std::map<std::string, std::string> options_map = d_config_map[sec];
- size_t next_opt = 0;
- size_t next_val = 0;
- next_opt = subsec.find("#");
- while(next_opt < subsec.size()-1) {
- next_val = subsec.find("=", next_opt);
- std::string option = subsec.substr(next_opt+1, next_val-next_opt-1);
-
- next_opt = subsec.find("#", next_val);
- std::string value = subsec.substr(next_val+1, next_opt-next_val-1);
-
- std::transform(option.begin(), option.end(), option.begin(), ::tolower);
- options_map[option] = value;
- }
-
- d_config_map[sec] = options_map;
-
- sec_start = sub.find("[", sec_end);
- }
-}
-
-std::string
-gr_prefs::to_string()
-{
- gr_config_map_itr sections;
- gr_config_map_elem_itr options;
- std::stringstream s;
-
- for(sections = d_config_map.begin(); sections != d_config_map.end(); sections++) {
- s << "[" << sections->first << "]" << std::endl;
- for(options = sections->second.begin(); options != sections->second.end(); options++) {
- s << options->first << " = " << options->second << std::endl;
- }
- s << std::endl;
- }
-
- return s.str();
-}
-
-void
-gr_prefs::save()
-{
- std::string conf = to_string();
-
- fs::path homedir = fs::path(gr_appdata_path());
- homedir = homedir/".gnuradio/config.conf";
- fs::ofstream fout(homedir);
- fout << conf;
- fout.close();
-}
-
-char *
-gr_prefs::option_to_env(std::string section, std::string option)
-{
- std::stringstream envname;
- std::string secname=section, optname=option;
-
- std::transform(section.begin(), section.end(), secname.begin(), ::toupper);
- std::transform(option.begin(), option.end(), optname.begin(), ::toupper);
- envname << "GR_CONF_" << secname << "_" << optname;
-
- return getenv(envname.str().c_str());
-}
-
-bool
-gr_prefs::has_section(const std::string &section)
-{
- std::string s = section;
- std::transform(section.begin(), section.end(), s.begin(), ::tolower);
- return d_config_map.count(s) > 0;
-}
-
-bool
-gr_prefs::has_option(const std::string &section, const std::string &option)
-{
- if(option_to_env(section, option))
- return true;
-
- if(has_section(section)) {
- std::string s = section;
- std::transform(section.begin(), section.end(), s.begin(), ::tolower);
-
- std::string o = option;
- std::transform(option.begin(), option.end(), o.begin(), ::tolower);
-
- gr_config_map_itr sec = d_config_map.find(s);
- return sec->second.count(o) > 0;
- }
- else {
- return false;
- }
-}
-
-const std::string
-gr_prefs::get_string(const std::string &section, const std::string &option,
- const std::string &default_val)
-{
- char *env = option_to_env(section, option);
- if(env)
- return std::string(env);
-
- if(has_option(section, option)) {
- std::string s = section;
- std::transform(section.begin(), section.end(), s.begin(), ::tolower);
-
- std::string o = option;
- std::transform(option.begin(), option.end(), o.begin(), ::tolower);
-
- gr_config_map_itr sec = d_config_map.find(s);
- gr_config_map_elem_itr opt = sec->second.find(o);
- return opt->second;
- }
- else {
- return default_val;
- }
-}
-
-void
-gr_prefs::set_string(const std::string &section, const std::string &option,
- const std::string &val)
-{
- std::string s = section;
- std::transform(section.begin(), section.end(), s.begin(), ::tolower);
-
- std::string o = option;
- std::transform(option.begin(), option.end(), o.begin(), ::tolower);
-
- std::map<std::string, std::string> opt_map = d_config_map[s];
-
- opt_map[o] = val;
-
- d_config_map[s] = opt_map;
-}
-
-bool
-gr_prefs::get_bool(const std::string &section, const std::string &option, bool default_val)
-{
- if(has_option(section, option)) {
- std::string str = get_string(section, option, "");
- if(str == "") {
- return default_val;
- }
- std::transform(str.begin(), str.end(), str.begin(), ::tolower);
- if((str == "true") || (str == "on") || (str == "1"))
- return true;
- else if((str == "false") || (str == "off") || (str == "0"))
- return false;
- else
- return default_val;
- }
- else {
- return default_val;
- }
-}
-
-void
-gr_prefs::set_bool(const std::string &section, const std::string &option, bool val)
-{
- std::string s = section;
- std::transform(section.begin(), section.end(), s.begin(), ::tolower);
-
- std::string o = option;
- std::transform(option.begin(), option.end(), o.begin(), ::tolower);
-
- std::map<std::string, std::string> opt_map = d_config_map[s];
-
- std::stringstream sstr;
- sstr << (val == true);
- opt_map[o] = sstr.str();
-
- d_config_map[s] = opt_map;
-}
-
-long
-gr_prefs::get_long(const std::string &section, const std::string &option, long default_val)
-{
- if(has_option(section, option)) {
- std::string str = get_string(section, option, "");
- if(str == "") {
- return default_val;
- }
- std::stringstream sstr(str);
- long n;
- sstr >> n;
- return n;
- }
- else {
- return default_val;
- }
-}
-
-void
-gr_prefs::set_long(const std::string &section, const std::string &option, long val)
-{
- std::string s = section;
- std::transform(section.begin(), section.end(), s.begin(), ::tolower);
-
- std::string o = option;
- std::transform(option.begin(), option.end(), o.begin(), ::tolower);
-
- std::map<std::string, std::string> opt_map = d_config_map[s];
-
- std::stringstream sstr;
- sstr << val;
- opt_map[o] = sstr.str();
-
- d_config_map[s] = opt_map;
-}
-
-double
-gr_prefs::get_double(const std::string &section, const std::string &option, double default_val)
-{
- if(has_option(section, option)) {
- std::string str = get_string(section, option, "");
- if(str == "") {
- return default_val;
- }
- std::stringstream sstr(str);
- double n;
- sstr >> n;
- return n;
- }
- else {
- return default_val;
- }
-}
-
-void
-gr_prefs::set_double(const std::string &section, const std::string &option, double val)
-{
- std::string s = section;
- std::transform(section.begin(), section.end(), s.begin(), ::tolower);
-
- std::string o = option;
- std::transform(option.begin(), option.end(), o.begin(), ::tolower);
-
- std::map<std::string, std::string> opt_map = d_config_map[s];
-
- std::stringstream sstr;
- sstr << val;
- opt_map[o] = sstr.str();
-
- d_config_map[s] = opt_map;
-}
diff --git a/gnuradio-core/src/lib/general/gr_prefs.h b/gnuradio-core/src/lib/general/gr_prefs.h
deleted file mode 100644
index 4e11d04c5b..0000000000
--- a/gnuradio-core/src/lib/general/gr_prefs.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2013 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.
- */
-
-#ifndef INCLUDED_GR_PREFS_H
-#define INCLUDED_GR_PREFS_H
-
-#include <gr_core_api.h>
-#include <string>
-#include <map>
-#include <gruel/thread.h>
-
-typedef std::map< std::string, std::map<std::string, std::string> > gr_config_map_t;
-typedef std::map< std::string, std::map<std::string, std::string> >::iterator gr_config_map_itr;
-typedef std::map<std::string, std::string> gr_config_map_elem_t;
-typedef std::map<std::string, std::string>::iterator gr_config_map_elem_itr;
-
-/*!
- * \brief Base class for representing user preferences a la windows INI files.
- * \ingroup misc
- *
- * The real implementation is in Python, and is accessable from C++
- * via the magic of SWIG directors.
- */
-
-class GR_CORE_API gr_prefs
-{
-public:
- static gr_prefs *singleton();
- static void set_singleton(gr_prefs *p);
-
- gr_prefs();
- virtual ~gr_prefs();
-
- /*!
- * \brief Returns the configuration options as a string.
- */
- std::string to_string();
-
- /*!
- * \brief Saves the configuration settings to ${HOME}/.gnuradio/config.conf.
- *
- * WARNING: this will overwrite your current config.conf file.
- */
- void save();
-
- /*!
- * \brief Does \p section exist?
- */
- virtual bool has_section(const std::string &section);
-
- /*!
- * \brief Does \p option exist?
- */
- virtual bool has_option(const std::string &section, const std::string &option);
-
- /*!
- * \brief If option exists return associated value; else default_val.
- */
- virtual const std::string get_string(const std::string &section,
- const std::string &option,
- const std::string &default_val);
-
- /*!
- * \brief Set or add a string \p option to \p section with value \p val.
- */
- virtual void set_string(const std::string &section,
- const std::string &option,
- const std::string &val);
-
- /*!
- * \brief If option exists and value can be converted to bool, return it; else default_val.
- */
- virtual bool get_bool(const std::string &section,
- const std::string &option,
- bool default_val);
-
- /*!
- * \brief Set or add a bool \p option to \p section with value \p val.
- */
- virtual void set_bool(const std::string &section,
- const std::string &option,
- bool val);
-
- /*!
- * \brief If option exists and value can be converted to long, return it; else default_val.
- */
- virtual long get_long(const std::string &section,
- const std::string &option,
- long default_val);
-
- /*!
- * \brief Set or add a long \p option to \p section with value \p val.
- */
- virtual void set_long(const std::string &section,
- const std::string &option,
- long val);
-
- /*!
- * \brief If option exists and value can be converted to double, return it; else default_val.
- */
- virtual double get_double(const std::string &section,
- const std::string &option,
- double default_val);
-
- /*!
- * \brief Set or add a double \p option to \p section with value \p val.
- */
- virtual void set_double(const std::string &section,
- const std::string &option,
- double val);
-
- protected:
- virtual std::vector<std::string> _sys_prefs_filenames();
- virtual void _read_files();
- virtual void _convert_to_map(const std::string &conf);
- virtual char * option_to_env(std::string section, std::string option);
-
- private:
- gruel::mutex d_mutex;
- gr_config_map_t d_config_map;
-};
-
-
-#endif /* INCLUDED_GR_PREFS_H */
diff --git a/gnuradio-core/src/lib/general/gr_prefs.i b/gnuradio-core/src/lib/general/gr_prefs.i
deleted file mode 100644
index adf567a135..0000000000
--- a/gnuradio-core/src/lib/general/gr_prefs.i
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006 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.
- */
-
-class gr_prefs
-{
-public:
- static gr_prefs *singleton();
- static void set_singleton(gr_prefs *p);
-
- virtual ~gr_prefs();
-
- std::string to_string();
- void save();
-
- virtual bool has_section(const std::string &section);
-
- virtual bool has_option(const std::string &section, const std::string &option);
-
- virtual const std::string get_string(const std::string &section,
- const std::string &option,
- const std::string &default_val);
- virtual void set_string(const std::string &section,
- const std::string &option,
- const std::string &val);
-
- virtual bool get_bool(const std::string &section,
- const std::string &option,
- bool default_val);
- virtual void set_bool(const std::string &section,
- const std::string &option,
- bool val);
-
- virtual long get_long(const std::string &section,
- const std::string &option,
- long default_val);
- virtual void set_long(const std::string &section,
- const std::string &option,
- long val);
-
- virtual double get_double(const std::string &section,
- const std::string &option,
- double default_val);
- virtual void set_double(const std::string &section,
- const std::string &option,
- double val);
-};
-
diff --git a/gnuradio-core/src/lib/general/gr_random.cc b/gnuradio-core/src/lib/general/gr_random.cc
deleted file mode 100644
index 323839acc7..0000000000
--- a/gnuradio-core/src/lib/general/gr_random.cc
+++ /dev/null
@@ -1,183 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002 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.
- */
-
-/*
- * Copyright 1997 Massachusetts Institute of Technology
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <math.h>
-#include <gr_random.h>
-
-#define IA 16807
-#define IM 2147483647
-#define AM (1.0/IM)
-#define IQ 127773
-#define IR 2836
-#define NDIV (1+(IM-1)/NTAB)
-#define EPS 1.2e-7
-#define RNMX (1.0-EPS)
-
-
-gr_random::gr_random (long seed)
-{
- reseed (seed);
-}
-
-void
-gr_random::reseed (long seed)
-{
- d_seed = seed;
- d_iy = 0;
- for (int i = 0; i < NTAB; i++)
- d_iv[i] = 0;
- d_iset = 0;
- d_gset = 0;
-}
-
-/*
- * This looks like it returns a uniform random deviate between 0.0 and 1.0
- * It looks similar to code from "Numerical Recipes in C".
- */
-float gr_random::ran1()
-{
- int j;
- long k;
- float temp;
-
- if (d_seed <= 0 || !d_iy) {
- if (-d_seed < 1)
- d_seed=1;
- else
- d_seed = -d_seed;
- for (j=NTAB+7;j>=0;j--) {
- k=d_seed/IQ;
- d_seed=IA*(d_seed-k*IQ)-IR*k;
- if (d_seed < 0)
- d_seed += IM;
- if (j < NTAB)
- d_iv[j] = d_seed;
- }
- d_iy=d_iv[0];
- }
- k=(d_seed)/IQ;
- d_seed=IA*(d_seed-k*IQ)-IR*k;
- if (d_seed < 0)
- d_seed += IM;
- j=d_iy/NDIV;
- d_iy=d_iv[j];
- d_iv[j] = d_seed;
- temp=AM * d_iy;
- if (temp > RNMX)
- temp = RNMX;
- return temp;
-}
-
-/*
- * Returns a normally distributed deviate with zero mean and variance 1.
- * Also looks like it's from "Numerical Recipes in C".
- */
-float gr_random::gasdev()
-{
- float fac,rsq,v1,v2;
- d_iset = 1 - d_iset;
- if (d_iset) {
- do {
- v1=2.0*ran1()-1.0;
- v2=2.0*ran1()-1.0;
- rsq=v1*v1+v2*v2;
- } while (rsq >= 1.0 || rsq == 0.0);
- fac= sqrt(-2.0*log(rsq)/rsq);
- d_gset=v1*fac;
- return v2*fac;
- }
- return d_gset;
-}
-
-/*
- * Copied from The KC7WW / OH2BNS Channel Simulator
- * FIXME Need to check how good this is at some point
- */
-
-float gr_random::laplacian()
-{
- float z = ran1();
- if (z < 0.5)
- return log(2.0 * z) / M_SQRT2;
- else
- return -log(2.0 * (1.0 - z)) / M_SQRT2;
-}
-
-/*
- * Copied from The KC7WW / OH2BNS Channel Simulator
- * FIXME Need to check how good this is at some point
- */
-
- // 5 => scratchy, 8 => Geiger
-
-float gr_random::impulse(float factor = 5)
-{
- float z = -M_SQRT2 * log(ran1());
- if (fabsf(z) <= factor)
- return 0.0;
- else
- return z;
-}
-
-/*
- * Complex rayleigh is really gaussian I and gaussian Q
- * It can also be generated by real rayleigh magnitude and
- * uniform random angle
- * Adapted from The KC7WW / OH2BNS Channel Simulator
- * FIXME Need to check how good this is at some point
- */
-
-gr_complex gr_random::rayleigh_complex()
-{
- return gr_complex(gasdev(),gasdev());
-}
-
-/* Other option
- mag = rayleigh();
- ang = 2.0 * M_PI * RNG();
- *Rx = rxx * cos(z);
- *Iy = rxx * sin(z);
-*/
-
-
-float gr_random::rayleigh()
-{
- return sqrt(-2.0 * log(ran1()));
-}
diff --git a/gnuradio-core/src/lib/general/gr_random.h b/gnuradio-core/src/lib/general/gr_random.h
deleted file mode 100644
index 96a8f44180..0000000000
--- a/gnuradio-core/src/lib/general/gr_random.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002 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.
- */
-
-#ifndef INCLUDED_GR_RANDOM_H
-#define INCLUDED_GR_RANDOM_H
-
-#include <gr_core_api.h>
-#include <gr_complex.h>
-
-/*!
- * \brief pseudo random number generator
- * \ingroup math_blk
- */
-class GR_CORE_API gr_random {
-protected:
- static const int NTAB = 32;
- long d_seed;
- long d_iy;
- long d_iv[NTAB];
- int d_iset;
- float d_gset;
-
-
-public:
- gr_random (long seed=3021);
-
- void reseed (long seed);
-
- /*!
- * \brief uniform random deviate in the range [0.0, 1.0)
- */
- float ran1 ();
-
- /*!
- * \brief normally distributed deviate with zero mean and variance 1
- */
- float gasdev ();
-
- float laplacian ();
- float impulse (float factor);
- float rayleigh ();
- gr_complex rayleigh_complex ();
-};
-
-#endif /* INCLUDED_GR_RANDOM_H */
-
diff --git a/gnuradio-core/src/lib/general/gr_reverse.cc b/gnuradio-core/src/lib/general/gr_reverse.cc
deleted file mode 100644
index 08c588cb55..0000000000
--- a/gnuradio-core/src/lib/general/gr_reverse.cc
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2005 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gr_reverse.h>
-
-
-std::vector<float>
-gr_reverse (const std::vector<float> &taps)
-{
- int size = taps.size ();
- std::vector<float> new_taps(size);
-
- if (size == 0)
- return new_taps;
-
- for (int i = 0; i < size; i++)
- new_taps[i] = taps[size - i - 1];
-
- return new_taps;
-}
-
-
-std::vector<gr_complex>
-gr_reverse (const std::vector<gr_complex> &taps)
-{
- int size = taps.size ();
- std::vector<gr_complex> new_taps(size);
-
- if (size == 0)
- return new_taps;
-
- for (int i = 0; i < size; i++)
- new_taps[i] = taps[size - i - 1];
-
- return new_taps;
-}
-
diff --git a/gnuradio-core/src/lib/general/gr_reverse.h b/gnuradio-core/src/lib/general/gr_reverse.h
deleted file mode 100644
index 15bf3cb73a..0000000000
--- a/gnuradio-core/src/lib/general/gr_reverse.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2005 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.
- */
-#ifndef INCLUDED_GR_REVERSE_H
-#define INCLUDED_GR_REVERSE_H
-
-#include <gr_core_api.h>
-#include <vector>
-#include <gr_complex.h>
-
-// reverse the order of taps
-std::vector<float> gr_reverse (const std::vector<float> &taps);
-std::vector<gr_complex> gr_reverse (const std::vector<gr_complex> &taps);
-
-
-#endif /* INCLUDED_GR_REVERSE_H */
diff --git a/gnuradio-core/src/lib/general/gr_sincos.c b/gnuradio-core/src/lib/general/gr_sincos.c
deleted file mode 100644
index a8d01b0da4..0000000000
--- a/gnuradio-core/src/lib/general/gr_sincos.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2010 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE // ask for GNU extensions if available
-#endif
-
-#include <gr_sincos.h>
-#include <math.h>
-
-// ----------------------------------------------------------------
-
-#if defined (HAVE_SINCOS)
-
-void
-gr_sincos (double x, double *sinx, double *cosx)
-{
- sincos (x, sinx, cosx);
-}
-
-#else
-
-void
-gr_sincos (double x, double *sinx, double *cosx)
-{
- *sinx = sin (x);
- *cosx = cos (x);
-}
-
-#endif
-
-// ----------------------------------------------------------------
-
-#if defined (HAVE_SINCOSF)
-
-void
-gr_sincosf (float x, float *sinx, float *cosx)
-{
- sincosf (x, sinx, cosx);
-}
-
-#elif defined (HAVE_SINF) && defined (HAVE_COSF)
-
-void
-gr_sincosf (float x, float *sinx, float *cosx)
-{
- *sinx = sinf (x);
- *cosx = cosf (x);
-}
-
-#else
-
-void
-gr_sincosf (float x, float *sinx, float *cosx)
-{
- *sinx = sin (x);
- *cosx = cos (x);
-}
-
-#endif
diff --git a/gnuradio-core/src/lib/general/gr_sincos.h b/gnuradio-core/src/lib/general/gr_sincos.h
deleted file mode 100644
index 516f43437a..0000000000
--- a/gnuradio-core/src/lib/general/gr_sincos.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002,2004 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.
- */
-
-#ifndef INCLUDED_GR_SINCOS_H
-#define INCLUDED_GR_SINCOS_H
-
-#include <gr_core_api.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// compute sine and cosine at the same time
-
-GR_CORE_API void gr_sincos (double x, double *sin, double *cos);
-GR_CORE_API void gr_sincosf (float x, float *sin, float *cos);
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif /* INCLUDED_GR_SINCOS_H */
diff --git a/gnuradio-core/src/lib/general/gr_test.cc b/gnuradio-core/src/lib/general/gr_test.cc
deleted file mode 100644
index cd5ef83611..0000000000
--- a/gnuradio-core/src/lib/general/gr_test.cc
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2008,2010 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gr_test.h>
-#include <gr_io_signature.h>
-#include <stdexcept>
-#include <iostream>
-#include <string.h>
-
-gr_test_sptr gr_make_test (const std::string &name,
- int min_inputs, int max_inputs, unsigned int sizeof_input_item,
- int min_outputs, int max_outputs, unsigned int sizeof_output_item,
- unsigned int history,unsigned int output_multiple,double relative_rate,
- bool fixed_rate,gr_consume_type_t cons_type, gr_produce_type_t prod_type)
-{
- return gnuradio::get_initial_sptr(new gr_test (name, min_inputs,max_inputs,sizeof_input_item,
- min_outputs,max_outputs,sizeof_output_item,
- history,output_multiple,relative_rate,fixed_rate,cons_type, prod_type));
-}
-
- gr_test::gr_test (const std::string &name,int min_inputs, int max_inputs, unsigned int sizeof_input_item,
- int min_outputs, int max_outputs, unsigned int sizeof_output_item,
- unsigned int history,unsigned int output_multiple,double relative_rate,
- bool fixed_rate,gr_consume_type_t cons_type, gr_produce_type_t prod_type): gr_block (name,
- gr_make_io_signature (min_inputs, max_inputs, sizeof_input_item),
- gr_make_io_signature (min_outputs, max_outputs, sizeof_output_item)),
- d_sizeof_input_item(sizeof_input_item),
- d_sizeof_output_item(sizeof_output_item),
- d_check_topology(true),
- d_consume_type(cons_type),
- d_min_consume(0),
- d_max_consume(0),
- d_produce_type(prod_type),
- d_min_produce(0),
- d_max_produce(0)
- {
- set_history(history);
- set_output_multiple(output_multiple);
- set_relative_rate(relative_rate);
- set_fixed_rate(fixed_rate);
- }
-
-int
-gr_test::general_work (int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- //touch all inputs and outputs to detect segfaults
- unsigned ninputs = input_items.size ();
- unsigned noutputs= output_items.size();
- for (unsigned i = 0; i < ninputs; i++)
- {
- char * in=(char *)input_items[i];
- if (ninput_items[i]< (int)(noutput_items+history()))
- {
- std::cerr << "ERROR: ninput_items[" << i << "] < noutput_items+history()" << std::endl;
- std::cerr << "ninput_items[" << i << "] = " << ninput_items[i] << std::endl;
- std::cerr << "noutput_items+history() = " << noutput_items+history() << std::endl;
- std::cerr << "noutput_items = " << noutput_items << std::endl;
- std::cerr << "history() = " << history() << std::endl;
- throw std::runtime_error ("gr_test");
- } else
- {
- for (int j=0;j<ninput_items[i];j++)
- {
- //Touch every available input_item
- //We use a class variable to avoid the compiler to optimize this away
- for(unsigned int k=0;k<d_sizeof_input_item;k++)
- d_temp= in[j*d_sizeof_input_item+k];
- }
- switch (d_consume_type)
- {
- case CONSUME_NOUTPUT_ITEMS:
- consume(i,noutput_items);
- break;
- case CONSUME_NOUTPUT_ITEMS_LIMIT_MAX:
- consume(i,std::min(noutput_items,d_max_consume));
- break;
- case CONSUME_NOUTPUT_ITEMS_LIMIT_MIN:
- consume(i,std::min(std::max(noutput_items,d_min_consume),ninput_items[i]));
- break;
- case CONSUME_ALL_AVAILABLE:
- consume(i,ninput_items[i]);
- break;
- case CONSUME_ALL_AVAILABLE_LIMIT_MAX:
- consume(i,std::min(ninput_items[i],d_max_consume));
- break;
-/* //This could result in segfault, uncomment if you want to test this
- case CONSUME_ALL_AVAILABLE_LIMIT_MIN:
- consume(i,std::max(ninput_items[i],d_max_consume));
- break;*/
- case CONSUME_ZERO:
- consume(i,0);
- break;
- case CONSUME_ONE:
- consume(i,1);
- break;
- case CONSUME_MINUS_ONE:
- consume(i,-1);
- break;
- default:
- consume(i,noutput_items);
- }
- }
- }
- for (unsigned i = 0; i < noutputs; i++)
- {
- char * out=(char *)output_items[i];
- {
- for (int j=0;j<noutput_items;j++)
- {
- //Touch every available output_item
- for(unsigned int k=0;k<d_sizeof_output_item;k++)
- out[j*d_sizeof_input_item+k]=0;
- }
- }
- }
- //Now copy input to output until max ninputs or max noutputs is reached
- int common_nports=std::min(ninputs,noutputs);
- if(d_sizeof_output_item==d_sizeof_input_item)
- for (int i = 0; i < common_nports; i++)
- {
- memcpy(output_items[i],input_items[i],noutput_items*d_sizeof_input_item);
- }
- int noutput_items_produced=0;
- switch (d_produce_type){
- case PRODUCE_NOUTPUT_ITEMS:
- noutput_items_produced=noutput_items;
- break;
- case PRODUCE_NOUTPUT_ITEMS_LIMIT_MAX:
- noutput_items_produced=std::min(noutput_items,d_max_produce);
- break;
-/* //This could result in segfault, uncomment if you want to test this
- case PRODUCE_NOUTPUT_ITEMS_LIMIT_MIN:
- noutput_items_produced=std::max(noutput_items,d_min_produce);
- break;*/
- case PRODUCE_ZERO:
- noutput_items_produced=0;
- break;
- case PRODUCE_ONE:
- noutput_items_produced=1;
- break;
- case PRODUCE_MINUS_ONE:
- noutput_items_produced=-1;
- break;
- default:
- noutput_items_produced=noutput_items;
- }
- return noutput_items_produced;
- }
-
-
-
diff --git a/gnuradio-core/src/lib/general/gr_test.h b/gnuradio-core/src/lib/general/gr_test.h
deleted file mode 100644
index caeba4c511..0000000000
--- a/gnuradio-core/src/lib/general/gr_test.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006 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.
- */
-
-#ifndef INCLUDED_GR_TEST_H
-#define INCLUDED_GR_TEST_H
-
-#include <gr_core_api.h>
-#include <gr_block.h>
-#include <string>
-#include "gr_test_types.h"
-
-class gr_test;
-typedef boost::shared_ptr<gr_test> gr_test_sptr;
-
-// public constructor
-GR_CORE_API gr_test_sptr gr_make_test (const std::string &name=std::string("gr_test"),
- int min_inputs=1, int max_inputs=1, unsigned int sizeof_input_item=1,
- int min_outputs=1, int max_outputs=1, unsigned int sizeof_output_item=1,
- unsigned int history=1,unsigned int output_multiple=1,double relative_rate=1.0,
- bool fixed_rate=true,gr_consume_type_t cons_type=CONSUME_NOUTPUT_ITEMS, gr_produce_type_t prod_type=PRODUCE_NOUTPUT_ITEMS);
-
-/*!
- * \brief Test class for testing runtime system (setting up buffers and such.)
- * \ingroup misc
- *
- * This block does not do any usefull actual data processing.
- * It just exposes setting all standard block parameters using the contructor or public methods.
- *
- * This block can be usefull when testing the runtime system.
- * You can force this block to have a large history, decimation
- * factor and/or large output_multiple.
- * The runtime system should detect this and create large enough buffers
- * all through the signal chain.
- */
-class GR_CORE_API gr_test : public gr_block {
-
- public:
-
- ~gr_test (){}
-
-int general_work (int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- // ----------------------------------------------------------------
- // override these to define your behavior
- // ----------------------------------------------------------------
-
- /*!
- * \brief Estimate input requirements given output request
- *
- * \param noutput_items number of output items to produce
- * \param ninput_items_required number of input items required on each input stream
- *
- * Given a request to product \p noutput_items, estimate the number of
- * data items required on each input stream. The estimate doesn't have
- * to be exact, but should be close.
- */
- void forecast (int noutput_items,
- gr_vector_int &ninput_items_required)
- {
- unsigned ninputs = ninput_items_required.size ();
- for (unsigned i = 0; i < ninputs; i++)
- ninput_items_required[i] = (int)((double)noutput_items / relative_rate()) + (int)history();
- }
-
-
- /*!
- * \brief Force check topology to return true or false.
- *
- * \param check_topology value to return when check_topology is called (true or false)
- * default check_topology returns true
- *
- */
- void set_check_topology (bool check_topology){ d_check_topology=check_topology;}
-
- /*!
- * \brief Confirm that ninputs and noutputs is an acceptable combination.
- *
- * \param ninputs number of input streams connected
- * \param noutputs number of output streams connected
- *
- * \returns true if this is a valid configuration for this block.
- *
- * This function is called by the runtime system whenever the
- * topology changes. Most classes do not need to override this.
- * This check is in addition to the constraints specified by the input
- * and output gr_io_signatures.
- */
- bool check_topology (int ninputs, int noutputs) { return d_check_topology;}
-
- // ----------------------------------------------------------------
- /*
- * The following two methods provide special case info to the
- * scheduler in the event that a block has a fixed input to output
- * ratio. gr_sync_block, gr_sync_decimator and gr_sync_interpolator
- * override these. If you're fixed rate, subclass one of those.
- */
- /*!
- * \brief Given ninput samples, return number of output samples that will be produced.
- * N.B. this is only defined if fixed_rate returns true.
- * Generally speaking, you don't need to override this.
- */
- int fixed_rate_ninput_to_noutput(int ninput) { return (int)((double)ninput/relative_rate()); }
-
- /*!
- * \brief Given noutput samples, return number of input samples required to produce noutput.
- * N.B. this is only defined if fixed_rate returns true.
- */
- int fixed_rate_noutput_to_ninput(int noutput) { return (int)((double)noutput*relative_rate()); }
-
- /*!
- * \brief Set if fixed rate should return true.
- * N.B. This is normally a private method but we make it available here as public.
- */
- void set_fixed_rate_public(bool fixed_rate){ set_fixed_rate(fixed_rate);}
-
- /*!
- * \brief Set the consume pattern.
- *
- * \param cons_type which consume pattern to use
- */
- void set_consume_type (gr_consume_type_t cons_type) { d_consume_type=cons_type;}
-
- /*!
- * \brief Set the consume limit.
- *
- * \param limit min or maximum items to consume (depending on consume_type)
- */
- void set_consume_limit (unsigned int limit) { d_min_consume=limit; d_max_consume=limit;}
-
- /*!
- * \brief Set the produce pattern.
- *
- * \param prod_type which produce pattern to use
- */
- void set_produce_type (gr_produce_type_t prod_type) { d_produce_type=prod_type;}
-
- /*!
- * \brief Set the produce limit.
- *
- * \param limit min or maximum items to produce (depending on produce_type)
- */
- void set_produce_limit (unsigned int limit) { d_min_produce=limit; d_max_produce=limit;}
-
- // ----------------------------------------------------------------------------
-
-
-
- protected:
- unsigned int d_sizeof_input_item;
- unsigned int d_sizeof_output_item;
- bool d_check_topology;
- char d_temp;
- gr_consume_type_t d_consume_type;
- int d_min_consume;
- int d_max_consume;
- gr_produce_type_t d_produce_type;
- int d_min_produce;
- int d_max_produce;
- gr_test (const std::string &name,int min_inputs, int max_inputs, unsigned int sizeof_input_item,
- int min_outputs, int max_outputs, unsigned int sizeof_output_item,
- unsigned int history,unsigned int output_multiple,double relative_rate,
- bool fixed_rate,gr_consume_type_t cons_type, gr_produce_type_t prod_type);
-
-
-
- friend GR_CORE_API gr_test_sptr gr_make_test (const std::string &name,int min_inputs, int max_inputs, unsigned int sizeof_input_item,
- int min_outputs, int max_outputs, unsigned int sizeof_output_item,
- unsigned int history,unsigned int output_multiple,double relative_rate,
- bool fixed_rate,gr_consume_type_t cons_type, gr_produce_type_t prod_type);
-};
-
-
-
-#endif /* INCLUDED_GR_TEST_H */
diff --git a/gnuradio-core/src/lib/general/gr_test.i b/gnuradio-core/src/lib/general/gr_test.i
deleted file mode 100644
index d810250116..0000000000
--- a/gnuradio-core/src/lib/general/gr_test.i
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006 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.
- */
-
-GR_SWIG_BLOCK_MAGIC(gr,test);
-
-
-class gr_test;
-typedef boost::shared_ptr<gr_test> gr_test_sptr;
-
-
-// public constructor
-gr_test_sptr gr_make_test (const std::string &name=std::string("gr_test"),
- int min_inputs=1, int max_inputs=1, unsigned int sizeof_input_item=1,
- int min_outputs=1, int max_outputs=1, unsigned int sizeof_output_item=1,
- unsigned int history=1,unsigned int output_multiple=1,double relative_rate=1.0,
- bool fixed_rate=true,gr_consume_type_t cons_type=CONSUME_NOUTPUT_ITEMS, gr_produce_type_t prod_type=PRODUCE_NOUTPUT_ITEMS);
-
-
-class gr_test : public gr_block {
-
- public:
-
- ~gr_test ();
- void forecast (int noutput_items,
- gr_vector_int &ninput_items_required);
- void set_check_topology (bool check_topology);
- bool check_topology (int ninputs, int noutputs);
- int fixed_rate_ninput_to_noutput(int ninput);
- int fixed_rate_noutput_to_ninput(int noutput);
- void set_fixed_rate_public(bool fixed_rate);
- void set_consume_type (gr_consume_type_t cons_type);
- void set_consume_limit (unsigned int limit);
- void set_produce_type (gr_produce_type_t prod_type);
- void set_produce_limit (unsigned int limit);
-
- protected:
- gr_test (const std::string &name,int min_inputs, int max_inputs, unsigned int sizeof_input_item,
- int min_outputs, int max_outputs, unsigned int sizeof_output_item,
- unsigned int history,unsigned int output_multiple,double relative_rate,
- bool fixed_rate,gr_consume_type_t cons_type, gr_produce_type_t prod_type);
-
-};
-
-
-
diff --git a/gnuradio-core/src/lib/general/gr_test_types.h b/gnuradio-core/src/lib/general/gr_test_types.h
deleted file mode 100644
index 04f38f7b26..0000000000
--- a/gnuradio-core/src/lib/general/gr_test_types.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006 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.
- */
-#ifndef INCLUDED_GR_TEST_TYPES_H
-#define INCLUDED_GR_TEST_TYPES_H
-
-typedef enum {
- CONSUME_NOUTPUT_ITEMS=0,
- CONSUME_NOUTPUT_ITEMS_LIMIT_MAX=1,
- CONSUME_NOUTPUT_ITEMS_LIMIT_MIN=2,
- CONSUME_ALL_AVAILABLE=3,
- CONSUME_ALL_AVAILABLE_LIMIT_MAX=4,
- /*CONSUME_ALL_AVAILABLE_LIMIT_MIN=5,*/
- CONSUME_ZERO=6,
- CONSUME_ONE=7,
- CONSUME_MINUS_ONE=8
- } gr_consume_type_t;
-
-typedef enum {
- PRODUCE_NOUTPUT_ITEMS=0,
- PRODUCE_NOUTPUT_ITEMS_LIMIT_MAX=1,
- /*PRODUCE_NOUTPUT_ITEMS_LIMIT_MIN=2,*/
- PRODUCE_ZERO=6,
- PRODUCE_ONE=7,
- PRODUCE_MINUS_ONE=8
- } gr_produce_type_t;
-
-#endif /* INCLUDED_GR_TEST_TYPES_H */
diff --git a/gnuradio-core/src/lib/general/gr_vco.h b/gnuradio-core/src/lib/general/gr_vco.h
deleted file mode 100644
index 3ceaf15dd4..0000000000
--- a/gnuradio-core/src/lib/general/gr_vco.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2005 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.
- */
-#ifndef _GR_VCO_H_
-#define _GR_VCO_H_
-
-
-#include <vector>
-#include <gr_sincos.h>
-#include <cmath>
-#include <gr_complex.h>
-
-/*!
- * \brief base class template for Voltage Controlled Oscillator (VCO)
- * \ingroup misc
- */
-
-//FIXME Eventually generalize this to fixed point
-
-template<class o_type, class i_type>
-class gr_vco {
-public:
- gr_vco () : d_phase (0) {}
-
- virtual ~gr_vco () {}
-
- // radians
- void set_phase (double angle) {
- d_phase = angle;
- }
-
- void adjust_phase (double delta_phase) {
- d_phase += delta_phase;
- if (fabs (d_phase) > M_PI){
-
- while (d_phase > M_PI)
- d_phase -= 2*M_PI;
-
- while (d_phase < -M_PI)
- d_phase += 2*M_PI;
- }
- }
-
- double get_phase () const { return d_phase; }
-
- // compute sin and cos for current phase angle
- void sincos (float *sinx, float *cosx) const;
-
- // compute cos or sin for current phase angle
- float cos () const { return std::cos (d_phase); }
- float sin () const { return std::sin (d_phase); }
-
- // compute a block at a time
- void cos (float *output, const float *input, int noutput_items, double k, double ampl = 1.0);
-
-protected:
- double d_phase;
-};
-
-template<class o_type, class i_type>
-void
-gr_vco<o_type,i_type>::sincos (float *sinx, float *cosx) const
-{
- gr_sincosf (d_phase, sinx, cosx);
-}
-
-template<class o_type, class i_type>
-void
-gr_vco<o_type,i_type>::cos (float *output, const float *input, int noutput_items, double k, double ampl)
-{
- for (int i = 0; i < noutput_items; i++){
- output[i] = cos() * ampl;
- adjust_phase(input[i] * k);
- }
-}
-#endif /* _GR_VCO_H_ */
diff --git a/gnuradio-core/src/lib/general/gri_debugger_hook.cc b/gnuradio-core/src/lib/general/gri_debugger_hook.cc
deleted file mode 100644
index d9270c435f..0000000000
--- a/gnuradio-core/src/lib/general/gri_debugger_hook.cc
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-
-#include <gri_debugger_hook.h>
-
-void
-gri_debugger_hook ()
-{
- // nop. set a breakpoint here
-}
diff --git a/gnuradio-core/src/lib/general/gri_debugger_hook.h b/gnuradio-core/src/lib/general/gri_debugger_hook.h
deleted file mode 100644
index c871c7bf67..0000000000
--- a/gnuradio-core/src/lib/general/gri_debugger_hook.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-
-#ifndef INCLUDED_GRI_DEBUGGER_HOOK_H
-#define INCLUDED_GRI_DEBUGGER_HOOK_H
-
-#include <gr_core_api.h>
-
-GR_CORE_API void gri_debugger_hook ();
-
-#endif /* INCLUDED_GRI_DEBUGGER_HOOK_H */ \ No newline at end of file
diff --git a/gnuradio-core/src/lib/general/malloc16.c b/gnuradio-core/src/lib/general/malloc16.c
deleted file mode 100644
index 2cc6135e77..0000000000
--- a/gnuradio-core/src/lib/general/malloc16.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Wrapper functions for malloc/free that force 16-byte alignment
- * See http://perso.club-internet.fr/matmac/sourcesc.htm
-
- * Copyright 2001 Phil Karn, KA9Q
- * May be used under the terms of the GNU Public License (GPL)
- */
-
-#include "malloc16.h"
-#include <string.h>
-
-void *malloc16Align(int size){
- void *p;
- void **p1;
-
- if((p = malloc(size+31)) == NULL)
- return NULL;
-
- /* Round up to next 16-byte boundary */
- p1 = (void **)(((long)p + 31) & (~15));
-
- /* Stash actual start of block just before ptr we return */
- p1[-1] = p;
-
- /* Return 16-byte aligned address */
- return (void *)p1;
-}
-
-void *calloc16Align(size_t nmemb,size_t size){
- int nbytes;
- void *p;
-
- nbytes = nmemb*size;
- if((p = malloc16Align(nbytes)) == NULL)
- return NULL;
-
- memset(p,0,nbytes);
- return p;
-}
-
-void free16Align(void *p){
-
- if(p != NULL){
- /* Retrieve pointer to actual start of block and free it */
- free(((void **)p)[-1]);
- }
-}
diff --git a/gnuradio-core/src/lib/general/malloc16.h b/gnuradio-core/src/lib/general/malloc16.h
deleted file mode 100644
index eaa32c6251..0000000000
--- a/gnuradio-core/src/lib/general/malloc16.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002 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.
- */
-
-#include <gr_core_api.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdlib.h>
-
-GR_CORE_API void *malloc16Align(int size);
-GR_CORE_API void *calloc16Align(size_t nmemb,size_t size);
-GR_CORE_API void free16Align(void *p);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/gnuradio-core/src/lib/general/qa_general.cc b/gnuradio-core/src/lib/general/qa_general.cc
deleted file mode 100644
index 121551b050..0000000000
--- a/gnuradio-core/src/lib/general/qa_general.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2002 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 gr
- * directory into a single test suite. As you create new test cases,
- * add them here.
- */
-
-#include <qa_general.h>
-#include <qa_gr_circular_file.h>
-#include <qa_gr_fxpt.h>
-#include <qa_gr_fxpt_nco.h>
-#include <qa_gr_fxpt_vco.h>
-#include <qa_gr_math.h>
-#include <qa_sincos.h>
-
-CppUnit::TestSuite *
-qa_general::suite ()
-{
- CppUnit::TestSuite *s = new CppUnit::TestSuite ("general");
-
- s->addTest (qa_gr_circular_file::suite ());
- s->addTest (qa_gr_fxpt::suite ());
- s->addTest (qa_gr_fxpt_nco::suite ());
- s->addTest (qa_gr_fxpt_vco::suite ());
- s->addTest (qa_gr_math::suite ());
- s->addTest(gr::analog::qa_sincos::suite());
-
- return s;
-}
diff --git a/gnuradio-core/src/lib/general/qa_general.h b/gnuradio-core/src/lib/general/qa_general.h
deleted file mode 100644
index bf52cddc1a..0000000000
--- a/gnuradio-core/src/lib/general/qa_general.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002 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.
- */
-
-#ifndef _QA_GENERAL_H_
-#define _QA_GENERAL_H_
-
-#include <gruel/attributes.h>
-#include <cppunit/TestSuite.h>
-
-//! collect all the tests for the gr directory
-
-class __GR_ATTR_EXPORT qa_general {
- public:
- //! return suite of tests for all of gr directory
- static CppUnit::TestSuite *suite ();
-};
-
-
-#endif /* _QA_GENERAL_H_ */
diff --git a/gnuradio-core/src/lib/general/qa_gr_circular_file.cc b/gnuradio-core/src/lib/general/qa_gr_circular_file.cc
deleted file mode 100644
index 243e44784b..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_circular_file.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <qa_gr_circular_file.h>
-#include <gr_circular_file.h>
-#include <cppunit/TestAssert.h>
-#include <iostream>
-#include <stdio.h>
-#include <unistd.h>
-
-static const char *test_file = "qa_gr_circular_file.data";
-static const int BUFFER_SIZE = 8192;
-static const int NWRITE = 8192 * 9 / 8;
-
-void
-qa_gr_circular_file::t1 ()
-{
-#ifdef HAVE_MMAP
- gr_circular_file *cf_writer;
- gr_circular_file *cf_reader;
-
- // write the data...
-
- cf_writer = new gr_circular_file (test_file, true, BUFFER_SIZE * sizeof (short));
-
- short sd;
- for (int i = 0; i < NWRITE; i++){
- sd = i;
- cf_writer->write (&sd, sizeof (sd));
- }
-
- delete cf_writer;
-
- // now read it back...
-
- cf_reader = new gr_circular_file (test_file);
- for (int i = 0; i < BUFFER_SIZE; i++){
- int n = cf_reader->read (&sd, sizeof (sd));
- CPPUNIT_ASSERT_EQUAL ((int) sizeof (sd), n);
- CPPUNIT_ASSERT_EQUAL (NWRITE - BUFFER_SIZE + i, (int) sd);
- }
-
- int n = cf_reader->read (&sd, sizeof (sd));
- CPPUNIT_ASSERT_EQUAL (0, n);
-
- delete cf_reader;
- unlink (test_file);
-#endif // HAVE_MMAP
-}
-
diff --git a/gnuradio-core/src/lib/general/qa_gr_circular_file.h b/gnuradio-core/src/lib/general/qa_gr_circular_file.h
deleted file mode 100644
index df35ab077b..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_circular_file.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2002 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.
- */
-#ifndef _QA_GR_CIRCULAR_FILE_H_
-#define _QA_GR_CIRCULAR_FILE_H_
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/TestCase.h>
-
-class qa_gr_circular_file : public CppUnit::TestCase {
-
- CPPUNIT_TEST_SUITE (qa_gr_circular_file);
- CPPUNIT_TEST (t1);
- CPPUNIT_TEST_SUITE_END ();
-
- private:
- void t1 ();
-
-};
-
-
-#endif /* _QA_GR_CIRCULAR_FILE_H_ */
diff --git a/gnuradio-core/src/lib/general/qa_gr_fxpt.cc b/gnuradio-core/src/lib/general/qa_gr_fxpt.cc
deleted file mode 100644
index 7eac0d8964..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_fxpt.cc
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <qa_gr_fxpt.h>
-#include <gr_fxpt.h>
-#include <cppunit/TestAssert.h>
-#include <iostream>
-#include <stdio.h>
-#include <unistd.h>
-#include <math.h>
-
-static const float SIN_COS_TOLERANCE = 1e-5;
-
-void
-qa_gr_fxpt::t0 ()
-{
- CPPUNIT_ASSERT_DOUBLES_EQUAL (M_PI/2, gr_fxpt::fixed_to_float (0x40000000), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL (0.0, gr_fxpt::fixed_to_float (0x00000000), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL (-M_PI, gr_fxpt::fixed_to_float (0x80000000), SIN_COS_TOLERANCE);
-
- if (0){
- /*
- * These are disabled because of some precision issues.
- *
- * Different compilers seem to have different opinions on whether
- * the calulations are done single or double (or extended)
- * precision. Any of the answers are fine for our real purpose, but
- * sometimes the answer is off by a few bits at the bottom.
- * Hence, the disabled check.
- */
- CPPUNIT_ASSERT_EQUAL ((gr_int32) 0x40000000, gr_fxpt::float_to_fixed (M_PI/2));
- CPPUNIT_ASSERT_EQUAL ((gr_int32) 0, gr_fxpt::float_to_fixed (0));
- CPPUNIT_ASSERT_EQUAL ((gr_int32) 0x80000000, gr_fxpt::float_to_fixed (-M_PI));
- }
-}
-
-void
-qa_gr_fxpt::t1 ()
-{
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL ( 0, gr_fxpt::sin (0x00000000), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL ( 0.707106781, gr_fxpt::sin (0x20000000), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL ( 1, gr_fxpt::sin (0x40000000), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL ( 0.707106781, gr_fxpt::sin (0x60000000), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL ( 0, gr_fxpt::sin (0x7fffffff), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL ( 0, gr_fxpt::sin (0x80000000), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL ( 0, gr_fxpt::sin (0x80000001), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL (-1, gr_fxpt::sin (-0x40000000), SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL (-0.707106781, gr_fxpt::sin (-0x20000000), SIN_COS_TOLERANCE);
-
-
- for (float p = -M_PI; p < M_PI; p += 2 * M_PI / 3600){
- float expected = sin (p);
- float actual = gr_fxpt::sin (gr_fxpt::float_to_fixed (p));
- CPPUNIT_ASSERT_DOUBLES_EQUAL (expected, actual, SIN_COS_TOLERANCE);
- }
-}
-
-void
-qa_gr_fxpt::t2 ()
-{
- for (float p = -M_PI; p < M_PI; p += 2 * M_PI / 3600){
- float expected = cos (p);
- float actual = gr_fxpt::cos (gr_fxpt::float_to_fixed (p));
- CPPUNIT_ASSERT_DOUBLES_EQUAL (expected, actual, SIN_COS_TOLERANCE);
- }
-}
-
-void
-qa_gr_fxpt::t3 ()
-{
- for (float p = -M_PI; p < M_PI; p += 2 * M_PI / 3600){
- float expected_sin = sin (p);
- float expected_cos = cos (p);
- float actual_sin;
- float actual_cos;
- gr_fxpt::sincos (gr_fxpt::float_to_fixed (p), &actual_sin, &actual_cos);
- CPPUNIT_ASSERT_DOUBLES_EQUAL (expected_sin, actual_sin, SIN_COS_TOLERANCE);
- CPPUNIT_ASSERT_DOUBLES_EQUAL (expected_cos, actual_cos, SIN_COS_TOLERANCE);
- }
-}
diff --git a/gnuradio-core/src/lib/general/qa_gr_fxpt.h b/gnuradio-core/src/lib/general/qa_gr_fxpt.h
deleted file mode 100644
index 72211563e7..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_fxpt.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-#ifndef INCLUDED_QA_GR_FXPT_H
-#define INCLUDED_QA_GR_FXPT_H
-
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/TestCase.h>
-
-class qa_gr_fxpt : public CppUnit::TestCase {
-
- CPPUNIT_TEST_SUITE (qa_gr_fxpt);
- CPPUNIT_TEST (t0);
- CPPUNIT_TEST (t1);
- CPPUNIT_TEST (t2);
- CPPUNIT_TEST (t3);
- CPPUNIT_TEST_SUITE_END ();
-
- private:
- void t0 ();
- void t1 ();
- void t2 ();
- void t3 ();
-
-};
-
-#endif /* INCLUDED_QA_GR_FXPT_H */
-
-
diff --git a/gnuradio-core/src/lib/general/qa_gr_fxpt_nco.cc b/gnuradio-core/src/lib/general/qa_gr_fxpt_nco.cc
deleted file mode 100644
index 6f208eac80..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_fxpt_nco.cc
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <qa_gr_fxpt_nco.h>
-#include <gr_fxpt_nco.h>
-#include <gr_nco.h>
-#include <cppunit/TestAssert.h>
-#include <iostream>
-#include <stdio.h>
-#include <unistd.h>
-#include <math.h>
-
-static const float SIN_COS_TOLERANCE = 1e-5;
-
-//static const float SIN_COS_FREQ = 5003;
-static const float SIN_COS_FREQ = 4096;
-
-static const int SIN_COS_BLOCK_SIZE = 100000;
-
-static double max_d(double a, double b)
-{
- return fabs(a) > fabs(b) ? a : b;
-}
-
-void
-qa_gr_fxpt_nco::t0 ()
-{
- gr_nco<float,float> ref_nco;
- gr_fxpt_nco new_nco;
- double max_error = 0, max_phase_error = 0;
-
- ref_nco.set_freq ((float)(2 * M_PI / SIN_COS_FREQ));
- new_nco.set_freq ((float)(2 * M_PI / SIN_COS_FREQ));
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_nco.get_freq(), new_nco.get_freq(), SIN_COS_TOLERANCE);
-
- for (int i = 0; i < SIN_COS_BLOCK_SIZE; i++){
- float ref_sin = ref_nco.sin ();
- float new_sin = new_nco.sin ();
- //printf ("i = %6d\n", i);
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_sin, new_sin, SIN_COS_TOLERANCE);
-
- max_error = max_d (max_error, ref_sin-new_sin);
-
- float ref_cos = ref_nco.cos ();
- float new_cos = new_nco.cos ();
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_cos, new_cos, SIN_COS_TOLERANCE);
-
- max_error = max_d (max_error, ref_cos-new_cos);
-
- ref_nco.step ();
- new_nco.step ();
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_nco.get_phase(), new_nco.get_phase(), SIN_COS_TOLERANCE);
-
- max_phase_error = max_d (max_phase_error, ref_nco.get_phase()-new_nco.get_phase());
- }
- // printf ("Fxpt max error %.9f, max phase error %.9f\n", max_error, max_phase_error);
-}
-
-void
-qa_gr_fxpt_nco::t1 ()
-{
- gr_nco<float,float> ref_nco;
- gr_fxpt_nco new_nco;
- gr_complex ref_block[SIN_COS_BLOCK_SIZE];
- gr_complex new_block[SIN_COS_BLOCK_SIZE];
- double max_error = 0;
-
- ref_nco.set_freq ((float)(2 * M_PI / SIN_COS_FREQ));
- new_nco.set_freq ((float)(2 * M_PI / SIN_COS_FREQ));
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_nco.get_freq(), new_nco.get_freq(), SIN_COS_TOLERANCE);
-
- ref_nco.sincos ((gr_complex*)ref_block, SIN_COS_BLOCK_SIZE);
- new_nco.sincos ((gr_complex*)new_block, SIN_COS_BLOCK_SIZE);
-
- for (int i = 0; i < SIN_COS_BLOCK_SIZE; i++){
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_block[i].real(), new_block[i].real(), SIN_COS_TOLERANCE);
- max_error = max_d (max_error, ref_block[i].real()-new_block[i].real());
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_block[i].imag(), new_block[i].imag(), SIN_COS_TOLERANCE);
- max_error = max_d (max_error, ref_block[i].imag()-new_block[i].imag());
- }
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_nco.get_phase(), new_nco.get_phase(), SIN_COS_TOLERANCE);
- // printf ("Fxpt max error %.9f, max phase error %.9f\n", max_error, max_phase_error);
-}
-
-void
-qa_gr_fxpt_nco::t2 ()
-{
-}
-
-void
-qa_gr_fxpt_nco::t3 ()
-{
-}
diff --git a/gnuradio-core/src/lib/general/qa_gr_fxpt_nco.h b/gnuradio-core/src/lib/general/qa_gr_fxpt_nco.h
deleted file mode 100644
index 8998922bbb..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_fxpt_nco.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-#ifndef INCLUDED_QA_GR_FXPT_NCO_H
-#define INCLUDED_QA_GR_FXPT_NCO_H
-
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/TestCase.h>
-
-class qa_gr_fxpt_nco : public CppUnit::TestCase {
-
- CPPUNIT_TEST_SUITE (qa_gr_fxpt_nco);
- CPPUNIT_TEST (t0);
- CPPUNIT_TEST (t1);
- CPPUNIT_TEST (t2);
- CPPUNIT_TEST (t3);
- CPPUNIT_TEST_SUITE_END ();
-
- private:
- void t0 ();
- void t1 ();
- void t2 ();
- void t3 ();
-
-};
-
-#endif /* INCLUDED_QA_GR_FXPT_NCO_H */
-
-
diff --git a/gnuradio-core/src/lib/general/qa_gr_fxpt_vco.cc b/gnuradio-core/src/lib/general/qa_gr_fxpt_vco.cc
deleted file mode 100644
index 5b6993a30c..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_fxpt_vco.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2005 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <qa_gr_fxpt_vco.h>
-#include <gr_fxpt_vco.h>
-#include <gr_vco.h>
-#include <cppunit/TestAssert.h>
-#include <iostream>
-#include <stdio.h>
-#include <unistd.h>
-#include <math.h>
-
-static const float SIN_COS_TOLERANCE = 1e-5;
-
-static const float SIN_COS_K = 0.42;
-static const float SIN_COS_AMPL = 0.8;
-
-static const int SIN_COS_BLOCK_SIZE = 100000;
-
-static double max_d(double a, double b)
-{
- return fabs(a) > fabs(b) ? a : b;
-}
-
-void
-qa_gr_fxpt_vco::t0 ()
-{
- gr_vco<float,float> ref_vco;
- gr_fxpt_vco new_vco;
- double max_error = 0, max_phase_error = 0;
- float input[SIN_COS_BLOCK_SIZE];
-
- for (int i = 0; i < SIN_COS_BLOCK_SIZE; i++){
- input[i] = sin(double(i));
- }
-
- for (int i = 0; i < SIN_COS_BLOCK_SIZE; i++){
- float ref_cos = ref_vco.cos ();
- float new_cos = new_vco.cos ();
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_cos, new_cos, SIN_COS_TOLERANCE);
-
- max_error = max_d (max_error, ref_cos-new_cos);
-
- ref_vco.adjust_phase (input[i]);
- new_vco.adjust_phase (input[i]);
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_vco.get_phase(), new_vco.get_phase(), SIN_COS_TOLERANCE);
-
- max_phase_error = max_d (max_phase_error, ref_vco.get_phase()-new_vco.get_phase());
- }
- // printf ("Fxpt max error %.9f, max phase error %.9f\n", max_error, max_phase_error);
-}
-
-
-void
-qa_gr_fxpt_vco::t1 ()
-{
- gr_vco<float,float> ref_vco;
- gr_fxpt_vco new_vco;
- float ref_block[SIN_COS_BLOCK_SIZE];
- float new_block[SIN_COS_BLOCK_SIZE];
- float input[SIN_COS_BLOCK_SIZE];
- double max_error = 0;
-
- for (int i = 0; i < SIN_COS_BLOCK_SIZE; i++){
- input[i] = sin(double(i));
- }
-
- ref_vco.cos (ref_block, input, SIN_COS_BLOCK_SIZE, SIN_COS_K, SIN_COS_AMPL);
- new_vco.cos (new_block, input, SIN_COS_BLOCK_SIZE, SIN_COS_K, SIN_COS_AMPL);
-
- for (int i = 0; i < SIN_COS_BLOCK_SIZE; i++){
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_block[i], new_block[i], SIN_COS_TOLERANCE);
- max_error = max_d (max_error, ref_block[i]-new_block[i]);
- }
- CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_vco.get_phase(), new_vco.get_phase(), SIN_COS_TOLERANCE);
- // printf ("Fxpt max error %.9f, max phase error %.9f\n", max_error, ref_vco.get_phase()-new_vco.get_phase());
-}
-
-void
-qa_gr_fxpt_vco::t2 ()
-{
-}
-
-void
-qa_gr_fxpt_vco::t3 ()
-{
-}
diff --git a/gnuradio-core/src/lib/general/qa_gr_fxpt_vco.h b/gnuradio-core/src/lib/general/qa_gr_fxpt_vco.h
deleted file mode 100644
index fab8022e36..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_fxpt_vco.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2005 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.
- */
-#ifndef INCLUDED_QA_GR_FXPT_VCO_H
-#define INCLUDED_QA_GR_FXPT_VCO_H
-
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/TestCase.h>
-
-class qa_gr_fxpt_vco : public CppUnit::TestCase {
-
- CPPUNIT_TEST_SUITE (qa_gr_fxpt_vco);
- CPPUNIT_TEST (t0);
- CPPUNIT_TEST (t1);
- CPPUNIT_TEST (t2);
- CPPUNIT_TEST (t3);
- CPPUNIT_TEST_SUITE_END ();
-
- private:
- void t0 ();
- void t1 ();
- void t2 ();
- void t3 ();
-
-};
-
-#endif /* INCLUDED_QA_GR_FXPT_VCO_H */
-
-
diff --git a/gnuradio-core/src/lib/general/qa_gr_math.cc b/gnuradio-core/src/lib/general/qa_gr_math.cc
deleted file mode 100644
index 74d51b536e..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_math.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * 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.
- */
-
-#include <gr_math.h>
-#include <qa_gr_math.h>
-#include <cppunit/TestAssert.h>
-#include <stdio.h>
-
-void
-qa_gr_math::test_binary_slicer1 ()
-{
- float x[5] = {-1, -0.5, 0, 0.5, 1.0};
- unsigned int z[5] = {0, 0, 1, 1, 1};
- unsigned int y;
-
- //printf("\nBinary\n");
- for (unsigned int i = 0; i < 5; i++) {
- y = gr_binary_slicer(x[i]);
- //printf("in: %f out: %d desired: %d\n", x[i], y, z[i]);
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL(y, z[i], 1e-9);
- }
-
- //printf("\nBranchless Binary\n");
- for (unsigned int i = 0; i < 5; i++) {
- y = gr_branchless_binary_slicer(x[i]);
- //printf("in: %f out: %d desired: %d\n", x[i], y, z[i]);
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL(y, z[i], 1e-9);
- }
-}
-
-void
-qa_gr_math::test_quad_0deg_slicer1 ()
-{
- gr_complex x[4] = {gr_complex(1, 0),
- gr_complex(0, 1),
- gr_complex(-1, 0),
- gr_complex(0, -1)};
-
- unsigned int z[4] = {0, 1, 2, 3};
- unsigned int y;
-
- //printf("\nQuad0\n");
- for (unsigned int i = 0; i < 4; i++) {
- y = gr_quad_0deg_slicer(x[i]);
- //printf("in: %.4f+j%.4f out: %d desired: %d\n", x[i].real(), x[i].imag(), y, z[i]);
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL(y, z[i], 1e-9);
- }
-
- //printf("\nBranchless Quad0\n");
- for (unsigned int i = 0; i < 4; i++) {
- y = gr_branchless_quad_0deg_slicer(x[i]);
- //printf("in: %.4f+j%.4f out: %d desired: %d\n", x[i].real(), x[i].imag(), y, z[i]);
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL(y, z[i], 1e-9);
- }
-}
-
-void
-qa_gr_math::test_quad_45deg_slicer1 ()
-{
- gr_complex x[4] = {gr_complex(0.707, 0.707),
- gr_complex(-0.707, 0.707),
- gr_complex(-0.707, -0.707),
- gr_complex(0.707, -0.707)};
-
- unsigned int z[4] = {0, 1, 2, 3};
- unsigned int y;
-
- //printf("\nQuad45\n");
- for (unsigned int i = 0; i < 4; i++) {
- y = gr_quad_45deg_slicer(x[i]);
- //printf("in: %.4f+j%.4f out: %d desired: %d\n", x[i].real(), x[i].imag(), y, z[i]);
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL(y, z[i], 1e-9);
- }
-
- //printf("\nBranchless Quad45\n");
- for (unsigned int i = 0; i < 4; i++) {
- y = gr_branchless_quad_45deg_slicer(x[i]);
- //printf("in: %.4f+j%.4f out: %d desired: %d\n", x[i].real(), x[i].imag(), y, z[i]);
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL(y, z[i], 1e-9);
- }
-}
diff --git a/gnuradio-core/src/lib/general/qa_gr_math.h b/gnuradio-core/src/lib/general/qa_gr_math.h
deleted file mode 100644
index 86858c03d5..0000000000
--- a/gnuradio-core/src/lib/general/qa_gr_math.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- c++ -*- */
-/*
- * 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.
- */
-#ifndef _QA_GR_MATH_H_
-#define _QA_GR_MATH_H_
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/TestCase.h>
-
-class qa_gr_math : public CppUnit::TestCase {
-
- CPPUNIT_TEST_SUITE(qa_gr_math);
- CPPUNIT_TEST(test_binary_slicer1);
- CPPUNIT_TEST(test_quad_0deg_slicer1);
- CPPUNIT_TEST(test_quad_45deg_slicer1);
- CPPUNIT_TEST_SUITE_END();
-
- private:
- void test_binary_slicer1();
- void test_quad_0deg_slicer1();
- void test_quad_45deg_slicer1();
-};
-
-#endif /* _QA_GR_MATH_H_ */
diff --git a/gnuradio-core/src/lib/general/qa_sincos.cc b/gnuradio-core/src/lib/general/qa_sincos.cc
deleted file mode 100644
index 0066ff6b92..0000000000
--- a/gnuradio-core/src/lib/general/qa_sincos.cc
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2012 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <qa_sincos.h>
-#include <gr_sincos.h>
-#include <gruel/attributes.h>
-#include <cppunit/TestAssert.h>
-#include <cmath>
-
-namespace gr {
- namespace analog {
-
- void
- qa_sincos::t1()
- {
- static const unsigned int N = 1000;
- double c_sin, c_cos;
- double gr_sin, gr_cos;
-
- for(unsigned i = 0; i < N; i++) {
- double x = i/100.0;
- c_sin = sin(x);
- c_cos = cos(x);
-
- gr_sincos(x, &gr_sin, &gr_cos);
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL(c_sin, gr_sin, 0.0001);
- CPPUNIT_ASSERT_DOUBLES_EQUAL(c_cos, gr_cos, 0.0001);
- }
- }
-
- void
- qa_sincos::t2()
- {
- static const unsigned int N = 1000;
- float c_sin, c_cos;
- float gr_sin, gr_cos;
-
- for(unsigned i = 0; i < N; i++) {
- float x = i/100.0;
- c_sin = sinf(x);
- c_cos = cosf(x);
-
- gr_sincosf(x, &gr_sin, &gr_cos);
-
- CPPUNIT_ASSERT_DOUBLES_EQUAL(c_sin, gr_sin, 0.0001);
- CPPUNIT_ASSERT_DOUBLES_EQUAL(c_cos, gr_cos, 0.0001);
- }
- }
-
- } /* namespace analog */
-} /* namespace gr */
diff --git a/gnuradio-core/src/lib/general/qa_sincos.h b/gnuradio-core/src/lib/general/qa_sincos.h
deleted file mode 100644
index f18e879dd8..0000000000
--- a/gnuradio-core/src/lib/general/qa_sincos.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2012 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.
- */
-
-#ifndef _QA_ANALOG_SINCOS_H_
-#define _QA_ANALOG_SINCOS_H_
-
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/TestCase.h>
-
-namespace gr {
- namespace analog {
-
- class qa_sincos : public CppUnit::TestCase
- {
- CPPUNIT_TEST_SUITE(qa_sincos);
- CPPUNIT_TEST(t1);
- CPPUNIT_TEST(t2);
- CPPUNIT_TEST_SUITE_END();
-
- private:
- void t1();
- void t2();
- };
-
- } /* namespace analog */
-} /* namespace gr */
-
-#endif /* _QA_ANALOG_SINCOS_H_ */
diff --git a/gnuradio-core/src/lib/general/random.h b/gnuradio-core/src/lib/general/random.h
deleted file mode 100644
index c643c3e422..0000000000
--- a/gnuradio-core/src/lib/general/random.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2003, 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.
- */
-
-#ifndef _RANDOM_H_
-#define _RANDOM_H_
-
-// While rand(3) specifies RAND_MAX, random(3) says that the output
-// ranges from 0 to 2^31-1 but does not specify a macro to denote
-// this. We define RANDOM_MAX for cleanliness. We must omit the
-// definition for systems that have made the same choice. (Note that
-// random(3) is from 4.2BSD, and not specified by POSIX.)
-
-#ifndef RANDOM_MAX
-static const int RANDOM_MAX = 2147483647; // 2^31-1
-#endif /* RANDOM_MAX */
-
-#include <stdlib.h>
-
-#endif // _RANDOM_H_
diff --git a/gnuradio-core/src/lib/general/sine_table.h b/gnuradio-core/src/lib/general/sine_table.h
deleted file mode 100644
index 69834943bc..0000000000
--- a/gnuradio-core/src/lib/general/sine_table.h
+++ /dev/null
@@ -1,1025 +0,0 @@
- // max_error = 2.353084136763606e-06
- { 2.925817799165007e-09, 7.219194364267018e-09 },
- { 2.925707643778599e-09, 2.526699001579799e-07 },
- { 2.925487337153070e-09, 1.191140162167675e-06 },
- { 2.925156887582842e-09, 3.284585035595589e-06 },
- { 2.924716307509151e-09, 6.994872605695784e-06 },
- { 2.924165613519592e-09, 1.278374920658798e-05 },
- { 2.923504826347475e-09, 2.111280464718590e-05 },
- { 2.922733970871080e-09, 3.244343744537165e-05 },
- { 2.921853076112655e-09, 4.723682007436170e-05 },
- { 2.920862175237416e-09, 6.595386421935634e-05 },
- { 2.919761305552202e-09, 8.905518605213658e-05 },
- { 2.918550508504146e-09, 1.170010715193098e-04 },
- { 2.917229829679050e-09, 1.502514416517192e-04 },
- { 2.915799318799769e-09, 1.892658178912071e-04 },
- { 2.914259029724184e-09, 2.345032874456615e-04 },
- { 2.912609020443340e-09, 2.864224686607020e-04 },
- { 2.910849353079123e-09, 3.454814764261432e-04 },
- { 2.908980093882049e-09, 4.121378876027343e-04 },
- { 2.907001313228646e-09, 4.868487064877691e-04 },
- { 2.904913085618902e-09, 5.700703303049837e-04 },
- { 2.902715489673383e-09, 6.622585147355725e-04 },
- { 2.900408608130373e-09, 7.638683394782519e-04 },
- { 2.897992527842612e-09, 8.753541738578119e-04 },
- { 2.895467339774186e-09, 9.971696424604937e-04 },
- { 2.892833138996999e-09, 1.129767590823255e-03 },
- { 2.890090024687216e-09, 1.273600051161478e-03 },
- { 2.887238100121550e-09, 1.429118208142094e-03 },
- { 2.884277472673313e-09, 1.596772364709564e-03 },
- { 2.881208253808507e-09, 1.777011907950626e-03 },
- { 2.878030559081432e-09, 1.970285275029487e-03 },
- { 2.874744508130554e-09, 2.177039919152579e-03 },
- { 2.871350224673798e-09, 2.397722275614272e-03 },
- { 2.867847836504030e-09, 2.632777727878843e-03 },
- { 2.864237475484149e-09, 2.882650573737405e-03 },
- { 2.860519277542297e-09, 3.147783991507308e-03 },
- { 2.856693382666432e-09, 3.428620006328931e-03 },
- { 2.852759934899389e-09, 3.725599456482154e-03 },
- { 2.848719082333207e-09, 4.039161959812243e-03 },
- { 2.844570977103752e-09, 4.369745880190706e-03 },
- { 2.840315775384800e-09, 4.717788294077374e-03 },
- { 2.835953637382310e-09, 5.083724957128360e-03 },
- { 2.831484727328322e-09, 5.467990270896617e-03 },
- { 2.826909213474759e-09, 5.871017249604038e-03 },
- { 2.822227268087134e-09, 6.293237486988512e-03 },
- { 2.817439067438018e-09, 6.735081123237729e-03 },
- { 2.812544791800534e-09, 7.196976811989608e-03 },
- { 2.807544625441273e-09, 7.679351687456759e-03 },
- { 2.802438756613836e-09, 8.182631331563162e-03 },
- { 2.797227377551135e-09, 8.707239741274575e-03 },
- { 2.791910684458716e-09, 9.253599295902304e-03 },
- { 2.786488877507140e-09, 9.822130724578715e-03 },
- { 2.780962160824228e-09, 1.041325307382490e-02 },
- { 2.775330742487884e-09, 1.102738367513773e-02 },
- { 2.769594834517682e-09, 1.166493811278924e-02 },
- { 2.763754652867477e-09, 1.232633019159818e-02 },
- { 2.757810417416620e-09, 1.301197190494069e-02 },
- { 2.751762351962413e-09, 1.372227340270610e-02 },
- { 2.745610684210923e-09, 1.445764295952962e-02 },
- { 2.739355645769094e-09, 1.521848694296229e-02 },
- { 2.732997472135539e-09, 1.600520978188769e-02 },
- { 2.726536402691907e-09, 1.681821393496225e-02 },
- { 2.719972680693777e-09, 1.765789985920713e-02 },
- { 2.713306553261610e-09, 1.852466597868779e-02 },
- { 2.706538271371373e-09, 1.941890865333146e-02 },
- { 2.699668089844909e-09, 2.034102214787814e-02 },
- { 2.692696267340880e-09, 2.129139860085272e-02 },
- { 2.685623066344263e-09, 2.227042799383416e-02 },
- { 2.678448753157212e-09, 2.327849812064098e-02 },
- { 2.671173597888530e-09, 2.431599455681316e-02 },
- { 2.663797874443630e-09, 2.538330062913108e-02 },
- { 2.656321860514457e-09, 2.648079738524795e-02 },
- { 2.648745837568575e-09, 2.760886356354952e-02 },
- { 2.641070090839117e-09, 2.876787556300114e-02 },
- { 2.633294909313421e-09, 2.995820741329835e-02 },
- { 2.625420585722845e-09, 3.118023074495535e-02 },
- { 2.617447416531143e-09, 3.243431475972608e-02 },
- { 2.609375701923643e-09, 3.372082620101990e-02 },
- { 2.601205745795833e-09, 3.504012932452527e-02 },
- { 2.592937855741933e-09, 3.639258586895711e-02 },
- { 2.584572343043400e-09, 3.777855502693250e-02 },
- { 2.576109522656942e-09, 3.919839341605197e-02 },
- { 2.567549713203028e-09, 4.065245505002102e-02 },
- { 2.558893236953688e-09, 4.214109131001403e-02 },
- { 2.550140419820252e-09, 4.366465091617666e-02 },
- { 2.541291591341445e-09, 4.522347989919473e-02 },
- { 2.532347084670572e-09, 4.681792157215026e-02 },
- { 2.523307236563343e-09, 4.844831650239501e-02 },
- { 2.514172387364900e-09, 5.011500248369893e-02 },
- { 2.504942880997064e-09, 5.181831450849345e-02 },
- { 2.495619064945627e-09, 5.355858474024022e-02 },
- { 2.486201290246928e-09, 5.533614248606705e-02 },
- { 2.476689911475047e-09, 5.715131416942842e-02 },
- { 2.467085286727668e-09, 5.900442330315692e-02 },
- { 2.457387777613798e-09, 6.089579046229943e-02 },
- { 2.447597749239101e-09, 6.282573325755320e-02 },
- { 2.437715570192557e-09, 6.479456630859221e-02 },
- { 2.427741612532542e-09, 6.680260121764925e-02 },
- { 2.417676251773166e-09, 6.885014654319160e-02 },
- { 2.407519866869294e-09, 7.093750777401114e-02 },
- { 2.397272840203310e-09, 7.306498730310884e-02 },
- { 2.386935557569868e-09, 7.523288440214027e-02 },
- { 2.376508408161815e-09, 7.744149519577415e-02 },
- { 2.365991784555363e-09, 7.969111263635709e-02 },
- { 2.355386082695641e-09, 8.198202647865405e-02 },
- { 2.344691701881232e-09, 8.431452325495814e-02 },
- { 2.333909044749407e-09, 8.668888625021409e-02 },
- { 2.323038517261246e-09, 8.910539547731611e-02 },
- { 2.312080528685971e-09, 9.156432765274414e-02 },
- { 2.301035491585642e-09, 9.406595617227698e-02 },
- { 2.289903821799651e-09, 9.661055108691619e-02 },
- { 2.278685938428940e-09, 9.919837907903295e-02 },
- { 2.267382263820762e-09, 1.018297034385580e-01 },
- { 2.255993223551837e-09, 1.045047840397028e-01 },
- { 2.244519246413220e-09, 1.072238773174577e-01 },
- { 2.232960764393620e-09, 1.099872362446146e-01 },
- { 2.221318212663309e-09, 1.127951103088245e-01 },
- { 2.209592029557811e-09, 1.156477454898748e-01 },
- { 2.197782656561395e-09, 1.185453842371912e-01 },
- { 2.185890538290176e-09, 1.214882654476019e-01 },
- { 2.173916122475606e-09, 1.244766244431883e-01 },
- { 2.161859859947797e-09, 1.275106929493488e-01 },
- { 2.149722204618256e-09, 1.305906990731841e-01 },
- { 2.137503613462743e-09, 1.337168672820376e-01 },
- { 2.125204546504321e-09, 1.368894183821595e-01 },
- { 2.112825466795944e-09, 1.401085694976751e-01 },
- { 2.100366840402933e-09, 1.433745340497602e-01 },
- { 2.087829136385612e-09, 1.466875217359607e-01 },
- { 2.075212826781308e-09, 1.500477385098620e-01 },
- { 2.062518386587093e-09, 1.534553865607503e-01 },
- { 2.049746293741359e-09, 1.569106642937665e-01 },
- { 2.036897029106193e-09, 1.604137663100403e-01 },
- { 2.023971076449323e-09, 1.639648833871233e-01 },
- { 2.010968922425217e-09, 1.675642024598467e-01 },
- { 1.997891056557933e-09, 1.712119066008896e-01 },
- { 1.984737971221581e-09, 1.749081750021970e-01 },
- { 1.971510161622434e-09, 1.786531829561379e-01 },
- { 1.958208125780130e-09, 1.824471018371070e-01 },
- { 1.944832364508511e-09, 1.862900990834311e-01 },
- { 1.931383381397782e-09, 1.901823381790926e-01 },
- { 1.917861682794392e-09, 1.941239786363039e-01 },
- { 1.904267777782611e-09, 1.981151759777950e-01 },
- { 1.890602178165317e-09, 2.021560817195309e-01 },
- { 1.876865398444616e-09, 2.062468433536743e-01 },
- { 1.863057955802572e-09, 2.103876043317229e-01 },
- { 1.849180370081465e-09, 2.145785040479915e-01 },
- { 1.835233163764673e-09, 2.188196778231083e-01 },
- { 1.821216861956509e-09, 2.231112568880342e-01 },
- { 1.807131992362945e-09, 2.274533683680190e-01 },
- { 1.792979085271234e-09, 2.318461352671018e-01 },
- { 1.778758673530482e-09, 2.362896764525300e-01 },
- { 1.764471292530943e-09, 2.407841066397789e-01 },
- { 1.750117480184598e-09, 2.453295363773890e-01 },
- { 1.735697776904342e-09, 2.499260720324433e-01 },
- { 1.721212725583874e-09, 2.545738157760434e-01 },
- { 1.706662871577097e-09, 2.592728655691494e-01 },
- { 1.692048762677849e-09, 2.640233151485341e-01 },
- { 1.677370949099090e-09, 2.688252540131204e-01 },
- { 1.662629983452104e-09, 2.736787674105404e-01 },
- { 1.647826420726167e-09, 2.785839363237506e-01 },
- { 1.632960818266680e-09, 2.835408374583758e-01 },
- { 1.618033735755429e-09, 2.885495432295704e-01 },
- { 1.603045735188609e-09, 2.936101217498361e-01 },
- { 1.587997380855918e-09, 2.987226368167127e-01 },
- { 1.572889239319430e-09, 3.038871479007593e-01 },
- { 1.557721879392051e-09, 3.091037101339017e-01 },
- { 1.542495872116447e-09, 3.143723742978435e-01 },
- { 1.527211790743024e-09, 3.196931868130269e-01 },
- { 1.511870210708909e-09, 3.250661897274744e-01 },
- { 1.496471709615926e-09, 3.304914207062036e-01 },
- { 1.481016867208896e-09, 3.359689130207621e-01 },
- { 1.465506265353924e-09, 3.414986955389885e-01 },
- { 1.449940488016384e-09, 3.470807927151147e-01 },
- { 1.434320121238994e-09, 3.527152245800635e-01 },
- { 1.418645753119802e-09, 3.584020067320109e-01 },
- { 1.402917973789838e-09, 3.641411503272979e-01 },
- { 1.387137375391042e-09, 3.699326620714776e-01 },
- { 1.371304552054134e-09, 3.757765442106153e-01 },
- { 1.355420099875958e-09, 3.816727945230153e-01 },
- { 1.339484616897137e-09, 3.876214063110671e-01 },
- { 1.323498703079580e-09, 3.936223683933865e-01 },
- { 1.307462960283922e-09, 3.996756650972121e-01 },
- { 1.291377992246768e-09, 4.057812762511174e-01 },
- { 1.275244404558188e-09, 4.119391771778626e-01 },
- { 1.259062804638585e-09, 4.181493386877248e-01 },
- { 1.242833801715929e-09, 4.244117270719281e-01 },
- { 1.226558006803155e-09, 4.307263040962509e-01 },
- { 1.210236032674760e-09, 4.370930269951803e-01 },
- { 1.193868493843725e-09, 4.435118484661861e-01 },
- { 1.177456006538695e-09, 4.499827166641340e-01 },
- { 1.160999188680582e-09, 4.565055751961679e-01 },
- { 1.144498659859216e-09, 4.630803631168164e-01 },
- { 1.127955041310214e-09, 4.697070149232604e-01 },
- { 1.111368955891417e-09, 4.763854605510119e-01 },
- { 1.094741028059551e-09, 4.831156253697562e-01 },
- { 1.078071883846871e-09, 4.898974301794375e-01 },
- { 1.061362150836978e-09, 4.967307912069362e-01 },
- { 1.044612458142151e-09, 5.036156201023686e-01 },
- { 1.027823436378632e-09, 5.105518239364775e-01 },
- { 1.010995717643647e-09, 5.175393051975563e-01 },
- { 9.941299354913699e-10, 5.245779617890562e-01 },
- { 9.772267249089968e-10, 5.316676870274011e-01 },
- { 9.602867222926046e-10, 5.388083696401416e-01 },
- { 9.433105654240147e-10, 5.459998937639375e-01 },
- { 9.262988934458084e-10, 5.532421389435711e-01 },
- { 9.092523468378193e-10, 5.605349801305876e-01 },
- { 8.921715673928355e-10, 5.678782876825250e-01 },
- { 8.750571981926701e-10, 5.752719273622372e-01 },
- { 8.579098835836508e-10, 5.827157603377209e-01 },
- { 8.407302691522673e-10, 5.902096431821322e-01 },
- { 8.235190017016133e-10, 5.977534278737073e-01 },
- { 8.062767292259225e-10, 6.053469617967722e-01 },
- { 7.890041008871165e-10, 6.129900877421282e-01 },
- { 7.717017669898175e-10, 6.206826439083659e-01 },
- { 7.543703789572603e-10, 6.284244639030392e-01 },
- { 7.370105893063053e-10, 6.362153767444958e-01 },
- { 7.196230516231919e-10, 6.440552068636356e-01 },
- { 7.022084205389746e-10, 6.519437741060674e-01 },
- { 6.847673517046416e-10, 6.598808937346672e-01 },
- { 6.673005017664976e-10, 6.678663764322770e-01 },
- { 6.498085283416530e-10, 6.759000283046127e-01 },
- { 6.322920899929834e-10, 6.839816508836737e-01 },
- { 6.147518462045659e-10, 6.921110411311926e-01 },
- { 5.971884573565851e-10, 7.002879914425926e-01 },
- { 5.796025847007168e-10, 7.085122896509806e-01 },
- { 5.619948903351406e-10, 7.167837190315758e-01 },
- { 5.443660371796048e-10, 7.251020583063744e-01 },
- { 5.267166889504394e-10, 7.334670816491009e-01 },
- { 5.090475101356742e-10, 7.418785586903696e-01 },
- { 4.913591659698399e-10, 7.503362545232619e-01 },
- { 4.736523224091392e-10, 7.588399297089872e-01 },
- { 4.559276461062478e-10, 7.673893402829834e-01 },
- { 4.381858043851147e-10, 7.759842377612828e-01 },
- { 4.204274652161870e-10, 7.846243691469355e-01 },
- { 4.026532971908398e-10, 7.933094769370790e-01 },
- { 3.848639694963359e-10, 8.020392991300200e-01 },
- { 3.670601518910503e-10, 8.108135692324444e-01 },
- { 3.492425146784233e-10, 8.196320162675177e-01 },
- { 3.314117286825031e-10, 8.284943647824689e-01 },
- { 3.135684652223755e-10, 8.374003348569865e-01 },
- { 2.957133960867535e-10, 8.463496421118015e-01 },
- { 2.778471935089361e-10, 8.553419977173513e-01 },
- { 2.599705301412391e-10, 8.643771084029740e-01 },
- { 2.420840790301135e-10, 8.734546764660205e-01 },
- { 2.241885135902046e-10, 8.825743997817682e-01 },
- { 2.062845075795238e-10, 8.917359718130367e-01 },
- { 1.883727350736140e-10, 9.009390816205823e-01 },
- { 1.704538704408269e-10, 9.101834138731877e-01 },
- { 1.525285883160648e-10, 9.194686488588080e-01 },
- { 1.345975635762696e-10, 9.287944624950824e-01 },
- { 1.166614713141648e-10, 9.381605263410157e-01 },
- { 9.872098681369190e-11, 9.475665076080466e-01 },
- { 8.077678552380464e-11, 9.570120691722380e-01 },
- { 6.282954303364090e-11, 9.664968695860140e-01 },
- { 4.487993504668797e-11, 9.760205630906909e-01 },
- { 2.692863735553042e-11, 9.855827996289697e-01 },
- { 8.976325816439114e-12, 9.951832248577780e-01 },
- { -8.976323676304494e-12, 1.004821480161519e+00 },
- { -2.692863521550168e-11, 1.014497202665280e+00 },
- { -4.487993290681805e-11, 1.024210025248670e+00 },
- { -6.282954089398273e-11, 1.033959576559617e+00 },
- { -8.077678338451706e-11, 1.043745481028715e+00 },
- { -9.872098467477489e-11, 1.053567358883467e+00 },
- { -1.166614691757772e-10, 1.063424826163223e+00 },
- { -1.345975614383584e-10, 1.073317494734013e+00 },
- { -1.525285861788948e-10, 1.083244972303963e+00 },
- { -1.704538683042922e-10, 1.093206862438572e+00 },
- { -1.883727329379793e-10, 1.103202764576806e+00 },
- { -2.062845054446831e-10, 1.113232274046796e+00 },
- { -2.241885114563697e-10, 1.123294982082432e+00 },
- { -2.420840768973375e-10, 1.133390475839767e+00 },
- { -2.599705280096278e-10, 1.143518338413855e+00 },
- { -2.778471913784365e-10, 1.153678148855860e+00 },
- { -2.957133939575774e-10, 1.163869482190458e+00 },
- { -3.135684630945758e-10, 1.174091909433296e+00 },
- { -3.314117265561857e-10, 1.184344997608959e+00 },
- { -3.492425125535882e-10, 1.194628309769018e+00 },
- { -3.670601497678034e-10, 1.204941405010466e+00 },
- { -3.848639673748360e-10, 1.215283838494269e+00 },
- { -4.026532950710339e-10, 1.225655161464298e+00 },
- { -4.204274630982869e-10, 1.236054921266445e+00 },
- { -4.381858022691734e-10, 1.246482661367958e+00 },
- { -4.559276439922654e-10, 1.256937921377146e+00 },
- { -4.736523202972214e-10, 1.267420237063216e+00 },
- { -4.913591638600925e-10, 1.277929140376502e+00 },
- { -5.090475080282032e-10, 1.288464159468706e+00 },
- { -5.267166868452449e-10, 1.299024818713528e+00 },
- { -5.443660350768455e-10, 1.309610638727845e+00 },
- { -5.619948882348695e-10, 1.320221136392390e+00 },
- { -5.796025826029868e-10, 1.330855824873457e+00 },
- { -5.971884552615020e-10, 1.341514213644420e+00 },
- { -6.147518441122357e-10, 1.352195808507556e+00 },
- { -6.322920879034590e-10, 1.362900111616144e+00 },
- { -6.498085262549874e-10, 1.373626621496939e+00 },
- { -6.673004996827436e-10, 1.384374833072571e+00 },
- { -6.847673496239581e-10, 1.395144237684605e+00 },
- { -7.022084184613616e-10, 1.405934323116231e+00 },
- { -7.196230495488082e-10, 1.416744573616104e+00 },
- { -7.370105872352039e-10, 1.427574469921397e+00 },
- { -7.543703768894941e-10, 1.438423489281758e+00 },
- { -7.717017649255453e-10, 1.449291105483472e+00 },
- { -7.890040988262324e-10, 1.460176788873383e+00 },
- { -8.062767271686383e-10, 1.471080006383765e+00 },
- { -8.235189996479819e-10, 1.482000221556656e+00 },
- { -8.407302671024475e-10, 1.492936894569018e+00 },
- { -8.579098815375368e-10, 1.503889482257845e+00 },
- { -8.750571961505266e-10, 1.514857438145604e+00 },
- { -8.921715653546624e-10, 1.525840212465756e+00 },
- { -9.092523448036167e-10, 1.536837252188703e+00 },
- { -9.262988914157881e-10, 1.547848001047890e+00 },
- { -9.433105633981766e-10, 1.558871899565883e+00 },
- { -9.602867202711075e-10, 1.569908385081254e+00 },
- { -9.772267228916820e-10, 1.580956891774897e+00 },
- { -9.941299334786078e-10, 1.592016850697478e+00 },
- { -1.010995715635332e-09, 1.603087689796053e+00 },
- { -1.027823434374870e-09, 1.614168833942028e+00 },
- { -1.044612456143047e-09, 1.625259704958335e+00 },
- { -1.061362148842745e-09, 1.636359721647526e+00 },
- { -1.078071881857297e-09, 1.647468299819543e+00 },
- { -1.094741026074900e-09, 1.658584852320419e+00 },
- { -1.111368953911690e-09, 1.669708789060341e+00 },
- { -1.127955039335462e-09, 1.680839517042381e+00 },
- { -1.144498657889600e-09, 1.691976440391624e+00 },
- { -1.160999186716154e-09, 1.703118960383971e+00 },
- { -1.177456004579561e-09, 1.714266475475616e+00 },
- { -1.193868491889832e-09, 1.725418381332405e+00 },
- { -1.210236030726319e-09, 1.736574070859850e+00 },
- { -1.226558004860220e-09, 1.747732934232508e+00 },
- { -1.242833799778447e-09, 1.758894358924547e+00 },
- { -1.259062802706714e-09, 1.770057729740021e+00 },
- { -1.275244402631982e-09, 1.781222428842935e+00 },
- { -1.291377990326492e-09, 1.792387835788660e+00 },
- { -1.307462958369363e-09, 1.803553327553897e+00 },
- { -1.323498701170897e-09, 1.814718278568759e+00 },
- { -1.339484614994490e-09, 1.825882060747428e+00 },
- { -1.355420097979292e-09, 1.837044043519582e+00 },
- { -1.371304550163662e-09, 1.848203593862598e+00 },
- { -1.387137373506711e-09, 1.859360076332671e+00 },
- { -1.402917971911754e-09, 1.870512853097495e+00 },
- { -1.418645751248018e-09, 1.881661283967967e+00 },
- { -1.434320119373722e-09, 1.892804726431080e+00 },
- { -1.449940486157623e-09, 1.903942535681972e+00 },
- { -1.465506263501516e-09, 1.915074064656886e+00 },
- { -1.481016865363264e-09, 1.926198664066737e+00 },
- { -1.496471707776859e-09, 1.937315682428795e+00 },
- { -1.511870208876724e-09, 1.948424466101625e+00 },
- { -1.527211788917509e-09, 1.959524359317042e+00 },
- { -1.542495870297867e-09, 1.970614704215133e+00 },
- { -1.557721877580406e-09, 1.981694840876775e+00 },
- { -1.572889237514880e-09, 1.992764107358707e+00 },
- { -1.587997379058514e-09, 2.003821839726753e+00 },
- { -1.603045733398246e-09, 2.014867372090665e+00 },
- { -1.618033733972424e-09, 2.025900036638798e+00 },
- { -1.632960816490822e-09, 2.036919163671778e+00 },
- { -1.647826418957721e-09, 2.047924081638631e+00 },
- { -1.662629981691070e-09, 2.058914117170269e+00 },
- { -1.677370947345626e-09, 2.069888595116115e+00 },
- { -1.692048760931849e-09, 2.080846838577820e+00 },
- { -1.706662869838827e-09, 2.091788168946183e+00 },
- { -1.721212723853279e-09, 2.102711905935372e+00 },
- { -1.735697775181424e-09, 2.113617367619504e+00 },
- { -1.750117478469621e-09, 2.124503870468520e+00 },
- { -1.764471290823748e-09, 2.135370729383332e+00 },
- { -1.778758671831281e-09, 2.146217257733207e+00 },
- { -1.792979083579974e-09, 2.157042767390815e+00 },
- { -1.807131990679890e-09, 2.167846568770014e+00 },
- { -1.821216860281448e-09, 2.178627970860822e+00 },
- { -1.835233162097977e-09, 2.189386281268046e+00 },
- { -1.849180368423027e-09, 2.200120806246095e+00 },
- { -1.863057954152340e-09, 2.210830850737588e+00 },
- { -1.876865396802907e-09, 2.221515718409926e+00 },
- { -1.890602176531920e-09, 2.232174711691990e+00 },
- { -1.904267776157843e-09, 2.242807131812679e+00 },
- { -1.917861681178094e-09, 2.253412278837029e+00 },
- { -1.931383379790273e-09, 2.263989451705295e+00 },
- { -1.944832362909578e-09, 2.274537948269257e+00 },
- { -1.958208124189984e-09, 2.285057065331676e+00 },
- { -1.971510160041235e-09, 2.295546098682665e+00 },
- { -1.984737969649064e-09, 2.306004343138794e+00 },
- { -1.997891054994522e-09, 2.316431092581699e+00 },
- { -2.010968920870647e-09, 2.326825639994779e+00 },
- { -2.023971074903858e-09, 2.337187277503834e+00 },
- { -2.036897027569834e-09, 2.347515296413520e+00 },
- { -2.049746292214264e-09, 2.357808987247877e+00 },
- { -2.062518385069210e-09, 2.368067639787542e+00 },
- { -2.075212825272584e-09, 2.378290543109652e+00 },
- { -2.087829134886364e-09, 2.388476985626922e+00 },
- { -2.100366838912949e-09, 2.398626255125417e+00 },
- { -2.112825465315542e-09, 2.408737638805759e+00 },
- { -2.125204545033289e-09, 2.418810423320288e+00 },
- { -2.137503612001452e-09, 2.428843894814472e+00 },
- { -2.149722203166389e-09, 2.438837338964302e+00 },
- { -2.161859858505829e-09, 2.448790041018174e+00 },
- { -2.173916121043380e-09, 2.458701285834241e+00 },
- { -2.185890536867478e-09, 2.468570357921585e+00 },
- { -2.197782655148702e-09, 2.478396541480230e+00 },
- { -2.209592028154913e-09, 2.488179120439544e+00 },
- { -2.221318211270522e-09, 2.497917378500214e+00 },
- { -2.232960763010574e-09, 2.507610599172123e+00 },
- { -2.244519245040444e-09, 2.517258065817044e+00 },
- { -2.255993222189014e-09, 2.526859061686102e+00 },
- { -2.267382262468209e-09, 2.536412869962689e+00 },
- { -2.278685937086658e-09, 2.545918773800664e+00 },
- { -2.289903820467374e-09, 2.555376056366064e+00 },
- { -2.301035490263848e-09, 2.564784000877677e+00 },
- { -2.312080527374447e-09, 2.574141890646339e+00 },
- { -2.323038515960257e-09, 2.583449009117307e+00 },
- { -2.333909043458635e-09, 2.592704639909166e+00 },
- { -2.344691700601153e-09, 2.601908066856634e+00 },
- { -2.355386081425938e-09, 2.611058574048749e+00 },
- { -2.365991783296513e-09, 2.620155445872768e+00 },
- { -2.376508406913500e-09, 2.629197967052127e+00 },
- { -2.386935556332088e-09, 2.638185422689490e+00 },
- { -2.397272838976436e-09, 2.647117098307332e+00 },
- { -2.407519865653114e-09, 2.655992279887846e+00 },
- { -2.417676250567891e-09, 2.664810253915885e+00 },
- { -2.427741611338014e-09, 2.673570307418169e+00 },
- { -2.437715569009093e-09, 2.682271728006635e+00 },
- { -2.447597748066437e-09, 2.690913803917100e+00 },
- { -2.457387776452357e-09, 2.699495824053297e+00 },
- { -2.467085285577292e-09, 2.708017078025636e+00 },
- { -2.476689910335470e-09, 2.716476856194105e+00 },
- { -2.486201289118733e-09, 2.724874449709689e+00 },
- { -2.495619063828443e-09, 2.733209150554255e+00 },
- { -2.504942879891263e-09, 2.741480251583985e+00 },
- { -2.514172386270163e-09, 2.749687046568741e+00 },
- { -2.523307235480146e-09, 2.757828830235740e+00 },
- { -2.532347083598520e-09, 2.765904898308531e+00 },
- { -2.541291590280960e-09, 2.773914547551261e+00 },
- { -2.550140418771202e-09, 2.781857075807392e+00 },
- { -2.558893235915887e-09, 2.789731782043156e+00 },
- { -2.567549712176927e-09, 2.797537966388929e+00 },
- { -2.576109521642196e-09, 2.805274930179221e+00 },
- { -2.584572342040407e-09, 2.812941975996573e+00 },
- { -2.592937854750428e-09, 2.820538407710556e+00 },
- { -2.601205744816134e-09, 2.828063530521908e+00 },
- { -2.609375700955458e-09, 2.835516651001539e+00 },
- { -2.617447415574869e-09, 2.842897077134583e+00 },
- { -2.625420584778350e-09, 2.850204118359573e+00 },
- { -2.633294908380520e-09, 2.857437085611509e+00 },
- { -2.641070089918234e-09, 2.864595291363663e+00 },
- { -2.648745836659391e-09, 2.871678049666939e+00 },
- { -2.656321859617343e-09, 2.878684676194483e+00 },
- { -2.663797873558322e-09, 2.885614488280000e+00 },
- { -2.671173597015318e-09, 2.892466804962122e+00 },
- { -2.678448752295859e-09, 2.899240947023252e+00 },
- { -2.685623065495139e-09, 2.905936237033475e+00 },
- { -2.692696266503800e-09, 2.912551999389617e+00 },
- { -2.699668089019767e-09, 2.919087560358171e+00 },
- { -2.706538270558513e-09, 2.925542248116882e+00 },
- { -2.713306552460767e-09, 2.931915392794031e+00 },
- { -2.719972679905295e-09, 2.938206326512581e+00 },
- { -2.726536401915442e-09, 2.944414383428562e+00 },
- { -2.732997471371516e-09, 2.950538899775061e+00 },
- { -2.739355645017194e-09, 2.956579213900666e+00 },
- { -2.745610683471516e-09, 2.962534666313284e+00 },
- { -2.751762351235315e-09, 2.968404599718795e+00 },
- { -2.757810416701751e-09, 2.974188359063684e+00 },
- { -2.763754652165128e-09, 2.979885291576143e+00 },
- { -2.769594833827588e-09, 2.985494746805227e+00 },
- { -2.775330741810390e-09, 2.991016076664491e+00 },
- { -2.780962160159068e-09, 2.996448635469842e+00 },
- { -2.786488876854607e-09, 3.001791779983262e+00 },
- { -2.791910683818570e-09, 3.007044869450794e+00 },
- { -2.797227376923695e-09, 3.012207265645876e+00 },
- { -2.802438755998943e-09, 3.017278332907412e+00 },
- { -2.807544624838820e-09, 3.022257438182037e+00 },
- { -2.812544791210840e-09, 3.027143951064684e+00 },
- { -2.817439066860792e-09, 3.031937243837070e+00 },
- { -2.822227267522746e-09, 3.036636691510884e+00 },
- { -2.826909212922864e-09, 3.041241671864994e+00 },
- { -2.831484726789317e-09, 3.045751565488710e+00 },
- { -2.835953636855826e-09, 3.050165755818853e+00 },
- { -2.840315774871260e-09, 3.054483629182857e+00 },
- { -2.844570976602957e-09, 3.058704574835744e+00 },
- { -2.848719081844986e-09, 3.062827985002047e+00 },
- { -2.852759934424164e-09, 3.066853254915581e+00 },
- { -2.856693382203833e-09, 3.070779782857041e+00 },
- { -2.860519277092708e-09, 3.074606970196721e+00 },
- { -2.864237475047239e-09, 3.078334221430809e+00 },
- { -2.867847836080156e-09, 3.081960944223928e+00 },
- { -2.871350224262603e-09, 3.085486549445314e+00 },
- { -2.874744507732462e-09, 3.088910451211251e+00 },
- { -2.878030558696270e-09, 3.092232066921130e+00 },
- { -2.881208253436038e-09, 3.095450817298478e+00 },
- { -2.884277472313999e-09, 3.098566126429974e+00 },
- { -2.887238099774968e-09, 3.101577421802070e+00 },
- { -2.890090024353816e-09, 3.104484134342861e+00 },
- { -2.892833138676371e-09, 3.107285698457308e+00 },
- { -2.895467339466766e-09, 3.109981552069083e+00 },
- { -2.897992527547963e-09, 3.112571136655481e+00 },
- { -2.900408607848946e-09, 3.115053897289195e+00 },
- { -2.902715489404992e-09, 3.117429282673042e+00 },
- { -2.904913085363323e-09, 3.119696745180238e+00 },
- { -2.907001312986328e-09, 3.121855740892224e+00 },
- { -2.908980093652563e-09, 3.123905729634218e+00 },
- { -2.910849352862924e-09, 3.125846175016163e+00 },
- { -2.912609020239985e-09, 3.127676544466606e+00 },
- { -2.914259029534118e-09, 3.129396309273659e+00 },
- { -2.915799318622574e-09, 3.131004944618667e+00 },
- { -2.917229829515169e-09, 3.132501929616775e+00 },
- { -2.918550508353347e-09, 3.133886747350606e+00 },
- { -2.919761305414294e-09, 3.135158884909254e+00 },
- { -2.920862175112829e-09, 3.136317833424958e+00 },
- { -2.921853076000972e-09, 3.137363088107359e+00 },
- { -2.922733970772719e-09, 3.138294148283254e+00 },
- { -2.923504826262027e-09, 3.139110517429204e+00 },
- { -2.924165613447473e-09, 3.139811703211207e+00 },
- { -2.924716307449950e-09, 3.140397217517018e+00 },
- { -2.925156887536978e-09, 3.140866576495489e+00 },
- { -2.925487337120335e-09, 3.141219300588825e+00 },
- { -2.925707643758784e-09, 3.141454914570261e+00 },
- { -2.925817799158535e-09, 3.141572947579352e+00 },
- { -2.925817799171455e-09, 3.141572933154836e+00 },
- { -2.925707643798390e-09, 3.141454409272987e+00 },
- { -2.925487337185779e-09, 3.141216918378770e+00 },
- { -2.925156887628892e-09, 3.140860007424112e+00 },
- { -2.924716307568119e-09, 3.140383227898687e+00 },
- { -2.924165613591896e-09, 3.139786135867868e+00 },
- { -2.923504826432903e-09, 3.139068292003385e+00 },
- { -2.922733970969412e-09, 3.138229261619561e+00 },
- { -2.921853076224321e-09, 3.137268614707029e+00 },
- { -2.920862175361976e-09, 3.136185925964038e+00 },
- { -2.919761305690083e-09, 3.134980774833275e+00 },
- { -2.918550508654911e-09, 3.133652745531368e+00 },
- { -2.917229829843137e-09, 3.132201427085629e+00 },
- { -2.915799318976726e-09, 3.130626413363146e+00 },
- { -2.914259029914435e-09, 3.128927303107136e+00 },
- { -2.912609020646661e-09, 3.127103699965947e+00 },
- { -2.910849353295315e-09, 3.125155212527586e+00 },
- { -2.908980094111509e-09, 3.123081454351802e+00 },
- { -2.907001313470937e-09, 3.120882043999591e+00 },
- { -2.904913085874448e-09, 3.118556605068443e+00 },
- { -2.902715489941767e-09, 3.116104766219928e+00 },
- { -2.900408608411958e-09, 3.113526161214776e+00 },
- { -2.897992528137022e-09, 3.110820428940251e+00 },
- { -2.895467340081818e-09, 3.107987213444579e+00 },
- { -2.892833139317615e-09, 3.105026163964191e+00 },
- { -2.890090025020589e-09, 3.101936934956479e+00 },
- { -2.887238100468092e-09, 3.098719186130021e+00 },
- { -2.884277473032614e-09, 3.095372582472161e+00 },
- { -2.881208254180937e-09, 3.091896794282404e+00 },
- { -2.878030559466594e-09, 3.088291497198199e+00 },
- { -2.874744508528832e-09, 3.084556372228054e+00 },
- { -2.871350225084755e-09, 3.080691105776848e+00 },
- { -2.867847836928063e-09, 3.076695389678615e+00 },
- { -2.864237475921086e-09, 3.072568921221621e+00 },
- { -2.860519277991847e-09, 3.068311403179147e+00 },
- { -2.856693383129018e-09, 3.063922543837792e+00 },
- { -2.852759935374575e-09, 3.059402057023109e+00 },
- { -2.848719082821403e-09, 3.054749662130841e+00 },
- { -2.844570977604520e-09, 3.049965084150782e+00 },
- { -2.840315775898525e-09, 3.045048053697736e+00 },
- { -2.835953637908582e-09, 3.039998307034967e+00 },
- { -2.831484727867511e-09, 3.034815586104635e+00 },
- { -2.826909214026628e-09, 3.029499638550941e+00 },
- { -2.822227268651470e-09, 3.024050217748861e+00 },
- { -2.817439068015245e-09, 3.018467082830179e+00 },
- { -2.812544792390175e-09, 3.012749998707001e+00 },
- { -2.807544626043751e-09, 3.006898736100911e+00 },
- { -2.802438757228650e-09, 3.000913071564665e+00 },
- { -2.797227378178760e-09, 2.994792787510961e+00 },
- { -2.791910685098702e-09, 2.988537672233504e+00 },
- { -2.786488878159805e-09, 2.982147519935565e+00 },
- { -2.780962161489413e-09, 2.975622130750641e+00 },
- { -2.775330743165298e-09, 2.968961310769028e+00 },
- { -2.769594835207775e-09, 2.962164872061613e+00 },
- { -2.763754653569747e-09, 2.955232632701135e+00 },
- { -2.757810418131543e-09, 2.948164416789036e+00 },
- { -2.751762352689432e-09, 2.940960054474719e+00 },
- { -2.745610684950541e-09, 2.933619381982341e+00 },
- { -2.739355646520809e-09, 2.926142241629213e+00 },
- { -2.732997472899722e-09, 2.918528481852205e+00 },
- { -2.726536403468318e-09, 2.910777957226018e+00 },
- { -2.719972681482232e-09, 2.902890528487386e+00 },
- { -2.713306554062453e-09, 2.894866062556452e+00 },
- { -2.706538272184154e-09, 2.886704432555728e+00 },
- { -2.699668090670078e-09, 2.878405517834426e+00 },
- { -2.692696268177908e-09, 2.869969203985464e+00 },
- { -2.685623067193599e-09, 2.861395382869544e+00 },
- { -2.678448754018380e-09, 2.852683952631486e+00 },
- { -2.671173598761847e-09, 2.843834817723832e+00 },
- { -2.663797875328991e-09, 2.834847888922988e+00 },
- { -2.656321861411517e-09, 2.825723083350459e+00 },
- { -2.648745838477759e-09, 2.816460324492298e+00 },
- { -2.641070091759922e-09, 2.807059542215146e+00 },
- { -2.633294910246296e-09, 2.797520672788269e+00 },
- { -2.625420586667340e-09, 2.787843658897949e+00 },
- { -2.617447417487602e-09, 2.778028449668942e+00 },
- { -2.609375702891616e-09, 2.768075000678399e+00 },
- { -2.601205746775692e-09, 2.757983273976943e+00 },
- { -2.592937856733464e-09, 2.747753238101915e+00 },
- { -2.584572344046340e-09, 2.737384868096553e+00 },
- { -2.576109523671634e-09, 2.726878145526201e+00 },
- { -2.567549714229129e-09, 2.716233058492422e+00 },
- { -2.558893237991435e-09, 2.705449601651722e+00 },
- { -2.550140420869302e-09, 2.694527776227857e+00 },
- { -2.541291592402089e-09, 2.683467590030445e+00 },
- { -2.532347085742440e-09, 2.672269057466213e+00 },
- { -2.523307237646751e-09, 2.660932199557362e+00 },
- { -2.514172388459584e-09, 2.649457043952206e+00 },
- { -2.504942882102813e-09, 2.637843624941622e+00 },
- { -2.495619066062810e-09, 2.626091983472908e+00 },
- { -2.486201291375123e-09, 2.614202167160335e+00 },
- { -2.476689912614465e-09, 2.602174230302269e+00 },
- { -2.467085287878098e-09, 2.590008233889805e+00 },
- { -2.457387778775451e-09, 2.577704245623143e+00 },
- { -2.447597750411553e-09, 2.565262339920002e+00 },
- { -2.437715571376127e-09, 2.552682597931055e+00 },
- { -2.427741613727123e-09, 2.539965107548168e+00 },
- { -2.417676252978335e-09, 2.527109963417675e+00 },
- { -2.407519868085581e-09, 2.514117266951687e+00 },
- { -2.397272841430131e-09, 2.500987126335739e+00 },
- { -2.386935558807595e-09, 2.487719656543254e+00 },
- { -2.376508409410024e-09, 2.474314979341178e+00 },
- { -2.365991785814531e-09, 2.460773223303822e+00 },
- { -2.355386083965131e-09, 2.447094523817833e+00 },
- { -2.344691703161363e-09, 2.433279023095734e+00 },
- { -2.333909046040126e-09, 2.419326870180582e+00 },
- { -2.323038518562289e-09, 2.405238220956597e+00 },
- { -2.312080529997549e-09, 2.391013238157397e+00 },
- { -2.301035492907384e-09, 2.376652091371587e+00 },
- { -2.289903823131822e-09, 2.362154957053137e+00 },
- { -2.278685939771276e-09, 2.347522018525197e+00 },
- { -2.267382265173420e-09, 2.332753465990296e+00 },
- { -2.255993224914501e-09, 2.317849496533128e+00 },
- { -2.244519247786155e-09, 2.302810314130351e+00 },
- { -2.232960765776561e-09, 2.287636129652823e+00 },
- { -2.221318214056095e-09, 2.272327160873552e+00 },
- { -2.209592030960763e-09, 2.256883632472565e+00 },
- { -2.197782657974034e-09, 2.241305776039511e+00 },
- { -2.185890539712767e-09, 2.225593830081461e+00 },
- { -2.173916123907886e-09, 2.209748040023618e+00 },
- { -2.161859861389976e-09, 2.193768658216360e+00 },
- { -2.149722206070124e-09, 2.177655943935795e+00 },
- { -2.137503614923981e-09, 2.161410163388424e+00 },
- { -2.125204547975352e-09, 2.145031589714984e+00 },
- { -2.112825468276292e-09, 2.128520502989477e+00 },
- { -2.100366841892917e-09, 2.111877190225612e+00 },
- { -2.087829137884807e-09, 2.095101945374541e+00 },
- { -2.075212828290086e-09, 2.078195069329960e+00 },
- { -2.062518388104923e-09, 2.061156869925600e+00 },
- { -2.049746295268559e-09, 2.043987661939897e+00 },
- { -2.036897030642658e-09, 2.026687767092888e+00 },
- { -2.023971077994576e-09, 2.009257514048162e+00 },
- { -2.010968923979840e-09, 1.991697238413571e+00 },
- { -1.997891058121344e-09, 1.974007282737320e+00 },
- { -1.984737972794098e-09, 1.956187996511354e+00 },
- { -1.971510163203686e-09, 1.938239736166060e+00 },
- { -1.958208127370276e-09, 1.920162865072273e+00 },
- { -1.944832366107339e-09, 1.901957753535934e+00 },
- { -1.931383383005451e-09, 1.883624778799427e+00 },
- { -1.917861684410531e-09, 1.865164325035177e+00 },
- { -1.904267779407432e-09, 1.846576783346324e+00 },
- { -1.890602179798714e-09, 1.827862551760622e+00 },
- { -1.876865400086483e-09, 1.809022035228338e+00 },
- { -1.863057957452539e-09, 1.790055645617624e+00 },
- { -1.849180371740008e-09, 1.770963801711725e+00 },
- { -1.835233165431475e-09, 1.751746929201178e+00 },
- { -1.821216863631569e-09, 1.732405460681919e+00 },
- { -1.807131994045840e-09, 1.712939835648088e+00 },
- { -1.792979086962494e-09, 1.693350500488565e+00 },
- { -1.778758675229683e-09, 1.673637908477153e+00 },
- { -1.764471294238191e-09, 1.653802519770021e+00 },
- { -1.750117481899733e-09, 1.633844801396848e+00 },
- { -1.735697778626995e-09, 1.613765227254186e+00 },
- { -1.721212727314574e-09, 1.593564278099856e+00 },
- { -1.706662873315474e-09, 1.573242441540939e+00 },
- { -1.692048764423848e-09, 1.552800212030258e+00 },
- { -1.677370950852395e-09, 1.532238090855187e+00 },
- { -1.662629985213192e-09, 1.511556586131055e+00 },
- { -1.647826422494560e-09, 1.490756212788764e+00 },
- { -1.632960820042537e-09, 1.469837492568651e+00 },
- { -1.618033737538645e-09, 1.448800954008929e+00 },
- { -1.603045736978760e-09, 1.427647132435469e+00 },
- { -1.587997382653428e-09, 1.406376569953373e+00 },
- { -1.572889241124034e-09, 1.384989815432507e+00 },
- { -1.557721881203696e-09, 1.363487424499449e+00 },
- { -1.542495873934815e-09, 1.341869959524515e+00 },
- { -1.527211792568486e-09, 1.320137989611176e+00 },
- { -1.511870212541253e-09, 1.298292090581491e+00 },
- { -1.496471711454994e-09, 1.276332844965754e+00 },
- { -1.481016869054634e-09, 1.254260841988828e+00 },
- { -1.465506267206068e-09, 1.232076677556547e+00 },
- { -1.449940489875303e-09, 1.209780954243628e+00 },
- { -1.434320123104372e-09, 1.187374281276747e+00 },
- { -1.418645754991533e-09, 1.164857274523495e+00 },
- { -1.402917975667710e-09, 1.142230556475749e+00 },
- { -1.387137377275425e-09, 1.119494756236361e+00 },
- { -1.371304553944712e-09, 1.096650509501278e+00 },
- { -1.355420101772623e-09, 1.073698458546610e+00 },
- { -1.339484618799891e-09, 1.050639252211352e+00 },
- { -1.323498704988051e-09, 1.027473545880543e+00 },
- { -1.307462962198534e-09, 1.004202001471034e+00 },
- { -1.291377994167204e-09, 9.808252874104182e-01 },
- { -1.275244406484394e-09, 9.573440786237052e-01 },
- { -1.259062806570190e-09, 9.337590565128454e-01 },
- { -1.242833803653464e-09, 9.100709089414796e-01 },
- { -1.226558008746195e-09, 8.862803302125812e-01 },
- { -1.210236034623253e-09, 8.623880210538113e-01 },
- { -1.193868495797618e-09, 8.383946885959868e-01 },
- { -1.177456008497777e-09, 8.143010463544786e-01 },
- { -1.160999190645010e-09, 7.901078142102129e-01 },
- { -1.144498661828833e-09, 7.658157183877095e-01 },
- { -1.127955043284965e-09, 7.414254914366063e-01 },
- { -1.111368957870986e-09, 7.169378722095157e-01 },
- { -1.094741030044308e-09, 6.923536058430697e-01 },
- { -1.078071885836393e-09, 6.676734437331688e-01 },
- { -1.061362152831423e-09, 6.428981435165511e-01 },
- { -1.044612460141255e-09, 6.180284690466404e-01 },
- { -1.027823438382183e-09, 5.930651903718045e-01 },
- { -1.010995719652015e-09, 5.680090837138436e-01 },
- { -9.941299375042378e-10, 5.428609314418970e-01 },
- { -9.772267269262058e-10, 5.176215220520872e-01 },
- { -9.602867243141016e-10, 4.922916501421032e-01 },
- { -9.433105674499058e-10, 4.668721163885412e-01 },
- { -9.262988954758817e-10, 4.413637275202624e-01 },
- { -9.092523488719689e-10, 4.157672962958654e-01 },
- { -8.921715694311144e-10, 3.900836414778084e-01 },
- { -8.750572002347607e-10, 3.643135878065193e-01 },
- { -8.579098856296589e-10, 3.384579659762392e-01 },
- { -8.407302712022458e-10, 3.125176126069478e-01 },
- { -8.235190037551917e-10, 2.864933702193017e-01 },
- { -8.062767312831008e-10, 2.603860872080448e-01 },
- { -7.890041029479477e-10, 2.341966178147619e-01 },
- { -7.717017690542486e-10, 2.079258220999725e-01 },
- { -7.543703810250266e-10, 1.815745659161734e-01 },
- { -7.370105913774597e-10, 1.551437208801425e-01 },
- { -7.196230536974697e-10, 1.286341643433767e-01 },
- { -7.022084226165876e-10, 1.020467793657360e-01 },
- { -6.847673537853251e-10, 7.538245468350446e-02 },
- { -6.673005038502516e-10, 4.864208468284503e-02 },
- { -6.498085304282128e-10, 2.182656936863137e-02 },
- { -6.322920920826137e-10, -5.063185663820913e-03 },
- { -6.147518482969490e-10, -3.202626926150343e-02 },
- { -5.971884594516681e-10, -5.906176474160862e-02 },
- { -5.796025867984469e-10, -8.616874992366363e-02 },
- { -5.619948924353588e-10, -1.133462971605448e-01 },
- { -5.443660392823640e-10, -1.405934733692621e-01 },
- { -5.267166910556339e-10, -1.679093400638023e-01 },
- { -5.090475122431451e-10, -1.952929533862739e-01 },
- { -4.913591680795342e-10, -2.227433641394564e-01 },
- { -4.736523245210571e-10, -2.502596178194491e-01 },
- { -4.559276482202303e-10, -2.778407546490776e-01 },
- { -4.381858065011618e-10, -3.054858096104932e-01 },
- { -4.204274673340870e-10, -3.331938124792702e-01 },
- { -4.026532993105397e-10, -3.609637878577768e-01 },
- { -3.848639716178888e-10, -3.887947552098022e-01 },
- { -3.670601540142443e-10, -4.166857288948674e-01 },
- { -3.492425168032583e-10, -4.446357182029681e-01 },
- { -3.314117308088734e-10, -4.726437273896633e-01 },
- { -3.135684673501752e-10, -5.007087557112619e-01 },
- { -2.957133982159296e-10, -5.288297974607742e-01 },
- { -2.778471956393828e-10, -5.570058420037128e-01 },
- { -2.599705322729564e-10, -5.852358738143247e-01 },
- { -2.420840811628366e-10, -6.135188725122560e-01 },
- { -2.241885157240923e-10, -6.418538128986450e-01 },
- { -2.062845097142585e-10, -6.702396649949099e-01 },
- { -1.883727372093546e-10, -6.986753940779493e-01 },
- { -1.704538725773087e-10, -7.271599607197149e-01 },
- { -1.525285904532877e-10, -7.556923208240308e-01 },
- { -1.345975657140748e-10, -7.842714256651911e-01 },
- { -1.166614734526054e-10, -8.128962219265712e-01 },
- { -9.872098895260891e-11, -8.415656517393372e-01 },
- { -8.077678766314517e-11, -8.702786527215916e-01 },
- { -6.282954517324612e-11, -8.990341580176152e-01 },
- { -4.487993718655790e-11, -9.278310963373758e-01 },
- { -2.692863949561210e-11, -9.566683919968972e-01 },
- { -8.976327956520795e-12, -9.855449649582175e-01 },
- { 8.976321536169872e-12, -1.014459730869357e+00 },
- { 2.692863307547294e-11, -1.043411601105914e+00 },
- { 4.487993076694813e-11, -1.072399482811314e+00 },
- { 6.282953875437751e-11, -1.101422278938424e+00 },
- { 8.077678124517653e-11, -1.130478888291020e+00 },
- { 9.872098253591082e-11, -1.159568205565684e+00 },
- { 1.166614670373367e-10, -1.188689121393192e+00 },
- { 1.345975593005002e-10, -1.217840522381901e+00 },
- { 1.525285840416718e-10, -1.247021291159495e+00 },
- { 1.704538661678104e-10, -1.276230306415868e+00 },
- { 1.883727308022916e-10, -1.305466442946703e+00 },
- { 2.062845033098954e-10, -1.334728571696106e+00 },
- { 2.241885093225349e-10, -1.364015559800721e+00 },
- { 2.420840747645085e-10, -1.393326270633325e+00 },
- { 2.599705258779635e-10, -1.422659563847049e+00 },
- { 2.778471892479898e-10, -1.452014295419243e+00 },
- { 2.957133918284542e-10, -1.481389317696831e+00 },
- { 3.135684609667761e-10, -1.510783479440191e+00 },
- { 3.314117244297624e-10, -1.540195625869043e+00 },
- { 3.492425104288060e-10, -1.569624598707558e+00 },
- { 3.670601476445565e-10, -1.599069236228850e+00 },
- { 3.848639652533361e-10, -1.628528373302631e+00 },
- { 4.026532929512281e-10, -1.658000841439269e+00 },
- { 4.204274609803869e-10, -1.687485468837799e+00 },
- { 4.381858001531792e-10, -1.716981080430596e+00 },
- { 4.559276418782829e-10, -1.746486497931567e+00 },
- { 4.736523181853565e-10, -1.776000539882225e+00 },
- { 4.913591617503452e-10, -1.805522021699094e+00 },
- { 5.090475059206794e-10, -1.835049755721194e+00 },
- { 5.267166847401562e-10, -1.864582551257262e+00 },
- { 5.443660329740862e-10, -1.894119214633676e+00 },
- { 5.619948861345454e-10, -1.923658549242818e+00 },
- { 5.796025805053097e-10, -1.953199355591180e+00 },
- { 5.971884531664190e-10, -1.982740431347091e+00 },
- { 6.147518420199055e-10, -2.012280571390674e+00 },
- { 6.322920858139346e-10, -2.041818567861395e+00 },
- { 6.498085241682158e-10, -2.071353210208005e+00 },
- { 6.673004975990425e-10, -2.100883285238127e+00 },
- { 6.847673475432746e-10, -2.130407577166309e+00 },
- { 7.022084163838545e-10, -2.159924867664933e+00 },
- { 7.196230474743716e-10, -2.189433935913779e+00 },
- { 7.370105851640495e-10, -2.218933558650552e+00 },
- { 7.543703748217808e-10, -2.248422510220072e+00 },
- { 7.717017628611672e-10, -2.277899562625407e+00 },
- { 7.890040967654542e-10, -2.307363485579104e+00 },
- { 8.062767251113011e-10, -2.336813046552684e+00 },
- { 8.235189975944034e-10, -2.366247010829556e+00 },
- { 8.407302650525749e-10, -2.395664141553858e+00 },
- { 8.579098794915287e-10, -2.425063199784153e+00 },
- { 8.750571941082773e-10, -2.454442944543319e+00 },
- { 8.921715633164894e-10, -2.483802132872044e+00 },
- { 9.092523427695200e-10, -2.513139519878584e+00 },
- { 9.262988893857148e-10, -2.542453858792682e+00 },
- { 9.433105613723914e-10, -2.571743901017465e+00 },
- { 9.602867182493987e-10, -2.601008396180870e+00 },
- { 9.772267208744730e-10, -2.630246092190425e+00 },
- { 9.941299314658458e-10, -2.659455735283526e+00 },
- { 1.010995713627070e-09, -2.688636070081818e+00 },
- { 1.027823432371055e-09, -2.717785839644439e+00 },
- { 1.044612454143997e-09, -2.746903785521352e+00 },
- { 1.061362146848353e-09, -2.775988647805256e+00 },
- { 1.078071879867828e-09, -2.805039165187255e+00 },
- { 1.094741024090249e-09, -2.834054075009077e+00 },
- { 1.111368951931856e-09, -2.863032113318052e+00 },
- { 1.127955037360817e-09, -2.891972014920939e+00 },
- { 1.144498655920037e-09, -2.920872513436805e+00 },
- { 1.160999184751779e-09, -2.949732341353290e+00 },
- { 1.177456002620215e-09, -2.978550230079517e+00 },
- { 1.193868489936097e-09, -3.007324910002949e+00 },
- { 1.210236028777826e-09, -3.036055110540183e+00 },
- { 1.226558002917232e-09, -3.064739560196251e+00 },
- { 1.242833797841123e-09, -3.093376986616735e+00 },
- { 1.259062800774685e-09, -3.121966116643377e+00 },
- { 1.275244400705935e-09, -3.150505676371791e+00 },
- { 1.291377988406056e-09, -3.178994391202159e+00 },
- { 1.307462956454857e-09, -3.207430985899192e+00 },
- { 1.323498699262108e-09, -3.235814184645077e+00 },
- { 1.339484613091842e-09, -3.264142711097884e+00 },
- { 1.355420096082785e-09, -3.292415288443373e+00 },
- { 1.371304548273191e-09, -3.320630639454825e+00 },
- { 1.387137371622433e-09, -3.348787486547389e+00 },
- { 1.402917970033511e-09, -3.376884551834256e+00 },
- { 1.418645749376393e-09, -3.404920557184582e+00 },
- { 1.434320117508396e-09, -3.432894224276359e+00 },
- { 1.449940484298756e-09, -3.460804274656981e+00 },
- { 1.465506261649108e-09, -3.488649429796768e+00 },
- { 1.481016863517580e-09, -3.516428411149154e+00 },
- { 1.496471705937951e-09, -3.544139940202303e+00 },
- { 1.511870207044433e-09, -3.571782738540999e+00 },
- { 1.527211787092206e-09, -3.599355527901174e+00 },
- { 1.542495868479076e-09, -3.626857030226671e+00 },
- { 1.557721875768920e-09, -3.654285967729458e+00 },
- { 1.572889235710329e-09, -3.681641062941412e+00 },
- { 1.587997377261005e-09, -3.708921038776707e+00 },
- { 1.603045731607830e-09, -3.736124618586623e+00 },
- { 1.618033732189314e-09, -3.763250526218862e+00 },
- { 1.632960814715177e-09, -3.790297486071938e+00 },
- { 1.647826417189275e-09, -3.817264223155802e+00 },
- { 1.662629979930247e-09, -3.844149463148589e+00 },
- { 1.677370945591844e-09, -3.870951932452996e+00 },
- { 1.692048759186008e-09, -3.897670358257890e+00 },
- { 1.706662868100504e-09, -3.924303468590212e+00 },
- { 1.721212722122685e-09, -3.950849992378278e+00 },
- { 1.735697773458400e-09, -3.977308659506432e+00 },
- { 1.750117476754591e-09, -4.003678200876669e+00 },
- { 1.764471289116712e-09, -4.029957348461003e+00 },
- { 1.778758670132079e-09, -4.056144835364877e+00 },
- { 1.792979081888926e-09, -4.082239395882965e+00 },
- { 1.807131988996465e-09, -4.108239765556996e+00 },
- { 1.821216858606652e-09, -4.134144681236933e+00 },
- { 1.835233160431175e-09, -4.159952881133585e+00 },
- { 1.849180366764537e-09, -4.185663104882633e+00 },
- { 1.863057952502055e-09, -4.211274093599509e+00 },
- { 1.876865395161145e-09, -4.236784589940537e+00 },
- { 1.890602174898734e-09, -4.262193338157148e+00 },
- { 1.904267774533022e-09, -4.287499084158302e+00 },
- { 1.917861679562008e-09, -4.312700575567174e+00 },
- { 1.931383378182392e-09, -4.337796561778708e+00 },
- { 1.944832361310856e-09, -4.362785794021793e+00 },
- { 1.958208122599839e-09, -4.387667025411434e+00 },
- { 1.971510158459931e-09, -4.412439011013396e+00 },
- { 1.984737968076495e-09, -4.437100507898339e+00 },
- { 1.997891053431005e-09, -4.461650275204912e+00 },
- { 2.010968919316289e-09, -4.486087074191693e+00 },
- { 2.023971073358447e-09, -4.510409668301784e+00 },
- { 2.036897026033634e-09, -4.534616823217992e+00 },
- { 2.049746290686799e-09, -4.558707306921882e+00 },
- { 2.062518383551274e-09, -4.582679889754607e+00 },
- { 2.075212823764071e-09, -4.606533344469879e+00 },
- { 2.087829133387063e-09, -4.630266446298172e+00 },
- { 2.100366837422912e-09, -4.653877973001258e+00 },
- { 2.112825463835087e-09, -4.677366704934605e+00 },
- { 2.125204543562522e-09, -4.700731425099899e+00 },
- { 2.137503610540056e-09, -4.723970919208608e+00 },
- { 2.149722201714786e-09, -4.747083975738060e+00 },
- { 2.161859857063438e-09, -4.770069385989595e+00 },
- { 2.173916119610994e-09, -4.792925944149308e+00 },
- { 2.185890535445098e-09, -4.815652447340950e+00 },
- { 2.197782653735957e-09, -4.838247695689436e+00 },
- { 2.209592026751962e-09, -4.860710492376411e+00 },
- { 2.221318209877576e-09, -4.883039643700314e+00 },
- { 2.232960761627846e-09, -4.905233959130168e+00 },
- { 2.244519243667616e-09, -4.927292251368517e+00 },
- { 2.255993220826402e-09, -4.949213336406265e+00 },
- { 2.267382261115285e-09, -4.970996033581527e+00 },
- { 2.278685935744269e-09, -4.992639165639563e+00 },
- { 2.289903819135414e-09, -5.014141558784778e+00 },
- { 2.301035488942000e-09, -5.035502042744443e+00 },
- { 2.312080526062763e-09, -5.056719450823151e+00 },
- { 2.323038514659161e-09, -5.077792619963239e+00 },
- { 2.333909042168180e-09, -5.098720390796817e+00 },
- { 2.344691699320969e-09, -5.119501607709159e+00 },
- { 2.355386080156553e-09, -5.140135118892792e+00 },
- { 2.365991782037187e-09, -5.160619776404897e+00 },
- { 2.376508405665132e-09, -5.180954436227641e+00 },
- { 2.386935555094626e-09, -5.201137958319343e+00 },
- { 2.397272837749508e-09, -5.221169206676762e+00 },
- { 2.407519864436774e-09, -5.241047049389645e+00 },
- { 2.417676249362563e-09, -5.260770358700167e+00 },
- { 2.427741610143750e-09, -5.280338011053974e+00 },
- { 2.437715567825576e-09, -5.299748887163106e+00 },
- { 2.447597746894037e-09, -5.319001872058887e+00 },
- { 2.457387775290440e-09, -5.338095855149190e+00 },
- { 2.467085284426756e-09, -5.357029730277389e+00 },
- { 2.476689909196263e-09, -5.375802395772283e+00 },
- { 2.486201287990485e-09, -5.394412754510426e+00 },
- { 2.495619062711154e-09, -5.412859713968929e+00 },
- { 2.504942878785408e-09, -5.431142186284682e+00 },
- { 2.514172385175743e-09, -5.449259088303476e+00 },
- { 2.523307234396791e-09, -5.467209341642627e+00 },
- { 2.532347082526785e-09, -5.484991872743321e+00 },
- { 2.541291589219998e-09, -5.502605612925014e+00 },
- { 2.550140417722072e-09, -5.520049498445633e+00 },
- { 2.558893234878378e-09, -5.537322470548212e+00 },
- { 2.567549711150773e-09, -5.554423475524196e+00 },
- { 2.576109520627371e-09, -5.571351464763084e+00 },
- { 2.584572341037361e-09, -5.588105394812198e+00 },
- { 2.592937853759161e-09, -5.604684227423386e+00 },
- { 2.601205743836355e-09, -5.621086929615246e+00 },
- { 2.609375699987564e-09, -5.637312473723475e+00 },
- { 2.617447414618146e-09, -5.653359837454964e+00 },
- { 2.625420583833750e-09, -5.669228003945694e+00 },
- { 2.633294907447937e-09, -5.684915961806963e+00 },
- { 2.641070088997271e-09, -5.700422705186584e+00 },
- { 2.648745835750128e-09, -5.715747233817712e+00 },
- { 2.656321858720176e-09, -5.730888553077074e+00 },
- { 2.663797872673252e-09, -5.745845674030161e+00 },
- { 2.671173596142054e-09, -5.760617613492118e+00 },
- { 2.678448751434797e-09, -5.775203394076705e+00 },
- { 2.685623064645538e-09, -5.789602044248679e+00 },
- { 2.692696265666640e-09, -5.803812598380606e+00 },
- { 2.699668088194915e-09, -5.817834096797069e+00 },
- { 2.706538269745573e-09, -5.831665585834668e+00 },
- { 2.713306551659817e-09, -5.845306117889361e+00 },
- { 2.719972679116734e-09, -5.858754751472542e+00 },
- { 2.726536401139295e-09, -5.872010551255358e+00 },
- { 2.732997470607439e-09, -5.885072588127400e+00 },
- { 2.739355644265558e-09, -5.897939939244211e+00 },
- { 2.745610682731633e-09, -5.910611688078208e+00 },
- { 2.751762350508137e-09, -5.923086924473290e+00 },
- { 2.757810415987146e-09, -5.935364744687794e+00 },
- { 2.763754651462700e-09, -5.947444251452243e+00 },
- { 2.769594833137415e-09, -5.959324554015538e+00 },
- { 2.775330741132843e-09, -5.971004768198829e+00 },
- { 2.780962159494174e-09, -5.982484016437981e+00 },
- { 2.786488876202047e-09, -5.993761427840588e+00 },
- { 2.791910683178690e-09, -6.004836138231525e+00 },
- { 2.797227376295779e-09, -6.015707290202086e+00 },
- { 2.802438755383971e-09, -6.026374033162623e+00 },
- { 2.807544624236659e-09, -6.036835523383457e+00 },
- { 2.812544790621093e-09, -6.047090924050914e+00 },
- { 2.817439066283459e-09, -6.057139405311101e+00 },
- { 2.822227266958278e-09, -6.066980144322601e+00 },
- { 2.826909212371261e-09, -6.076612325295799e+00 },
- { 2.831484726250221e-09, -6.086035139548830e+00 },
- { 2.835953636329660e-09, -6.095247785550617e+00 },
- { 2.840315774357203e-09, -6.104249468967751e+00 },
- { 2.844570976102082e-09, -6.113039402715685e+00 },
- { 2.848719081357095e-09, -6.121616806996519e+00 },
- { 2.852759933948860e-09, -6.129980909353977e+00 },
- { 2.856693381741114e-09, -6.138130944714082e+00 },
- { 2.860519276643053e-09, -6.146066155436312e+00 },
- { 2.864237474610633e-09, -6.153785791350256e+00 },
- { 2.867847835656203e-09, -6.161289109809551e+00 },
- { 2.871350223851726e-09, -6.168575375732642e+00 },
- { 2.874744507333867e-09, -6.175643861647406e+00 },
- { 2.878030558310989e-09, -6.182493847739853e+00 },
- { 2.881208253063899e-09, -6.189124621889823e+00 },
- { 2.884277471954592e-09, -6.195535479723423e+00 },
- { 2.887238099428306e-09, -6.201725724651554e+00 },
- { 2.890090024020323e-09, -6.207694667918394e+00 },
- { 2.892833138356060e-09, -6.213441628635915e+00 },
- { 2.895467339159240e-09, -6.218965933835304e+00 },
- { 2.897992527253659e-09, -6.224266918505075e+00 },
- { 2.900408607567016e-09, -6.229343925633495e+00 },
- { 2.902715489136496e-09, -6.234196306254763e+00 },
- { 2.904913085108075e-09, -6.238823419482017e+00 },
- { 2.907001312743911e-09, -6.243224632557377e+00 },
- { 2.908980093422997e-09, -6.247399320887848e+00 },
- { 2.910849352646620e-09, -6.251346868091392e+00 },
- { 2.912609020036956e-09, -6.255066666028537e+00 },
- { 2.914259029343965e-09, -6.258558114851525e+00 },
- { 2.915799318445710e-09, -6.261820623039620e+00 },
- { 2.917229829350759e-09, -6.264853607438842e+00 },
- { 2.918550508202463e-09, -6.267656493305673e+00 },
- { 2.919761305276718e-09, -6.270228714337005e+00 },
- { 2.920862174988150e-09, -6.272569712717951e+00 },
- { 2.921853075889193e-09, -6.274678939154603e+00 },
- { 2.922733970674264e-09, -6.276555852917634e+00 },
- { 2.923504826176907e-09, -6.278199921870962e+00 },
- { 2.924165613375264e-09, -6.279610622518139e+00 },
- { 2.924716307391075e-09, -6.280787440034993e+00 },
- { 2.925156887490598e-09, -6.281729868306345e+00 },
- { 2.925487337087508e-09, -6.282437409966992e+00 },
- { 2.925707643739298e-09, -6.282909576428774e+00 },
- { 2.925817799151970e-09, -6.283145887925411e+00 },