diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..5af5c49 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,34 @@ +version: 2.1 +jobs: + build: + docker: + - image: cimg/base:current-22.04 + resource_class: medium + environment: + - CACHE_DIR: ~/build/wxWidgets/staticlib + steps: + - checkout + - restore_cache: + keys: + - cache-{{ checksum ".circleci/scripts/build_wxwidgets.sh" }} + - run: + name: Install Dependencies + command: | + sudo apt-get update + sudo apt-get install -y build-essential cmake libpulse-dev libgtk-3-dev freeglut3 freeglut3-dev libhamlib-dev + - run: + name: Build wxWidgets + command: bash .circleci/scripts/build_wxwidgets.sh + - run: + name: Build LiquidDSP + command: bash .circleci/scripts/build_liquiddsp.sh + - run: + name: Build SoapySDR + command: bash .circleci/scripts/build_soapysdr.sh + - run: + name: Build CubicSDR + command: bash .circleci/scripts/build_cubicsdr.sh + - save_cache: + key: cache-{{ checksum ".circleci/scripts/build_wxwidgets.sh" }} + paths: + - ~/build/wxWidgets/staticlib diff --git a/.circleci/scripts/build_cubicsdr.sh b/.circleci/scripts/build_cubicsdr.sh new file mode 100644 index 0000000..8c724ac --- /dev/null +++ b/.circleci/scripts/build_cubicsdr.sh @@ -0,0 +1,5 @@ +# CubicSDR +mkdir -p $HOME/build/cjcliffe/CubicSDR-build +cd $HOME/build/cjcliffe/CubicSDR-build +cmake ~/project -DCMAKE_BUILD_TYPE=Release -DwxWidgets_CONFIG_EXECUTABLE=$HOME/build/wxWidgets/staticlib/bin/wx-config -DUSE_HAMLIB=1 -DENABLE_DIGITAL_LAB=1 +make -j2 diff --git a/travis-ci/build_liquiddsp.sh b/.circleci/scripts/build_liquiddsp.sh similarity index 63% rename from travis-ci/build_liquiddsp.sh rename to .circleci/scripts/build_liquiddsp.sh index 12d9ef2..07cbe26 100644 --- a/travis-ci/build_liquiddsp.sh +++ b/.circleci/scripts/build_liquiddsp.sh @@ -1,11 +1,9 @@ # Liquid-DSP -cd $HOME/build - -mkdir jgaeddert/ -cd jgaeddert/ +mkdir -p $HOME/build/jgaeddert +cd $HOME/build/jgaeddert git clone https://github.com/jgaeddert/liquid-dsp.git -cd liquid-dsp/ +cd $HOME/build/jgaeddert/liquid-dsp ./bootstrap.sh echo "Configuring liquid-dsp.." @@ -13,4 +11,4 @@ echo "Configuring liquid-dsp.." echo "Building liquid-dsp.." make -j2 > /dev/null -sudo make install \ No newline at end of file +sudo make install diff --git a/.circleci/scripts/build_soapysdr.sh b/.circleci/scripts/build_soapysdr.sh new file mode 100644 index 0000000..3cc8d82 --- /dev/null +++ b/.circleci/scripts/build_soapysdr.sh @@ -0,0 +1,13 @@ +# Soapy SDR +mkdir -p $HOME/build/pothosware/SoapySDR-build + +cd $HOME/build/pothosware +git clone https://github.com/pothosware/SoapySDR.git + +cd $HOME/build/pothosware/SoapySDR-build +cmake $HOME/build/pothosware/SoapySDR -DCMAKE_BUILD_TYPE=Release + +echo "Building SoapySDR.." +make -j2 > /dev/null + +sudo make install diff --git a/travis-ci/build_wxwidgets.sh b/.circleci/scripts/build_wxwidgets.sh similarity index 71% rename from travis-ci/build_wxwidgets.sh rename to .circleci/scripts/build_wxwidgets.sh index f522a75..c4ef42f 100644 --- a/travis-ci/build_wxwidgets.sh +++ b/.circleci/scripts/build_wxwidgets.sh @@ -8,25 +8,22 @@ fi echo "Fetch wxWidgets.." -cd $HOME/build mkdir -p $HOME/build/wxWidgets/staticlib -cd wxWidgets -wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.5/wxWidgets-3.1.5.tar.bz2 > /dev/null +cd $HOME/build/wxWidgets +wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.1/wxWidgets-3.2.1.tar.bz2 > /dev/null echo "Unpacking wxWidgets.." -tar -xvjf wxWidgets-3.1.5.tar.bz2 > /dev/null -cd wxWidgets-3.1.5/ +tar -xvjf wxWidgets-3.2.1.tar.bz2 > /dev/null +cd wxWidgets-3.2.1/ ./autogen.sh -if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then -./configure --with-opengl --disable-glcanvasegl --disable-shared --enable-monolithic --with-libjpeg --with-libtiff --with-libpng --with-zlib --disable-sdltest --enable-unicode --enable-display --enable-propgrid --disable-webkit --disable-webview --disable-webviewwebkit --prefix=`echo $HOME/build/wxWidgets/staticlib` CXXFLAGS="-std=c++0x" -fi -if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then +if [ "$(uname)" == "Linux" ]; then +./configure --with-opengl --disable-glcanvasegl --disable-shared --enable-monolithic --with-libjpeg --with-libtiff --with-libpng --with-zlib --disable-sdltest --enable-unicode --enable-display --enable-propgrid --disable-webview --disable-webviewwebkit --prefix=`echo $HOME/build/wxWidgets/staticlib` CXXFLAGS="-std=c++0x" +elif [ "$(uname)" == "Darwin" ]; then ./configure --with-opengl --disable-glcanvasegl --disable-shared --enable-monolithic --with-libjpeg --with-libtiff --with-libpng --with-zlib --with-mac --disable-sdltest --enable-unicode --enable-display --enable-propgrid --disable-webkit --disable-webview --disable-webviewwebkit --prefix=`echo $HOME/build/wxWidgets/staticlib` CXXFLAGS="-std=c++0x" --with-libiconv=/usr fi echo "Building wxWidgets.." -make -j2 +make V=1 -j2 make install - diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c16ef30..0000000 --- a/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -os: - - linux - - osx -osx_image: xcode11.3 -dist: trusty -language: cpp -addons: - apt: - packages: - - libpulse-dev - - libgtk-3-dev - - freeglut3 - - freeglut3-dev - - libhamlib-dev -script: - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install hamlib; fi - - bash travis-ci/build_liquiddsp.sh - - bash travis-ci/build_soapysdr.sh - - bash travis-ci/build_wxwidgets.sh - - bash travis-ci/build_cubicsdr.sh -cache: - directories: - - $HOME/build/wxWidgets/staticlib diff --git a/CMakeLists.txt b/CMakeLists.txt index e4fe0a8..ab4aca3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,8 +6,8 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/") SET(CUBICSDR_VERSION_MAJOR "0") SET(CUBICSDR_VERSION_MINOR "2") -SET(CUBICSDR_VERSION_PATCH "7") -SET(CUBICSDR_VERSION_SUFFIX "") +SET(CUBICSDR_VERSION_PATCH "8") +SET(CUBICSDR_VERSION_SUFFIX "a") SET(CUBICSDR_VERSION "${CUBICSDR_VERSION_MAJOR}.${CUBICSDR_VERSION_MINOR}.${CUBICSDR_VERSION_PATCH}${CUBICSDR_VERSION_SUFFIX}") SET(CPACK_PACKAGE_VERSION "${CUBICSDR_VERSION_MAJOR}.${CUBICSDR_VERSION_MINOR}.${CUBICSDR_VERSION_PATCH}") @@ -689,7 +689,7 @@ IF (NOT BUNDLE_APP) configure_files(${CUBICSDR_HEADER_IMAGE_DIR} ${CMAKE_BINARY_DIR}/${EX_PLATFORM_NAME} ${CUBICSDR_HEADER_IMAGE_FILE}) ENDIF() add_executable(CubicSDR ${cubicsdr_sources} ${cubicsdr_headers} ${RES_FILES}) - target_link_libraries(CubicSDR ${LIQUID_LIB} ${wxWidgets_LIBRARIES} ${OPENGL_LIBRARIES} ${OTHER_LIBRARIES}) + target_link_libraries(CubicSDR ${wxWidgets_LIBRARIES} ${OPENGL_LIBRARIES} ${OTHER_LIBRARIES}) ENDIF (NOT BUNDLE_APP) IF (MSVC) diff --git a/README.md b/README.md index 7a49d76..af05d3e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -CubicSDR +CubicSDR [![CircleCI](https://dl.circleci.com/status-badge/img/gh/cjcliffe/CubicSDR/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/cjcliffe/CubicSDR/tree/master) ======== Cross-Platform Software-Defined Radio Application diff --git a/external/liquid-dsp/config.h b/external/liquid-dsp/config.h index 2d71a6a..1b56d85 100644 --- a/external/liquid-dsp/config.h +++ b/external/liquid-dsp/config.h @@ -6,8 +6,57 @@ #define __LIQUID_CONFIG_H__ -/* Support AVX (Advanced Vector Extensions) instructions */ -#define HAVE_AVX 1 +/* Define to 1 to support Advanced Bit Manipulation */ +#define HAVE_ABM 1 + +/* Define to 1 to support Multi-Precision Add-Carry Instruction Extensions */ +#define HAVE_ADX 1 + +/* Define to 1 to support Advanced Encryption Standard New Instruction Set + (AES-NI) */ +/* #define HAVE_AES 1 */ + +/* Support Altivec instructions */ +/* #undef HAVE_ALTIVEC */ + +/* Define to 1 to support Advanced Vector Extensions */ +/* #define HAVE_AVX 1 */ + +/* Define to 1 to support Advanced Vector Extensions 2 */ +/* #define HAVE_AVX2 1 */ + +/* Define to 1 to support AVX-512 Byte and Word Instructions */ +/* #undef HAVE_AVX512_BW */ + +/* Define to 1 to support AVX-512 Conflict Detection Instructions */ +/* #undef HAVE_AVX512_CD */ + +/* Define to 1 to support AVX-512 Doubleword and Quadword Instructions */ +/* #undef HAVE_AVX512_DQ */ + +/* Define to 1 to support AVX-512 Exponential & Reciprocal Instructions */ +/* #undef HAVE_AVX512_ER */ + +/* Define to 1 to support AVX-512 Foundation Extensions */ +/* #undef HAVE_AVX512_F */ + +/* Define to 1 to support AVX-512 Integer Fused Multiply Add Instructions */ +/* #undef HAVE_AVX512_IFMA */ + +/* Define to 1 to support AVX-512 Conflict Prefetch Instructions */ +/* #undef HAVE_AVX512_PF */ + +/* Define to 1 to support AVX-512 Vector Byte Manipulation Instructions */ +/* #undef HAVE_AVX512_VBMI */ + +/* Define to 1 to support AVX-512 Vector Length Extensions */ +/* #undef HAVE_AVX512_VL */ + +/* Define to 1 to support Bit Manipulation Instruction Set 1 */ +#define HAVE_BMI1 1 + +/* Define to 1 to support Bit Manipulation Instruction Set 2 */ +#define HAVE_BMI2 1 /* Define to 1 if you have the `cargf' function. */ #define HAVE_CARGF 1 @@ -27,9 +76,6 @@ /* Define to 1 if you have the `crealf' function. */ #define HAVE_CREALF 1 -/* Define to 1 if you have the header file. */ -#define HAVE_EMMINTRIN_H 1 - /* Define to 1 if you have the `expf' function. */ #define HAVE_EXPF 1 @@ -42,15 +88,18 @@ /* Define to 1 if you have the header file. */ #define HAVE_FLOAT_H 1 +/* Define to 1 to support Fused Multiply-Add Extensions 3 */ +#define HAVE_FMA3 1 + +/* Define to 1 to support Fused Multiply-Add Extensions 4 */ +/* #undef HAVE_FMA4 */ + /* Define to 1 if you have the `free' function. */ #define HAVE_FREE 1 /* Define to 1 if you have the header file. */ #define HAVE_GETOPT_H 1 -/* Define to 1 if you have the header file. */ -#define HAVE_IMMINTRIN_H 1 - /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 @@ -75,49 +124,52 @@ /* Define to 1 if you have the `memmove' function. */ #define HAVE_MEMMOVE 1 -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - /* Define to 1 if you have the `memset' function. */ #define HAVE_MEMSET 1 -/* Define to 1 if you have the header file. */ -#define HAVE_MMINTRIN_H 1 - -/* Support MMX instructions */ +/* Define to 1 to support Multimedia Extensions */ #define HAVE_MMX 1 -/* Define to 1 if you have the header file. */ -#define HAVE_PMMINTRIN_H 1 +/* Define to 1 to support Memory Protection Extensions */ +/* #undef HAVE_MPX */ + +/* Define to 1 to support Prefetch Vector Data Into Caches WT1 */ +/* #undef HAVE_PREFETCHWT1 */ + +/* Define to 1 to support Digital Random Number Generator */ +#define HAVE_RDRND 1 /* Define to 1 if you have the `realloc' function. */ #define HAVE_REALLOC 1 +/* Define to 1 to support Secure Hash Algorithm Extension */ +/* #undef HAVE_SHA */ + /* Define to 1 if you have the `sinf' function. */ #define HAVE_SINF 1 -/* Define to 1 if you have the header file. */ -#define HAVE_SMMINTRIN_H 1 - /* Define to 1 if you have the `sqrtf' function. */ #define HAVE_SQRTF 1 -/* Support SSE (Streaming SIMD Extensions) instructions */ +/* Define to 1 to support Streaming SIMD Extensions */ #define HAVE_SSE 1 -/* Support SSE2 (Streaming SIMD Extensions 2) instructions */ +/* Define to 1 to support Streaming SIMD Extensions */ #define HAVE_SSE2 1 -/* Support SSE3 (Streaming SIMD Extensions 3) instructions */ +/* Define to 1 to support Streaming SIMD Extensions 3 */ #define HAVE_SSE3 1 -/* Support SSE4.1 (Streaming SIMD Extensions 4.1) instructions */ -#define HAVE_SSE41 1 +/* Define to 1 to support Streaming SIMD Extensions 4.1 */ +#define HAVE_SSE4_1 1 -/* Support SSE4.2 (Streaming SIMD Extensions 4.2) instructions */ -#define HAVE_SSE42 1 +/* Define to 1 to support Streaming SIMD Extensions 4.2 */ +#define HAVE_SSE4_2 1 -/* Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions */ +/* Define to 1 to support AMD Streaming SIMD Extensions 4a */ +/* #undef HAVE_SSE4a */ + +/* Define to 1 to support Supplemental Streaming SIMD Extensions 3 */ #define HAVE_SSSE3 1 /* Define to 1 if you have the header file. */ @@ -144,17 +196,17 @@ /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 -/* Define to 1 if you have the header file. */ -#define HAVE_TMMINTRIN_H 1 - /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 -/* Define to 1 if you have the header file. */ -#define HAVE_XMMINTRIN_H 1 +/* Support VSX instructions */ +/* #undef HAVE_VSX */ + +/* Define to 1 to support eXtended Operations Extensions */ +/* #undef HAVE_XOP */ /* Force internal FFT even if libfftw is available */ -#define LIQUID_FFTOVERRIDE 1 +#undef LIQUID_FFTOVERRIDE /* Force overriding of SIMD (use portable C code) */ /* #undef LIQUID_SIMDOVERRIDE */ @@ -172,7 +224,7 @@ #define PACKAGE_NAME "liquid-dsp" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "liquid-dsp 1.4.0" +#define PACKAGE_STRING "liquid-dsp 1.5" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "liquid-dsp" @@ -181,7 +233,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.4.0" +#define PACKAGE_VERSION "1.5" /* The size of `int', as computed by sizeof. */ #define SIZEOF_INT 4 @@ -195,7 +247,9 @@ /* The size of `short int', as computed by sizeof. */ #define SIZEOF_SHORT_INT 2 -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #define STDC_HEADERS 1 /* Define for Solaris 2.5.1 so the uint32_t typedef from , diff --git a/external/liquid-dsp/gcc/32/libliquid.a b/external/liquid-dsp/gcc/32/libliquid.a index 22043a0..0858bfd 100644 Binary files a/external/liquid-dsp/gcc/32/libliquid.a and b/external/liquid-dsp/gcc/32/libliquid.a differ diff --git a/external/liquid-dsp/gcc/32/libliquid.dll b/external/liquid-dsp/gcc/32/libliquid.dll index 77cd4f0..8ac1536 100644 Binary files a/external/liquid-dsp/gcc/32/libliquid.dll and b/external/liquid-dsp/gcc/32/libliquid.dll differ diff --git a/external/liquid-dsp/gcc/64/libliquid.a b/external/liquid-dsp/gcc/64/libliquid.a index f916c74..57d1e98 100644 Binary files a/external/liquid-dsp/gcc/64/libliquid.a and b/external/liquid-dsp/gcc/64/libliquid.a differ diff --git a/external/liquid-dsp/gcc/64/libliquid.dll b/external/liquid-dsp/gcc/64/libliquid.dll index edcd421..341d7da 100644 Binary files a/external/liquid-dsp/gcc/64/libliquid.dll and b/external/liquid-dsp/gcc/64/libliquid.dll differ diff --git a/external/liquid-dsp/include/liquid/liquid.h b/external/liquid-dsp/include/liquid/liquid.h index 357440e..87568ea 100644 --- a/external/liquid-dsp/include/liquid/liquid.h +++ b/external/liquid-dsp/include/liquid/liquid.h @@ -36,6 +36,8 @@ extern "C" { // common headers #include +#include +#include // // Make sure the version and version number macros weren't defined by @@ -54,8 +56,8 @@ extern "C" { // LIQUID_VERSION = "X.Y.Z" // LIQUID_VERSION_NUMBER = (X*1000000 + Y*1000 + Z) // -#define LIQUID_VERSION "1.4.0" -#define LIQUID_VERSION_NUMBER 1004000 +#define LIQUID_VERSION "1.5.0" +#define LIQUID_VERSION_NUMBER 1005000 // // Run-time library version numbers @@ -69,6 +71,8 @@ int liquid_libversion_number(void); if (LIQUID_VERSION_NUMBER != liquid_libversion_number()) { \ fprintf(stderr,"%s:%u: ", __FILE__,__LINE__); \ fprintf(stderr,"error: invalid liquid runtime library\n"); \ + fprintf(stderr," header version : %d\n", LIQUID_VERSION_NUMBER); \ + fprintf(stderr," library version : %d\n", liquid_libversion_number()); \ exit(1); \ } \ @@ -194,6 +198,9 @@ typedef struct AGC(_s) * AGC(); \ /* Create automatic gain control object. */ \ AGC() AGC(_create)(void); \ \ +/* Copy object including all internal objects and state */ \ +AGC() AGC(_copy)(AGC() _q); \ + \ /* Destroy object, freeing all internally-allocated memory. */ \ int AGC(_destroy)(AGC() _q); \ \ @@ -286,7 +293,7 @@ float AGC(_get_gain)(AGC() _q); \ int AGC(_set_gain)(AGC() _q, \ float _gain); \ \ -/* Get the ouput scaling applied to each sample (linear). */ \ +/* Get the output scaling applied to each sample (linear). */ \ float AGC(_get_scale)(AGC() _q); \ \ /* Set the agc object's output scaling (linear). Note that this does */ \ @@ -401,6 +408,9 @@ CBUFFER() CBUFFER(_create)(unsigned int _max_size); \ CBUFFER() CBUFFER(_create_max)(unsigned int _max_size, \ unsigned int _max_read); \ \ +/* Copy object including all internal objects and state */ \ +CBUFFER() CBUFFER(_copy)(CBUFFER() _q); \ + \ /* Destroy cbuffer object, freeing all internal memory */ \ int CBUFFER(_destroy)(CBUFFER() _q); \ \ @@ -488,7 +498,9 @@ LIQUID_CBUFFER_DEFINE_API(LIQUID_CBUFFER_MANGLE_CFLOAT, liquid_float_complex) /* Sliding window first-in/first-out buffer with a fixed size */ \ typedef struct WINDOW(_s) * WINDOW(); \ \ -/* Create window buffer object of a fixed length */ \ +/* Create window buffer object of a fixed length. Samples may be pushed */ \ +/* into the buffer which retains the most recent \(n\) samples. */ \ +/* _n : length of the window buffer [samples] */ \ WINDOW() WINDOW(_create)(unsigned int _n); \ \ /* Recreate window buffer object with new length. */ \ @@ -499,9 +511,12 @@ WINDOW() WINDOW(_create)(unsigned int _n); \ /* values are truncated. If the size of the new window is smaller than */ \ /* the old one, the oldest values are truncated. */ \ /* _q : old window object */ \ -/* _n : new window length */ \ +/* _n : new window length [samples] */ \ WINDOW() WINDOW(_recreate)(WINDOW() _q, unsigned int _n); \ \ +/* Copy object including all internal objects and state */ \ +WINDOW() WINDOW(_copy)(WINDOW() _q); \ + \ /* Destroy window object, freeing all internally memory */ \ int WINDOW(_destroy)(WINDOW() _q); \ \ @@ -583,6 +598,9 @@ typedef struct WDELAY(_s) * WDELAY(); \ /* _delay : number of samples of delay in the wdelay object */ \ WDELAY() WDELAY(_create)(unsigned int _delay); \ \ +/* Copy object including all internal objects and state */ \ +WDELAY() WDELAY(_copy)(WDELAY() _q); \ + \ /* Re-create delay buffer object, adjusting the delay size, preserving */ \ /* the internal state of the object */ \ /* _q : old delay buffer object */ \ @@ -638,6 +656,9 @@ typedef struct CHANNEL(_s) * CHANNEL(); \ /* Create channel object with default parameters */ \ CHANNEL() CHANNEL(_create)(void); \ \ +/* Copy object including all internal objects and state */ \ +CHANNEL() CHANNEL(_copy)(CHANNEL() _q); \ + \ /* Destroy channel object, freeing all internal memory */ \ int CHANNEL(_destroy)(CHANNEL() _q); \ \ @@ -646,11 +667,11 @@ int CHANNEL(_print)(CHANNEL() _q); \ \ /* Include additive white Gausss noise impairment */ \ /* _q : channel object */ \ -/* _N0dB : noise floor power spectral density [dB] */ \ -/* _SNRdB : signal-to-noise ratio [dB] */ \ +/* _noise_floor: noise floor power spectral density [dB] */ \ +/* _snr : signal-to-noise ratio [dB] */ \ int CHANNEL(_add_awgn)(CHANNEL() _q, \ - float _N0dB, \ - float _SNRdB); \ + float _noise_floor, \ + float _snr); \ \ /* Include carrier offset impairment */ \ /* _q : channel object */ \ @@ -727,6 +748,9 @@ TVMPCH() TVMPCH(_create)(unsigned int _n, \ float _std, \ float _tau); \ \ +/* Copy object including all internal objects and state */ \ +TVMPCH() TVMPCH(_copy)(TVMPCH() _q); \ + \ /* Destroy channel object, freeing all internal memory */ \ int TVMPCH(_destroy)(TVMPCH() _q); \ \ @@ -748,6 +772,14 @@ int TVMPCH(_push)(TVMPCH() _q, \ int TVMPCH(_execute)(TVMPCH() _q, \ TO * _y); \ \ +/* Execute filter on one sample, equivalent to push() and execute() */ \ +/* _q : channel object */ \ +/* _x : single input sample */ \ +/* _y : pointer to single output sample */ \ +int TVMPCH(_execute_one)(TVMPCH() _q, \ + TI _x, \ + TO * _y); \ + \ /* Apply channel impairments on a block of samples */ \ /* _q : channel object */ \ /* _x : input array, [size: _n x 1] */ \ @@ -788,8 +820,8 @@ typedef struct DOTPROD(_s) * DOTPROD(); \ /* provide a baseline for performance comparison and a convenient way */ \ /* to invoke a dot product operation when fast operation is not */ \ /* necessary. */ \ -/* _v : coefficients array [size: _n x 1] */ \ -/* _x : input array [size: _n x 1] */ \ +/* _v : coefficients array, [size: _n x 1] */ \ +/* _x : input array, [size: _n x 1] */ \ /* _n : dotprod length, _n > 0 */ \ /* _y : output sample pointer */ \ int DOTPROD(_run)( TC * _v, \ @@ -800,8 +832,8 @@ int DOTPROD(_run)( TC * _v, \ /* This provides the same unoptimized operation as the 'run()' method */ \ /* above, but with the loop unrolled by a factor of 4. It is marginally */ \ /* faster than 'run()' without unrolling the loop. */ \ -/* _v : coefficients array [size: _n x 1] */ \ -/* _x : input array [size: _n x 1] */ \ +/* _v : coefficients array, [size: _n x 1] */ \ +/* _x : input array, [size: _n x 1] */ \ /* _n : dotprod length, _n > 0 */ \ /* _y : output sample pointer */ \ int DOTPROD(_run4)(TC * _v, \ @@ -810,13 +842,13 @@ int DOTPROD(_run4)(TC * _v, \ TO * _y); \ \ /* Create vector dot product object */ \ -/* _v : coefficients array [size: _n x 1] */ \ +/* _v : coefficients array, [size: _n x 1] */ \ /* _n : dotprod length, _n > 0 */ \ DOTPROD() DOTPROD(_create)(TC * _v, \ unsigned int _n); \ \ /* Create vector dot product object with time-reversed coefficients */ \ -/* _v : time-reversed coefficients array [size: _n x 1] */ \ +/* _v : time-reversed coefficients array, [size: _n x 1] */ \ /* _n : dotprod length, _n > 0 */ \ DOTPROD() DOTPROD(_create_rev)(TC * _v, \ unsigned int _n); \ @@ -825,7 +857,7 @@ DOTPROD() DOTPROD(_create_rev)(TC * _v, \ /* different coefficients. If the length of the dot product object does */ \ /* not change, no memory reallocation is invoked. */ \ /* _q : old dotprod object */ \ -/* _v : coefficients array [size: _n x 1] */ \ +/* _v : coefficients array, [size: _n x 1] */ \ /* _n : dotprod length, _n > 0 */ \ DOTPROD() DOTPROD(_recreate)(DOTPROD() _q, \ TC * _v, \ @@ -836,12 +868,15 @@ DOTPROD() DOTPROD(_recreate)(DOTPROD() _q, \ /* not change, no memory reallocation is invoked. Filter coefficients */ \ /* are stored in reverse order. */ \ /* _q : old dotprod object */ \ -/* _v : time-reversed coefficients array [size: _n x 1] */ \ +/* _v : time-reversed coefficients array, [size: _n x 1] */ \ /* _n : dotprod length, _n > 0 */ \ DOTPROD() DOTPROD(_recreate_rev)(DOTPROD() _q, \ TC * _v, \ unsigned int _n); \ \ +/* Copy object including all internal objects and state */ \ +DOTPROD() DOTPROD(_copy)(DOTPROD() _q); \ + \ /* Destroy dotprod object, freeing all internal memory */ \ int DOTPROD(_destroy)(DOTPROD() _q); \ \ @@ -850,7 +885,7 @@ int DOTPROD(_print)(DOTPROD() _q); \ \ /* Execute dot product on an input array */ \ /* _q : dotprod object */ \ -/* _x : input array [size: _n x 1] */ \ +/* _x : input array, [size: _n x 1] */ \ /* _y : output sample pointer */ \ int DOTPROD(_execute)(DOTPROD() _q, \ TI * _x, \ @@ -935,6 +970,9 @@ EQLMS() EQLMS(_recreate)(EQLMS() _q, \ T * _h, \ unsigned int _n); \ \ +/* Copy object including all internal objects and state */ \ +EQLMS() EQLMS(_copy)(EQLMS() _q); \ + \ /* Destroy equalizer object, freeing all internal memory */ \ int EQLMS(_destroy)(EQLMS() _q); \ \ @@ -961,17 +999,17 @@ const T * EQLMS(_get_coefficients)(EQLMS() _q); \ \ /* Copy internal coefficients to external buffer */ \ /* _q : filter object */ \ -/* _w : pointer to output coefficients array [size: _n x 1] */ \ +/* _w : pointer to output coefficients array, [size: _n x 1] */ \ int EQLMS(_copy_coefficients)(EQLMS() _q, \ T * _w); \ \ /* Get equalizer's internal coefficients */ \ /* _q : filter object */ \ -/* _w : pointer to output coefficients array [size: _n x 1] */ \ +/* _w : pointer to output coefficients array, [size: _n x 1] */ \ DEPRECATED("use eqlms_xxxt_copy_coefficients(...) instead", \ void EQLMS(_get_weights)(EQLMS() _q, \ - T * _w) \ -); \ + T * _w); \ +) \ \ /* Push sample into equalizer internal buffer */ \ /* _q : equalizer object */ \ @@ -995,7 +1033,7 @@ int EQLMS(_execute)(EQLMS() _q, \ \ /* Execute equalizer as decimator */ \ /* _q : equalizer object */ \ -/* _x : input sample array [size: _k x 1] */ \ +/* _x : input sample array, [size: _k x 1] */ \ /* _y : output sample */ \ /* _k : down-sampling rate */ \ int EQLMS(_decim_execute)(EQLMS() _q, \ @@ -1008,9 +1046,9 @@ int EQLMS(_decim_execute)(EQLMS() _q, \ /* samples. */ \ /* _q : equalizer object */ \ /* _k : down-sampling rate */ \ -/* _x : input sample array [size: _n x 1] */ \ +/* _x : input sample array, [size: _n x 1] */ \ /* _n : input sample array length */ \ -/* _y : output sample array [size: _n x 1] */ \ +/* _y : output sample array, [size: _n x 1] */ \ int EQLMS(_execute_block)(EQLMS() _q, \ unsigned int _k, \ T * _x, \ @@ -1042,8 +1080,8 @@ int EQLMS(_train)(EQLMS() _q, \ T * _w, \ T * _x, \ T * _d, \ - unsigned int _n) \ -); \ + unsigned int _n); \ +) \ LIQUID_EQLMS_DEFINE_API(LIQUID_EQLMS_MANGLE_RRRF, float) LIQUID_EQLMS_DEFINE_API(LIQUID_EQLMS_MANGLE_CCCF, liquid_float_complex) @@ -1075,6 +1113,9 @@ EQRLS() EQRLS(_recreate)(EQRLS() _q, \ T * _h, \ unsigned int _n); \ \ +/* Copy object including all internal objects and state */ \ +EQRLS() EQRLS(_copy)(EQRLS() _q); \ + \ /* Destroy equalizer object, freeing all internal memory */ \ int EQRLS(_destroy)(EQRLS() _q); \ \ @@ -1282,6 +1323,9 @@ fec fec_recreate(fec _q, fec_scheme _scheme, void *_opts); +// Copy object including all internal objects and state +fec fec_copy(fec _q); + // destroy fec object int fec_destroy(fec _q); @@ -1370,11 +1414,14 @@ packetizer packetizer_recreate(packetizer _p, int _fec0, int _fec1); +// Copy object including all internal objects and state +packetizer packetizer_copy(packetizer _p); + // destroy packetizer object -void packetizer_destroy(packetizer _p); +int packetizer_destroy(packetizer _p); // print packetizer object internals -void packetizer_print(packetizer _p); +int packetizer_print(packetizer _p); // access methods unsigned int packetizer_get_dec_msg_len(packetizer _p); @@ -1389,7 +1436,7 @@ fec_scheme packetizer_get_fec1 (packetizer _p); // _p : packetizer object // _msg : input message (uncoded bytes) // _pkt : encoded output message -void packetizer_encode(packetizer _p, +int packetizer_encode(packetizer _p, const unsigned char * _msg, unsigned char * _pkt); @@ -1399,9 +1446,9 @@ void packetizer_encode(packetizer _p, // _p : packetizer object // _pkt : input message (coded bytes) // _msg : decoded output message -int packetizer_decode(packetizer _p, - const unsigned char * _pkt, - unsigned char * _msg); +int packetizer_decode(packetizer _p, + const unsigned char * _pkt, + unsigned char * _msg); // Execute the packetizer to decode an input message, return validity // check of resulting data @@ -1423,49 +1470,52 @@ typedef struct interleaver_s * interleaver; // _n : number of bytes interleaver interleaver_create(unsigned int _n); +// Copy object including all internal objects and state +interleaver linterleaver_copy(interleaver _q); + // destroy interleaver object -void interleaver_destroy(interleaver _q); +int interleaver_destroy(interleaver _q); // print interleaver object internals -void interleaver_print(interleaver _q); +int interleaver_print(interleaver _q); // set depth (number of internal iterations) // _q : interleaver object // _depth : depth -void interleaver_set_depth(interleaver _q, - unsigned int _depth); +int interleaver_set_depth(interleaver _q, + unsigned int _depth); // execute forward interleaver (encoder) // _q : interleaver object // _msg_dec : decoded (un-interleaved) message // _msg_enc : encoded (interleaved) message -void interleaver_encode(interleaver _q, - unsigned char * _msg_dec, - unsigned char * _msg_enc); +int interleaver_encode(interleaver _q, + unsigned char * _msg_dec, + unsigned char * _msg_enc); // execute forward interleaver (encoder) on soft bits // _q : interleaver object // _msg_dec : decoded (un-interleaved) message // _msg_enc : encoded (interleaved) message -void interleaver_encode_soft(interleaver _q, - unsigned char * _msg_dec, - unsigned char * _msg_enc); +int interleaver_encode_soft(interleaver _q, + unsigned char * _msg_dec, + unsigned char * _msg_enc); // execute reverse interleaver (decoder) // _q : interleaver object // _msg_enc : encoded (interleaved) message // _msg_dec : decoded (un-interleaved) message -void interleaver_decode(interleaver _q, - unsigned char * _msg_enc, - unsigned char * _msg_dec); +int interleaver_decode(interleaver _q, + unsigned char * _msg_enc, + unsigned char * _msg_dec); // execute reverse interleaver (decoder) on soft bits // _q : interleaver object // _msg_enc : encoded (interleaved) message // _msg_dec : decoded (un-interleaved) message -void interleaver_decode_soft(interleaver _q, - unsigned char * _msg_enc, - unsigned char * _msg_dec); +int interleaver_decode_soft(interleaver _q, + unsigned char * _msg_enc, + unsigned char * _msg_dec); @@ -1509,10 +1559,24 @@ typedef enum { /* Fast Fourier Transform (FFT) and inverse (plan) object */ \ typedef struct FFT(plan_s) * FFT(plan); \ \ +/* Allocate a one-dimensional array similar to the ordinary malloc. The */ \ +/* implementation may internally align the allocated memory to support */ \ +/* some optimizations. Use the result as the input or output array */ \ +/* argument to one of the fft_create* methods. As with the ordinary */ \ +/* malloc, the result must be typecast to the proper type. Memory */ \ +/* allocated by this function must be deallocated by fft_free and not */ \ +/* by the ordinary free. */ \ +/* _n : array size */ \ +void * FFT(_malloc)(unsigned int _n); \ + \ +/* Free the one-dimensional array allocated by fft_malloc. */ \ +/* _x : pointer to array */ \ +void FFT(_free)(void * _x); \ + \ /* Create regular complex one-dimensional transform */ \ /* _n : transform size */ \ -/* _x : pointer to input array [size: _n x 1] */ \ -/* _y : pointer to output array [size: _n x 1] */ \ +/* _x : pointer to input array, [size: _n x 1] */ \ +/* _y : pointer to output array, [size: _n x 1] */ \ /* _dir : direction (e.g. LIQUID_FFT_FORWARD) */ \ /* _flags : options, optimization */ \ FFT(plan) FFT(_create_plan)(unsigned int _n, \ @@ -1523,8 +1587,8 @@ FFT(plan) FFT(_create_plan)(unsigned int _n, \ \ /* Create real-to-real one-dimensional transform */ \ /* _n : transform size */ \ -/* _x : pointer to input array [size: _n x 1] */ \ -/* _y : pointer to output array [size: _n x 1] */ \ +/* _x : pointer to input array, [size: _n x 1] */ \ +/* _y : pointer to output array, [size: _n x 1] */ \ /* _type : transform type (e.g. LIQUID_FFT_REDFT00) */ \ /* _flags : options, optimization */ \ FFT(plan) FFT(_create_plan_r2r_1d)(unsigned int _n, \ @@ -1546,8 +1610,8 @@ int FFT(_execute)(FFT(plan) _p); \ \ /* Perform n-point FFT allocating plan internally */ \ /* _nfft : fft size */ \ -/* _x : input array [size: _nfft x 1] */ \ -/* _y : output array [size: _nfft x 1] */ \ +/* _x : input array, [size: _nfft x 1] */ \ +/* _y : output array, [size: _nfft x 1] */ \ /* _dir : fft direction: LIQUID_FFT_{FORWARD,BACKWARD} */ \ /* _flags : fft flags */ \ int FFT(_run)(unsigned int _n, \ @@ -1558,8 +1622,8 @@ int FFT(_run)(unsigned int _n, \ \ /* Perform n-point real one-dimensional FFT allocating plan internally */ \ /* _nfft : fft size */ \ -/* _x : input array [size: _nfft x 1] */ \ -/* _y : output array [size: _nfft x 1] */ \ +/* _x : input array, [size: _nfft x 1] */ \ +/* _y : output array, [size: _nfft x 1] */ \ /* _type : fft type, e.g. LIQUID_FFT_REDFT10 */ \ /* _flags : fft flags */ \ int FFT(_r2r_1d_run)(unsigned int _n, \ @@ -1569,7 +1633,7 @@ int FFT(_r2r_1d_run)(unsigned int _n, \ int _flags); \ \ /* Perform _n-point fft shift */ \ -/* _x : input array [size: _n x 1] */ \ +/* _x : input array, [size: _n x 1] */ \ /* _n : input array size */ \ int FFT(_shift)(TC * _x, \ unsigned int _n); \ @@ -1621,6 +1685,9 @@ SPGRAM() SPGRAM(_create)(unsigned int _nfft, \ /* _nfft : FFT size, _nfft >= 2 */ \ SPGRAM() SPGRAM(_create_default)(unsigned int _nfft); \ \ +/* Copy object including all internal objects and state */ \ +SPGRAM() SPGRAM(_copy)(SPGRAM() _q); \ + \ /* Destroy spgram object, freeing all internally-allocated memory */ \ int SPGRAM(_destroy)(SPGRAM() _q); \ \ @@ -1704,7 +1771,7 @@ int SPGRAM(_push)(SPGRAM() _q, \ /* Write a block of samples to the object, executing internal */ \ /* transform as necessary. */ \ /* _q : spgram object */ \ -/* _x : input buffer [size: _n x 1] */ \ +/* _x : input buffer, [size: _n x 1] */ \ /* _n : input buffer length */ \ int SPGRAM(_write)(SPGRAM() _q, \ TI * _x, \ @@ -1712,29 +1779,29 @@ int SPGRAM(_write)(SPGRAM() _q, \ \ /* Compute spectral periodogram output (fft-shifted values, linear) */ \ /* from current buffer contents */ \ -/* _q : spgram object */ \ -/* _X : output spectrum (linear), [size: _nfft x 1] */ \ +/* _q : spgram object */ \ +/* _psd : output spectrum (linear), [size: _nfft x 1] */ \ int SPGRAM(_get_psd_mag)(SPGRAM() _q, \ - T * _X); \ + T * _psd); \ \ /* Compute spectral periodogram output (fft-shifted values in dB) from */ \ /* current buffer contents */ \ -/* _q : spgram object */ \ -/* _X : output spectrum (dB), [size: _nfft x 1] */ \ +/* _q : spgram object */ \ +/* _psd : output spectrum (dB), [size: _nfft x 1] */ \ int SPGRAM(_get_psd)(SPGRAM() _q, \ - T * _X); \ + T * _psd); \ \ /* Export stand-alone gnuplot file for plotting output spectrum, */ \ -/* returning 0 on sucess, anything other than 0 for failure */ \ +/* returning 0 on success, anything other than 0 for failure */ \ /* _q : spgram object */ \ -/* _filename : input buffer [size: _n x 1] */ \ +/* _filename : input buffer, [size: _n x 1] */ \ int SPGRAM(_export_gnuplot)(SPGRAM() _q, \ const char * _filename); \ \ /* Estimate spectrum on input signal (create temporary object for */ \ /* convenience */ \ /* _nfft : FFT size */ \ -/* _x : input signal [size: _n x 1] */ \ +/* _x : input signal, [size: _n x 1] */ \ /* _n : input signal length */ \ /* _psd : output spectrum, [size: _nfft x 1] */ \ int SPGRAM(_estimate_psd)(unsigned int _nfft, \ @@ -1774,6 +1841,9 @@ typedef struct ASGRAM(_s) * ASGRAM(); \ /* _nfft : size of FFT taken for each transform (character width) */ \ ASGRAM() ASGRAM(_create)(unsigned int _nfft); \ \ +/* Copy object including all internal objects and state */ \ +ASGRAM() ASGRAM(_copy)(ASGRAM() _q); \ + \ /* Destroy asgram object, freeing all internally-allocated memory */ \ int ASGRAM(_destroy)(ASGRAM() _q); \ \ @@ -1806,7 +1876,7 @@ int ASGRAM(_push)(ASGRAM() _q, \ /* Write a block of samples to the asgram object, executing internal */ \ /* transforms as necessary. */ \ /* _q : asgram object */ \ -/* _x : input buffer [size: _n x 1] */ \ +/* _x : input buffer, [size: _n x 1] */ \ /* _n : input buffer length */ \ int ASGRAM(_write)(ASGRAM() _q, \ TI * _x, \ @@ -1816,7 +1886,7 @@ int ASGRAM(_write)(ASGRAM() _q, \ /* and return the ascii character string to display along with the peak */ \ /* value and its frequency location */ \ /* _q : asgram object */ \ -/* _ascii : output ASCII string [size: _nfft x 1] */ \ +/* _ascii : output ASCII string, [size: _nfft x 1] */ \ /* _peakval : peak power spectral density value [dB] */ \ /* _peakfreq : peak power spectral density frequency */ \ int ASGRAM(_execute)(ASGRAM() _q, \ @@ -1874,6 +1944,9 @@ SPWATERFALL() SPWATERFALL(_create)(unsigned int _nfft, \ SPWATERFALL() SPWATERFALL(_create_default)(unsigned int _nfft, \ unsigned int _time); \ \ +/* Copy object including all internal objects and state */ \ +SPWATERFALL() SPWATERFALL(_copy)(SPWATERFALL() _q); \ + \ /* Destroy spwaterfall object, freeing all internally-allocated memory */ \ int SPWATERFALL(_destroy)(SPWATERFALL() _q); \ \ @@ -2011,12 +2084,12 @@ typedef enum { // _beta : excess bandwidth factor, _beta in [0,1) // _dt : fractional sample delay, _dt in [-1,1] // _h : output coefficient buffer (length: 2*_k*_m+1) -void liquid_firdes_prototype(liquid_firfilt_type _type, - unsigned int _k, - unsigned int _m, - float _beta, - float _dt, - float * _h); +int liquid_firdes_prototype(liquid_firfilt_type _type, + unsigned int _k, + unsigned int _m, + float _beta, + float _dt, + float * _h); // pretty names for filter design types extern const char * liquid_firfilt_type_str[LIQUID_FIRFILT_NUM_TYPES][2]; @@ -2026,27 +2099,27 @@ int liquid_getopt_str2firfilt(const char * _str); // estimate required filter length given // _df : transition bandwidth (0 < _b < 0.5) -// _As : stop-band attenuation [dB], _As > 0 +// _as : stop-band attenuation [dB], _as > 0 unsigned int estimate_req_filter_len(float _df, - float _As); + float _as); // estimate filter stop-band attenuation given // _df : transition bandwidth (0 < _b < 0.5) -// _N : filter length +// _n : filter length float estimate_req_filter_As(float _df, - unsigned int _N); + unsigned int _n); // estimate filter transition bandwidth given -// _As : stop-band attenuation [dB], _As > 0 -// _N : filter length -float estimate_req_filter_df(float _As, - unsigned int _N); +// _as : stop-band attenuation [dB], _as > 0 +// _n : filter length +float estimate_req_filter_df(float _as, + unsigned int _n); // returns the Kaiser window beta factor give the filter's target // stop-band attenuation (As) [Vaidyanathan:1993] -// _As : target filter's stop-band attenuation [dB], _As > 0 -float kaiser_beta_As(float _As); +// _as : target filter's stop-band attenuation [dB], _as > 0 +float kaiser_beta_As(float _as); // Design FIR filter using Parks-McClellan algorithm @@ -2069,11 +2142,11 @@ typedef enum { // _h_len : length of filter (number of taps) // _num_bands : number of frequency bands // _bands : band edges, f in [0,0.5], [size: _num_bands x 2] -// _des : desired response [size: _num_bands x 1] -// _weights : response weighting [size: _num_bands x 1] +// _des : desired response, [size: _num_bands x 1] +// _weights : response weighting, [size: _num_bands x 1] // _wtype : weight types (e.g. LIQUID_FIRDESPM_FLATWEIGHT) [size: _num_bands x 1] // _btype : band type (e.g. LIQUID_FIRDESPM_BANDPASS) -// _h : output coefficients array [size: _h_len x 1] +// _h : output coefficients array, [size: _h_len x 1] int firdespm_run(unsigned int _h_len, unsigned int _num_bands, float * _bands, @@ -2086,12 +2159,12 @@ int firdespm_run(unsigned int _h_len, // run filter design for basic low-pass filter // _n : filter length, _n > 0 // _fc : cutoff frequency, 0 < _fc < 0.5 -// _As : stop-band attenuation [dB], _As > 0 +// _as : stop-band attenuation [dB], _as > 0 // _mu : fractional sample offset, -0.5 < _mu < 0.5 [ignored] // _h : output coefficient buffer, [size: _n x 1] int firdespm_lowpass(unsigned int _n, float _fc, - float _As, + float _as, float _mu, float * _h); @@ -2112,8 +2185,8 @@ typedef struct firdespm_s * firdespm; // _h_len : length of filter (number of taps) // _num_bands : number of frequency bands // _bands : band edges, f in [0,0.5], [size: _num_bands x 2] -// _des : desired response [size: _num_bands x 1] -// _weights : response weighting [size: _num_bands x 1] +// _des : desired response, [size: _num_bands x 1] +// _weights : response weighting, [size: _num_bands x 1] // _wtype : weight types (e.g. LIQUID_FIRDESPM_FLATWEIGHT) [size: _num_bands x 1] // _btype : band type (e.g. LIQUID_FIRDESPM_BANDPASS) firdespm firdespm_create(unsigned int _h_len, @@ -2138,6 +2211,9 @@ firdespm firdespm_create_callback(unsigned int _h_len, firdespm_callback _callback, void * _userdata); +// Copy object including all internal objects and state +firdespm firdespm_copy(firdespm _q); + // destroy firdespm object int firdespm_destroy(firdespm _q); @@ -2147,28 +2223,57 @@ int firdespm_print(firdespm _q); // execute filter design, storing result in _h int firdespm_execute(firdespm _q, float * _h); +// Design halfband filter using Parks-McClellan algorithm given the +// filter length and desired transition band +// _m : filter semi-length, _m > 0 +// _ft : filter transition band (relative), 0 < _ft < 0.5 +// _h : output coefficient buffer, [size: 4 _m + 1 x 1] +int liquid_firdespm_halfband_ft(unsigned int _m, + float _ft, + float * _h); -// Design FIR using kaiser window +// Design halfband filter using Parks-McClellan algorithm given the +// filter length and desired stop-band suppression +// _m : filter semi-length, _m > 0 +// _as : filter stop-band suppression [dB], _as > 0 +// _h : output coefficient buffer, [size: 4 _m + 1 x 1] +int liquid_firdespm_halfband_as(unsigned int _m, + float _as, + float * _h); + +// Design FIR filter using generic window/taper method +// _wtype : window type, e.g. LIQUID_WINDOW_HAMMING // _n : filter length, _n > 0 // _fc : cutoff frequency, 0 < _fc < 0.5 -// _As : stop-band attenuation [dB], _As > 0 +// _arg : window-specific argument, if required +// _h : output coefficient buffer, [size: _n x 1] +int liquid_firdes_windowf(int _wtype, + unsigned int _n, + float _fc, + float _arg, + float * _h); + +// Design FIR using Kaiser window +// _n : filter length, _n > 0 +// _fc : cutoff frequency, 0 < _fc < 0.5 +// _as : stop-band attenuation [dB], _as > 0 // _mu : fractional sample offset, -0.5 < _mu < 0.5 // _h : output coefficient buffer, [size: _n x 1] -void liquid_firdes_kaiser(unsigned int _n, - float _fc, - float _As, - float _mu, - float *_h); +int liquid_firdes_kaiser(unsigned int _n, + float _fc, + float _as, + float _mu, + float *_h); // Design finite impulse response notch filter // _m : filter semi-length, m in [1,1000] // _f0 : filter notch frequency (normalized), -0.5 <= _fc <= 0.5 -// _As : stop-band attenuation [dB], _As > 0 +// _as : stop-band attenuation [dB], _as > 0 // _h : output coefficient buffer, [size: 2*_m+1 x 1] -void liquid_firdes_notch(unsigned int _m, - float _f0, - float _As, - float * _h); +int liquid_firdes_notch(unsigned int _m, + float _f0, + float _as, + float * _h); // Design FIR doppler filter // _n : filter length @@ -2176,11 +2281,11 @@ void liquid_firdes_notch(unsigned int _m, // _K : Rice fading factor (K >= 0) // _theta : LoS component angle of arrival // _h : output coefficient buffer -void liquid_firdes_doppler(unsigned int _n, - float _fd, - float _K, - float _theta, - float * _h); +int liquid_firdes_doppler(unsigned int _n, + float _fd, + float _K, + float _theta, + float * _h); // Design Nyquist raised-cosine filter @@ -2189,39 +2294,39 @@ void liquid_firdes_doppler(unsigned int _n, // _beta : rolloff factor (0 < beta <= 1) // _dt : fractional sample delay // _h : output coefficient buffer (length: 2*k*m+1) -void liquid_firdes_rcos(unsigned int _k, - unsigned int _m, - float _beta, - float _dt, - float * _h); +int liquid_firdes_rcos(unsigned int _k, + unsigned int _m, + float _beta, + float _dt, + float * _h); // Design root-Nyquist raised-cosine filter -void liquid_firdes_rrcos(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_rrcos(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); // Design root-Nyquist Kaiser filter -void liquid_firdes_rkaiser(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_rkaiser(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); // Design (approximate) root-Nyquist Kaiser filter -void liquid_firdes_arkaiser(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_arkaiser(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); // Design root-Nyquist harris-Moerder filter -void liquid_firdes_hM3(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_hM3(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); // Design GMSK transmit and receive filters -void liquid_firdes_gmsktx(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); -void liquid_firdes_gmskrx(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_gmsktx(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_gmskrx(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); // Design flipped exponential Nyquist/root-Nyquist filters -void liquid_firdes_fexp( unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); -void liquid_firdes_rfexp(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_fexp( unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_rfexp(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); // Design flipped hyperbolic secand Nyquist/root-Nyquist filters -void liquid_firdes_fsech( unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); -void liquid_firdes_rfsech(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_fsech( unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_rfsech(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); // Design flipped arc-hyperbolic secand Nyquist/root-Nyquist filters -void liquid_firdes_farcsech( unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); -void liquid_firdes_rfarcsech(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_farcsech( unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); +int liquid_firdes_rfarcsech(unsigned int _k, unsigned int _m, float _beta, float _dt, float * _h); // Compute group delay for an FIR filter // _h : filter coefficients array @@ -2248,7 +2353,7 @@ float iir_group_delay(float * _b, // // Compute auto-correlation of filter at a specific lag. // -// _h : filter coefficients [size: _h_len x 1] +// _h : filter coefficients, [size: _h_len x 1] // _h_len : filter length // _lag : auto-correlation lag (samples) float liquid_filter_autocorr(float * _h, @@ -2259,9 +2364,9 @@ float liquid_filter_autocorr(float * _h, // // Compute cross-correlation of two filters at a specific lag. // -// _h : filter coefficients [size: _h_len] +// _h : filter coefficients, [size: _h_len] // _h_len : filter length -// _g : filter coefficients [size: _g_len] +// _g : filter coefficients, [size: _g_len] // _g_len : filter length // _lag : cross-correlation lag (samples) float liquid_filter_crosscorr(float * _h, @@ -2275,7 +2380,7 @@ float liquid_filter_crosscorr(float * _h, // Compute inter-symbol interference (ISI)--both RMS and // maximum--for the filter _h. // -// _h : filter coefficients [size: 2*_k*_m+1 x 1] +// _h : filter coefficients, [size: 2*_k*_m+1 x 1] // _k : filter over-sampling rate (samples/symbol) // _m : filter delay (symbols) // _rms : output root mean-squared ISI @@ -2288,7 +2393,7 @@ void liquid_filter_isi(float * _h, // Compute relative out-of-band energy // -// _h : filter coefficients [size: _h_len x 1] +// _h : filter coefficients, [size: _h_len x 1] // _h_len : filter length // _fc : analysis cut-off frequency // _nfft : fft size @@ -2297,6 +2402,28 @@ float liquid_filter_energy(float * _h, float _fc, unsigned int _nfft); +// Get static frequency response from filter coefficients at particular +// frequency with real-valued coefficients +// _h : coefficients, [size: _h_len x 1] +// _h_len : length of coefficients array +// _fc : center frequency for analysis, -0.5 <= _fc <= 0.5 +// _H : pointer to output value +int liquid_freqrespf(float * _h, + unsigned int _h_len, + float _fc, + liquid_float_complex * _H); + +// Get static frequency response from filter coefficients at particular +// frequency with complex coefficients +// _h : coefficients, [size: _h_len x 1] +// _h_len : length of coefficients array +// _fc : center frequency for analysis, -0.5 <= _fc <= 0.5 +// _H : pointer to output value +int liquid_freqrespcf(liquid_float_complex * _h, + unsigned int _h_len, + float _fc, + liquid_float_complex * _H); + // // IIR filter design @@ -2332,46 +2459,46 @@ typedef enum { // _n : filter order // _fc : low-pass prototype cut-off frequency // _f0 : center frequency (band-pass, band-stop) -// _Ap : pass-band ripple in dB -// _As : stop-band ripple in dB -// _B : numerator -// _A : denominator -void liquid_iirdes(liquid_iirdes_filtertype _ftype, - liquid_iirdes_bandtype _btype, - liquid_iirdes_format _format, - unsigned int _n, - float _fc, - float _f0, - float _Ap, - float _As, - float * _B, - float * _A); +// _ap : pass-band ripple in dB +// _as : stop-band ripple in dB +// _b : numerator +// _a : denominator +int liquid_iirdes(liquid_iirdes_filtertype _ftype, + liquid_iirdes_bandtype _btype, + liquid_iirdes_format _format, + unsigned int _n, + float _fc, + float _f0, + float _ap, + float _as, + float * _b, + float * _a); // compute analog zeros, poles, gain for specific filter types -void butter_azpkf(unsigned int _n, - liquid_float_complex * _za, - liquid_float_complex * _pa, - liquid_float_complex * _ka); -void cheby1_azpkf(unsigned int _n, - float _ep, - liquid_float_complex * _z, - liquid_float_complex * _p, - liquid_float_complex * _k); -void cheby2_azpkf(unsigned int _n, - float _es, - liquid_float_complex * _z, - liquid_float_complex * _p, - liquid_float_complex * _k); -void ellip_azpkf(unsigned int _n, - float _ep, - float _es, +int butter_azpkf(unsigned int _n, + liquid_float_complex * _za, + liquid_float_complex * _pa, + liquid_float_complex * _ka); +int cheby1_azpkf(unsigned int _n, + float _ep, + liquid_float_complex * _z, + liquid_float_complex * _p, + liquid_float_complex * _k); +int cheby2_azpkf(unsigned int _n, + float _es, + liquid_float_complex * _z, + liquid_float_complex * _p, + liquid_float_complex * _k); +int ellip_azpkf(unsigned int _n, + float _ep, + float _es, + liquid_float_complex * _z, + liquid_float_complex * _p, + liquid_float_complex * _k); +int bessel_azpkf(unsigned int _n, liquid_float_complex * _z, liquid_float_complex * _p, liquid_float_complex * _k); -void bessel_azpkf(unsigned int _n, - liquid_float_complex * _z, - liquid_float_complex * _p, - liquid_float_complex * _k); // compute frequency pre-warping factor float iirdes_freqprewarp(liquid_iirdes_bandtype _btype, @@ -2387,15 +2514,43 @@ float iirdes_freqprewarp(liquid_iirdes_bandtype _btype, // _zd : output digital zeros [length: _npa] // _pd : output digital poles [length: _npa] // _kd : output digital gain (should actually be real-valued) -void bilinear_zpkf(liquid_float_complex * _za, - unsigned int _nza, - liquid_float_complex * _pa, - unsigned int _npa, - liquid_float_complex _ka, - float _m, - liquid_float_complex * _zd, - liquid_float_complex * _pd, - liquid_float_complex * _kd); +int bilinear_zpkf(liquid_float_complex * _za, + unsigned int _nza, + liquid_float_complex * _pa, + unsigned int _npa, + liquid_float_complex _ka, + float _m, + liquid_float_complex * _zd, + liquid_float_complex * _pd, + liquid_float_complex * _kd); + +// compute bilinear z-transform using polynomial expansion in numerator and +// denominator +// +// b[0] + b[1]*s + ... + b[nb]*s^(nb-1) +// H(s) = ------------------------------------ +// a[0] + a[1]*s + ... + a[na]*s^(na-1) +// +// computes H(z) = H( s -> _m*(z-1)/(z+1) ) and expands as +// +// bd[0] + bd[1]*z^-1 + ... + bd[nb]*z^-n +// H(z) = -------------------------------------- +// ad[0] + ad[1]*z^-1 + ... + ad[nb]*z^-m +// +// _b : numerator array, [size: _b_order+1] +// _b_order : polynomial order of _b +// _a : denominator array, [size: _a_order+1] +// _a_order : polynomial order of _a +// _m : bilateral warping factor +// _bd : output digital filter numerator, [size: _b_order+1] +// _ad : output digital filter numerator, [size: _a_order+1] +int bilinear_nd(liquid_float_complex * _b, + unsigned int _b_order, + liquid_float_complex * _a, + unsigned int _a_order, + float _m, + liquid_float_complex * _bd, + liquid_float_complex * _ad); // digital z/p/k low-pass to high-pass // _zd : digital zeros (low-pass prototype), [length: _n] @@ -2403,11 +2558,11 @@ void bilinear_zpkf(liquid_float_complex * _za, // _n : low-pass filter order // _zdt : output digital zeros transformed [length: _n] // _pdt : output digital poles transformed [length: _n] -void iirdes_dzpk_lp2hp(liquid_float_complex * _zd, - liquid_float_complex * _pd, - unsigned int _n, - liquid_float_complex * _zdt, - liquid_float_complex * _pdt); +int iirdes_dzpk_lp2hp(liquid_float_complex * _zd, + liquid_float_complex * _pd, + unsigned int _n, + liquid_float_complex * _zdt, + liquid_float_complex * _pdt); // digital z/p/k low-pass to band-pass // _zd : digital zeros (low-pass prototype), [length: _n] @@ -2416,12 +2571,12 @@ void iirdes_dzpk_lp2hp(liquid_float_complex * _zd, // _f0 : center frequency // _zdt : output digital zeros transformed [length: 2*_n] // _pdt : output digital poles transformed [length: 2*_n] -void iirdes_dzpk_lp2bp(liquid_float_complex * _zd, - liquid_float_complex * _pd, - unsigned int _n, - float _f0, - liquid_float_complex * _zdt, - liquid_float_complex * _pdt); +int iirdes_dzpk_lp2bp(liquid_float_complex * _zd, + liquid_float_complex * _pd, + unsigned int _n, + float _f0, + liquid_float_complex * _zdt, + liquid_float_complex * _pdt); // convert discrete z/p/k form to transfer function // _zd : digital zeros [length: _n] @@ -2430,27 +2585,27 @@ void iirdes_dzpk_lp2bp(liquid_float_complex * _zd, // _kd : digital gain // _b : output numerator [length: _n+1] // _a : output denominator [length: _n+1] -void iirdes_dzpk2tff(liquid_float_complex * _zd, - liquid_float_complex * _pd, - unsigned int _n, - liquid_float_complex _kd, - float * _b, - float * _a); +int iirdes_dzpk2tff(liquid_float_complex * _zd, + liquid_float_complex * _pd, + unsigned int _n, + liquid_float_complex _kd, + float * _b, + float * _a); // convert discrete z/p/k form to second-order sections // _zd : digital zeros [length: _n] // _pd : digital poles [length: _n] // _n : filter order // _kd : digital gain -// _B : output numerator [size: 3 x L+r] -// _A : output denominator [size: 3 x L+r] +// _b : output numerator, [size: 3 x L+r] +// _a : output denominator, [size: 3 x L+r] // where r = _n%2, L = (_n-r)/2 -void iirdes_dzpk2sosf(liquid_float_complex * _zd, - liquid_float_complex * _pd, - unsigned int _n, - liquid_float_complex _kd, - float * _B, - float * _A); +int iirdes_dzpk2sosf(liquid_float_complex * _zd, + liquid_float_complex * _pd, + unsigned int _n, + liquid_float_complex _kd, + float * _b, + float * _a); // additional IIR filter design templates @@ -2462,8 +2617,8 @@ void iirdes_dzpk2sosf(liquid_float_complex * _zd, // _w : filter bandwidth // _zeta : damping factor (1/sqrt(2) suggested) // _K : loop gain (1000 suggested) -// _b : output feed-forward coefficients [size: 3 x 1] -// _a : output feed-back coefficients [size: 3 x 1] +// _b : output feed-forward coefficients, [size: 3 x 1] +// _a : output feed-back coefficients, [size: 3 x 1] void iirdes_pll_active_lag(float _w, float _zeta, float _K, @@ -2478,8 +2633,8 @@ void iirdes_pll_active_lag(float _w, // _w : filter bandwidth // _zeta : damping factor (1/sqrt(2) suggested) // _K : loop gain (1000 suggested) -// _b : output feed-forward coefficients [size: 3 x 1] -// _a : output feed-back coefficients [size: 3 x 1] +// _b : output feed-forward coefficients, [size: 3 x 1] +// _a : output feed-back coefficients, [size: 3 x 1] void iirdes_pll_active_PI(float _w, float _zeta, float _K, @@ -2487,8 +2642,8 @@ void iirdes_pll_active_PI(float _w, float * _a); // checks stability of iir filter -// _b : feed-forward coefficients [size: _n x 1] -// _a : feed-back coefficients [size: _n x 1] +// _b : feed-forward coefficients, [size: _n x 1] +// _a : feed-back coefficients, [size: _n x 1] // _n : number of coefficients int iirdes_isstable(float * _b, float * _a, @@ -2499,11 +2654,11 @@ int iirdes_isstable(float * _b, // // compute the linear prediction coefficients for an input signal _x -// _x : input signal [size: _n x 1] +// _x : input signal, [size: _n x 1] // _n : input signal length // _p : prediction filter order -// _a : prediction filter [size: _p+1 x 1] -// _e : prediction error variance [size: _p+1 x 1] +// _a : prediction filter, [size: _p+1 x 1] +// _e : prediction error variance, [size: _p+1 x 1] void liquid_lpc(float * _x, unsigned int _n, unsigned int _p, @@ -2512,10 +2667,10 @@ void liquid_lpc(float * _x, // solve the Yule-Walker equations using Levinson-Durbin recursion // for _symmetric_ autocorrelation -// _r : autocorrelation array [size: _p+1 x 1] +// _r : autocorrelation array, [size: _p+1 x 1] // _p : filter order -// _a : output coefficients [size: _p+1 x 1] -// _e : error variance [size: _p+1 x 1] +// _a : output coefficients, [size: _p+1 x 1] +// _e : error variance, [size: _p+1 x 1] // // NOTES: // By definition _a[0] = 1.0 @@ -2549,44 +2704,44 @@ AUTOCORR() AUTOCORR(_create)(unsigned int _window_size, \ unsigned int _delay); \ \ /* Destroy auto-correlator object, freeing internal memory */ \ -void AUTOCORR(_destroy)(AUTOCORR() _q); \ +int AUTOCORR(_destroy)(AUTOCORR() _q); \ \ /* Reset auto-correlator object's internals */ \ -void AUTOCORR(_reset)(AUTOCORR() _q); \ +int AUTOCORR(_reset)(AUTOCORR() _q); \ \ /* Print auto-correlator parameters to stdout */ \ -void AUTOCORR(_print)(AUTOCORR() _q); \ +int AUTOCORR(_print)(AUTOCORR() _q); \ \ /* Push sample into auto-correlator object */ \ /* _q : auto-correlator object */ \ /* _x : single input sample */ \ -void AUTOCORR(_push)(AUTOCORR() _q, \ - TI _x); \ +int AUTOCORR(_push)(AUTOCORR() _q, \ + TI _x); \ \ /* Write block of samples to auto-correlator object */ \ /* _q : auto-correlation object */ \ -/* _x : input array [size: _n x 1] */ \ +/* _x : input array, [size: _n x 1] */ \ /* _n : number of input samples */ \ -void AUTOCORR(_write)(AUTOCORR() _q, \ - TI * _x, \ - unsigned int _n); \ +int AUTOCORR(_write)(AUTOCORR() _q, \ + TI * _x, \ + unsigned int _n); \ \ /* Compute single auto-correlation output */ \ /* _q : auto-correlator object */ \ /* _rxx : auto-correlated output */ \ -void AUTOCORR(_execute)(AUTOCORR() _q, \ - TO * _rxx); \ +int AUTOCORR(_execute)(AUTOCORR() _q, \ + TO * _rxx); \ \ /* Compute auto-correlation on block of samples; the input and output */ \ /* arrays may have the same pointer */ \ /* _q : auto-correlation object */ \ -/* _x : input array [size: _n x 1] */ \ +/* _x : input array, [size: _n x 1] */ \ /* _n : number of input, output samples */ \ -/* _rxx : input array [size: _n x 1] */ \ -void AUTOCORR(_execute_block)(AUTOCORR() _q, \ - TI * _x, \ - unsigned int _n, \ - TO * _rxx); \ +/* _rxx : input array, [size: _n x 1] */ \ +int AUTOCORR(_execute_block)(AUTOCORR() _q, \ + TI * _x, \ + unsigned int _n, \ + TO * _rxx); \ \ /* return sum of squares of buffered samples */ \ float AUTOCORR(_get_energy)(AUTOCORR() _q); \ @@ -2622,7 +2777,7 @@ typedef struct FIRFILT(_s) * FIRFILT(); \ \ /* Create a finite impulse response filter (firfilt) object by directly */ \ /* specifying the filter coefficients in an array */ \ -/* _h : filter coefficients [size: _n x 1] */ \ +/* _h : filter coefficients, [size: _n x 1] */ \ /* _n : number of filter coefficients, _n > 0 */ \ FIRFILT() FIRFILT(_create)(TC * _h, \ unsigned int _n); \ @@ -2630,11 +2785,11 @@ FIRFILT() FIRFILT(_create)(TC * _h, \ /* Create object using Kaiser-Bessel windowed sinc method */ \ /* _n : filter length, _n > 0 */ \ /* _fc : filter normalized cut-off frequency, 0 < _fc < 0.5 */ \ -/* _As : filter stop-band attenuation [dB], _As > 0 */ \ +/* _as : filter stop-band attenuation [dB], _as > 0 */ \ /* _mu : fractional sample offset, -0.5 < _mu < 0.5 */ \ FIRFILT() FIRFILT(_create_kaiser)(unsigned int _n, \ float _fc, \ - float _As, \ + float _as, \ float _mu); \ \ /* Create object from square-root Nyquist prototype. */ \ @@ -2654,10 +2809,10 @@ FIRFILT() FIRFILT(_create_rnyquist)(int _type, \ /* Create object from Parks-McClellan algorithm prototype */ \ /* _h_len : filter length, _h_len > 0 */ \ /* _fc : cutoff frequency, 0 < _fc < 0.5 */ \ -/* _As : stop-band attenuation [dB], _As > 0 */ \ +/* _as : stop-band attenuation [dB], _as > 0 */ \ FIRFILT() FIRFILT(_create_firdespm)(unsigned int _h_len, \ float _fc, \ - float _As); \ + float _as); \ \ /* Create rectangular filter prototype; that is */ \ /* \( \vec{h} = \{ 1, 1, 1, \ldots 1 \} \) */ \ @@ -2666,16 +2821,16 @@ FIRFILT() FIRFILT(_create_rect)(unsigned int _n); \ \ /* Create DC blocking filter from prototype */ \ /* _m : prototype filter semi-length such that filter length is 2*m+1 */ \ -/* _As : prototype filter stop-band attenuation [dB], _As > 0 */ \ +/* _as : prototype filter stop-band attenuation [dB], _as > 0 */ \ FIRFILT() FIRFILT(_create_dc_blocker)(unsigned int _m, \ - float _As); \ + float _as); \ \ /* Create notch filter from prototype */ \ /* _m : prototype filter semi-length such that filter length is 2*m+1 */ \ -/* _As : prototype filter stop-band attenuation [dB], _As > 0 */ \ +/* _as : prototype filter stop-band attenuation [dB], _as > 0 */ \ /* _f0 : center frequency for notch, _fc in [-0.5, 0.5] */ \ FIRFILT() FIRFILT(_create_notch)(unsigned int _m, \ - float _As, \ + float _as, \ float _f0); \ \ /* Re-create filter object of potentially a different length with */ \ @@ -2688,47 +2843,58 @@ FIRFILT() FIRFILT(_recreate)(FIRFILT() _q, \ TC * _h, \ unsigned int _n); \ \ +/* Copy object including all internal objects and state */ \ +FIRFILT() FIRFILT(_copy)(FIRFILT() _q); \ + \ /* Destroy filter object and free all internal memory */ \ -void FIRFILT(_destroy)(FIRFILT() _q); \ +int FIRFILT(_destroy)(FIRFILT() _q); \ \ /* Reset filter object's internal buffer */ \ -void FIRFILT(_reset)(FIRFILT() _q); \ +int FIRFILT(_reset)(FIRFILT() _q); \ \ /* Print filter object information to stdout */ \ -void FIRFILT(_print)(FIRFILT() _q); \ +int FIRFILT(_print)(FIRFILT() _q); \ \ /* Set output scaling for filter */ \ /* _q : filter object */ \ /* _scale : scaling factor to apply to each output sample */ \ -void FIRFILT(_set_scale)(FIRFILT() _q, \ - TC _scale); \ +int FIRFILT(_set_scale)(FIRFILT() _q, \ + TC _scale); \ \ /* Get output scaling for filter */ \ /* _q : filter object */ \ /* _scale : scaling factor applied to each output sample */ \ -void FIRFILT(_get_scale)(FIRFILT() _q, \ - TC * _scale); \ +int FIRFILT(_get_scale)(FIRFILT() _q, \ + TC * _scale); \ \ /* Push sample into filter object's internal buffer */ \ /* _q : filter object */ \ /* _x : single input sample */ \ -void FIRFILT(_push)(FIRFILT() _q, \ - TI _x); \ +int FIRFILT(_push)(FIRFILT() _q, \ + TI _x); \ \ /* Write block of samples into filter object's internal buffer */ \ /* _q : filter object */ \ /* _x : buffer of input samples, [size: _n x 1] */ \ /* _n : number of input samples */ \ -void FIRFILT(_write)(FIRFILT() _q, \ - TI * _x, \ - unsigned int _n); \ +int FIRFILT(_write)(FIRFILT() _q, \ + TI * _x, \ + unsigned int _n); \ \ /* Execute vector dot product on the filter's internal buffer and */ \ /* coefficients */ \ /* _q : filter object */ \ /* _y : pointer to single output sample */ \ -void FIRFILT(_execute)(FIRFILT() _q, \ - TO * _y); \ +int FIRFILT(_execute)(FIRFILT() _q, \ + TO * _y); \ + \ +/* Execute filter on one sample, equivalent to push() and execute() */ \ +/* _q : filter object */ \ +/* _x : single input sample */ \ +/* _y : pointer to single output sample */ \ +int FIRFILT(_execute_one)(FIRFILT() _q, \ + TI _x, \ + TO * _y); \ \ /* Execute the filter on a block of input samples; in-place operation */ \ /* is permitted (_x and _y may point to the same place in memory) */ \ @@ -2736,10 +2902,10 @@ void FIRFILT(_execute)(FIRFILT() _q, \ /* _x : pointer to input array, [size: _n x 1] */ \ /* _n : number of input, output samples */ \ /* _y : pointer to output array, [size: _n x 1] */ \ -void FIRFILT(_execute_block)(FIRFILT() _q, \ - TI * _x, \ - unsigned int _n, \ - TO * _y); \ +int FIRFILT(_execute_block)(FIRFILT() _q, \ + TI * _x, \ + unsigned int _n, \ + TO * _y); \ \ /* Get length of filter object (number of internal coefficients) */ \ unsigned int FIRFILT(_get_length)(FIRFILT() _q); \ @@ -2749,7 +2915,7 @@ const TC * FIRFILT(_get_coefficients)(FIRFILT() _q); \ \ /* Copy internal coefficients to external buffer */ \ /* _q : filter object */ \ -/* _h : pointer to output coefficients array [size: _n x 1] */ \ +/* _h : pointer to output coefficients array, [size: _n x 1] */ \ int FIRFILT(_copy_coefficients)(FIRFILT() _q, \ TC * _h); \ \ @@ -2757,9 +2923,9 @@ int FIRFILT(_copy_coefficients)(FIRFILT() _q, \ /* _q : filter object */ \ /* _fc : normalized frequency for evaluation */ \ /* _H : pointer to output complex frequency response */ \ -void FIRFILT(_freqresponse)(FIRFILT() _q, \ - float _fc, \ - liquid_float_complex * _H); \ +int FIRFILT(_freqresponse)(FIRFILT() _q, \ + float _fc, \ + liquid_float_complex * _H); \ \ /* Compute and return group delay of filter object */ \ /* _q : filter object */ \ @@ -2892,45 +3058,48 @@ typedef struct FIRHILB(_s) * FIRHILB(); \ /* a Kaiser-Bessel window to a sinc function to guarantee zeros at all */ \ /* off-center odd indexed samples. */ \ /* _m : filter semi-length, delay is \( 2 m + 1 \) */ \ -/* _As : filter stop-band attenuation [dB] */ \ +/* _as : filter stop-band attenuation [dB] */ \ FIRHILB() FIRHILB(_create)(unsigned int _m, \ - float _As); \ + float _as); \ + \ +/* Copy object including all internal objects and state */ \ +FIRHILB() FIRHILB(_copy)(FIRHILB() _q); \ \ /* Destroy finite impulse response Hilbert transform, freeing all */ \ /* internally-allocted memory and objects. */ \ -void FIRHILB(_destroy)(FIRHILB() _q); \ +int FIRHILB(_destroy)(FIRHILB() _q); \ \ /* Print firhilb object internals to stdout */ \ -void FIRHILB(_print)(FIRHILB() _q); \ +int FIRHILB(_print)(FIRHILB() _q); \ \ /* Reset firhilb object internal state */ \ -void FIRHILB(_reset)(FIRHILB() _q); \ +int FIRHILB(_reset)(FIRHILB() _q); \ \ /* Execute Hilbert transform (real to complex) */ \ /* _q : Hilbert transform object */ \ /* _x : real-valued input sample */ \ /* _y : complex-valued output sample */ \ -void FIRHILB(_r2c_execute)(FIRHILB() _q, \ - T _x, \ - TC * _y); \ +int FIRHILB(_r2c_execute)(FIRHILB() _q, \ + T _x, \ + TC * _y); \ \ /* Execute Hilbert transform (complex to real) */ \ /* _q : Hilbert transform object */ \ /* _x : complex-valued input sample */ \ /* _y0 : real-valued output sample, lower side-band retained */ \ /* _y1 : real-valued output sample, upper side-band retained */ \ -void FIRHILB(_c2r_execute)(FIRHILB() _q, \ - TC _x, \ - T * _y0, \ - T * _y1); \ +int FIRHILB(_c2r_execute)(FIRHILB() _q, \ + TC _x, \ + T * _y0, \ + T * _y1); \ \ /* Execute Hilbert transform decimator (real to complex) */ \ /* _q : Hilbert transform object */ \ /* _x : real-valued input array, [size: 2 x 1] */ \ /* _y : complex-valued output sample */ \ -void FIRHILB(_decim_execute)(FIRHILB() _q, \ - T * _x, \ - TC * _y); \ +int FIRHILB(_decim_execute)(FIRHILB() _q, \ + T * _x, \ + TC * _y); \ \ /* Execute Hilbert transform decimator (real to complex) on a block of */ \ /* samples */ \ @@ -2938,18 +3107,18 @@ void FIRHILB(_decim_execute)(FIRHILB() _q, \ /* _x : real-valued input array, [size: 2*_n x 1] */ \ /* _n : number of output samples */ \ /* _y : complex-valued output array, [size: _n x 1] */ \ -void FIRHILB(_decim_execute_block)(FIRHILB() _q, \ - T * _x, \ - unsigned int _n, \ - TC * _y); \ +int FIRHILB(_decim_execute_block)(FIRHILB() _q, \ + T * _x, \ + unsigned int _n, \ + TC * _y); \ \ /* Execute Hilbert transform interpolator (real to complex) */ \ /* _q : Hilbert transform object */ \ /* _x : complex-valued input sample */ \ /* _y : real-valued output array, [size: 2 x 1] */ \ -void FIRHILB(_interp_execute)(FIRHILB() _q, \ - TC _x, \ - T * _y); \ +int FIRHILB(_interp_execute)(FIRHILB() _q, \ + TC _x, \ + T * _y); \ \ /* Execute Hilbert transform interpolator (complex to real) on a block */ \ /* of samples */ \ @@ -2957,10 +3126,10 @@ void FIRHILB(_interp_execute)(FIRHILB() _q, \ /* _x : complex-valued input array, [size: _n x 1] */ \ /* _n : number of *input* samples */ \ /* _y : real-valued output array, [size: 2*_n x 1] */ \ -void FIRHILB(_interp_execute_block)(FIRHILB() _q, \ - TC * _x, \ - unsigned int _n, \ - T * _y); \ +int FIRHILB(_interp_execute_block)(FIRHILB() _q, \ + TC * _x, \ + unsigned int _n, \ + T * _y); \ LIQUID_FIRHILB_DEFINE_API(LIQUID_FIRHILB_MANGLE_FLOAT, float, liquid_float_complex) //LIQUID_FIRHILB_DEFINE_API(LIQUID_FIRHILB_MANGLE_DOUBLE, double, liquid_double_complex) @@ -2987,12 +3156,15 @@ typedef struct IIRHILB(_s) * IIRHILB(); \ /* desired pass- and stop-band attenuation. */ \ /* _ftype : filter type (e.g. LIQUID_IIRDES_BUTTER) */ \ /* _n : filter order, _n > 0 */ \ -/* _Ap : pass-band ripple [dB], _Ap > 0 */ \ -/* _As : stop-band ripple [dB], _Ap > 0 */ \ +/* _ap : pass-band ripple [dB], _ap > 0 */ \ +/* _as : stop-band ripple [dB], _as > 0 */ \ IIRHILB() IIRHILB(_create)(liquid_iirdes_filtertype _ftype, \ unsigned int _n, \ - float _Ap, \ - float _As); \ + float _ap, \ + float _as); \ + \ +/* Copy object including all internal objects and state */ \ +IIRHILB() IIRHILB(_copy)(IIRHILB() _q); \ \ /* Create a default iirhilb object with a particular filter order. */ \ /* _n : filter order, _n > 0 */ \ @@ -3016,6 +3188,16 @@ void IIRHILB(_r2c_execute)(IIRHILB() _q, \ T _x, \ TC * _y); \ \ +/* Execute Hilbert transform (real to complex) on a block of samples */ \ +/* _q : Hilbert transform object */ \ +/* _x : real-valued input sample array, [size: _n x 1] */ \ +/* _n : number of input,output samples */ \ +/* _y : complex-valued output sample array, [size: _n x 1] */ \ +int IIRHILB(_r2c_execute_block)(IIRHILB() _q, \ + T * _x, \ + unsigned int _n, \ + TC * _y); \ + \ /* Execute Hilbert transform (complex to real) */ \ /* _q : Hilbert transform object */ \ /* _x : complex-valued input sample */ \ @@ -3024,6 +3206,16 @@ void IIRHILB(_c2r_execute)(IIRHILB() _q, \ TC _x, \ T * _y); \ \ +/* Execute Hilbert transform (complex to real) on a block of samples */ \ +/* _q : Hilbert transform object */ \ +/* _x : complex-valued input sample array, [size: _n x 1] */ \ +/* _n : number of input,output samples */ \ +/* _y : real-valued output sample array, [size: _n x 1] */ \ +int IIRHILB(_c2r_execute_block)(IIRHILB() _q, \ + TC * _x, \ + unsigned int _n, \ + T * _y); \ + \ /* Execute Hilbert transform decimator (real to complex) */ \ /* _q : Hilbert transform object */ \ /* _x : real-valued input array, [size: 2 x 1] */ \ @@ -3092,22 +3284,25 @@ FFTFILT() FFTFILT(_create)(TC * _h, \ unsigned int _h_len, \ unsigned int _n); \ \ +/* Copy object including all internal objects and state */ \ +FFTFILT() FFTFILT(_copy)(FFTFILT() _q); \ + \ /* Destroy filter object and free all internal memory */ \ -void FFTFILT(_destroy)(FFTFILT() _q); \ +int FFTFILT(_destroy)(FFTFILT() _q); \ \ /* Reset filter object's internal buffer */ \ -void FFTFILT(_reset)(FFTFILT() _q); \ +int FFTFILT(_reset)(FFTFILT() _q); \ \ /* Print filter object information to stdout */ \ -void FFTFILT(_print)(FFTFILT() _q); \ +int FFTFILT(_print)(FFTFILT() _q); \ \ /* Set output scaling for filter */ \ -void FFTFILT(_set_scale)(FFTFILT() _q, \ - TC _scale); \ +int FFTFILT(_set_scale)(FFTFILT() _q, \ + TC _scale); \ \ /* Get output scaling for filter */ \ -void FFTFILT(_get_scale)(FFTFILT() _q, \ - TC * _scale); \ +int FFTFILT(_get_scale)(FFTFILT() _q, \ + TC * _scale); \ \ /* Execute the filter on internal buffer and coefficients given a block */ \ /* of input samples; in-place operation is permitted (_x and _y may */ \ @@ -3115,9 +3310,9 @@ void FFTFILT(_get_scale)(FFTFILT() _q, \ /* _q : filter object */ \ /* _x : pointer to input data array, [size: _n x 1] */ \ /* _y : pointer to output data array, [size: _n x 1] */ \ -void FFTFILT(_execute)(FFTFILT() _q, \ - TI * _x, \ - TO * _y); \ +int FFTFILT(_execute)(FFTFILT() _q, \ + TI * _x, \ + TO * _y); \ \ /* Get length of filter object's internal coefficients */ \ unsigned int FFTFILT(_get_length)(FFTFILT() _q); \ @@ -3173,13 +3368,13 @@ IIRFILT() IIRFILT(_create)(TC * _b, \ TC * _a, \ unsigned int _na); \ \ -/* Create IIR filter using 2nd-order secitons from external */ \ +/* Create IIR filter using 2nd-order sections from external */ \ /* coefficients. */ \ -/* _B : feed-forward coefficients [size: _nsos x 3] */ \ -/* _A : feed-back coefficients [size: _nsos x 3] */ \ +/* _b : feed-forward coefficients, [size: _nsos x 3] */ \ +/* _a : feed-back coefficients, [size: _nsos x 3] */ \ /* _nsos : number of second-order sections (sos), _nsos > 0 */ \ -IIRFILT() IIRFILT(_create_sos)(TC * _B, \ - TC * _A, \ +IIRFILT() IIRFILT(_create_sos)(TC * _b, \ + TC * _a, \ unsigned int _nsos); \ \ /* Create IIR filter from design template */ \ @@ -3189,8 +3384,8 @@ IIRFILT() IIRFILT(_create_sos)(TC * _B, \ /* _order : filter order, _order > 0 */ \ /* _fc : low-pass prototype cut-off frequency, 0 <= _fc <= 0.5 */ \ /* _f0 : center frequency (band-pass, band-stop), 0 <= _f0 <= 0.5 */ \ -/* _Ap : pass-band ripple in dB, _Ap > 0 */ \ -/* _As : stop-band ripple in dB, _As > 0 */ \ +/* _ap : pass-band ripple in dB, _ap > 0 */ \ +/* _as : stop-band ripple in dB, _as > 0 */ \ IIRFILT() IIRFILT(_create_prototype)( \ liquid_iirdes_filtertype _ftype, \ liquid_iirdes_bandtype _btype, \ @@ -3198,8 +3393,8 @@ IIRFILT() IIRFILT(_create_prototype)( \ unsigned int _order, \ float _fc, \ float _f0, \ - float _Ap, \ - float _As); \ + float _ap, \ + float _as); \ \ /* Create simplified low-pass Butterworth IIR filter */ \ /* _order : filter order, _order > 0 */ \ @@ -3227,22 +3422,25 @@ IIRFILT() IIRFILT(_create_pll)(float _w, \ float _zeta, \ float _K); \ \ +/* Copy object including all internal objects and state */ \ +IIRFILT() IIRFILT(_copy)(IIRFILT() _q); \ + \ /* Destroy iirfilt object, freeing all internal memory */ \ -void IIRFILT(_destroy)(IIRFILT() _q); \ +int IIRFILT(_destroy)(IIRFILT() _q); \ \ /* Print iirfilt object properties to stdout */ \ -void IIRFILT(_print)(IIRFILT() _q); \ +int IIRFILT(_print)(IIRFILT() _q); \ \ /* Reset iirfilt object internals */ \ -void IIRFILT(_reset)(IIRFILT() _q); \ +int IIRFILT(_reset)(IIRFILT() _q); \ \ -/* Compute filter output given a signle input sample */ \ +/* Compute filter output given a single input sample */ \ /* _q : iirfilt object */ \ /* _x : input sample */ \ /* _y : output sample pointer */ \ -void IIRFILT(_execute)(IIRFILT() _q, \ - TI _x, \ - TO * _y); \ +int IIRFILT(_execute)(IIRFILT() _q, \ + TI _x, \ + TO * _y); \ \ /* Execute the filter on a block of input samples; */ \ /* in-place operation is permitted (the input and output buffers may be */ \ @@ -3251,10 +3449,10 @@ void IIRFILT(_execute)(IIRFILT() _q, \ /* _x : pointer to input array, [size: _n x 1] */ \ /* _n : number of input, output samples, _n > 0 */ \ /* _y : pointer to output array, [size: _n x 1] */ \ -void IIRFILT(_execute_block)(IIRFILT() _q, \ - TI * _x, \ - unsigned int _n, \ - TO * _y); \ +int IIRFILT(_execute_block)(IIRFILT() _q, \ + TI * _x, \ + unsigned int _n, \ + TO * _y); \ \ /* Return number of coefficients for iirfilt object (maximum between */ \ /* the feed-forward and feed-back coefficients). Note that the filter */ \ @@ -3265,9 +3463,15 @@ unsigned int IIRFILT(_get_length)(IIRFILT() _q); \ /* _q : filter object */ \ /* _fc : normalized frequency for evaluation */ \ /* _H : pointer to output complex frequency response */ \ -void IIRFILT(_freqresponse)(IIRFILT() _q, \ - float _fc, \ - liquid_float_complex * _H); \ +int IIRFILT(_freqresponse)(IIRFILT() _q, \ + float _fc, \ + liquid_float_complex * _H); \ + \ +/* Compute power spectral density response of filter object in dB */ \ +/* _q : filter object */ \ +/* _fc : normalized frequency for evaluation */ \ +float IIRFILT(_get_psd)(IIRFILT() _q, \ + float _fc); \ \ /* Compute and return group delay of filter object */ \ /* _q : filter object */ \ @@ -3290,67 +3494,73 @@ LIQUID_IIRFILT_DEFINE_API(LIQUID_IIRFILT_MANGLE_CCCF, liquid_float_complex) // -// iirfiltsos : infinite impulse respone filter (second-order sections) +// iirfiltsos : infinite impulse response filter (second-order sections) // #define LIQUID_IIRFILTSOS_MANGLE_RRRF(name) LIQUID_CONCAT(iirfiltsos_rrrf,name) #define LIQUID_IIRFILTSOS_MANGLE_CRCF(name) LIQUID_CONCAT(iirfiltsos_crcf,name) #define LIQUID_IIRFILTSOS_MANGLE_CCCF(name) LIQUID_CONCAT(iirfiltsos_cccf,name) -#define LIQUID_IIRFILTSOS_DEFINE_API(IIRFILTSOS,TO,TC,TI) \ -typedef struct IIRFILTSOS(_s) * IIRFILTSOS(); \ - \ -/* create 2nd-order infinite impulse reponse filter */ \ -/* _b : feed-forward coefficients [size: _3 x 1] */ \ -/* _a : feed-back coefficients [size: _3 x 1] */ \ -IIRFILTSOS() IIRFILTSOS(_create)(TC * _b, \ - TC * _a); \ - \ -/* explicitly set 2nd-order IIR filter coefficients */ \ -/* _q : iirfiltsos object */ \ -/* _b : feed-forward coefficients [size: _3 x 1] */ \ -/* _a : feed-back coefficients [size: _3 x 1] */ \ -void IIRFILTSOS(_set_coefficients)(IIRFILTSOS() _q, \ - TC * _b, \ - TC * _a); \ - \ -/* destroy iirfiltsos object, freeing all internal memory */ \ -void IIRFILTSOS(_destroy)(IIRFILTSOS() _q); \ - \ -/* print iirfiltsos object properties to stdout */ \ -void IIRFILTSOS(_print)(IIRFILTSOS() _q); \ - \ -/* clear/reset iirfiltsos object internals */ \ -void IIRFILTSOS(_reset)(IIRFILTSOS() _q); \ - \ -/* compute filter output */ \ -/* _q : iirfiltsos object */ \ -/* _x : input sample */ \ -/* _y : output sample pointer */ \ -void IIRFILTSOS(_execute)(IIRFILTSOS() _q, \ - TI _x, \ - TO * _y); \ - \ -/* compute filter output, direct-form I method */ \ -/* _q : iirfiltsos object */ \ -/* _x : input sample */ \ -/* _y : output sample pointer */ \ -void IIRFILTSOS(_execute_df1)(IIRFILTSOS() _q, \ - TI _x, \ - TO * _y); \ - \ -/* compute filter output, direct-form II method */ \ -/* _q : iirfiltsos object */ \ -/* _x : input sample */ \ -/* _y : output sample pointer */ \ -void IIRFILTSOS(_execute_df2)(IIRFILTSOS() _q, \ - TI _x, \ - TO * _y); \ - \ -/* compute and return group delay of filter object */ \ -/* _q : filter object */ \ -/* _fc : frequency to evaluate */ \ -float IIRFILTSOS(_groupdelay)(IIRFILTSOS() _q, \ - float _fc); \ +#define LIQUID_IIRFILTSOS_DEFINE_API(IIRFILTSOS,TO,TC,TI) \ + \ +/* Infinite impulse response filter primitive using second-order */ \ +/* sections */ \ +typedef struct IIRFILTSOS(_s) * IIRFILTSOS(); \ + \ +/* create 2nd-order infinite impulse response filter */ \ +/* _b : feed-forward coefficients, [size: _3 x 1] */ \ +/* _a : feed-back coefficients, [size: _3 x 1] */ \ +IIRFILTSOS() IIRFILTSOS(_create)(TC * _b, \ + TC * _a); \ + \ +/* Copy object including all internal objects and state */ \ +IIRFILTSOS() IIRFILTSOS(_copy)(IIRFILTSOS() _q); \ + \ +/* explicitly set 2nd-order IIR filter coefficients */ \ +/* _q : iirfiltsos object */ \ +/* _b : feed-forward coefficients, [size: 3 x 1] */ \ +/* _a : feed-back coefficients, [size: 3 x 1] */ \ +int IIRFILTSOS(_set_coefficients)(IIRFILTSOS() _q, \ + TC * _b, \ + TC * _a); \ + \ +/* destroy iirfiltsos object, freeing all internal memory */ \ +int IIRFILTSOS(_destroy)(IIRFILTSOS() _q); \ + \ +/* print iirfiltsos object properties to stdout */ \ +int IIRFILTSOS(_print)(IIRFILTSOS() _q); \ + \ +/* clear/reset iirfiltsos object internals */ \ +int IIRFILTSOS(_reset)(IIRFILTSOS() _q); \ + \ +/* compute filter output */ \ +/* _q : iirfiltsos object */ \ +/* _x : input sample */ \ +/* _y : output sample pointer */ \ +int IIRFILTSOS(_execute)(IIRFILTSOS() _q, \ + TI _x, \ + TO * _y); \ + \ +/* compute filter output, direct-form I method */ \ +/* _q : iirfiltsos object */ \ +/* _x : input sample */ \ +/* _y : output sample pointer */ \ +int IIRFILTSOS(_execute_df1)(IIRFILTSOS() _q, \ + TI _x, \ + TO * _y); \ + \ +/* compute filter output, direct-form II method */ \ +/* _q : iirfiltsos object */ \ +/* _x : input sample */ \ +/* _y : output sample pointer */ \ +int IIRFILTSOS(_execute_df2)(IIRFILTSOS() _q, \ + TI _x, \ + TO * _y); \ + \ +/* compute and return group delay of filter object */ \ +/* _q : filter object */ \ +/* _fc : frequency to evaluate */ \ +float IIRFILTSOS(_groupdelay)(IIRFILTSOS() _q, \ + float _fc); \ LIQUID_IIRFILTSOS_DEFINE_API(LIQUID_IIRFILTSOS_MANGLE_RRRF, float, @@ -3384,12 +3594,14 @@ LIQUID_IIRFILTSOS_DEFINE_API(LIQUID_IIRFILTSOS_MANGLE_CCCF, /* Finite impulse response (FIR) polyphase filter bank (PFB) */ \ typedef struct FIRPFB(_s) * FIRPFB(); \ \ -/* Create firpfb object with _M sub-filter each of length _h_len/_M */ \ +/* Create firpfb object with _num_filters sub-filters each having */ \ +/* exactly _h_len/_num_filters coefficients */ \ /* from an external array of coefficients */ \ -/* _M : number of filters in the bank, _M > 1 */ \ -/* _h : coefficients, [size: _h_len x 1] */ \ -/* _h_len : filter length (multiple of _M), _h_len >= _M */ \ -FIRPFB() FIRPFB(_create)(unsigned int _M, \ +/* _num_filters : number of filters in the bank, _num_filters > 1 */ \ +/* _h : coefficients, [size: _h_len x 1] */ \ +/* _h_len : complete filter length (where _h_len is a */ \ +/* multiple of _num_filters), _h_len >= _num_filters */ \ +FIRPFB() FIRPFB(_create)(unsigned int _num_filters, \ TC * _h, \ unsigned int _h_len); \ \ @@ -3398,42 +3610,42 @@ FIRPFB() FIRPFB(_create)(unsigned int _M, \ /* attenuation. This is equivalent to: */ \ /* FIRPFB(_create_kaiser)(_M, _m, 0.5, 60.0) */ \ /* which creates a Nyquist filter at the appropriate cut-off frequency. */ \ -/* _M : number of filters in the bank, _M > 0 */ \ -/* _m : filter semi-length [samples], _m > 0 */ \ -FIRPFB() FIRPFB(_create_default)(unsigned int _M, \ +/* _num_filters : number of filters in the bank, _num_filters > 1 */ \ +/* _m : filter semi-length [samples], _m > 0 */ \ +FIRPFB() FIRPFB(_create_default)(unsigned int _num_filters, \ unsigned int _m); \ \ /* Create firpfb object using Kaiser-Bessel windowed sinc filter design */ \ /* method */ \ -/* _M : number of filters in the bank, _M > 0 */ \ -/* _m : filter semi-length [samples], _m > 0 */ \ -/* _fc : filter normalized cut-off frequency, 0 < _fc < 0.5 */ \ -/* _As : filter stop-band suppression [dB], _As > 0 */ \ -FIRPFB() FIRPFB(_create_kaiser)(unsigned int _M, \ +/* _num_filters : number of filters in the bank, _num_filters > 1 */ \ +/* _m : filter semi-length [samples], _m > 0 */ \ +/* _fc : filter normalized cut-off frequency, 0 < _fc < 0.5 */ \ +/* _as : filter stop-band suppression [dB], _as > 0 */ \ +FIRPFB() FIRPFB(_create_kaiser)(unsigned int _num_filters, \ unsigned int _m, \ float _fc, \ - float _As); \ + float _as); \ \ /* Create firpfb from square-root Nyquist prototype */ \ -/* _type : filter type (e.g. LIQUID_FIRFILT_RRC) */ \ -/* _M : number of filters in the bank, _M > 0 */ \ -/* _k : nominal samples/symbol, _k > 1 */ \ -/* _m : filter delay [symbols], _m > 0 */ \ -/* _beta : rolloff factor, 0 < _beta <= 1 */ \ +/* _type : filter type (e.g. LIQUID_FIRFILT_RRC) */ \ +/* _num_filters : number of filters in the bank, _num_filters > 1 */ \ +/* _k : nominal samples/symbol, _k > 1 */ \ +/* _m : filter delay [symbols], _m > 0 */ \ +/* _beta : rolloff factor, 0 < _beta <= 1 */ \ FIRPFB() FIRPFB(_create_rnyquist)(int _type, \ - unsigned int _M, \ + unsigned int _num_filters, \ unsigned int _k, \ unsigned int _m, \ float _beta); \ \ /* Create from square-root derivative Nyquist prototype */ \ -/* _type : filter type (e.g. LIQUID_FIRFILT_RRC) */ \ -/* _M : number of filters in the bank, _M > 0 */ \ -/* _k : nominal samples/symbol, _k > 1 */ \ -/* _m : filter delay [symbols], _m > 0 */ \ -/* _beta : rolloff factor, 0 < _beta <= 1 */ \ +/* _type : filter type (e.g. LIQUID_FIRFILT_RRC) */ \ +/* _num_filters : number of filters in the bank, _num_filters > 1 */ \ +/* _k : nominal samples/symbol, _k > 1 */ \ +/* _m : filter delay [symbols], _m > 0 */ \ +/* _beta : rolloff factor, 0 < _beta <= 1 */ \ FIRPFB() FIRPFB(_create_drnyquist)(int _type, \ - unsigned int _M, \ + unsigned int _num_filters, \ unsigned int _k, \ unsigned int _m, \ float _beta); \ @@ -3441,72 +3653,76 @@ FIRPFB() FIRPFB(_create_drnyquist)(int _type, \ /* Re-create firpfb object of potentially a different length with */ \ /* different coefficients. If the length of the filter does not change, */ \ /* not memory reallocation is invoked. */ \ -/* _q : original firpfb object */ \ -/* _M : number of filters in the bank, _M > 1 */ \ -/* _h : coefficients, [size: _h_len x 1] */ \ -/* _h_len : filter length (multiple of _M), _h_len >= _M */ \ +/* _q : original firpfb object */ \ +/* _num_filters : number of filters in the bank, _num_filters > 1 */ \ +/* _h : coefficients, [size: _h_len x 1] */ \ +/* _h_len : complete filter length (where _h_len is a */ \ +/* multiple of _num_filters), _h_len >= _num_filters */ \ FIRPFB() FIRPFB(_recreate)(FIRPFB() _q, \ - unsigned int _M, \ + unsigned int _num_filters, \ TC * _h, \ unsigned int _h_len); \ \ +/* Copy object including all internal objects and state */ \ +FIRPFB() FIRPFB(_copy)(FIRPFB() _q); \ + \ /* Destroy firpfb object, freeing all internal memory and destroying */ \ /* all internal objects */ \ -void FIRPFB(_destroy)(FIRPFB() _q); \ +int FIRPFB(_destroy)(FIRPFB() _q); \ \ /* Print firpfb object's parameters to stdout */ \ -void FIRPFB(_print)(FIRPFB() _q); \ +int FIRPFB(_print)(FIRPFB() _q); \ \ /* Set output scaling for filter */ \ /* _q : filter object */ \ /* _scale : scaling factor to apply to each output sample */ \ -void FIRPFB(_set_scale)(FIRPFB() _q, \ +int FIRPFB(_set_scale)(FIRPFB() _q, \ TC _scale); \ \ /* Get output scaling for filter */ \ /* _q : filter object */ \ /* _scale : scaling factor applied to each output sample */ \ -void FIRPFB(_get_scale)(FIRPFB() _q, \ - TC * _scale); \ +int FIRPFB(_get_scale)(FIRPFB() _q, \ + TC * _scale); \ \ /* Reset firpfb object's internal buffer */ \ -void FIRPFB(_reset)(FIRPFB() _q); \ +int FIRPFB(_reset)(FIRPFB() _q); \ \ /* Push sample into filter object's internal buffer */ \ /* _q : filter object */ \ /* _x : single input sample */ \ -void FIRPFB(_push)(FIRPFB() _q, \ - TI _x); \ +int FIRPFB(_push)(FIRPFB() _q, \ + TI _x); \ \ /* Write a block of samples into object's internal buffer */ \ /* _q : filter object */ \ /* _x : single input sample */ \ -void FIRPFB(_write)(FIRPFB() _q, \ - TI * _x, \ - unsigned int _n); \ +int FIRPFB(_write)(FIRPFB() _q, \ + TI * _x, \ + unsigned int _n); \ \ /* Execute vector dot product on the filter's internal buffer and */ \ /* coefficients using the coefficients from sub-filter at index _i */ \ /* _q : firpfb object */ \ /* _i : index of filter to use */ \ /* _y : pointer to output sample */ \ -void FIRPFB(_execute)(FIRPFB() _q, \ - unsigned int _i, \ - TO * _y); \ +int FIRPFB(_execute)(FIRPFB() _q, \ + unsigned int _i, \ + TO * _y); \ \ /* Execute the filter on a block of input samples, all using index _i. */ \ /* In-place operation is permitted (_x and _y may point to the same */ \ /* place in memory) */ \ /* _q : firpfb object */ \ /* _i : index of filter to use */ \ -/* _x : pointer to input array [size: _n x 1] */ \ +/* _x : pointer to input array, [size: _n x 1] */ \ /* _n : number of input, output samples */ \ -/* _y : pointer to output array [size: _n x 1] */ \ -void FIRPFB(_execute_block)(FIRPFB() _q, \ - unsigned int _i, \ - TI * _x, \ - unsigned int _n, \ - TO * _y); \ +/* _y : pointer to output array, [size: _n x 1] */ \ +int FIRPFB(_execute_block)(FIRPFB() _q, \ + unsigned int _i, \ + TI * _x, \ + unsigned int _n, \ + TO * _y); \ LIQUID_FIRPFB_DEFINE_API(LIQUID_FIRPFB_MANGLE_RRRF, float, @@ -3541,54 +3757,57 @@ typedef struct FIRINTERP(_s) * FIRINTERP(); \ /* interpolator creates a polyphase filter bank to efficiently realize */ \ /* resampling of the input signal. */ \ /* If the input filter length is not a multiple of the interpolation */ \ -/* factor, the object internally pads the coefficients with zeros to */ \ -/* compensate. */ \ -/* _M : interpolation factor, _M >= 2 */ \ +/* factor \(M\), the object internally pads the coefficients with zeros */ \ +/* to compensate. */ \ +/* _interp : interpolation factor \(M\), _interp >= 2 */ \ /* _h : filter coefficients, [size: _h_len x 1] */ \ -/* _h_len : filter length, _h_len >= _M */ \ -FIRINTERP() FIRINTERP(_create)(unsigned int _M, \ +/* _h_len : filter length, _h_len >= _interp */ \ +FIRINTERP() FIRINTERP(_create)(unsigned int _interp, \ TC * _h, \ unsigned int _h_len); \ \ /* Create interpolator from filter prototype prototype (Kaiser-Bessel */ \ /* windowed-sinc function) */ \ -/* _M : interpolation factor, _M >= 2 */ \ +/* _interp : interpolation factor \(M\), _interp >= 2 */ \ /* _m : filter delay [symbols], _m >= 1 */ \ -/* _As : stop-band attenuation [dB], _As >= 0 */ \ -FIRINTERP() FIRINTERP(_create_kaiser)(unsigned int _M, \ +/* _as : stop-band attenuation [dB], _as >= 0 */ \ +FIRINTERP() FIRINTERP(_create_kaiser)(unsigned int _interp, \ unsigned int _m, \ - float _As); \ + float _as); \ \ /* Create interpolator object from filter prototype */ \ /* _type : filter type (e.g. LIQUID_FIRFILT_RCOS) */ \ -/* _M : interpolation factor, _M > 1 */ \ +/* _interp : interpolation factor \(M\), _interp >= 2 */ \ /* _m : filter delay (symbols), _m > 0 */ \ /* _beta : excess bandwidth factor, 0 <= _beta <= 1 */ \ /* _dt : fractional sample delay, -1 <= _dt <= 1 */ \ FIRINTERP() FIRINTERP(_create_prototype)(int _type, \ - unsigned int _M, \ + unsigned int _interp, \ unsigned int _m, \ float _beta, \ float _dt); \ \ /* Create linear interpolator object */ \ -/* _M : interpolation factor, _M > 1 */ \ -FIRINTERP() FIRINTERP(_create_linear)(unsigned int _M); \ +/* _interp : interpolation factor \(M\), _interp >= 2 */ \ +FIRINTERP() FIRINTERP(_create_linear)(unsigned int _interp); \ \ /* Create window interpolator object */ \ -/* _M : interpolation factor, _M > 1 */ \ +/* _interp : interpolation factor \(M\), _interp >= 2 */ \ /* _m : filter semi-length, _m > 0 */ \ -FIRINTERP() FIRINTERP(_create_window)(unsigned int _M, \ +FIRINTERP() FIRINTERP(_create_window)(unsigned int _interp, \ unsigned int _m); \ \ +/* Copy object including all internal objects and state */ \ +FIRINTERP() FIRINTERP(_copy)(FIRINTERP() _q); \ + \ /* Destroy firinterp object, freeing all internal memory */ \ -void FIRINTERP(_destroy)(FIRINTERP() _q); \ +int FIRINTERP(_destroy)(FIRINTERP() _q); \ \ /* Print firinterp object's internal properties to stdout */ \ -void FIRINTERP(_print)(FIRINTERP() _q); \ +int FIRINTERP(_print)(FIRINTERP() _q); \ \ /* Reset internal state */ \ -void FIRINTERP(_reset)(FIRINTERP() _q); \ +int FIRINTERP(_reset)(FIRINTERP() _q); \ \ /* Get interpolation rate */ \ unsigned int FIRINTERP(_get_interp_rate)(FIRINTERP() _q); \ @@ -3599,33 +3818,34 @@ unsigned int FIRINTERP(_get_sub_len)(FIRINTERP() _q); \ /* Set output scaling for interpolator */ \ /* _q : interpolator object */ \ /* _scale : scaling factor to apply to each output sample */ \ -void FIRINTERP(_set_scale)(FIRINTERP() _q, \ - TC _scale); \ +int FIRINTERP(_set_scale)(FIRINTERP() _q, \ + TC _scale); \ \ /* Get output scaling for interpolator */ \ /* _q : interpolator object */ \ /* _scale : scaling factor to apply to each output sample */ \ -void FIRINTERP(_get_scale)(FIRINTERP() _q, \ - TC * _scale); \ +int FIRINTERP(_get_scale)(FIRINTERP() _q, \ + TC * _scale); \ \ /* Execute interpolation on single input sample and write \(M\) output */ \ /* samples (\(M\) is the interpolation factor) */ \ /* _q : firinterp object */ \ /* _x : input sample */ \ -/* _y : output sample array, [size: _M x 1] */ \ -void FIRINTERP(_execute)(FIRINTERP() _q, \ - TI _x, \ - TO * _y); \ +/* _y : output sample array, [size: M x 1] */ \ +int FIRINTERP(_execute)(FIRINTERP() _q, \ + TI _x, \ + TO * _y); \ \ -/* Execute interpolation on block of input samples */ \ +/* Execute interpolation on block of input samples, increasing the */ \ +/* sample rate of the input by the interpolation factor \(M\). */ \ /* _q : firinterp object */ \ /* _x : input array, [size: _n x 1] */ \ /* _n : size of input array */ \ -/* _y : output sample array, [size: _M*_n x 1] */ \ -void FIRINTERP(_execute_block)(FIRINTERP() _q, \ - TI * _x, \ - unsigned int _n, \ - TO * _y); \ +/* _y : output sample array, [size: M*_n x 1] */ \ +int FIRINTERP(_execute_block)(FIRINTERP() _q, \ + TI * _x, \ + unsigned int _n, \ + TO * _y); \ LIQUID_FIRINTERP_DEFINE_API(LIQUID_FIRINTERP_MANGLE_RRRF, float, @@ -3686,8 +3906,8 @@ IIRINTERP() IIRINTERP(_create_default)(unsigned int _M, \ /* _order : filter order, _order > 0 */ \ /* _fc : low-pass prototype cut-off frequency, 0 <= _fc <= 0.5 */ \ /* _f0 : center frequency (band-pass, band-stop), 0 <= _f0 <= 0.5 */ \ -/* _Ap : pass-band ripple in dB, _Ap > 0 */ \ -/* _As : stop-band ripple in dB, _As > 0 */ \ +/* _ap : pass-band ripple in dB, _ap > 0 */ \ +/* _as : stop-band ripple in dB, _as > 0 */ \ IIRINTERP() IIRINTERP(_create_prototype)( \ unsigned int _M, \ liquid_iirdes_filtertype _ftype, \ @@ -3696,8 +3916,11 @@ IIRINTERP() IIRINTERP(_create_prototype)( \ unsigned int _order, \ float _fc, \ float _f0, \ - float _Ap, \ - float _As); \ + float _ap, \ + float _as); \ + \ +/* Copy object including all internal objects and state */ \ +IIRINTERP() IIRINTERP(_copy)(IIRINTERP() _q); \ \ /* Destroy interpolator object and free internal memory */ \ void IIRINTERP(_destroy)(IIRINTERP() _q); \ @@ -3774,10 +3997,10 @@ FIRDECIM() FIRDECIM(_create)(unsigned int _M, \ /* windowed-sinc function) */ \ /* _M : decimation factor, _M >= 2 */ \ /* _m : filter delay [symbols], _m >= 1 */ \ -/* _As : stop-band attenuation [dB], _As >= 0 */ \ +/* _as : stop-band attenuation [dB], _as >= 0 */ \ FIRDECIM() FIRDECIM(_create_kaiser)(unsigned int _M, \ unsigned int _m, \ - float _As); \ + float _as); \ \ /* Create decimator object from filter prototype */ \ /* _type : filter type (e.g. LIQUID_FIRFILT_RCOS) */ \ @@ -3791,14 +4014,17 @@ FIRDECIM() FIRDECIM(_create_prototype)(int _type, \ float _beta, \ float _dt); \ \ -/* Destroy decimator object, freeing all internal memory */ \ -void FIRDECIM(_destroy)(FIRDECIM() _q); \ +/* Copy object including all internal objects and state */ \ +FIRDECIM() FIRDECIM(_copy)(FIRDECIM() _q); \ \ -/* Print decimator object propreties to stdout */ \ -void FIRDECIM(_print)(FIRDECIM() _q); \ +/* Destroy decimator object, freeing all internal memory */ \ +int FIRDECIM(_destroy)(FIRDECIM() _q); \ + \ +/* Print decimator object properties to stdout */ \ +int FIRDECIM(_print)(FIRDECIM() _q); \ \ /* Reset decimator object internal state */ \ -void FIRDECIM(_reset)(FIRDECIM() _q); \ +int FIRDECIM(_reset)(FIRDECIM() _q); \ \ /* Get decimation rate */ \ unsigned int FIRDECIM(_get_decim_rate)(FIRDECIM() _q); \ @@ -3806,32 +4032,41 @@ unsigned int FIRDECIM(_get_decim_rate)(FIRDECIM() _q); \ /* Set output scaling for decimator */ \ /* _q : decimator object */ \ /* _scale : scaling factor to apply to each output sample */ \ -void FIRDECIM(_set_scale)(FIRDECIM() _q, \ - TC _scale); \ +int FIRDECIM(_set_scale)(FIRDECIM() _q, \ + TC _scale); \ \ /* Get output scaling for decimator */ \ /* _q : decimator object */ \ /* _scale : scaling factor to apply to each output sample */ \ -void FIRDECIM(_get_scale)(FIRDECIM() _q, \ - TC * _scale); \ +int FIRDECIM(_get_scale)(FIRDECIM() _q, \ + TC * _scale); \ + \ +/* Compute complex frequency response \(H\) of decimator on prototype */ \ +/* filter coefficients at a specific frequency \(f_c\) */ \ +/* _q : decimator object */ \ +/* _fc : normalized frequency for evaluation */ \ +/* _H : pointer to output complex frequency response */ \ +int FIRDECIM(_freqresp)(FIRDECIM() _q, \ + float _fc, \ + liquid_float_complex * _H); \ \ /* Execute decimator on _M input samples */ \ /* _q : decimator object */ \ /* _x : input samples, [size: _M x 1] */ \ /* _y : output sample pointer */ \ -void FIRDECIM(_execute)(FIRDECIM() _q, \ - TI * _x, \ - TO * _y); \ +int FIRDECIM(_execute)(FIRDECIM() _q, \ + TI * _x, \ + TO * _y); \ \ /* Execute decimator on block of _n*_M input samples */ \ /* _q : decimator object */ \ /* _x : input array, [size: _n*_M x 1] */ \ /* _n : number of _output_ samples */ \ /* _y : output array, [_size: _n x 1] */ \ -void FIRDECIM(_execute_block)(FIRDECIM() _q, \ - TI * _x, \ - unsigned int _n, \ - TO * _y); \ +int FIRDECIM(_execute_block)(FIRDECIM() _q, \ + TI * _x, \ + unsigned int _n, \ + TO * _y); \ LIQUID_FIRDECIM_DEFINE_API(LIQUID_FIRDECIM_MANGLE_RRRF, float, @@ -3893,8 +4128,8 @@ IIRDECIM() IIRDECIM(_create_default)(unsigned int _M, \ /* _order : filter order, _order > 0 */ \ /* _fc : low-pass prototype cut-off frequency, 0 <= _fc <= 0.5 */ \ /* _f0 : center frequency (band-pass, band-stop), 0 <= _f0 <= 0.5 */ \ -/* _Ap : pass-band ripple in dB, _Ap > 0 */ \ -/* _As : stop-band ripple in dB, _As > 0 */ \ +/* _ap : pass-band ripple in dB, _ap > 0 */ \ +/* _as : stop-band ripple in dB, _as > 0 */ \ IIRDECIM() IIRDECIM(_create_prototype)( \ unsigned int _M, \ liquid_iirdes_filtertype _ftype, \ @@ -3903,8 +4138,11 @@ IIRDECIM() IIRDECIM(_create_prototype)( \ unsigned int _order, \ float _fc, \ float _f0, \ - float _Ap, \ - float _As); \ + float _ap, \ + float _as); \ + \ +/* Copy object including all internal objects and state */ \ +IIRDECIM() IIRDECIM(_copy)(IIRDECIM() _q); \ \ /* Destroy decimator object and free internal memory */ \ void IIRDECIM(_destroy)(IIRDECIM() _q); \ @@ -3972,20 +4210,23 @@ typedef struct RESAMP2(_s) * RESAMP2(); \ /* Create half-band resampler from design prototype. */ \ /* _m : filter semi-length (h_len = 4*m+1), _m >= 2 */ \ /* _f0 : filter center frequency, -0.5 <= _f0 <= 0.5 */ \ -/* _As : stop-band attenuation [dB], _As > 0 */ \ +/* _as : stop-band attenuation [dB], _as > 0 */ \ RESAMP2() RESAMP2(_create)(unsigned int _m, \ float _f0, \ - float _As); \ + float _as); \ \ /* Re-create half-band resampler with new properties */ \ /* _q : original half-band resampler object */ \ /* _m : filter semi-length (h_len = 4*m+1), _m >= 2 */ \ /* _f0 : filter center frequency, -0.5 <= _f0 <= 0.5 */ \ -/* _As : stop-band attenuation [dB], _As > 0 */ \ +/* _as : stop-band attenuation [dB], _as > 0 */ \ RESAMP2() RESAMP2(_recreate)(RESAMP2() _q, \ unsigned int _m, \ float _f0, \ - float _As); \ + float _as); \ + \ +/* Copy object including all internal objects and state */ \ +RESAMP2() RESAMP2(_copy)(RESAMP2() _q); \ \ /* Destroy resampler, freeing all internally-allocated memory */ \ void RESAMP2(_destroy)(RESAMP2() _q); \ @@ -3999,7 +4240,7 @@ void RESAMP2(_reset)(RESAMP2() _q); \ /* Get resampler filter delay (semi-length m) */ \ unsigned int RESAMP2(_get_delay)(RESAMP2() _q); \ \ -/* Set output scaling for resampler */ \ +/* Get output scaling for resampler */ \ /* _q : resampler object */ \ /* _scale : scaling factor to apply to each output sample */ \ int RESAMP2(_set_scale)(RESAMP2() _q, \ @@ -4039,8 +4280,8 @@ void RESAMP2(_analyzer_execute)(RESAMP2() _q, \ /* \(x_0\) and \(x_1\), respectively. The sequential time-domain output */ \ /* samples are stored in \(y_0\) and \(y_1\). */ \ /* _q : resampler object */ \ -/* _x : input array [size: 2 x 1] */ \ -/* _y : output array [size: 2 x 1] */ \ +/* _x : input array, [size: 2 x 1] */ \ +/* _y : output array, [size: 2 x 1] */ \ void RESAMP2(_synthesizer_execute)(RESAMP2() _q, \ TI * _x, \ TO * _y); \ @@ -4048,7 +4289,7 @@ void RESAMP2(_synthesizer_execute)(RESAMP2() _q, \ /* Execute resampler as half-band decimator on a pair of sequential */ \ /* time-domain input samples. */ \ /* _q : resampler object */ \ -/* _x : input array [size: 2 x 1] */ \ +/* _x : input array, [size: 2 x 1] */ \ /* _y : output sample pointer */ \ void RESAMP2(_decim_execute)(RESAMP2() _q, \ TI * _x, \ @@ -4057,7 +4298,7 @@ void RESAMP2(_decim_execute)(RESAMP2() _q, \ /* Execute resampler as half-band interpolator on a single input sample */ \ /* _q : resampler object */ \ /* _x : input sample */ \ -/* _y : output array [size: 2 x 1] */ \ +/* _y : output array, [size: 2 x 1] */ \ void RESAMP2(_interp_execute)(RESAMP2() _q, \ TI _x, \ TO * _y); \ @@ -4090,60 +4331,63 @@ LIQUID_RESAMP2_DEFINE_API(LIQUID_RESAMP2_MANGLE_CCCF, /* Rational rate resampler, implemented as a polyphase filterbank */ \ typedef struct RRESAMP(_s) * RRESAMP(); \ \ -/* Create rational-rate resampler object from external coeffcients to */ \ -/* resample at an exact rate P/Q. */ \ +/* Create rational-rate resampler object from external coefficients to */ \ +/* resample at an exact rate \(P/Q\) = interp/decim. */ \ /* Note that to preserve the input filter coefficients, the greatest */ \ -/* common divisor (gcd) is not removed internally from _P and _Q when */ \ -/* this method is called. */ \ -/* _P : interpolation factor, P > 0 */ \ -/* _Q : decimation factor, Q > 0 */ \ +/* common divisor (gcd) is not removed internally from interp and decim */ \ +/* when this method is called. */ \ +/* _interp : interpolation factor, _interp > 0 */ \ +/* _decim : decimation factor, _decim > 0 */ \ /* _m : filter semi-length (delay), 0 < _m */ \ -/* _h : filter coefficients, [size: 2*_P*_m x 1] */ \ -RRESAMP() RRESAMP(_create)(unsigned int _P, \ - unsigned int _Q, \ +/* _h : filter coefficients, [size: 2*_interp*_m x 1] */ \ +RRESAMP() RRESAMP(_create)(unsigned int _interp, \ + unsigned int _decim, \ unsigned int _m, \ TC * _h); \ \ /* Create rational-rate resampler object from filter prototype to */ \ -/* resample at an exact rate P/Q. */ \ +/* resample at an exact rate \(P/Q\) = interp/decim. */ \ /* Note that because the filter coefficients are computed internally */ \ -/* here, the greatest common divisor (gcd) from _P and _Q is internally */ \ -/* removed to improve speed. */ \ -/* _P : interpolation factor, P > 0 */ \ -/* _Q : decimation factor, Q > 0 */ \ +/* here, the greatest common divisor (gcd) from _interp and _decim is */ \ +/* internally removed to improve speed. */ \ +/* _interp : interpolation factor, _interp > 0 */ \ +/* _decim : decimation factor, _decim > 0 */ \ /* _m : filter semi-length (delay), 0 < _m */ \ /* _bw : filter bandwidth relative to sample rate, 0 < _bw <= 0.5 */ \ -/* _As : filter stop-band attenuation [dB], 0 < _As */ \ -RRESAMP() RRESAMP(_create_kaiser)(unsigned int _P, \ - unsigned int _Q, \ +/* _as : filter stop-band attenuation [dB], 0 < _as */ \ +RRESAMP() RRESAMP(_create_kaiser)(unsigned int _interp, \ + unsigned int _decim, \ unsigned int _m, \ float _bw, \ - float _As); \ + float _as); \ \ /* Create rational-rate resampler object from filter prototype to */ \ -/* resample at an exact rate P/Q. */ \ +/* resample at an exact rate \(P/Q\) = interp/decim. */ \ /* Note that because the filter coefficients are computed internally */ \ -/* here, the greatest common divisor (gcd) from _P and _Q is internally */ \ -/* removed to improve speed. */ \ +/* here, the greatest common divisor (gcd) from _interp and _decim is */ \ +/* internally removed to improve speed. */ \ RRESAMP() RRESAMP(_create_prototype)(int _type, \ - unsigned int _P, \ - unsigned int _Q, \ + unsigned int _interp, \ + unsigned int _decim, \ unsigned int _m, \ float _beta); \ \ /* Create rational resampler object with a specified resampling rate of */ \ -/* exactly P/Q with default parameters. This is a simplified method to */ \ -/* provide a basic resampler with a baseline set of parameters, */ \ -/* abstracting away some of the complexities with the filterbank */ \ -/* design. */ \ +/* exactly interp/decim with default parameters. This is a simplified */ \ +/* method to provide a basic resampler with a baseline set of */ \ +/* parameters abstracting away some of the complexities with the */ \ +/* filterbank design. */ \ /* The default parameters are */ \ /* m = 12 (filter semi-length), */ \ /* bw = 0.5 (filter bandwidth), and */ \ -/* As = 60 dB (filter stop-band attenuation) */ \ -/* _P : interpolation factor, P > 0 */ \ -/* _Q : decimation factor, Q > 0 */ \ -RRESAMP() RRESAMP(_create_default)(unsigned int _P, \ - unsigned int _Q); \ +/* as = 60 dB (filter stop-band attenuation) */ \ +/* _interp : interpolation factor, _interp > 0 */ \ +/* _decim : decimation factor, _decim > 0 */ \ +RRESAMP() RRESAMP(_create_default)(unsigned int _interp, \ + unsigned int _decim); \ + \ +/* Copy object including all internal objects and state */ \ +RRESAMP() RRESAMP(_copy)(RRESAMP() _q); \ \ /* Destroy resampler object, freeing all internal memory */ \ void RRESAMP(_destroy)(RRESAMP() _q); \ @@ -4169,8 +4413,8 @@ void RRESAMP(_get_scale)(RRESAMP() _q, \ /* Get resampler delay (filter semi-length \(m\)) */ \ unsigned int RRESAMP(_get_delay)(RRESAMP() _q); \ \ -/* Get original interpolation factor \(P\) when object was created */ \ -/* before removing greatest common divisor */ \ +/* Get original interpolation factor when object was created, before */ \ +/* removing greatest common divisor */ \ unsigned int RRESAMP(_get_P)(RRESAMP() _q); \ \ /* Get internal interpolation factor of resampler, \(P\), after */ \ @@ -4185,45 +4429,48 @@ unsigned int RRESAMP(_get_Q)(RRESAMP() _q); \ /* greatest common divisor */ \ unsigned int RRESAMP(_get_decim)(RRESAMP() _q); \ \ -/* Get block length (e.g. greatest common divisor) between original P */ \ -/* and Q values */ \ +/* Get block length (e.g. greatest common divisor) between original */ \ +/* interpolation rate \(P\) and decimation rate \(Q\) values */ \ unsigned int RRESAMP(_get_block_len)(RRESAMP() _q); \ \ -/* Get rate of resampler, \(r = P/Q\) */ \ +/* Get rate of resampler, \(r = P/Q\) = interp/decim */ \ float RRESAMP(_get_rate)(RRESAMP() _q); \ \ /* Write \(Q\) input samples (after removing greatest common divisor) */ \ /* into buffer, but do not compute output. This effectively updates the */ \ /* internal state of the resampler. */ \ /* _q : resamp object */ \ -/* _buf : input sample array, [size: Q x 1] */ \ +/* _buf : input sample array, [size: decim x 1] */ \ void RRESAMP(_write)(RRESAMP() _q, \ TI * _buf); \ \ /* Execute rational-rate resampler on a block of input samples and */ \ /* store the resulting samples in the output array. */ \ /* Note that the size of the input and output buffers correspond to the */ \ -/* values of P and Q passed when the object was created, even if they */ \ -/* share a common divisor. Internally the rational resampler reduces P */ \ -/* and Q by their greatest commmon denominator to reduce processing; */ \ -/* however sometimes it is convenienct to create the object based on */ \ -/* expected output/input block sizes. This expectation is preserved. So */ \ -/* if an object is created with P=80 and Q=72, the object will */ \ -/* internally set P=10 and Q=9 (with a g.c.d of 8); however when */ \ +/* values of the interpolation and decimation rates (\(P\) and \(Q\), */ \ +/* respectively) passed when the object was created, even if they */ \ +/* share a common divisor. */ \ +/* Internally the rational resampler reduces \(P\) and \(Q\) */ \ +/* by their greatest common denominator to reduce processing; */ \ +/* however sometimes it is convenient to create the object based on */ \ +/* expected output/input block sizes. This expectation is preserved. */ \ +/* So if an object is created with an interpolation rate \(P=80\) */ \ +/* and a decimation rate \(Q=72\), the object will internally set */ \ +/* \(P=10\) and \(Q=9\) (with a g.c.d of 8); however when */ \ /* "execute" is called the resampler will still expect an input buffer */ \ /* of 72 and an output buffer of 80. */ \ /* _q : resamp object */ \ -/* _x : input sample array, [size: Q x 1] */ \ -/* _y : output sample array [size: P x 1] */ \ +/* _x : input sample array, [size: decim x 1] */ \ +/* _y : output sample array, [size: interp x 1] */ \ void RRESAMP(_execute)(RRESAMP() _q, \ TI * _x, \ TO * _y); \ \ /* Execute on a block of samples */ \ /* _q : resamp object */ \ -/* _x : input sample array, [size: Q*n x 1] */ \ +/* _x : input sample array, [size: decim*n x 1] */ \ /* _n : block size */ \ -/* _y : output sample array [size: P*n x 1] */ \ +/* _y : output sample array, [size: interp*n x 1] */ \ void RRESAMP(_execute_block)(RRESAMP() _q, \ TI * _x, \ unsigned int _n, \ @@ -4261,12 +4508,12 @@ typedef struct RESAMP(_s) * RESAMP(); \ /* _rate : arbitrary resampling rate, 0 < _rate */ \ /* _m : filter semi-length (delay), 0 < _m */ \ /* _fc : filter cutoff frequency, 0 < _fc < 0.5 */ \ -/* _As : filter stop-band attenuation [dB], 0 < _As */ \ +/* _as : filter stop-band attenuation [dB], 0 < _as */ \ /* _npfb : number of filters in the bank, 0 < _npfb */ \ RESAMP() RESAMP(_create)(float _rate, \ unsigned int _m, \ float _fc, \ - float _As, \ + float _as, \ unsigned int _npfb); \ \ /* Create arbitrary resampler object with a specified input resampling */ \ @@ -4276,28 +4523,43 @@ RESAMP() RESAMP(_create)(float _rate, \ /* The default parameters are */ \ /* m = 7 (filter semi-length), */ \ /* fc = min(0.49,_rate/2) (filter cutoff frequency), */ \ -/* As = 60 dB (filter stop-band attenuation), and */ \ +/* as = 60 dB (filter stop-band attenuation), and */ \ /* npfb = 64 (number of filters in the bank). */ \ /* _rate : arbitrary resampling rate, 0 < _rate */ \ RESAMP() RESAMP(_create_default)(float _rate); \ \ +/* Copy object including all internal objects and state */ \ +RESAMP() RESAMP(_copy)(RESAMP() _q); \ + \ /* Destroy arbitrary resampler object, freeing all internal memory */ \ -void RESAMP(_destroy)(RESAMP() _q); \ +int RESAMP(_destroy)(RESAMP() _q); \ \ /* Print resamp object internals to stdout */ \ -void RESAMP(_print)(RESAMP() _q); \ +int RESAMP(_print)(RESAMP() _q); \ \ /* Reset resamp object internals */ \ -void RESAMP(_reset)(RESAMP() _q); \ +int RESAMP(_reset)(RESAMP() _q); \ \ /* Get resampler delay (filter semi-length \(m\)) */ \ unsigned int RESAMP(_get_delay)(RESAMP() _q); \ \ +/* Set output scaling for resampler */ \ +/* _q : resampler object */ \ +/* _scale : scaling factor to apply to each output sample */ \ +int RESAMP(_set_scale)(RESAMP() _q, \ + TC _scale); \ + \ +/* Get output scaling for resampler */ \ +/* _q : resampler object */ \ +/* _scale : scaling factor to apply to each output sample */ \ +int RESAMP(_get_scale)(RESAMP() _q, \ + TC * _scale); \ + \ /* Set rate of arbitrary resampler */ \ /* _q : resampling object */ \ /* _rate : new sampling rate, _rate > 0 */ \ -void RESAMP(_set_rate)(RESAMP() _q, \ - float _rate); \ +int RESAMP(_set_rate)(RESAMP() _q, \ + float _rate); \ \ /* Get rate of arbitrary resampler */ \ float RESAMP(_get_rate)(RESAMP() _q); \ @@ -4305,48 +4567,55 @@ float RESAMP(_get_rate)(RESAMP() _q); \ /* adjust rate of arbitrary resampler */ \ /* _q : resampling object */ \ /* _gamma : rate adjustment factor: rate <- rate * gamma, _gamma > 0 */ \ -void RESAMP(_adjust_rate)(RESAMP() _q, \ - float _gamma); \ +int RESAMP(_adjust_rate)(RESAMP() _q, \ + float _gamma); \ \ /* Set resampling timing phase */ \ /* _q : resampling object */ \ /* _tau : sample timing phase, -1 <= _tau <= 1 */ \ -void RESAMP(_set_timing_phase)(RESAMP() _q, \ +int RESAMP(_set_timing_phase)(RESAMP() _q, \ float _tau); \ \ /* Adjust resampling timing phase */ \ /* _q : resampling object */ \ /* _delta : sample timing adjustment, -1 <= _delta <= 1 */ \ -void RESAMP(_adjust_timing_phase)(RESAMP() _q, \ - float _delta); \ +int RESAMP(_adjust_timing_phase)(RESAMP() _q, \ + float _delta); \ + \ +/* Get the number of output samples given current state and input */ \ +/* buffer size. */ \ +/* _q : resampling object */ \ +/* _num_input : number of input samples */ \ +unsigned int RESAMP(_get_num_output)(RESAMP() _q, \ + unsigned int _num_input); \ \ /* Execute arbitrary resampler on a single input sample and store the */ \ /* resulting samples in the output array. The number of output samples */ \ -/* is depenent upon the resampling rate but will be at most */ \ +/* depends upon the resampling rate but will be at most */ \ /* \( \lceil{ r \rceil} \) samples. */ \ /* _q : resamp object */ \ /* _x : single input sample */ \ /* _y : output sample array (pointer) */ \ /* _num_written : number of samples written to _y */ \ -void RESAMP(_execute)(RESAMP() _q, \ - TI _x, \ - TO * _y, \ - unsigned int * _num_written); \ +int RESAMP(_execute)(RESAMP() _q, \ + TI _x, \ + TO * _y, \ + unsigned int * _num_written); \ \ /* Execute arbitrary resampler on a block of input samples and store */ \ /* the resulting samples in the output array. The number of output */ \ -/* samples is depenent upon the resampling rate and the number of input */ \ +/* samples depends upon the resampling rate and the number of input */ \ /* samples but will be at most \( \lceil{ r n_x \rceil} \) samples. */ \ /* _q : resamp object */ \ /* _x : input buffer, [size: _nx x 1] */ \ /* _nx : input buffer */ \ /* _y : output sample array (pointer) */ \ /* _ny : number of samples written to _y */ \ -void RESAMP(_execute_block)(RESAMP() _q, \ - TI * _x, \ - unsigned int _nx, \ - TO * _y, \ - unsigned int * _ny); \ +int RESAMP(_execute_block)(RESAMP() _q, \ + TI * _x, \ + unsigned int _nx, \ + TO * _y, \ + unsigned int * _ny); \ LIQUID_RESAMP_DEFINE_API(LIQUID_RESAMP_MANGLE_RRRF, float, @@ -4390,21 +4659,24 @@ typedef struct MSRESAMP2(_s) * MSRESAMP2(); \ /* _num_stages : number of resampling stages, _num_stages <= 16 */ \ /* _fc : filter cut-off frequency, 0 < _fc < 0.5 */ \ /* _f0 : filter center frequency (set to zero) */ \ -/* _As : stop-band attenuation [dB], _As > 0 */ \ +/* _as : stop-band attenuation [dB], _as > 0 */ \ MSRESAMP2() MSRESAMP2(_create)(int _type, \ unsigned int _num_stages, \ float _fc, \ float _f0, \ - float _As); \ + float _as); \ + \ +/* Copy object including all internal objects and state */ \ +MSRESAMP2() MSRESAMP2(_copy)(MSRESAMP2() _q); \ \ /* Destroy multi-stage half-band resampler, freeing all internal memory */ \ -void MSRESAMP2(_destroy)(MSRESAMP2() _q); \ +int MSRESAMP2(_destroy)(MSRESAMP2() _q); \ \ /* Print msresamp object internals to stdout */ \ -void MSRESAMP2(_print)(MSRESAMP2() _q); \ +int MSRESAMP2(_print)(MSRESAMP2() _q); \ \ /* Reset msresamp object internal state */ \ -void MSRESAMP2(_reset)(MSRESAMP2() _q); \ +int MSRESAMP2(_reset)(MSRESAMP2() _q); \ \ /* Get multi-stage half-band resampling rate */ \ float MSRESAMP2(_get_rate)(MSRESAMP2() _q); \ @@ -4424,9 +4696,9 @@ float MSRESAMP2(_get_delay)(MSRESAMP2() _q); \ /* _q : msresamp object */ \ /* _x : input sample array */ \ /* _y : output sample array */ \ -void MSRESAMP2(_execute)(MSRESAMP2() _q, \ - TI * _x, \ - TO * _y); \ +int MSRESAMP2(_execute)(MSRESAMP2() _q, \ + TI * _x, \ + TO * _y); \ LIQUID_MSRESAMP2_DEFINE_API(LIQUID_MSRESAMP2_MANGLE_RRRF, float, @@ -4460,18 +4732,21 @@ typedef struct MSRESAMP(_s) * MSRESAMP(); \ \ /* Create multi-stage arbitrary resampler */ \ /* _r : resampling rate (output/input), _r > 0 */ \ -/* _As : stop-band attenuation [dB], _As > 0 */ \ +/* _as : stop-band attenuation [dB], _as > 0 */ \ MSRESAMP() MSRESAMP(_create)(float _r, \ - float _As); \ + float _as); \ + \ +/* Copy object including all internal objects and state */ \ +MSRESAMP() MSRESAMP(_copy)(MSRESAMP() _q); \ \ /* Destroy multi-stage arbitrary resampler */ \ -void MSRESAMP(_destroy)(MSRESAMP() _q); \ +int MSRESAMP(_destroy)(MSRESAMP() _q); \ \ /* Print msresamp object internals to stdout */ \ -void MSRESAMP(_print)(MSRESAMP() _q); \ +int MSRESAMP(_print)(MSRESAMP() _q); \ \ /* Reset msresamp object internal state */ \ -void MSRESAMP(_reset)(MSRESAMP() _q); \ +int MSRESAMP(_reset)(MSRESAMP() _q); \ \ /* Get filter delay (output samples) */ \ float MSRESAMP(_get_delay)(MSRESAMP() _q); \ @@ -4479,9 +4754,16 @@ float MSRESAMP(_get_delay)(MSRESAMP() _q); \ /* get overall resampling rate */ \ float MSRESAMP(_get_rate)(MSRESAMP() _q); \ \ +/* Get the number of output samples given current state and input */ \ +/* buffer size. */ \ +/* _q : resampling object */ \ +/* _num_input : number of input samples */ \ +unsigned int MSRESAMP(_get_num_output)(MSRESAMP() _q, \ + unsigned int _num_input); \ + \ /* Execute multi-stage resampler on one or more input samples. */ \ -/* The number of output samples is dependent upon the resampling rate */ \ -/* and the number of input samples. In general it is good practice to */ \ +/* The number of output samples depends upon the resampling rate and */ \ +/* the number of input samples. In general it is good practice to */ \ /* allocate at least \( \lceil{ 1 + 2 r n_x \rceil} \) samples in the */ \ /* output array to avoid overflows. */ \ /* _q : msresamp object */ \ @@ -4489,11 +4771,11 @@ float MSRESAMP(_get_rate)(MSRESAMP() _q); \ /* _nx : input sample array size */ \ /* _y : pointer to output array for storing result */ \ /* _ny : number of samples written to _y */ \ -void MSRESAMP(_execute)(MSRESAMP() _q, \ - TI * _x, \ - unsigned int _nx, \ - TO * _y, \ - unsigned int * _ny); \ +int MSRESAMP(_execute)(MSRESAMP() _q, \ + TI * _x, \ + unsigned int _nx, \ + TO * _y, \ + unsigned int * _ny); \ LIQUID_MSRESAMP_DEFINE_API(LIQUID_MSRESAMP_MANGLE_RRRF, float, @@ -4517,17 +4799,22 @@ LIQUID_MSRESAMP_DEFINE_API(LIQUID_MSRESAMP_MANGLE_CCCF, #define DDS_MANGLE_CCCF(name) LIQUID_CONCAT(dds_cccf,name) #define LIQUID_DDS_DEFINE_API(DDS,TO,TC,TI) \ + \ +/* Direct digital (up/down) synthesizer object */ \ typedef struct DDS(_s) * DDS(); \ \ /* Create digital synthesizer object */ \ /* _num_stages : number of half-band stages, _num_stages > 0 */ \ /* _fc : signal relative center frequency, _fc in [-0.5,0.5] */ \ /* _bw : signal relative bandwidth, _bw in (0,1) */ \ -/* _As : filter stop-band attenuation (dB), _As > 0 */ \ +/* _as : filter stop-band attenuation (dB), _as > 0 */ \ DDS() DDS(_create)(unsigned int _num_stages, \ float _fc, \ float _bw, \ - float _As); \ + float _as); \ + \ +/* Copy object including all internal objects and state */ \ +DDS() DDS(_copy)(DDS() _q); \ \ /* Destroy digital synthesizer object */ \ int DDS(_destroy)(DDS() _q); \ @@ -4538,6 +4825,18 @@ int DDS(_print)(DDS() _q); \ /* Reset synthesizer object internals */ \ int DDS(_reset)(DDS() _q); \ \ +/* Set output scaling for synthesizer */ \ +/* _q : synthesizer object */ \ +/* _scale : scaling factor to apply to each output sample */ \ +int DDS(_set_scale)(DDS() _q, \ + TC _scale); \ + \ +/* Get output scaling for synthesizer */ \ +/* _q : synthesizer object */ \ +/* _scale : scaling factor to apply to each output sample */ \ +int DDS(_get_scale)(DDS() _q, \ + TC * _scale); \ + \ /* Get number of half-band states in DDS object */ \ unsigned int DDS(_get_num_stages)(DDS() _q); \ \ @@ -4613,32 +4912,35 @@ SYMSYNC() SYMSYNC(_create_kaiser)(unsigned int _k, \ float _beta, \ unsigned int _M); \ \ +/* Copy object including all internal objects and state */ \ +SYMSYNC() SYMSYNC(_copy)(SYMSYNC() _q); \ + \ /* Destroy symsync object, freeing all internal memory */ \ -void SYMSYNC(_destroy)(SYMSYNC() _q); \ +int SYMSYNC(_destroy)(SYMSYNC() _q); \ \ /* Print symsync object's parameters to stdout */ \ -void SYMSYNC(_print)(SYMSYNC() _q); \ +int SYMSYNC(_print)(SYMSYNC() _q); \ \ /* Reset symsync internal state */ \ -void SYMSYNC(_reset)(SYMSYNC() _q); \ +int SYMSYNC(_reset)(SYMSYNC() _q); \ \ /* Lock the symbol synchronizer's loop control */ \ -void SYMSYNC(_lock)(SYMSYNC() _q); \ +int SYMSYNC(_lock)(SYMSYNC() _q); \ \ /* Unlock the symbol synchronizer's loop control */ \ -void SYMSYNC(_unlock)(SYMSYNC() _q); \ +int SYMSYNC(_unlock)(SYMSYNC() _q); \ \ /* Set synchronizer output rate (samples/symbol) */ \ /* _q : synchronizer object */ \ /* _k_out : output samples/symbol, _k_out > 0 */ \ -void SYMSYNC(_set_output_rate)(SYMSYNC() _q, \ - unsigned int _k_out); \ +int SYMSYNC(_set_output_rate)(SYMSYNC() _q, \ + unsigned int _k_out); \ \ /* Set loop-filter bandwidth */ \ /* _q : synchronizer object */ \ /* _bt : loop bandwidth, 0 <= _bt <= 1 */ \ -void SYMSYNC(_set_lf_bw)(SYMSYNC() _q, \ - float _bt); \ +int SYMSYNC(_set_lf_bw)(SYMSYNC() _q, \ + float _bt); \ \ /* Return instantaneous fractional timing offset estimate */ \ float SYMSYNC(_get_tau)(SYMSYNC() _q); \ @@ -4649,11 +4951,11 @@ float SYMSYNC(_get_tau)(SYMSYNC() _q); \ /* _nx : number of input samples */ \ /* _y : output data array */ \ /* _ny : number of samples written to output buffer */ \ -void SYMSYNC(_execute)(SYMSYNC() _q, \ - TI * _x, \ - unsigned int _nx, \ - TO * _y, \ - unsigned int * _ny); \ +int SYMSYNC(_execute)(SYMSYNC() _q, \ + TI * _x, \ + unsigned int _nx, \ + TO * _y, \ + unsigned int * _ny); \ LIQUID_SYMSYNC_DEFINE_API(LIQUID_SYMSYNC_MANGLE_RRRF, float, @@ -4688,11 +4990,11 @@ typedef struct FIRFARROW(_s) * FIRFARROW(); \ /* _h_len : filter length, _h_len >= 2 */ \ /* _p : polynomial order, _p >= 1 */ \ /* _fc : filter cutoff frequency, 0 <= _fc <= 0.5 */ \ -/* _As : stopband attenuation [dB], _As > 0 */ \ +/* _as : stopband attenuation [dB], _as > 0 */ \ FIRFARROW() FIRFARROW(_create)(unsigned int _h_len, \ unsigned int _p, \ float _fc, \ - float _As); \ + float _as); \ \ /* Destroy firfarrow object, freeing all internal memory */ \ int FIRFARROW(_destroy)(FIRFARROW() _q); \ @@ -4794,35 +5096,45 @@ ORDFILT() ORDFILT(_create)(unsigned int _n, \ /* _m : buffer semi-length */ \ ORDFILT() ORDFILT(_create_medfilt)(unsigned int _m); \ \ +/* Copy object including all internal objects and state */ \ +ORDFILT() ORDFILT(_copy)(ORDFILT() _q); \ + \ /* Destroy filter object and free all internal memory */ \ -void ORDFILT(_destroy)(ORDFILT() _q); \ +int ORDFILT(_destroy)(ORDFILT() _q); \ \ /* Reset filter object's internal buffer */ \ -void ORDFILT(_reset)(ORDFILT() _q); \ +int ORDFILT(_reset)(ORDFILT() _q); \ \ /* Print filter object information to stdout */ \ -void ORDFILT(_print)(ORDFILT() _q); \ +int ORDFILT(_print)(ORDFILT() _q); \ \ /* Push sample into filter object's internal buffer */ \ /* _q : filter object */ \ /* _x : single input sample */ \ -void ORDFILT(_push)(ORDFILT() _q, \ - TI _x); \ +int ORDFILT(_push)(ORDFILT() _q, \ + TI _x); \ \ /* Write block of samples into object's internal buffer */ \ /* _q : filter object */ \ /* _x : array of input samples, [size: _n x 1] */ \ /* _n : number of input elements */ \ -void ORDFILT(_write)(ORDFILT() _q, \ - TI * _x, \ - unsigned int _n); \ +int ORDFILT(_write)(ORDFILT() _q, \ + TI * _x, \ + unsigned int _n); \ \ -/* Execute vector dot product on the filter's internal buffer and */ \ -/* coefficients */ \ +/* Execute on the filter's internal buffer */ \ /* _q : filter object */ \ /* _y : pointer to single output sample */ \ -void ORDFILT(_execute)(ORDFILT() _q, \ - TO * _y); \ +int ORDFILT(_execute)(ORDFILT() _q, \ + TO * _y); \ + \ +/* Execute filter on one sample, equivalent to push() and execute() */ \ +/* _q : filter object */ \ +/* _x : single input sample */ \ +/* _y : pointer to single output sample */ \ +int ORDFILT(_execute_one)(ORDFILT() _q, \ + TI _x, \ + TO * _y); \ \ /* Execute the filter on a block of input samples; in-place operation */ \ /* is permitted (_x and _y may point to the same place in memory) */ \ @@ -4830,10 +5142,10 @@ void ORDFILT(_execute)(ORDFILT() _q, \ /* _x : pointer to input array, [size: _n x 1] */ \ /* _n : number of input, output samples */ \ /* _y : pointer to output array, [size: _n x 1] */ \ -void ORDFILT(_execute_block)(ORDFILT() _q, \ - TI * _x, \ - unsigned int _n, \ - TO * _y); \ +int ORDFILT(_execute_block)(ORDFILT() _q, \ + TI * _x, \ + unsigned int _n, \ + TO * _y); \ LIQUID_ORDFILT_DEFINE_API(LIQUID_ORDFILT_MANGLE_RRRF, float, @@ -4854,7 +5166,7 @@ typedef struct { float cfo; // carrier frequency offset (f/Fs) // demodulated frame symbols - liquid_float_complex * framesyms; // pointer to array [size: framesyms x 1] + liquid_float_complex * framesyms; // pointer to array, [size: framesyms x 1] unsigned int num_framesyms; // length of framesyms // modulation/coding scheme etc. @@ -4891,9 +5203,9 @@ int framedatastats_print(framedatastats_s * _stats); // Generic frame synchronizer callback function type -// _header : header data [size: 8 bytes] +// _header : header data, [size: 8 bytes] // _header_valid : is header valid? (0:no, 1:yes) -// _payload : payload data [size: _payload_len] +// _payload : payload data, [size: _payload_len] // _payload_len : length of payload (bytes) // _payload_valid : is payload valid? (0:no, 1:yes) // _stats : frame statistics object @@ -4918,6 +5230,7 @@ typedef struct qpacketmodem_s * qpacketmodem; // create packet encoder qpacketmodem qpacketmodem_create (); +qpacketmodem qpacketmodem_copy (qpacketmodem _q); int qpacketmodem_destroy(qpacketmodem _q); int qpacketmodem_reset (qpacketmodem _q); int qpacketmodem_print (qpacketmodem _q); @@ -4954,7 +5267,7 @@ int qpacketmodem_encode_syms(qpacketmodem _q, // decode packet from demodulated frame symbol indices (hard-decision decoding) // _q : qpacketmodem object -// _syms : received hard-decision symbol indices [size: frame_len x 1] +// _syms : received hard-decision symbol indices, [size: frame_len x 1] // _payload : recovered decoded payload bytes int qpacketmodem_decode_syms(qpacketmodem _q, unsigned char * _syms, @@ -5026,6 +5339,9 @@ qpilotgen qpilotgen_recreate(qpilotgen _q, unsigned int _payload_len, unsigned int _pilot_spacing); +// Copy object including all internal objects and state +qpilotgen qpilotgen_copy(qpilotgen _q); + int qpilotgen_destroy(qpilotgen _q); int qpilotgen_reset( qpilotgen _q); int qpilotgen_print( qpilotgen _q); @@ -5050,6 +5366,9 @@ qpilotsync qpilotsync_recreate(qpilotsync _q, unsigned int _payload_len, unsigned int _pilot_spacing); +// Copy object including all internal objects and state +qpilotsync qpilotsync_copy(qpilotsync _q); + int qpilotsync_destroy(qpilotsync _q); int qpilotsync_reset( qpilotsync _q); int qpilotsync_print( qpilotsync _q); @@ -5080,6 +5399,9 @@ typedef struct framegen64_s * framegen64; // create frame generator framegen64 framegen64_create(); +// copy object +framegen64 framegen64_copy(framegen64 _q); + // destroy frame generator int framegen64_destroy(framegen64 _q); @@ -5090,7 +5412,7 @@ int framegen64_print(framegen64 _q); // _q : frame generator object // _header : 8-byte header data, NULL for random // _payload : 64-byte payload data, NULL for random -// _frame : output frame samples [size: LIQUID_FRAME64_LEN x 1] +// _frame : output frame samples, [size: LIQUID_FRAME64_LEN x 1] int framegen64_execute(framegen64 _q, unsigned char * _header, unsigned char * _payload, @@ -5104,6 +5426,9 @@ typedef struct framesync64_s * framesync64; framesync64 framesync64_create(framesync_callback _callback, void * _userdata); +// copy object +framesync64 framesync64_copy(framesync64 _q); + // destroy frame synchronizer int framesync64_destroy(framesync64 _q); @@ -5113,18 +5438,44 @@ int framesync64_print(framesync64 _q); // reset frame synchronizer internal state int framesync64_reset(framesync64 _q); +// set the callback and userdata fields +int framesync64_set_callback(framesync64 _q, framesync_callback _callback); +int framesync64_set_userdata(framesync64 _q, void * _userdata); + // push samples through frame synchronizer // _q : frame synchronizer object -// _x : input samples [size: _n x 1] +// _x : input samples, [size: _n x 1] // _n : number of input samples int framesync64_execute(framesync64 _q, liquid_float_complex * _x, unsigned int _n); -// enable/disable debugging +DEPRECATED("debugging enabled by default; return non-zero value to export file", int framesync64_debug_enable(framesync64 _q); +) + +DEPRECATED("debugging enabled by default; return non-zero value to export file", int framesync64_debug_disable(framesync64 _q); +) + +DEPRECATED("binary debugging file exported on non-zero return value", int framesync64_debug_print(framesync64 _q, const char * _filename); +) + +// set prefix for exporting debugging files, default: "framesync64" +// _q : frame sync object +// _prefix : string with valid file path +int framesync64_set_prefix(framesync64 _q, + const char * _prefix); + +// get prefix for exporting debugging files +const char * framesync64_get_prefix(framesync64 _q); + +// get number of files exported +unsigned int framesync64_get_num_files_exported(framesync64 _q); + +// get name of last file written +const char * framesync64_get_filename(framesync64 _q); // get/set detection threshold float framesync64_get_threshold(framesync64 _q); @@ -5194,7 +5545,7 @@ unsigned int flexframegen_getframelen(flexframegen _q); // assemble a frame from an array of data // _q : frame generator object // _header : frame header -// _payload : payload data [size: _payload_len x 1] +// _payload : payload data, [size: _payload_len x 1] // _payload_len : payload data length int flexframegen_assemble(flexframegen _q, const unsigned char * _header, @@ -5205,7 +5556,7 @@ int flexframegen_assemble(flexframegen _q, // '1' when frame is complete, '0' otherwise. Zeros will be written // to the buffer if the frame is not assembled // _q : frame generator object -// _buffer : output buffer [size: _buffer_len x 1] +// _buffer : output buffer, [size: _buffer_len x 1] // _buffer_len : output buffer length int flexframegen_write_samples(flexframegen _q, liquid_float_complex * _buffer, @@ -5251,7 +5602,7 @@ int flexframesync_set_header_props(flexframesync _q, // push samples through frame synchronizer // _q : frame synchronizer object -// _x : input samples [size: _n x 1] +// _x : input samples, [size: _n x 1] // _n : number of input samples int flexframesync_execute(flexframesync _q, liquid_float_complex * _x, @@ -5334,7 +5685,7 @@ int bpacketsync_reset(bpacketsync _q); // run synchronizer on array of input bytes // _q : bpacketsync object -// _bytes : input data array [size: _n x 1] +// _bytes : input data array, [size: _n x 1] // _n : input array size int bpacketsync_execute(bpacketsync _q, unsigned char * _bytes, @@ -5442,7 +5793,7 @@ unsigned int gmskframegen_getframelen(gmskframegen _q); // write samples of assembled frame // _q : frame generator object -// _buf : output buffer [size: _buf_len x 1] +// _buf : output buffer, [size: _buf_len x 1] // _buf_len : output buffer length int gmskframegen_write(gmskframegen _q, liquid_float_complex * _buf, @@ -5450,11 +5801,11 @@ int gmskframegen_write(gmskframegen _q, // write samples of assembled frame // _q : frame generator object -// _buf : output buffer [size: k x 1] +// _buf : output buffer, [size: k x 1] DEPRECATED("use gmskframegen_write(...) instead", int gmskframegen_write_samples(gmskframegen _q, - liquid_float_complex * _buf) -); + liquid_float_complex * _buf); +) // @@ -5493,11 +5844,11 @@ framedatastats_s gmskframesync_get_framedatastats (gmskframesync _q); // debug methods DEPRECATED("debug methods add complexity and provide little value", - int gmskframesync_debug_enable(gmskframesync _q) ); + int gmskframesync_debug_enable(gmskframesync _q); ) DEPRECATED("debug methods add complexity and provide little value", - int gmskframesync_debug_disable(gmskframesync _q) ); + int gmskframesync_debug_disable(gmskframesync _q); ) DEPRECATED("debug methods add complexity and provide little value", - int gmskframesync_debug_print(gmskframesync _q, const char * _filename) ); + int gmskframesync_debug_print(gmskframesync _q, const char * _filename); ) // @@ -5526,7 +5877,7 @@ unsigned int dsssframegen_getframelen(dsssframegen _q); // assemble a frame from an array of data // _q : frame generator object // _header : frame header -// _payload : payload data [size: _payload_len x 1] +// _payload : payload data, [size: _payload_len x 1] // _payload_len : payload data length int dsssframegen_assemble(dsssframegen _q, const unsigned char * _header, @@ -5622,7 +5973,7 @@ unsigned int ofdmflexframegen_getframelen(ofdmflexframegen _q); // assemble a frame from an array of data (NULL pointers will use random data) // _q : OFDM frame generator object // _header : frame header [8 bytes] -// _payload : payload data [size: _payload_len x 1] +// _payload : payload data, [size: _payload_len x 1] // _payload_len : payload data length int ofdmflexframegen_assemble(ofdmflexframegen _q, const unsigned char * _header, @@ -5631,7 +5982,7 @@ int ofdmflexframegen_assemble(ofdmflexframegen _q, // write samples of assembled frame // _q : OFDM frame generator object -// _buf : output buffer [size: _buf_len x 1] +// _buf : output buffer, [size: _buf_len x 1] // _buf_len : output buffer length int ofdmflexframegen_write(ofdmflexframegen _q, liquid_float_complex * _buf, @@ -5673,6 +6024,11 @@ int ofdmflexframesync_set_header_props(ofdmflexframesync _q, ofdmflexframegenprops_s * _props); int ofdmflexframesync_reset(ofdmflexframesync _q); + +// set the callback and userdata fields +int ofdmflexframesync_set_callback(ofdmflexframesync _q, framesync_callback _callback); +int ofdmflexframesync_set_userdata(ofdmflexframesync _q, void * _userdata); + int ofdmflexframesync_is_frame_open(ofdmflexframesync _q); int ofdmflexframesync_execute(ofdmflexframesync _q, liquid_float_complex * _x, @@ -5718,7 +6074,7 @@ typedef struct BSYNC(_s) * BSYNC(); \ \ /* Create bsync object */ \ /* _n : sequence length */ \ -/* _v : correlation sequence [size: _n x 1] */ \ +/* _v : correlation sequence, [size: _n x 1] */ \ BSYNC() BSYNC(_create)(unsigned int _n, \ TC * _v); \ \ @@ -5877,6 +6233,9 @@ qdetector_cccf qdetector_cccf_create_cpfsk(unsigned char * _sequence, float _beta, int _type); +// Copy object including all internal objects and state +qdetector_cccf qdetector_cccf_copy(qdetector_cccf _q); + int qdetector_cccf_destroy(qdetector_cccf _q); int qdetector_cccf_print (qdetector_cccf _q); int qdetector_cccf_reset (qdetector_cccf _q); @@ -5973,6 +6332,9 @@ SYMSTREAM() SYMSTREAM(_create_linear)(int _ftype, \ float _beta, \ int _ms); \ \ +/* Copy object recursively including all internal objects and state */ \ +SYMSTREAM() SYMSTREAM(_copy)(SYMSTREAM() _q); \ + \ /* Destroy symstream object, freeing all internal memory */ \ int SYMSTREAM(_destroy)(SYMSTREAM() _q); \ \ @@ -6014,7 +6376,7 @@ unsigned int SYMSTREAM(_get_delay)(SYMSTREAM() _q); \ \ /* Write block of samples to output buffer */ \ /* _q : synchronizer object */ \ -/* _buf : output buffer [size: _buf_len x 1] */ \ +/* _buf : output buffer, [size: _buf_len x 1] */ \ /* _buf_len: output buffer size */ \ int SYMSTREAM(_write_samples)(SYMSTREAM() _q, \ TO * _buf, \ @@ -6050,6 +6412,9 @@ SYMSTREAMR() SYMSTREAMR(_create_linear)(int _ftype, \ float _beta, \ int _ms); \ \ +/* Copy object recursively including all internal objects and state */ \ +SYMSTREAMR() SYMSTREAMR(_copy)(SYMSTREAMR() _q); \ + \ /* Destroy symstream object, freeing all internal memory */ \ int SYMSTREAMR(_destroy)(SYMSTREAMR() _q); \ \ @@ -6091,7 +6456,7 @@ float SYMSTREAMR(_get_delay)(SYMSTREAMR() _q); \ \ /* Write block of samples to output buffer */ \ /* _q : synchronizer object */ \ -/* _buf : output buffer [size: _buf_len x 1] */ \ +/* _buf : output buffer, [size: _buf_len x 1] */ \ /* _buf_len: output buffer size */ \ int SYMSTREAMR(_write_samples)(SYMSTREAMR() _q, \ TO * _buf, \ @@ -6115,13 +6480,16 @@ typedef struct MSOURCE(_s) * MSOURCE(); \ /* Create msource object by specifying channelizer parameters */ \ /* _M : number of channels in analysis channelizer object */ \ /* _m : prototype channelizer filter semi-length */ \ -/* _As : prototype channelizer filter stop-band suppression (dB) */ \ +/* _as : prototype channelizer filter stop-band suppression (dB) */ \ MSOURCE() MSOURCE(_create)(unsigned int _M, \ unsigned int _m, \ - float _As); \ + float _as); \ + \ +/* Copy object recursively, including all internal objects and state */ \ +MSOURCE() MSOURCE(_copy)(MSOURCE() _q); \ \ /* Create default msource object with default parameters: */ \ -/* M = 1200, m = 4, As = 60 */ \ +/* M = 1200, m = 4, as = 60 */ \ MSOURCE() MSOURCE(_create_default)(void); \ \ /* Destroy msource object */ \ @@ -6225,6 +6593,19 @@ int MSOURCE(_enable)(MSOURCE() _q, \ int MSOURCE(_disable)(MSOURCE() _q, \ int _id); \ \ +/* Get number of samples generated by the object so far */ \ +/* _q : msource object */ \ +/* _return : number of time-domain samples generated */ \ +unsigned long long int MSOURCE(_get_num_samples)(MSOURCE() _q); \ + \ +/* Get number of samples generated by specific source so far */ \ +/* _q : msource object */ \ +/* _id : source id */ \ +/* _num_samples : pointer to number of samples generated */ \ +int MSOURCE(_get_num_samples_source)(MSOURCE() _q, \ + int _id, \ + unsigned long int * _num_samples); \ + \ /* Set gain in decibels on signal */ \ /* _q : msource object */ \ /* _id : source id */ \ @@ -6241,11 +6622,6 @@ int MSOURCE(_get_gain)(MSOURCE() _q, \ int _id, \ float * _gain); \ \ -/* Get number of samples generated by the object so far */ \ -/* _q : msource object */ \ -/* _return : number of time-domain samples generated */ \ -unsigned long long int MSOURCE(_get_num_samples)(MSOURCE() _q); \ - \ /* Set carrier offset to signal */ \ /* _q : msource object */ \ /* _id : source id */ \ @@ -6354,7 +6730,7 @@ int SYMTRACK(_set_bandwidth)(SYMTRACK() _q, \ \ /* Adjust internal NCO by requested frequency */ \ /* _q : symtrack object */ \ -/* _dphi : NCO phase adjustment [radians] */ \ +/* _dphi : NCO frequency adjustment [radians/sample] */ \ int SYMTRACK(_adjust_frequency)(SYMTRACK() _q, \ T _dphi); \ \ @@ -6555,10 +6931,10 @@ float liquid_flattop(unsigned int _i, // Triangular window // _i : window index, _i in [0,_wlen-1] // _wlen : full window length -// _L : triangle length, _L in {_wlen-1, _wlen, _wlen+1} +// _n : triangle length, _n in {_wlen-1, _wlen, _wlen+1} float liquid_triangular(unsigned int _i, unsigned int _wlen, - unsigned int _L); + unsigned int _n); // raised-cosine tapering window // _i : window index @@ -6591,7 +6967,7 @@ float hann(unsigned int _i,unsigned int _wlen); float blackmanharris(unsigned int _i,unsigned int _wlen); float blackmanharris7(unsigned int _i,unsigned int _wlen); float flattop(unsigned int _i,unsigned int _wlen); -float triangular(unsigned int _i,unsigned int _wlen,unsigned int _L); +float triangular(unsigned int _i,unsigned int _wlen,unsigned int _n); float liquid_rcostaper_windowf(unsigned int _i,unsigned int _wlen,unsigned int _t); float kbd(unsigned int _i,unsigned int _wlen,float _beta); int kbd_window(unsigned int _wlen,float _beta,float * _w); @@ -6613,7 +6989,7 @@ int kbd_window(unsigned int _wlen,float _beta,float * _w); #define LIQUID_POLY_DEFINE_API(POLY,T,TC) \ \ /* Evaluate polynomial _p at value _x */ \ -/* _p : polynomial coefficients [size _k x 1] */ \ +/* _p : polynomial coefficients, [size: _k x 1] */ \ /* _k : polynomial coefficients length, order is _k - 1 */ \ /* _x : input to evaluate polynomial */ \ T POLY(_val)(T * _p, \ @@ -6621,10 +6997,10 @@ T POLY(_val)(T * _p, \ T _x); \ \ /* Perform least-squares polynomial fit on data set */ \ -/* _x : x-value sample set [size: _n x 1] */ \ -/* _y : y-value sample set [size: _n x 1] */ \ +/* _x : x-value sample set, [size: _n x 1] */ \ +/* _y : y-value sample set, [size: _n x 1] */ \ /* _n : number of samples in _x and _y */ \ -/* _p : polynomial coefficients output [size _k x 1] */ \ +/* _p : polynomial coefficients output, [size: _k x 1] */ \ /* _k : polynomial coefficients length, order is _k - 1 */ \ int POLY(_fit)(T * _x, \ T * _y, \ @@ -6636,7 +7012,7 @@ int POLY(_fit)(T * _x, \ /* _x : x-value sample set, size [_n x 1] */ \ /* _y : y-value sample set, size [_n x 1] */ \ /* _n : number of samples in _x and _y */ \ -/* _p : polynomial coefficients output [size _n x 1] */ \ +/* _p : polynomial coefficients output, [size: _n x 1] */ \ int POLY(_fit_lagrange)(T * _x, \ T * _y, \ unsigned int _n, \ @@ -6644,8 +7020,8 @@ int POLY(_fit_lagrange)(T * _x, \ \ /* Perform Lagrange polynomial interpolation on data set without */ \ /* computing coefficients as an intermediate step. */ \ -/* _x : x-value sample set [size: _n x 1] */ \ -/* _y : y-value sample set [size: _n x 1] */ \ +/* _x : x-value sample set, [size: _n x 1] */ \ +/* _y : y-value sample set, [size: _n x 1] */ \ /* _n : number of samples in _x and _y */ \ /* _x0 : x-value to evaluate and compute interpolant */ \ T POLY(_interp_lagrange)(T * _x, \ @@ -6663,9 +7039,9 @@ int POLY(_fit_lagrange_barycentric)(T * _x, \ \ /* Perform Lagrange polynomial interpolation using the barycentric form */ \ /* of the weights. */ \ -/* _x : x-value sample set [size: _n x 1] */ \ -/* _y : y-value sample set [size: _n x 1] */ \ -/* _w : barycentric weights [size: _n x 1] */ \ +/* _x : x-value sample set, [size: _n x 1] */ \ +/* _y : y-value sample set, [size: _n x 1] */ \ +/* _w : barycentric weights, [size: _n x 1] */ \ /* _x0 : x-value to evaluate and compute interpolant */ \ /* _n : number of samples in _x, _y, and _w */ \ T POLY(_val_lagrange_barycentric)(T * _x, \ @@ -6680,7 +7056,7 @@ T POLY(_val_lagrange_barycentric)(T * _x, \ /* \( P_n(x) = p[0] + p[1]x + p[2]x^2 + ... + p[n]x^n \) */ \ /* NOTE: _p has order n (coefficients has length n+1) */ \ /* _n : polynomial order */ \ -/* _p : polynomial coefficients [size: _n+1 x 1] */ \ +/* _p : polynomial coefficients, [size: _n+1 x 1] */ \ int POLY(_expandbinomial)(unsigned int _n, \ T * _p); \ \ @@ -6691,7 +7067,7 @@ int POLY(_expandbinomial)(unsigned int _n, \ /* NOTE: _p has order n=m+k (array is length n+1) */ \ /* _m : number of '1+x' terms */ \ /* _k : number of '1-x' terms */ \ -/* _p : polynomial coefficients [size: _m+_k+1 x 1] */ \ +/* _p : polynomial coefficients, [size: _m+_k+1 x 1] */ \ int POLY(_expandbinomial_pm)(unsigned int _m, \ unsigned int _k, \ T * _p); \ @@ -6702,9 +7078,9 @@ int POLY(_expandbinomial_pm)(unsigned int _m, \ /* \( P_n(x) = p[0] + p[1]x + ... + p[n]x^n \) */ \ /* where \( r[0],r[1],...,r[n-1]\) are the roots of \( P_n(x) \). */ \ /* NOTE: _p has order _n (array is length _n+1) */ \ -/* _r : roots of polynomial [size: _n x 1] */ \ +/* _r : roots of polynomial, [size: _n x 1] */ \ /* _n : number of roots in polynomial */ \ -/* _p : polynomial coefficients [size: _n+1 x 1] */ \ +/* _p : polynomial coefficients, [size: _n+1 x 1] */ \ int POLY(_expandroots)(T * _r, \ unsigned int _n, \ T * _p); \ @@ -6714,36 +7090,36 @@ int POLY(_expandroots)(T * _r, \ /* as */ \ /* \( P_n(x) = p[0] + p[1]x + ... + p[n]x^n \) */ \ /* NOTE: _p has order _n (array is length _n+1) */ \ -/* _a : subtractant of polynomial rotos [size: _n x 1] */ \ -/* _b : multiplicant of polynomial roots [size: _n x 1] */ \ +/* _a : subtractant of polynomial rotos, [size: _n x 1] */ \ +/* _b : multiplicant of polynomial roots, [size: _n x 1] */ \ /* _n : number of roots in polynomial */ \ -/* _p : polynomial coefficients [size: _n+1 x 1] */ \ +/* _p : polynomial coefficients, [size: _n+1 x 1] */ \ int POLY(_expandroots2)(T * _a, \ T * _b, \ unsigned int _n, \ T * _p); \ \ /* Find the complex roots of a polynomial. */ \ -/* _p : polynomial coefficients [size: _n x 1] */ \ +/* _p : polynomial coefficients, [size: _n x 1] */ \ /* _k : polynomial length */ \ -/* _roots : resulting complex roots [size: _k-1 x 1] */ \ +/* _roots : resulting complex roots, [size: _k-1 x 1] */ \ int POLY(_findroots)(T * _poly, \ unsigned int _n, \ TC * _roots); \ \ /* Find the complex roots of the polynomial using the Durand-Kerner */ \ /* method */ \ -/* _p : polynomial coefficients [size: _n x 1] */ \ +/* _p : polynomial coefficients, [size: _n x 1] */ \ /* _k : polynomial length */ \ -/* _roots : resulting complex roots [size: _k-1 x 1] */ \ +/* _roots : resulting complex roots, [size: _k-1 x 1] */ \ int POLY(_findroots_durandkerner)(T * _p, \ unsigned int _k, \ TC * _roots); \ \ /* Find the complex roots of the polynomial using Bairstow's method. */ \ -/* _p : polynomial coefficients [size: _n x 1] */ \ +/* _p : polynomial coefficients, [size: _n x 1] */ \ /* _k : polynomial length */ \ -/* _roots : resulting complex roots [size: _k-1 x 1] */ \ +/* _roots : resulting complex roots, [size: _k-1 x 1] */ \ int POLY(_findroots_bairstow)(T * _p, \ unsigned int _k, \ TC * _roots); \ @@ -6758,7 +7134,7 @@ int POLY(_findroots_bairstow)(T * _p, \ /* _order_a : 1st polynomial order */ \ /* _b : 2nd polynomial coefficients (length is _order_b+1) */ \ /* _order_b : 2nd polynomial order */ \ -/* _c : output polynomial [size: _order_a+_order_b+1 x 1] */ \ +/* _c : output polynomial, [size: _order_a+_order_b+1 x 1] */ \ int POLY(_mul)(T * _a, \ unsigned int _order_a, \ T * _b, \ @@ -6803,7 +7179,7 @@ int liquid_is_prime(unsigned int _n); // compute number's prime factors // _n : number to factor -// _factors : pre-allocated array of factors [size: LIQUID_MAX_FACTORS x 1] +// _factors : pre-allocated array of factors, [size: LIQUID_MAX_FACTORS x 1] // _num_factors: number of factors found, sorted ascending int liquid_factor(unsigned int _n, unsigned int * _factors, @@ -6811,15 +7187,15 @@ int liquid_factor(unsigned int _n, // compute number's unique prime factors // _n : number to factor -// _factors : pre-allocated array of factors [size: LIQUID_MAX_FACTORS x 1] +// _factors : pre-allocated array of factors, [size: LIQUID_MAX_FACTORS x 1] // _num_factors: number of unique factors found, sorted ascending int liquid_unique_factor(unsigned int _n, unsigned int * _factors, unsigned int * _num_factors); -// compute greatest common divisor between to numbers P and Q -unsigned int liquid_gcd(unsigned int _P, - unsigned int _Q); +// compute greatest common divisor between to integers \(p\) and \(q\) +unsigned int liquid_gcd(unsigned int _p, + unsigned int _q); // compute c = base^exp (mod n) unsigned int liquid_modpow(unsigned int _base, @@ -7121,29 +7497,29 @@ int MATRIX(_cgsolve)(T * _A, \ /* _x : input/output matrix, [size: _rx x _cx] */ \ /* _rx : rows of _x */ \ /* _cx : columns of _x */ \ -/* _L : first row to swap */ \ -/* _U : first row to swap */ \ -/* _P : first row to swap */ \ +/* _l : first row to swap */ \ +/* _u : first row to swap */ \ +/* _p : first row to swap */ \ int MATRIX(_ludecomp_crout)(T * _x, \ unsigned int _rx, \ unsigned int _cx, \ - T * _L, \ - T * _U, \ - T * _P); \ + T * _l, \ + T * _u, \ + T * _p); \ \ /* Perform L/U/P decomposition, Doolittle's method */ \ /* _x : input/output matrix, [size: _rx x _cx] */ \ /* _rx : rows of _x */ \ /* _cx : columns of _x */ \ -/* _L : first row to swap */ \ -/* _U : first row to swap */ \ -/* _P : first row to swap */ \ +/* _l : first row to swap */ \ +/* _u : first row to swap */ \ +/* _p : first row to swap */ \ int MATRIX(_ludecomp_doolittle)(T * _x, \ unsigned int _rx, \ unsigned int _cx, \ - T * _L, \ - T * _U, \ - T * _P); \ + T * _l, \ + T * _u, \ + T * _p); \ \ /* Perform orthnormalization using the Gram-Schmidt algorithm */ \ /* _A : input matrix, [size: _r x _c] */ \ @@ -7160,25 +7536,25 @@ int MATRIX(_gramschmidt)(T * _A, \ /* and \( \vec{Q}^T \vec{Q} = \vec{I}_n \) */ \ /* and \(\vec{R\}\) is a diagonal \(m \times m\) matrix */ \ /* NOTE: all matrices are square */ \ -/* _A : input matrix, [size: _m x _m] */ \ +/* _a : input matrix, [size: _m x _m] */ \ /* _m : rows */ \ /* _n : columns (same as cols) */ \ -/* _Q : output matrix, [size: _m x _m] */ \ -/* _R : output matrix, [size: _m x _m] */ \ -int MATRIX(_qrdecomp_gramschmidt)(T * _A, \ +/* _q : output matrix, [size: _m x _m] */ \ +/* _r : output matrix, [size: _m x _m] */ \ +int MATRIX(_qrdecomp_gramschmidt)(T * _a, \ unsigned int _m, \ unsigned int _n, \ - T * _Q, \ - T * _R); \ + T * _q, \ + T * _r); \ \ /* Compute Cholesky decomposition of a symmetric/Hermitian */ \ /* positive-definite matrix as \( \vec{A} = \vec{L}\vec{L}^T \) */ \ -/* _A : input square matrix, [size: _n x _n] */ \ +/* _a : input square matrix, [size: _n x _n] */ \ /* _n : input matrix dimension */ \ -/* _L : output lower-triangular matrix */ \ -int MATRIX(_chol)(T * _A, \ +/* _l : output lower-triangular matrix */ \ +int MATRIX(_chol)(T * _a, \ unsigned int _n, \ - T * _L); \ + T * _l); \ #define matrix_access(X,R,C,r,c) ((X)[(r)*(C)+(c)]) @@ -7206,11 +7582,13 @@ LIQUID_MATRIX_DEFINE_API(LIQUID_MATRIX_MANGLE_CDOUBLE, liquid_double_complex) /* Sparse matrix object (similar to MacKay, Davey, Lafferty convention) */ \ typedef struct SMATRIX(_s) * SMATRIX(); \ \ -/* Create _M x _N sparse matrix, initialized with zeros */ \ -SMATRIX() SMATRIX(_create)(unsigned int _M, \ - unsigned int _N); \ +/* Create \(M \times N\) sparse matrix, initialized with zeros */ \ +/* _m : number of rows in matrix */ \ +/* _n : number of columns in matrix */ \ +SMATRIX() SMATRIX(_create)(unsigned int _m, \ + unsigned int _n); \ \ -/* Create _M x _N sparse matrix, initialized on array */ \ +/* Create \(M \times N\) sparse matrix, initialized on array */ \ /* _x : input matrix, [size: _m x _n] */ \ /* _m : number of rows in input matrix */ \ /* _n : number of columns in input matrix */ \ @@ -7315,9 +7693,9 @@ LIQUID_SMATRIX_DEFINE_API(LIQUID_SMATRIX_MANGLE_INT, short int) // // multiply sparse binary matrix by floating-point matrix -// _q : sparse matrix [size: A->M x A->N] -// _x : input vector [size: mx x nx ] -// _y : output vector [size: my x ny ] +// _q : sparse matrix, [size: A->M x A->N] +// _x : input vector, [size: mx x nx ] +// _y : output vector, [size: my x ny ] int smatrixb_mulf(smatrixb _A, float * _x, unsigned int _mx, @@ -7328,8 +7706,8 @@ int smatrixb_mulf(smatrixb _A, // multiply sparse binary matrix by floating-point vector // _q : sparse matrix -// _x : input vector [size: _N x 1] -// _y : output vector [size: _M x 1] +// _x : input vector, [size: _N x 1] +// _y : output vector, [size: _M x 1] int smatrixb_vmulf(smatrixb _q, float * _x, float * _y); @@ -7427,8 +7805,8 @@ int liquid_modem_is_apsk(modulation_scheme _ms); unsigned int count_bit_errors(unsigned int _s1, unsigned int _s2); // counts the number of different bits between two arrays of symbols -// _msg0 : original message [size: _n x 1] -// _msg1 : copy of original message [size: _n x 1] +// _msg0 : original message, [size: _n x 1] +// _msg1 : copy of original message, [size: _n x 1] // _n : message size unsigned int count_bit_errors_array(unsigned char * _msg0, unsigned char * _msg1, @@ -7442,7 +7820,7 @@ unsigned int gray_encode(unsigned int symbol_in); unsigned int gray_decode(unsigned int symbol_in); // pack soft bits into symbol -// _soft_bits : soft input bits [size: _bps x 1] +// _soft_bits : soft input bits, [size: _bps x 1] // _bps : bits per symbol // _sym_out : output symbol, value in [0,2^_bps) int liquid_pack_soft_bits(unsigned char * _soft_bits, @@ -7452,7 +7830,7 @@ int liquid_pack_soft_bits(unsigned char * _soft_bits, // unpack soft bits into symbol // _sym_in : input symbol, value in [0,2^_bps) // _bps : bits per symbol -// _soft_bits : soft output bits [size: _bps x 1] +// _soft_bits : soft output bits, [size: _bps x 1] int liquid_unpack_soft_bits(unsigned int _sym_in, unsigned int _bps, unsigned char * _soft_bits); @@ -7498,6 +7876,9 @@ MODEM() MODEM(_create_arbitrary)(liquid_float_complex * _table, \ MODEM() MODEM(_recreate)(MODEM() _q, \ modulation_scheme _scheme); \ \ +/* Copy object including all internal objects and state */ \ +MODEM() MODEM(_copy)(MODEM() _q); \ + \ /* Destroy modem object, freeing all allocated memory */ \ int MODEM(_destroy)(MODEM() _q); \ \ @@ -7532,7 +7913,7 @@ int MODEM(_modulate)(MODEM() _q, \ /* This is performed efficiently by taking advantage of symmetry on */ \ /* most modulation types. */ \ /* For example, square and rectangular quadrature amplitude modulation */ \ -/* with gray coding can use a bisection search indepdently on its */ \ +/* with gray coding can use a bisection search independently on its */ \ /* in-phase and quadrature channels. */ \ /* Arbitrary modulation schemes are relatively slow, however, for large */ \ /* modulation types as the demodulator must compute the distance */ \ @@ -7586,6 +7967,8 @@ typedef struct gmskmod_s * gmskmod; gmskmod gmskmod_create(unsigned int _k, unsigned int _m, float _BT); +// Copy object recursively including all internal objects and state +gmskmod gmskmod_copy(gmskmod _q); int gmskmod_destroy(gmskmod _q); int gmskmod_print(gmskmod _q); int gmskmod_reset(gmskmod _q); @@ -7604,6 +7987,8 @@ typedef struct gmskdem_s * gmskdem; gmskdem gmskdem_create(unsigned int _k, unsigned int _m, float _BT); +// Copy object recursively including all internal objects and state +gmskdem gmskdem_copy(gmskdem _q); int gmskdem_destroy(gmskdem _q); int gmskdem_print(gmskdem _q); int gmskdem_reset(gmskdem _q); @@ -7658,7 +8043,7 @@ unsigned int cpfskmod_get_delay(cpfskmod _q); // modulate sample // _q : frequency modulator object // _s : input symbol -// _y : output sample array [size: _k x 1] +// _y : output sample array, [size: _k x 1] int cpfskmod_modulate(cpfskmod _q, unsigned int _s, liquid_float_complex * _y); @@ -7699,7 +8084,7 @@ unsigned int cpfskdem_get_delay(cpfskdem _q); #if 0 // demodulate array of samples // _q : continuous-phase frequency demodulator object -// _y : input sample array [size: _n x 1] +// _y : input sample array, [size: _n x 1] // _n : input sample array length // _s : output symbol array // _nw : number of output symbols written @@ -7711,7 +8096,7 @@ int cpfskdem_demodulate(cpfskdem _q, #else // demodulate array of samples, assuming perfect timing // _q : continuous-phase frequency demodulator object -// _y : input sample array [size: _k x 1] +// _y : input sample array, [size: _k x 1] unsigned int cpfskdem_demodulate(cpfskdem _q, liquid_float_complex * _y); #endif @@ -7733,6 +8118,9 @@ fskmod fskmod_create(unsigned int _m, unsigned int _k, float _bandwidth); +// Copy object recursively including all internal objects and state +fskmod fskmod_copy(fskmod _q); + // destroy fskmod object int fskmod_destroy(fskmod _q); @@ -7745,7 +8133,7 @@ int fskmod_reset(fskmod _q); // modulate sample // _q : frequency modulator object // _s : input symbol -// _y : output sample array [size: _k x 1] +// _y : output sample array, [size: _k x 1] int fskmod_modulate(fskmod _q, unsigned int _s, liquid_float_complex * _y); @@ -7763,6 +8151,9 @@ fskdem fskdem_create(unsigned int _m, unsigned int _k, float _bandwidth); +// Copy object recursively including all internal objects and state +fskdem fskdem_copy(fskdem _q); + // destroy fskdem object int fskdem_destroy(fskdem _q); @@ -7774,7 +8165,7 @@ int fskdem_reset(fskdem _q); // demodulate symbol, assuming perfect symbol timing // _q : fskdem object -// _y : input sample array [size: _k x 1] +// _y : input sample array, [size: _k x 1] unsigned int fskdem_demodulate(fskdem _q, liquid_float_complex * _y); @@ -7846,39 +8237,41 @@ LIQUID_FREQMOD_DEFINE_API(LIQUID_FREQMOD_MANGLE_FLOAT,float,liquid_float_complex // FREQDEM : name-mangling macro // T : primitive data type // TC : primitive data type (complex) -#define LIQUID_FREQDEM_DEFINE_API(FREQDEM,T,TC) \ -typedef struct FREQDEM(_s) * FREQDEM(); \ - \ -/* create freqdem object (frequency modulator) */ \ -/* _kf : modulation factor */ \ -FREQDEM() FREQDEM(_create)(float _kf); \ - \ -/* destroy freqdem object */ \ -int FREQDEM(_destroy)(FREQDEM() _q); \ - \ -/* print freqdem object internals */ \ -int FREQDEM(_print)(FREQDEM() _q); \ - \ -/* reset state */ \ -int FREQDEM(_reset)(FREQDEM() _q); \ - \ -/* demodulate sample */ \ -/* _q : frequency modulator object */ \ -/* _r : received signal r(t) */ \ -/* _m : output message signal m(t) */ \ -int FREQDEM(_demodulate)(FREQDEM() _q, \ - TC _r, \ - T * _m); \ - \ -/* demodulate block of samples */ \ -/* _q : frequency demodulator object */ \ -/* _r : received signal r(t) [size: _n x 1] */ \ -/* _n : number of input, output samples */ \ -/* _m : message signal m(t), [size: _n x 1] */ \ -int FREQDEM(_demodulate_block)(FREQDEM() _q, \ - TC * _r, \ - unsigned int _n, \ - T * _m); \ +#define LIQUID_FREQDEM_DEFINE_API(FREQDEM,T,TC) \ + \ +/* Analog frequency demodulator */ \ +typedef struct FREQDEM(_s) * FREQDEM(); \ + \ +/* Create freqdem object (frequency modulator) */ \ +/* _kf : modulation factor */ \ +FREQDEM() FREQDEM(_create)(float _kf); \ + \ +/* Destroy freqdem object */ \ +int FREQDEM(_destroy)(FREQDEM() _q); \ + \ +/* Print freqdem object internals */ \ +int FREQDEM(_print)(FREQDEM() _q); \ + \ +/* Reset state */ \ +int FREQDEM(_reset)(FREQDEM() _q); \ + \ +/* Demodulate sample */ \ +/* _q : frequency modulator object */ \ +/* _r : received signal r(t) */ \ +/* _m : output message signal m(t) */ \ +int FREQDEM(_demodulate)(FREQDEM() _q, \ + TC _r, \ + T * _m); \ + \ +/* Demodulate block of samples */ \ +/* _q : frequency demodulator object */ \ +/* _r : received signal r(t) [size: _n x 1] */ \ +/* _n : number of input, output samples */ \ +/* _m : message signal m(t), [size: _n x 1] */ \ +int FREQDEM(_demodulate_block)(FREQDEM() _q, \ + TC * _r, \ + unsigned int _n, \ + T * _m); \ // define freqdem APIs LIQUID_FREQDEM_DEFINE_API(LIQUID_FREQDEM_MANGLE_FLOAT,float,liquid_float_complex) @@ -7959,68 +8352,70 @@ int ampmodem_demodulate_block(ampmodem _q, // TO : output data type // TC : coefficients data type // TI : input data type -#define LIQUID_FIRPFBCH_DEFINE_API(FIRPFBCH,TO,TC,TI) \ -typedef struct FIRPFBCH(_s) * FIRPFBCH(); \ - \ -/* create finite impulse response polyphase filter-bank */ \ -/* channelizer object from external coefficients */ \ -/* _type : channelizer type, e.g. LIQUID_ANALYZER */ \ -/* _M : number of channels */ \ -/* _p : number of coefficients for each channel */ \ -/* _h : coefficients [size: _M*_p x 1] */ \ -FIRPFBCH() FIRPFBCH(_create)(int _type, \ - unsigned int _M, \ - unsigned int _p, \ - TC * _h); \ - \ -/* create FIR polyphase filterbank channelizer object with */ \ -/* prototype filter based on windowed Kaiser design */ \ -/* _type : type (LIQUID_ANALYZER | LIQUID_SYNTHESIZER) */ \ -/* _M : number of channels */ \ -/* _m : filter delay (symbols) */ \ -/* _As : stop-band attentuation [dB] */ \ -FIRPFBCH() FIRPFBCH(_create_kaiser)(int _type, \ - unsigned int _M, \ - unsigned int _m, \ - float _As); \ - \ -/* create FIR polyphase filterbank channelizer object with */ \ -/* prototype root-Nyquist filter */ \ -/* _type : type (LIQUID_ANALYZER | LIQUID_SYNTHESIZER) */ \ -/* _M : number of channels */ \ -/* _m : filter delay (symbols) */ \ -/* _beta : filter excess bandwidth factor, in [0,1] */ \ -/* _ftype : filter prototype (rrcos, rkaiser, etc.) */ \ -FIRPFBCH() FIRPFBCH(_create_rnyquist)(int _type, \ - unsigned int _M, \ - unsigned int _m, \ - float _beta, \ - int _ftype); \ - \ -/* destroy firpfbch object */ \ -int FIRPFBCH(_destroy)(FIRPFBCH() _q); \ - \ -/* clear/reset firpfbch internal state */ \ -int FIRPFBCH(_reset)(FIRPFBCH() _q); \ - \ -/* print firpfbch internal parameters to stdout */ \ -int FIRPFBCH(_print)(FIRPFBCH() _q); \ - \ -/* execute filterbank as synthesizer on block of samples */ \ -/* _q : filterbank channelizer object */ \ -/* _x : channelized input, [size: num_channels x 1] */ \ -/* _y : output time series, [size: num_channels x 1] */ \ -int FIRPFBCH(_synthesizer_execute)(FIRPFBCH() _q, \ - TI * _x, \ - TO * _y); \ - \ -/* execute filterbank as analyzer on block of samples */ \ -/* _q : filterbank channelizer object */ \ -/* _x : input time series, [size: num_channels x 1] */ \ -/* _y : channelized output, [size: num_channels x 1] */ \ -int FIRPFBCH(_analyzer_execute)(FIRPFBCH() _q, \ - TI * _x, \ - TO * _y); \ +#define LIQUID_FIRPFBCH_DEFINE_API(FIRPFBCH,TO,TC,TI) \ + \ +/* Finite impulse response polyphase filterbank channelizer */ \ +typedef struct FIRPFBCH(_s) * FIRPFBCH(); \ + \ +/* Create finite impulse response polyphase filter-bank */ \ +/* channelizer object from external coefficients */ \ +/* _type : channelizer type, e.g. LIQUID_ANALYZER */ \ +/* _M : number of channels */ \ +/* _p : number of coefficients for each channel */ \ +/* _h : coefficients, [size: _M*_p x 1] */ \ +FIRPFBCH() FIRPFBCH(_create)(int _type, \ + unsigned int _M, \ + unsigned int _p, \ + TC * _h); \ + \ +/* Create FIR polyphase filterbank channelizer object with */ \ +/* prototype filter based on windowed Kaiser design */ \ +/* _type : type (LIQUID_ANALYZER | LIQUID_SYNTHESIZER) */ \ +/* _M : number of channels */ \ +/* _m : filter delay (symbols) */ \ +/* _As : stop-band attenuation [dB] */ \ +FIRPFBCH() FIRPFBCH(_create_kaiser)(int _type, \ + unsigned int _M, \ + unsigned int _m, \ + float _As); \ + \ +/* Create FIR polyphase filterbank channelizer object with */ \ +/* prototype root-Nyquist filter */ \ +/* _type : type (LIQUID_ANALYZER | LIQUID_SYNTHESIZER) */ \ +/* _M : number of channels */ \ +/* _m : filter delay (symbols) */ \ +/* _beta : filter excess bandwidth factor, in [0,1] */ \ +/* _ftype : filter prototype (rrcos, rkaiser, etc.) */ \ +FIRPFBCH() FIRPFBCH(_create_rnyquist)(int _type, \ + unsigned int _M, \ + unsigned int _m, \ + float _beta, \ + int _ftype); \ + \ +/* Destroy firpfbch object */ \ +int FIRPFBCH(_destroy)(FIRPFBCH() _q); \ + \ +/* Clear/reset firpfbch internal state */ \ +int FIRPFBCH(_reset)(FIRPFBCH() _q); \ + \ +/* Print firpfbch internal parameters to stdout */ \ +int FIRPFBCH(_print)(FIRPFBCH() _q); \ + \ +/* Execute filterbank as synthesizer on block of samples */ \ +/* _q : filterbank channelizer object */ \ +/* _x : channelized input, [size: num_channels x 1] */ \ +/* _y : output time series, [size: num_channels x 1] */ \ +int FIRPFBCH(_synthesizer_execute)(FIRPFBCH() _q, \ + TI * _x, \ + TO * _y); \ + \ +/* Execute filterbank as analyzer on block of samples */ \ +/* _q : filterbank channelizer object */ \ +/* _x : input time series, [size: num_channels x 1] */ \ +/* _y : channelized output, [size: num_channels x 1] */ \ +int FIRPFBCH(_analyzer_execute)(FIRPFBCH() _q, \ + TI * _x, \ + TO * _y); \ LIQUID_FIRPFBCH_DEFINE_API(LIQUID_FIRPFBCH_MANGLE_CRCF, @@ -8046,55 +8441,62 @@ LIQUID_FIRPFBCH_DEFINE_API(LIQUID_FIRPFBCH_MANGLE_CCCF, // TO : output data type // TC : coefficients data type // TI : input data type -#define LIQUID_FIRPFBCH2_DEFINE_API(FIRPFBCH2,TO,TC,TI) \ -typedef struct FIRPFBCH2(_s) * FIRPFBCH2(); \ - \ -/* create firpfbch2 object */ \ -/* _type : channelizer type (e.g. LIQUID_ANALYZER) */ \ -/* _M : number of channels (must be even) */ \ -/* _m : prototype filter semi-length, length=2*M*m */ \ -/* _h : prototype filter coefficient array */ \ -FIRPFBCH2() FIRPFBCH2(_create)(int _type, \ - unsigned int _M, \ - unsigned int _m, \ - TC * _h); \ - \ -/* create firpfbch2 object using Kaiser window prototype */ \ -/* _type : channelizer type (e.g. LIQUID_ANALYZER) */ \ -/* _M : number of channels (must be even) */ \ -/* _m : prototype filter semi-length, length=2*M*m+1 */ \ -/* _As : filter stop-band attenuation [dB] */ \ -FIRPFBCH2() FIRPFBCH2(_create_kaiser)(int _type, \ - unsigned int _M, \ - unsigned int _m, \ - float _As); \ - \ -/* destroy firpfbch2 object, freeing internal memory */ \ -int FIRPFBCH2(_destroy)(FIRPFBCH2() _q); \ - \ -/* reset firpfbch2 object internals */ \ -int FIRPFBCH2(_reset)(FIRPFBCH2() _q); \ - \ -/* print firpfbch2 object internals */ \ -int FIRPFBCH2(_print)(FIRPFBCH2() _q); \ - \ -/* get type, either LIQUID_ANALYZER or LIQUID_SYNTHESIZER */ \ -int FIRPFBCH2(_get_type)(FIRPFBCH2() _q); \ - \ -/* get number of channels, M */ \ -unsigned int FIRPFBCH2(_get_M)(FIRPFBCH2() _q); \ - \ -/* get prototype filter sem-length, m */ \ -unsigned int FIRPFBCH2(_get_m)(FIRPFBCH2() _q); \ - \ -/* execute filterbank channelizer */ \ -/* LIQUID_ANALYZER: input: M/2, output: M */ \ -/* LIQUID_SYNTHESIZER: input: M, output: M/2 */ \ -/* _x : channelizer input */ \ -/* _y : channelizer output */ \ -int FIRPFBCH2(_execute)(FIRPFBCH2() _q, \ - TI * _x, \ - TO * _y); \ +#define LIQUID_FIRPFBCH2_DEFINE_API(FIRPFBCH2,TO,TC,TI) \ + \ +/* Finite impulse response polyphase filterbank channelizer */ \ +/* with output rate oversampled by a factor of 2 */ \ +typedef struct FIRPFBCH2(_s) * FIRPFBCH2(); \ + \ +/* Create firpfbch2 object with prototype filter from external */ \ +/* coefficients */ \ +/* _type : channelizer type (e.g. LIQUID_ANALYZER) */ \ +/* _M : number of channels (must be even) */ \ +/* _m : prototype filter semi-length, length=2*M*m */ \ +/* _h : prototype filter coefficient array */ \ +FIRPFBCH2() FIRPFBCH2(_create)(int _type, \ + unsigned int _M, \ + unsigned int _m, \ + TC * _h); \ + \ +/* Create firpfbch2 object using Kaiser window prototype */ \ +/* _type : channelizer type (e.g. LIQUID_ANALYZER) */ \ +/* _M : number of channels (must be even) */ \ +/* _m : prototype filter semi-length, length=2*M*m+1 */ \ +/* _As : filter stop-band attenuation [dB] */ \ +FIRPFBCH2() FIRPFBCH2(_create_kaiser)(int _type, \ + unsigned int _M, \ + unsigned int _m, \ + float _As); \ + \ +/* Copy object recursively including all internal objects and state */ \ +FIRPFBCH2() FIRPFBCH2(_copy)(FIRPFBCH2() _q); \ + \ +/* Destroy firpfbch2 object, freeing internal memory */ \ +int FIRPFBCH2(_destroy)(FIRPFBCH2() _q); \ + \ +/* Reset firpfbch2 object internals */ \ +int FIRPFBCH2(_reset)(FIRPFBCH2() _q); \ + \ +/* Print firpfbch2 object internals */ \ +int FIRPFBCH2(_print)(FIRPFBCH2() _q); \ + \ +/* Get type, either LIQUID_ANALYZER or LIQUID_SYNTHESIZER */ \ +int FIRPFBCH2(_get_type)(FIRPFBCH2() _q); \ + \ +/* Get number of channels, M */ \ +unsigned int FIRPFBCH2(_get_M)(FIRPFBCH2() _q); \ + \ +/* Get prototype filter sem-length, m */ \ +unsigned int FIRPFBCH2(_get_m)(FIRPFBCH2() _q); \ + \ +/* Execute filterbank channelizer */ \ +/* LIQUID_ANALYZER: input: M/2, output: M */ \ +/* LIQUID_SYNTHESIZER: input: M, output: M/2 */ \ +/* _x : channelizer input */ \ +/* _y : channelizer output */ \ +int FIRPFBCH2(_execute)(FIRPFBCH2() _q, \ + TI * _x, \ + TO * _y); \ LIQUID_FIRPFBCH2_DEFINE_API(LIQUID_FIRPFBCH2_MANGLE_CRCF, @@ -8103,36 +8505,39 @@ LIQUID_FIRPFBCH2_DEFINE_API(LIQUID_FIRPFBCH2_MANGLE_CRCF, liquid_float_complex) // -// Finite impulse response polyphase filterbank channelizer -// with output rate Fs * P / M +// Finite impulse response polyphase filterbank channelizer with output rate +// Fs / decim on each of independent, evenly-spaced channels // #define LIQUID_FIRPFBCHR_MANGLE_CRCF(name) LIQUID_CONCAT(firpfbchr_crcf,name) #define LIQUID_FIRPFBCHR_DEFINE_API(FIRPFBCHR,TO,TC,TI) \ + \ +/* Finite impulse response polyphase filterbank channelizer */ \ +/* with output rational output rate \( P / M \) */ \ typedef struct FIRPFBCHR(_s) * FIRPFBCHR(); \ \ /* create rational rate resampling channelizer (firpfbchr) object by */ \ /* specifying filter coefficients directly */ \ -/* _M : number of output channels in chanelizer */ \ -/* _P : output decimation factor (output rate is 1/P the input) */ \ -/* _m : prototype filter semi-length, length=2*M*m */ \ -/* _h : prototype filter coefficient array, [size: 2*M*m x 1] */ \ -FIRPFBCHR() FIRPFBCHR(_create)(unsigned int _M, \ - unsigned int _P, \ +/* _chans : number of output channels in chanelizer */ \ +/* _decim : output decimation factor (output rate is 1/decim input) */ \ +/* _m : prototype filter semi-length, length=2*chans*m */ \ +/* _h : prototype filter coefficient array, [size: 2*chans*m x 1] */ \ +FIRPFBCHR() FIRPFBCHR(_create)(unsigned int _chans, \ + unsigned int _decim, \ unsigned int _m, \ TC * _h); \ \ /* create rational rate resampling channelizer (firpfbchr) object by */ \ /* specifying filter design parameters for Kaiser prototype */ \ -/* _M : number of output channels in chanelizer */ \ -/* _P : output decimation factor (output rate is 1/P the input) */ \ -/* _m : prototype filter semi-length, length=2*M*m */ \ -/* _As : filter stop-band attenuation [dB] */ \ -FIRPFBCHR() FIRPFBCHR(_create_kaiser)(unsigned int _M, \ - unsigned int _P, \ +/* _chans : number of output channels in chanelizer */ \ +/* _decim : output decimation factor (output rate is 1/decim input) */ \ +/* _m : prototype filter semi-length, length=2*chans*m */ \ +/* _as : filter stop-band attenuation [dB] */ \ +FIRPFBCHR() FIRPFBCHR(_create_kaiser)(unsigned int _chans, \ + unsigned int _decim, \ unsigned int _m, \ - float _As); \ + float _as); \ \ /* destroy firpfbchr object, freeing internal memory */ \ int FIRPFBCHR(_destroy)(FIRPFBCHR() _q); \ @@ -8144,24 +8549,28 @@ int FIRPFBCHR(_reset)(FIRPFBCHR() _q); \ int FIRPFBCHR(_print)(FIRPFBCHR() _q); \ \ /* get number of output channels to channelizer */ \ -unsigned int FIRPFBCHR(_get_M)(FIRPFBCHR() _q); \ +DEPRECATED("use firpfbchr_get_num_channels(...) instead", \ +unsigned int FIRPFBCHR(_get_M)(FIRPFBCHR() _q); ) \ +unsigned int FIRPFBCHR(_get_num_channels)(FIRPFBCHR() _q); \ \ /* get decimation factor for channelizer */ \ -unsigned int FIRPFBCHR(_get_P)(FIRPFBCHR() _q); \ +DEPRECATED("use firpfbchr_get_decim_rate(...) instead", \ +unsigned int FIRPFBCHR(_get_P)(FIRPFBCHR() _q); ) \ +unsigned int FIRPFBCHR(_get_decim_rate)(FIRPFBCHR() _q); \ \ /* get semi-length to channelizer filter prototype */ \ unsigned int FIRPFBCHR(_get_m)(FIRPFBCHR() _q); \ \ /* push buffer of samples into filter bank */ \ /* _q : channelizer object */ \ -/* _x : channelizer input [size: P x 1] */ \ +/* _x : channelizer input, [size: decim x 1] */ \ int FIRPFBCHR(_push)(FIRPFBCHR() _q, \ TI * _x); \ \ /* execute filterbank channelizer, writing complex baseband samples for */ \ /* each channel into output array */ \ /* _q : channelizer object */ \ -/* _y : channelizer output [size: _M x 1] */ \ +/* _y : channelizer output, [size: chans x 1] */ \ int FIRPFBCHR(_execute)(FIRPFBCHR() _q, \ TO * _y); \ @@ -8325,6 +8734,9 @@ typedef struct NCO(_s) * NCO(); \ /* _type : oscillator type, _type in {LIQUID_NCO, LIQUID_VCO} */ \ NCO() NCO(_create)(liquid_ncotype _type); \ \ +/* Copy object including all internal objects and state */ \ +NCO() NCO(_copy)(NCO() _q); \ + \ /* Destroy nco object, freeing all internally allocated memory */ \ int NCO(_destroy)(NCO() _q); \ \ @@ -8462,64 +8874,67 @@ void liquid_unwrap_phase2(float * _theta, unsigned int _n); // SYNTH : name-mangling macro // T : primitive data type // TC : input/output data type -#define LIQUID_SYNTH_DEFINE_API(SYNTH,T,TC) \ -typedef struct SYNTH(_s) * SYNTH(); \ - \ -SYNTH() SYNTH(_create)(const TC *_table, unsigned int _length); \ -void SYNTH(_destroy)(SYNTH() _q); \ - \ -void SYNTH(_reset)(SYNTH() _q); \ - \ -/* get/set/adjust internal frequency/phase */ \ -T SYNTH(_get_frequency)( SYNTH() _q); \ -void SYNTH(_set_frequency)( SYNTH() _q, T _f); \ -void SYNTH(_adjust_frequency)(SYNTH() _q, T _df); \ -T SYNTH(_get_phase)( SYNTH() _q); \ -void SYNTH(_set_phase)( SYNTH() _q, T _phi); \ -void SYNTH(_adjust_phase)( SYNTH() _q, T _dphi); \ - \ -unsigned int SYNTH(_get_length)(SYNTH() _q); \ -TC SYNTH(_get_current)(SYNTH() _q); \ -TC SYNTH(_get_half_previous)(SYNTH() _q); \ -TC SYNTH(_get_half_next)(SYNTH() _q); \ - \ -void SYNTH(_step)(SYNTH() _q); \ - \ -/* pll : phase-locked loop */ \ -void SYNTH(_pll_set_bandwidth)(SYNTH() _q, T _bandwidth); \ -void SYNTH(_pll_step)(SYNTH() _q, T _dphi); \ - \ -/* Rotate input sample up by SYNTH angle (no stepping) */ \ -void SYNTH(_mix_up)(SYNTH() _q, TC _x, TC *_y); \ - \ -/* Rotate input sample down by SYNTH angle (no stepping) */ \ -void SYNTH(_mix_down)(SYNTH() _q, TC _x, TC *_y); \ - \ -/* Rotate input vector up by SYNTH angle (stepping) */ \ -void SYNTH(_mix_block_up)(SYNTH() _q, \ - TC *_x, \ - TC *_y, \ - unsigned int _N); \ - \ -/* Rotate input vector down by SYNTH angle (stepping) */ \ -void SYNTH(_mix_block_down)(SYNTH() _q, \ - TC *_x, \ - TC *_y, \ - unsigned int _N); \ - \ -void SYNTH(_spread)(SYNTH() _q, \ - TC _x, \ - TC *_y); \ - \ -void SYNTH(_despread)(SYNTH() _q, \ - TC *_x, \ - TC *_y); \ - \ -void SYNTH(_despread_triple)(SYNTH() _q, \ - TC *_x, \ - TC *_early, \ - TC *_punctual, \ - TC *_late); \ +#define LIQUID_SYNTH_DEFINE_API(SYNTH,T,TC) \ + \ +/* Numerically-controlled synthesizer (direct digital synthesis) */ \ +/* with internal phase-locked loop (pll) implementation */ \ +typedef struct SYNTH(_s) * SYNTH(); \ + \ +SYNTH() SYNTH(_create)(const TC *_table, unsigned int _length); \ +void SYNTH(_destroy)(SYNTH() _q); \ + \ +void SYNTH(_reset)(SYNTH() _q); \ + \ +/* get/set/adjust internal frequency/phase */ \ +T SYNTH(_get_frequency)( SYNTH() _q); \ +void SYNTH(_set_frequency)( SYNTH() _q, T _f); \ +void SYNTH(_adjust_frequency)(SYNTH() _q, T _df); \ +T SYNTH(_get_phase)( SYNTH() _q); \ +void SYNTH(_set_phase)( SYNTH() _q, T _phi); \ +void SYNTH(_adjust_phase)( SYNTH() _q, T _dphi); \ + \ +unsigned int SYNTH(_get_length)(SYNTH() _q); \ +TC SYNTH(_get_current)(SYNTH() _q); \ +TC SYNTH(_get_half_previous)(SYNTH() _q); \ +TC SYNTH(_get_half_next)(SYNTH() _q); \ + \ +void SYNTH(_step)(SYNTH() _q); \ + \ +/* pll : phase-locked loop */ \ +void SYNTH(_pll_set_bandwidth)(SYNTH() _q, T _bandwidth); \ +void SYNTH(_pll_step)(SYNTH() _q, T _dphi); \ + \ +/* Rotate input sample up by SYNTH angle (no stepping) */ \ +void SYNTH(_mix_up)(SYNTH() _q, TC _x, TC *_y); \ + \ +/* Rotate input sample down by SYNTH angle (no stepping) */ \ +void SYNTH(_mix_down)(SYNTH() _q, TC _x, TC *_y); \ + \ +/* Rotate input vector up by SYNTH angle (stepping) */ \ +void SYNTH(_mix_block_up)(SYNTH() _q, \ + TC *_x, \ + TC *_y, \ + unsigned int _N); \ + \ +/* Rotate input vector down by SYNTH angle (stepping) */ \ +void SYNTH(_mix_block_down)(SYNTH() _q, \ + TC *_x, \ + TC *_y, \ + unsigned int _N); \ + \ +void SYNTH(_spread)(SYNTH() _q, \ + TC _x, \ + TC *_y); \ + \ +void SYNTH(_despread)(SYNTH() _q, \ + TC *_x, \ + TC *_y); \ + \ +void SYNTH(_despread_triple)(SYNTH() _q, \ + TC *_x, \ + TC *_early, \ + TC *_punctual, \ + TC *_late); \ // Define synth APIs LIQUID_SYNTH_DEFINE_API(SYNTH_MANGLE_FLOAT, float, liquid_float_complex) @@ -8535,9 +8950,13 @@ typedef float (*utility_function)(void * _userdata, float * _v, unsigned int _n); +// One-dimensional utility function pointer definition +typedef float (*liquid_utility_1d)(float _v, + void * _userdata); + // n-dimensional Rosenbrock utility function (minimum at _v = {1,1,1...} // _userdata : user-defined data structure (convenience) -// _v : input vector [size: _n x 1] +// _v : input vector, [size: _n x 1] // _n : input vector size float liquid_rosenbrock(void * _userdata, float * _v, @@ -8545,7 +8964,7 @@ float liquid_rosenbrock(void * _userdata, // n-dimensional inverse Gauss utility function (minimum at _v = {0,0,0...} // _userdata : user-defined data structure (convenience) -// _v : input vector [size: _n x 1] +// _v : input vector, [size: _n x 1] // _n : input vector size float liquid_invgauss(void * _userdata, float * _v, @@ -8553,7 +8972,7 @@ float liquid_invgauss(void * _userdata, // n-dimensional multimodal utility function (minimum at _v = {0,0,0...} // _userdata : user-defined data structure (convenience) -// _v : input vector [size: _n x 1] +// _v : input vector, [size: _n x 1] // _n : input vector size float liquid_multimodal(void * _userdata, float * _v, @@ -8561,7 +8980,7 @@ float liquid_multimodal(void * _userdata, // n-dimensional spiral utility function (minimum at _v = {0,0,0...} // _userdata : user-defined data structure (convenience) -// _v : input vector [size: _n x 1] +// _v : input vector, [size: _n x 1] // _n : input vector size float liquid_spiral(void * _userdata, float * _v, @@ -8604,6 +9023,34 @@ float gradsearch_execute(gradsearch _q, float _target_utility); +// Quadsection search in one dimension... +// +// +// * yn +// * yp +// * +// * y0 +// * +// +------+------+------+------+--> +// [xn x0 xp] +typedef struct qs1dsearch_s * qs1dsearch; +qs1dsearch qs1dsearch_create(liquid_utility_1d _u, + void * _userdata, + int _direction); + +int qs1dsearch_destroy (qs1dsearch _q); +qs1dsearch qs1dsearch_copy (qs1dsearch _q); +int qs1dsearch_print (qs1dsearch _q); +int qs1dsearch_reset (qs1dsearch _q); +int qs1dsearch_init (qs1dsearch _q, float _v0); +int qs1dsearch_init_direction(qs1dsearch _q, float _v_init, float _step); +int qs1dsearch_init_bounds (qs1dsearch _q, float _vn, float _vp); +int qs1dsearch_step (qs1dsearch _q); +int qs1dsearch_execute (qs1dsearch _q); +unsigned int qs1dsearch_get_num_steps (qs1dsearch _q); +float qs1dsearch_get_opt_v (qs1dsearch _q); +float qs1dsearch_get_opt_u (qs1dsearch _q); + // quasi-Newton search typedef struct qnsearch_s * qnsearch; @@ -8984,7 +9431,7 @@ unsigned int bsequence_index(bsequence _bs, unsigned int _i); // Complementary codes -// intialize two sequences to complementary codes. sequences must +// initialize two sequences to complementary codes. sequences must // be of length at least 8 and a power of 2 (e.g. 8, 16, 32, 64,...) // _a : sequence 'a' (bsequence object) // _b : sequence 'b' (bsequence object) @@ -9068,8 +9515,14 @@ int msequence_set_state(msequence _ms, // MODULE : utility // +// allocate memory and copy from original location +// _orig : pointer to original memory array +// _num : number of original elements +// _size : size of each element +void * liquid_malloc_copy(void * _orig, unsigned int _num, unsigned int _size); + // pack binary array with symbol(s) -// _src : source array [size: _n x 1] +// _src : source array, [size: _n x 1] // _n : input source array length // _k : bit index to write in _src // _b : number of bits in input symbol @@ -9081,7 +9534,7 @@ int liquid_pack_array(unsigned char * _src, unsigned char _sym_in); // unpack symbols from binary array -// _src : source array [size: _n x 1] +// _src : source array, [size: _n x 1] // _n : input source array length // _k : bit index to write in _src // _b : number of bits in output symbol @@ -9093,7 +9546,7 @@ int liquid_unpack_array(unsigned char * _src, unsigned char * _sym_out); // pack one-bit symbols into bytes (8-bit symbols) -// _sym_in : input symbols array [size: _sym_in_len x 1] +// _sym_in : input symbols array, [size: _sym_in_len x 1] // _sym_in_len : number of input symbols // _sym_out : output symbols // _sym_out_len : number of bytes allocated to output symbols array @@ -9105,7 +9558,7 @@ int liquid_pack_bytes(unsigned char * _sym_in, unsigned int * _num_written); // unpack 8-bit symbols (full bytes) into one-bit symbols -// _sym_in : input symbols array [size: _sym_in_len x 1] +// _sym_in : input symbols array, [size: _sym_in_len x 1] // _sym_in_len : number of input symbols // _sym_out : output symbols array // _sym_out_len : number of bytes allocated to output symbols array @@ -9117,7 +9570,7 @@ int liquid_unpack_bytes(unsigned char * _sym_in, unsigned int * _num_written); // repack bytes with arbitrary symbol sizes -// _sym_in : input symbols array [size: _sym_in_len x 1] +// _sym_in : input symbols array, [size: _sym_in_len x 1] // _sym_in_bps : number of bits per input symbol // _sym_in_len : number of input symbols // _sym_out : output symbols array @@ -9133,7 +9586,7 @@ int liquid_repack_bytes(unsigned char * _sym_in, unsigned int * _num_written); // shift array to the left _b bits, filling in zeros -// _src : source address [size: _n x 1] +// _src : source address, [size: _n x 1] // _n : input data array size // _b : number of bits to shift int liquid_lbshift(unsigned char * _src, @@ -9141,23 +9594,23 @@ int liquid_lbshift(unsigned char * _src, unsigned int _b); // shift array to the right _b bits, filling in zeros -// _src : source address [size: _n x 1] +// _src : source address, [size: _n x 1] // _n : input data array size // _b : number of bits to shift int liquid_rbshift(unsigned char * _src, unsigned int _n, unsigned int _b); -// circularly shift array to the left _b bits -// _src : source address [size: _n x 1] +// circular shift array to the left _b bits +// _src : source address, [size: _n x 1] // _n : input data array size // _b : number of bits to shift int liquid_lbcircshift(unsigned char * _src, unsigned int _n, unsigned int _b); -// circularly shift array to the right _b bits -// _src : source address [size: _n x 1] +// circular shift array to the right _b bits +// _src : source address, [size: _n x 1] // _n : input data array size // _b : number of bits to shift int liquid_rbcircshift(unsigned char * _src, @@ -9165,7 +9618,7 @@ int liquid_rbcircshift(unsigned char * _src, unsigned int _b); // shift array to the left _b bytes, filling in zeros -// _src : source address [size: _n x 1] +// _src : source address, [size: _n x 1] // _n : input data array size // _b : number of bytes to shift int liquid_lshift(unsigned char * _src, @@ -9173,7 +9626,7 @@ int liquid_lshift(unsigned char * _src, unsigned int _b); // shift array to the right _b bytes, filling in zeros -// _src : source address [size: _n x 1] +// _src : source address, [size: _n x 1] // _n : input data array size // _b : number of bytes to shift int liquid_rshift(unsigned char * _src, @@ -9181,7 +9634,7 @@ int liquid_rshift(unsigned char * _src, unsigned int _b); // circular shift array to the left _b bytes -// _src : source address [size: _n x 1] +// _src : source address, [size: _n x 1] // _n : input data array size // _b : number of bytes to shift int liquid_lcircshift(unsigned char * _src, @@ -9189,7 +9642,7 @@ int liquid_lcircshift(unsigned char * _src, unsigned int _b); // circular shift array to the right _b bytes -// _src : source address [size: _n x 1] +// _src : source address, [size: _n x 1] // _n : input data array size // _b : number of bytes to shift int liquid_rcircshift(unsigned char * _src, diff --git a/external/liquid-dsp/makefile.mingw32 b/external/liquid-dsp/makefile.mingw32 index 909c337..623a33c 100644 --- a/external/liquid-dsp/makefile.mingw32 +++ b/external/liquid-dsp/makefile.mingw32 @@ -43,8 +43,10 @@ # autoconf initialization macros NAME := liquid-dsp -VERSION := 1.4.0 +VERSION := 1.5 BUGREPORT := joseph@liquidsdr.org +AR_LIB := a +SH_LIB := dll # paths prefix := /usr/local @@ -68,11 +70,11 @@ RANLIB := ranlib # flags INCLUDE_CFLAGS = $(addprefix -I,$(include_dirs)) COVERAGE_FLAGS = # dynamic library linker needs separate flag -#MINGW: optimizations goes here, use SSSE42 for 32bit +#MINGW: optimizations goes here, use SSSE42 for 32bit CONFIG_CFLAGS = -m32 -O3 -msse4.2 -ffast-math ${COVERAGE_FLAGS} CPPFLAGS = $(INCLUDE_CFLAGS) -CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -CXXFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-return-type-c-linkage +CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-deprecated-declarations +CXXFLAGS = $(CFLAGS) -std=c++14 -Wno-return-type-c-linkage LDFLAGS = #MINGW: LIBS = -lmsvcrt @@ -110,9 +112,12 @@ agc_objects = \ src/agc/src/agc_crcf.o \ src/agc/src/agc_rrrf.o \ +agc_prototypes := \ + src/agc/src/agc.proto.c \ + # explicit targets and dependencies -src/agc/src/agc_crcf.o : %.o : %.c src/agc/src/agc.c $(include_headers) -src/agc/src/agc_rrrf.o : %.o : %.c src/agc/src/agc.c $(include_headers) +src/agc/src/agc_crcf.o : %.o : %.c $(include_headers) $(agc_prototypes) +src/agc/src/agc_rrrf.o : %.o : %.c $(include_headers) $(agc_prototypes) # autotests agc_autotests := \ @@ -148,22 +153,20 @@ buffer_objects := \ src/buffer/src/bufferf.o \ src/buffer/src/buffercf.o \ -buffer_includes := \ - src/buffer/src/cbuffer.c \ - src/buffer/src/wdelay.c \ - src/buffer/src/window.c \ +# src/buffer/src/buffer.proto.c +buffer_prototypes := \ + src/buffer/src/cbuffer.proto.c \ + src/buffer/src/wdelay.proto.c \ + src/buffer/src/window.proto.c \ -src/buffer/src/bufferf.o : %.o : %.c $(include_headers) $(buffer_includes) - -src/buffer/src/buffercf.o : %.o : %.c $(include_headers) $(buffer_includes) +src/buffer/src/bufferf.o : %.o : %.c $(include_headers) $(buffer_prototypes) +src/buffer/src/buffercf.o : %.o : %.c $(include_headers) $(buffer_prototypes) buffer_autotests := \ src/buffer/tests/cbuffer_autotest.c \ src/buffer/tests/wdelay_autotest.c \ src/buffer/tests/window_autotest.c \ - -# src/buffer/tests/sbuffer_autotest.c buffer_benchmarks := \ src/buffer/bench/cbuffercf_benchmark.c \ @@ -177,13 +180,15 @@ buffer_benchmarks := \ channel_objects := \ src/channel/src/channel_cccf.o \ -channel_includes := \ - src/channel/src/channel.c \ - src/channel/src/tvmpch.c \ +channel_prototypes := \ + src/channel/src/channel.proto.c \ + src/channel/src/tvmpch.proto.c \ -src/channel/src/channel_cccf.o : %.o : %.c $(include_headers) $(channel_includes) +src/channel/src/channel_cccf.o : %.o : %.c $(include_headers) $(channel_prototypes) channel_autotests := \ + src/channel/tests/channel_copy_autotest.c \ + src/channel/tests/tvmpch_copy_autotest.c \ #src/channel/tests/channel_cccf_autotest.c @@ -195,11 +200,11 @@ channel_benchmarks := \ # MODULE : dotprod # dotprod_objects := \ - src/dotprod/src/dotprod_cccf.mmx.o src/dotprod/src/dotprod_crcf.mmx.o src/dotprod/src/dotprod_rrrf.mmx.o src/dotprod/src/sumsq.mmx.o \ + src/dotprod/src/dotprod_cccf.mmx.o src/dotprod/src/dotprod_crcf.mmx.o src/dotprod/src/dotprod_rrrf.sse4.o src/dotprod/src/sumsq.mmx.o \ -src/dotprod/src/dotprod_cccf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c -src/dotprod/src/dotprod_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c -src/dotprod/src/dotprod_rrrf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c +src/dotprod/src/dotprod_cccf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c +src/dotprod/src/dotprod_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c +src/dotprod/src/dotprod_rrrf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c src/dotprod/src/sumsq.o : %.o : %.c $(include_headers) # specific machine architectures @@ -217,6 +222,9 @@ src/dotprod/src/sumsq.mmx.o : %.o : %.c $(include_headers) # SSE4.1/2 src/dotprod/src/dotprod_rrrf.sse4.o : %.o : %.c $(include_headers) +# AVX +src/dotprod/src/sumsq.avx.o : %.o : %.c $(include_headers) + # ARM Neon src/dotprod/src/dotprod_rrrf.neon.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod_crcf.neon.o : %.o : %.c $(include_headers) @@ -243,8 +251,11 @@ equalization_objects := \ src/equalization/src/equalizer_cccf.o \ src/equalization/src/equalizer_rrrf.o \ +equalization_prototypes := \ + src/equalization/src/eqlms.proto.c \ + src/equalization/src/eqrls.proto.c \ -$(equalization_objects) : %.o : %.c $(include_headers) src/equalization/src/eqlms.c src/equalization/src/eqrls.c +$(equalization_objects) : %.o : %.c $(include_headers) $(equalization_prototypes) # autotests @@ -294,6 +305,7 @@ $(fec_objects) : %.o : %.c $(include_headers) fec_autotests := \ src/fec/tests/crc_autotest.c \ src/fec/tests/fec_autotest.c \ + src/fec/tests/fec_copy_autotest.c \ src/fec/tests/fec_soft_autotest.c \ src/fec/tests/fec_golay2412_autotest.c \ src/fec/tests/fec_hamming74_autotest.c \ @@ -308,6 +320,7 @@ fec_autotests := \ src/fec/tests/fec_secded3932_autotest.c \ src/fec/tests/fec_secded7264_autotest.c \ src/fec/tests/interleaver_autotest.c \ + src/fec/tests/packetizer_copy_autotest.c \ src/fec/tests/packetizer_autotest.c \ @@ -332,26 +345,27 @@ fft_objects := \ src/fft/src/fft_utilities.o \ # explicit targets and dependencies -fft_includes := \ - src/fft/src/fft_common.c \ - src/fft/src/fft_dft.c \ - src/fft/src/fft_radix2.c \ - src/fft/src/fft_mixed_radix.c \ - src/fft/src/fft_rader.c \ - src/fft/src/fft_rader2.c \ - src/fft/src/fft_r2r_1d.c \ +fft_prototypes := \ + src/fft/src/fft_common.proto.c \ + src/fft/src/fft_dft.proto.c \ + src/fft/src/fft_radix2.proto.c \ + src/fft/src/fft_mixed_radix.proto.c \ + src/fft/src/fft_rader.proto.c \ + src/fft/src/fft_rader2.proto.c \ + src/fft/src/fft_r2r_1d.proto.c \ -src/fft/src/fftf.o : %.o : %.c $(include_headers) $(fft_includes) +src/fft/src/fftf.o : %.o : %.c $(include_headers) $(fft_prototypes) src/fft/src/asgram.o : %.o : %.c $(include_headers) src/fft/src/dct.o : %.o : %.c $(include_headers) src/fft/src/fftf.o : %.o : %.c $(include_headers) src/fft/src/fft_utilities.o : %.o : %.c $(include_headers) src/fft/src/mdct.o : %.o : %.c $(include_headers) -src/fft/src/spgramcf.o : %.o : %.c $(include_headers) src/fft/src/asgram.c src/fft/src/spgram.c src/fft/src/spwaterfall.c -src/fft/src/spgramf.o : %.o : %.c $(include_headers) src/fft/src/asgram.c src/fft/src/spgram.c src/fft/src/spwaterfall.c +src/fft/src/spgramcf.o : %.o : %.c $(include_headers) src/fft/src/asgram.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c +src/fft/src/spgramf.o : %.o : %.c $(include_headers) src/fft/src/asgram.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c # fft autotest scripts fft_autotests := \ + src/fft/tests/asgram_autotest.c \ src/fft/tests/fft_small_autotest.c \ src/fft/tests/fft_radix2_autotest.c \ src/fft/tests/fft_composite_autotest.c \ @@ -407,6 +421,7 @@ fft_benchmarks := \ src/fft/bench/fft_prime_benchmark.c \ src/fft/bench/fft_radix2_benchmark.c \ src/fft/bench/fft_r2r_benchmark.c \ + src/fft/bench/spgramcf_benchmark.c \ # additional benchmark objects benchmark_extra_obj := \ @@ -427,6 +442,7 @@ filter_objects := \ src/filter/src/filter_cccf.o \ src/filter/src/firdes.o \ src/filter/src/firdespm.o \ + src/filter/src/firdespm_halfband.o \ src/filter/src/fnyquist.o \ src/filter/src/gmsk.o \ src/filter/src/group_delay.o \ @@ -440,29 +456,29 @@ filter_objects := \ # list explicit targets and dependencies here -filter_includes := \ - src/filter/src/autocorr.c \ - src/filter/src/dds.c \ - src/filter/src/fdelay.c \ - src/filter/src/fftfilt.c \ - src/filter/src/firdecim.c \ - src/filter/src/firfarrow.c \ - src/filter/src/firfilt.c \ - src/filter/src/firhilb.c \ - src/filter/src/firinterp.c \ - src/filter/src/firpfb.c \ - src/filter/src/iirdecim.c \ - src/filter/src/iirfilt.c \ - src/filter/src/iirfiltsos.c \ - src/filter/src/iirhilb.c \ - src/filter/src/iirinterp.c \ - src/filter/src/msresamp.c \ - src/filter/src/msresamp2.c \ - src/filter/src/ordfilt.c \ - src/filter/src/rresamp.c \ - src/filter/src/resamp.fixed.c \ - src/filter/src/resamp2.c \ - src/filter/src/symsync.c \ +filter_prototypes := \ + src/filter/src/autocorr.proto.c \ + src/filter/src/dds.proto.c \ + src/filter/src/fdelay.proto.c \ + src/filter/src/fftfilt.proto.c \ + src/filter/src/firdecim.proto.c \ + src/filter/src/firfarrow.proto.c \ + src/filter/src/firfilt.proto.c \ + src/filter/src/firhilb.proto.c \ + src/filter/src/firinterp.proto.c \ + src/filter/src/firpfb.proto.c \ + src/filter/src/iirdecim.proto.c \ + src/filter/src/iirfilt.proto.c \ + src/filter/src/iirfiltsos.proto.c \ + src/filter/src/iirhilb.proto.c \ + src/filter/src/iirinterp.proto.c \ + src/filter/src/msresamp.proto.c \ + src/filter/src/msresamp2.proto.c \ + src/filter/src/ordfilt.proto.c \ + src/filter/src/rresamp.proto.c \ + src/filter/src/resamp.fixed.proto.c \ + src/filter/src/resamp2.proto.c \ + src/filter/src/symsync.proto.c \ src/filter/src/bessel.o : %.o : %.c $(include_headers) src/filter/src/bessel.o : %.o : %.c $(include_headers) @@ -470,9 +486,9 @@ src/filter/src/butter.o : %.o : %.c $(include_headers) src/filter/src/cheby1.o : %.o : %.c $(include_headers) src/filter/src/cheby2.o : %.o : %.c $(include_headers) src/filter/src/ellip.o : %.o : %.c $(include_headers) -src/filter/src/filter_rrrf.o : %.o : %.c $(include_headers) $(filter_includes) -src/filter/src/filter_crcf.o : %.o : %.c $(include_headers) $(filter_includes) -src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_includes) +src/filter/src/filter_rrrf.o : %.o : %.c $(include_headers) $(filter_prototypes) +src/filter/src/filter_crcf.o : %.o : %.c $(include_headers) $(filter_prototypes) +src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_prototypes) src/filter/src/firdes.o : %.o : %.c $(include_headers) src/filter/src/firdespm.o : %.o : %.c $(include_headers) src/filter/src/group_delay.o : %.o : %.c $(include_headers) @@ -486,30 +502,41 @@ src/filter/src/rrcos.o : %.o : %.c $(include_headers) filter_autotests := \ + src/filter/tests/dds_cccf_autotest.c \ src/filter/tests/fdelay_rrrf_autotest.c \ src/filter/tests/fftfilt_xxxf_autotest.c \ src/filter/tests/filter_crosscorr_autotest.c \ + src/filter/tests/firdecim_autotest.c \ src/filter/tests/firdecim_xxxf_autotest.c \ src/filter/tests/firdes_autotest.c \ src/filter/tests/firdespm_autotest.c \ + src/filter/tests/firfilt_autotest.c \ src/filter/tests/firfilt_cccf_notch_autotest.c \ src/filter/tests/firfilt_coefficients_autotest.c \ src/filter/tests/firfilt_rnyquist_autotest.c \ src/filter/tests/firfilt_xxxf_autotest.c \ + src/filter/tests/firfilt_copy_autotest.c \ src/filter/tests/firhilb_autotest.c \ src/filter/tests/firinterp_autotest.c \ src/filter/tests/firpfb_autotest.c \ src/filter/tests/groupdelay_autotest.c \ + src/filter/tests/iirdecim_autotest.c \ src/filter/tests/iirdes_autotest.c \ src/filter/tests/iirdes_support_autotest.c \ src/filter/tests/iirfilt_xxxf_autotest.c \ - src/filter/tests/iirfiltsos_rrrf_autotest.c \ + src/filter/tests/iirfilt_copy_autotest.c \ + src/filter/tests/iirfiltsos_autotest.c \ + src/filter/tests/iirhilb_autotest.c \ + src/filter/tests/iirinterp_autotest.c \ src/filter/tests/lpc_autotest.c \ src/filter/tests/msresamp_crcf_autotest.c \ + src/filter/tests/msresamp2_crcf_autotest.c \ + src/filter/tests/ordfilt_autotest.c \ src/filter/tests/rresamp_crcf_autotest.c \ src/filter/tests/rresamp_crcf_partition_autotest.c \ src/filter/tests/resamp_crcf_autotest.c \ src/filter/tests/resamp2_crcf_autotest.c \ + src/filter/tests/symsync_copy_autotest.c \ src/filter/tests/symsync_crcf_autotest.c \ src/filter/tests/symsync_rrrf_autotest.c \ @@ -638,10 +665,10 @@ framing_objects := \ src/framing/src/bpacketgen.o : %.o : %.c $(include_headers) src/framing/src/bpacketsync.o : %.o : %.c $(include_headers) -src/framing/src/bpresync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bpresync.c -src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c -src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c -src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c +src/framing/src/bpresync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bpresync.proto.c +src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c +src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c +src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c src/framing/src/detector_cccf.o : %.o : %.c $(include_headers) src/framing/src/dsssframegen.o : %.o : %.c $(include_headers) src/framing/src/dsssframesync.o : %.o : %.c $(include_headers) @@ -651,28 +678,34 @@ src/framing/src/framegen64.o : %.o : %.c $(include_headers) src/framing/src/framesync64.o : %.o : %.c $(include_headers) src/framing/src/flexframegen.o : %.o : %.c $(include_headers) src/framing/src/flexframesync.o : %.o : %.c $(include_headers) -src/framing/src/msourcecf.o : %.o : %.c $(include_headers) src/framing/src/msource.c src/framing/src/qsource.c +src/framing/src/msourcecf.o : %.o : %.c $(include_headers) src/framing/src/msource.proto.c src/framing/src/qsource.proto.c src/framing/src/ofdmflexframegen.o : %.o : %.c $(include_headers) src/framing/src/ofdmflexframesync.o : %.o : %.c $(include_headers) -src/framing/src/presync_cccf.o : %.o : %.c $(include_headers) src/framing/src/presync.c +src/framing/src/presync_cccf.o : %.o : %.c $(include_headers) src/framing/src/presync.proto.c src/framing/src/qpacketmodem.o : %.o : %.c $(include_headers) -src/framing/src/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.c -src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.c -src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.c +src/framing/src/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.proto.c +src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.proto.c +src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.proto.c framing_autotests := \ src/framing/tests/bpacketsync_autotest.c \ src/framing/tests/bsync_autotest.c \ src/framing/tests/detector_autotest.c \ + src/framing/tests/dsssframesync_autotest.c \ src/framing/tests/flexframesync_autotest.c \ src/framing/tests/framesync64_autotest.c \ src/framing/tests/gmskframe_autotest.c \ + src/framing/tests/msource_autotest.c \ src/framing/tests/ofdmflexframe_autotest.c \ src/framing/tests/qdetector_cccf_autotest.c \ + src/framing/tests/qdetector_cccf_copy_autotest.c \ src/framing/tests/qpacketmodem_autotest.c \ src/framing/tests/qpilotsync_autotest.c \ + src/framing/tests/qsource_autotest.c \ + src/framing/tests/symstreamcf_autotest.c \ src/framing/tests/symstreamcf_delay_autotest.c \ + src/framing/tests/symstreamrcf_autotest.c \ src/framing/tests/symstreamrcf_delay_autotest.c \ src/framing/tests/symtrack_cccf_autotest.c \ @@ -708,15 +741,15 @@ math_objects := \ src/math/src/windows.o \ -poly_includes := \ - src/math/src/poly.common.c \ - src/math/src/poly.expand.c \ - src/math/src/poly.lagrange.c \ +poly_prototypes := \ + src/math/src/poly.common.proto.c \ + src/math/src/poly.expand.proto.c \ + src/math/src/poly.lagrange.proto.c \ -src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes) -src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_includes) -src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_includes) -src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_includes) +src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_prototypes) +src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_prototypes) +src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_prototypes) +src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_prototypes) src/math/src/math.o : %.o : %.c $(include_headers) src/math/src/math.bessel.o : %.o : %.c $(include_headers) src/math/src/math.gamma.o : %.o : %.c $(include_headers) @@ -757,24 +790,24 @@ matrix_objects := \ src/matrix/src/smatrixi.o \ -matrix_includes := \ - src/matrix/src/matrix.base.c \ - src/matrix/src/matrix.cgsolve.c \ - src/matrix/src/matrix.chol.c \ - src/matrix/src/matrix.gramschmidt.c \ - src/matrix/src/matrix.inv.c \ - src/matrix/src/matrix.linsolve.c \ - src/matrix/src/matrix.ludecomp.c \ - src/matrix/src/matrix.qrdecomp.c \ - src/matrix/src/matrix.math.c \ +matrix_prototypes := \ + src/matrix/src/matrix.base.proto.c \ + src/matrix/src/matrix.cgsolve.proto.c \ + src/matrix/src/matrix.chol.proto.c \ + src/matrix/src/matrix.gramschmidt.proto.c \ + src/matrix/src/matrix.inv.proto.c \ + src/matrix/src/matrix.linsolve.proto.c \ + src/matrix/src/matrix.ludecomp.proto.c \ + src/matrix/src/matrix.qrdecomp.proto.c \ + src/matrix/src/matrix.math.proto.c \ -src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_includes) -src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_includes) -src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_includes) -src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_includes) -src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c -src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c -src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c +src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_prototypes) +src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_prototypes) +src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_prototypes) +src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_prototypes) +src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c +src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c +src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c # matrix autotest scripts @@ -835,26 +868,26 @@ modem_objects := \ src/modem/src/modem_arb_const.o \ # explicit targets and dependencies -modem_includes := \ - src/modem/src/freqdem.c \ - src/modem/src/freqmod.c \ - src/modem/src/modem_common.c \ - src/modem/src/modem_psk.c \ - src/modem/src/modem_dpsk.c \ - src/modem/src/modem_ask.c \ - src/modem/src/modem_qam.c \ - src/modem/src/modem_apsk.c \ - src/modem/src/modem_bpsk.c \ - src/modem/src/modem_qpsk.c \ - src/modem/src/modem_ook.c \ - src/modem/src/modem_pi4dqpsk.c \ - src/modem/src/modem_sqam32.c \ - src/modem/src/modem_sqam128.c \ - src/modem/src/modem_arb.c \ +modem_prototypes := \ + src/modem/src/freqdem.proto.c \ + src/modem/src/freqmod.proto.c \ + src/modem/src/modem_common.proto.c \ + src/modem/src/modem_psk.proto.c \ + src/modem/src/modem_dpsk.proto.c \ + src/modem/src/modem_ask.proto.c \ + src/modem/src/modem_qam.proto.c \ + src/modem/src/modem_apsk.proto.c \ + src/modem/src/modem_bpsk.proto.c \ + src/modem/src/modem_qpsk.proto.c \ + src/modem/src/modem_ook.proto.c \ + src/modem/src/modem_pi4dqpsk.proto.c \ + src/modem/src/modem_sqam32.proto.c \ + src/modem/src/modem_sqam128.proto.c \ + src/modem/src/modem_arb.proto.c \ #src/modem/src/modem_demod_soft_const.c -src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_includes) +src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_prototypes) src/modem/src/modem.shim.o : %.o : %.c $(include_headers) src/modem/src/gmskmod.o : %.o : %.c $(include_headers) src/modem/src/gmskdem.o : %.o : %.c $(include_headers) @@ -870,7 +903,9 @@ modem_autotests := \ src/modem/tests/cpfskmodem_autotest.c \ src/modem/tests/freqmodem_autotest.c \ src/modem/tests/fskmodem_autotest.c \ + src/modem/tests/gmskmodem_autotest.c \ src/modem/tests/modem_autotest.c \ + src/modem/tests/modem_copy_autotest.c \ src/modem/tests/modem_demodsoft_autotest.c \ src/modem/tests/modem_demodstats_autotest.c \ src/modem/tests/modem_utilities_autotest.c \ @@ -900,13 +935,13 @@ multichannel_objects := \ $(multichannel_objects) : %.o : %.c $(include_headers) # list explicit targets and dependencies here -multichannel_includes := \ - src/multichannel/src/firpfbch.c \ - src/multichannel/src/firpfbch2.c \ - src/multichannel/src/firpfbchr.c \ +multichannel_prototypes := \ + src/multichannel/src/firpfbch.proto.c \ + src/multichannel/src/firpfbch2.proto.c \ + src/multichannel/src/firpfbchr.proto.c \ -src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_includes) -src/multichannel/src/firpfbch_cccf.o : %.o : %.c $(include_headers) $(multichannel_includes) +src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_prototypes) +src/multichannel/src/firpfbch_cccf.o : %.o : %.c $(include_headers) $(multichannel_prototypes) # autotests multichannel_autotests := \ @@ -930,16 +965,18 @@ multichannel_benchmarks := \ nco_objects := \ src/nco/src/nco_crcf.o \ src/nco/src/nco.utilities.o \ - src/nco/src/synth_crcf.o \ +nco_prototypes := \ + src/nco/src/nco.proto.c \ + src/nco/src/synth.proto.c \ -src/nco/src/nco_crcf.o : %.o : %.c $(include_headers) src/nco/src/nco.c +src/nco/src/nco_crcf.o : %.o : %.c $(include_headers) $(nco_prototypes) src/nco/src/nco.utilities.o : %.o : %.c $(include_headers) -src/nco/src/synth_crcf.o : %.o : %.c $(include_headers) src/nco/src/synth.c # autotests nco_autotests := \ + src/nco/tests/nco_crcf_copy_autotest.c \ src/nco/tests/nco_crcf_frequency_autotest.c \ src/nco/tests/nco_crcf_mix_autotest.c \ src/nco/tests/nco_crcf_phase_autotest.c \ @@ -968,6 +1005,7 @@ optim_objects := \ src/optim/src/gradsearch.o \ src/optim/src/optim.common.o \ src/optim/src/qnsearch.o \ + src/optim/src/qs1dsearch.o \ src/optim/src/utilities.o \ $(optim_objects) : %.o : %.c $(include_headers) @@ -975,6 +1013,7 @@ $(optim_objects) : %.o : %.c $(include_headers) # autotests optim_autotests := \ src/optim/tests/gradsearch_autotest.c \ + src/optim/tests/qs1dsearch_autotest.c \ # benchmarks optim_benchmarks := @@ -990,10 +1029,12 @@ quantization_objects := \ src/quantization/src/quantizerf.o \ src/quantization/src/quantizer.inline.o \ +quantization_prototypes := \ + src/quantization/src/quantizer.proto.c \ src/quantization/src/compand.o : %.o : %.c $(include_headers) -src/quantization/src/quantizercf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c -src/quantization/src/quantizerf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c +src/quantization/src/quantizercf.o : %.o : %.c $(include_headers) $(quantization_prototypes) +src/quantization/src/quantizerf.o : %.o : %.c $(include_headers) $(quantization_prototypes) src/quantization/src/quantizer.inline.o : %.o : %.c $(include_headers) @@ -1066,6 +1107,7 @@ sequence_benchmarks := \ utility_objects := \ src/utility/src/bshift_array.o \ src/utility/src/byte_utilities.o \ + src/utility/src/memory.o \ src/utility/src/msb_index.o \ src/utility/src/pack_bytes.o \ src/utility/src/shift_array.o \ @@ -1094,14 +1136,14 @@ vector_objects := \ src/vector/src/vectorf_add.port.o src/vector/src/vectorf_norm.port.o src/vector/src/vectorf_mul.port.o src/vector/src/vectorf_trig.port.o src/vector/src/vectorcf_add.port.o src/vector/src/vectorcf_norm.port.o src/vector/src/vectorcf_mul.port.o src/vector/src/vectorcf_trig.port.o \ # portable builds -src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c -src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c -src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c -src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c -src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c -src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c -src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c -src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c +src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.proto.c +src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.proto.c +src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.proto.c +src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.proto.c +src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.proto.c +src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.proto.c +src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.proto.c +src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.proto.c # builds for specific architectures # ... @@ -1202,10 +1244,9 @@ benchmark_sources := \ ## .PHONY: all -# Shared library -ARCHIVE_LIB = libliquid.a -#MINGW: -SHARED_LIB = libliquid.dll +# Shared library targets +ARCHIVE_LIB = libliquid.${AR_LIB} +SHARED_LIB = libliquid.${SH_LIB} # # darwin @@ -1237,7 +1278,7 @@ all: ${ARCHIVE_LIB} ${SHARED_LIB} ## TARGET : help - print list of targets ## -# look for all occurences of '## TARGET : ' and print rest of line to screen +# look for all occurrences of '## TARGET : ' and print rest of line to screen help: @echo "Targets for liquid-dsp makefile:" @$(GREP) -E "^## TARGET : " [Mm]akefile | $(SED) 's/## TARGET : / /' @@ -1249,11 +1290,13 @@ help: install: all @echo "installing..." @echo "" - mkdir -p $(DESTDIR)$(prefix)/include mkdir -p $(DESTDIR)$(prefix)/include/liquid mkdir -p $(DESTDIR)$(libdir) - install -m 644 -p ${ARCHIVE_LIB} ${SHARED_LIB} $(DESTDIR)$(libdir) - install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid + install -m 644 -p libliquid.${AR_LIB} $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION} + install -m 644 -p libliquid.${SH_LIB} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION} + install -m 644 -p include/liquid.h $(DESTDIR)$(prefix)/include/liquid/liquid.h + ln -sf libliquid.${SH_LIB}.${VERSION} $(DESTDIR)$(libdir)/libliquid.${SH_LIB} + ln -sf libliquid.${SH_LIB}.${VERSION} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1 @echo "" @echo "---------------------------------------------------------" @echo " liquid-dsp was successfully installed. " @@ -1272,11 +1315,14 @@ install: all ## TARGET : uninstall - uninstalls the libraries and header files in the host system ## +#$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install)) uninstall: @echo "uninstalling..." - $(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install)) - $(RM) $(DESTDIR)$(libdir)/${ARCHIVE_LIB} - $(RM) $(DESTDIR)$(libdir)/${SHARED_LIB} + $(RM) $(DESTDIR)$(prefix)/include/liquid/liquid.h + $(RM) $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION} + $(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION} + $(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1 + $(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB} @echo "done." ## @@ -1311,26 +1357,19 @@ autotest_include.h : scripts/autoscript $(autotest_sources) $(include_headers) # autotest objects # NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled -# header' so we need to explicity tell it to compile as a c source file with +# header' so we need to explicitly tell it to compile as a c source file with # the '-x c' flag autotest_obj = $(patsubst %.c,%.o,$(autotest_sources)) -$(autotest_obj) : %.o : %.c $(include_headers) - $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ - -# additional autotest objects -$(autotest_extra_obj) : %.o : %.c $(include_headers) - -# compile the autotest internal library functions without linking -autotest/autotestlib.o : autotest/autotestlib.c autotest/autotest.h +$(autotest_obj) $(autotest_extra_obj) autotest/autotest.o : %.o : %.c $(include_headers) autotest/autotest.h $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ # compile the autotest program without linking -$(autotest_prog).o : autotest/autotest.c autotest/autotest.h autotest_include.h +$(autotest_prog).o : autotest/xautotest.c autotest/autotest.h autotest_include.h $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ # link the autotest program with the objects # NOTE: linked libraries must come _after_ the target program -$(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotestlib.o ${ARCHIVE_LIB} +$(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotest.o ${ARCHIVE_LIB} $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) # run the autotest program @@ -1343,10 +1382,12 @@ test: check # clean the generated files clean-check: $(RM) autotest_include.h $(autotest_prog).o $(autotest_prog) - $(RM) autotest/autotestlib.o $(RM) $(autotest_obj) $(RM) $(autotest_extra_obj) + $(RM) autotest/autotest.o $(RM) autotest.json + $(RM) autotest/logs/*.m autotest/logs/*.dat + $(RM) autotest/logs/*.bin autotest/logs/*.gnu autotest/logs/*.png ## ## TARGET : doc-check - build and run basic documentation checks @@ -1414,7 +1455,7 @@ benchmark_include.h : scripts/autoscript $(benchmark_sources) $(include_headers) # benchmark objects # NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled -# header' so we need to explicity tell it to compile as a c source file with +# header' so we need to explicitly tell it to compile as a c source file with # the '-x c' flag benchmark_obj = $(patsubst %.c,%.o,$(benchmark_sources)) $(benchmark_obj) : %.o : %.c $(include_headers) @@ -1436,10 +1477,6 @@ $(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) ${ARCHIVE bench: $(bench_prog) ./$(bench_prog) -o benchmark.json -# benchmark compare script -scripts/benchmark_compare : % : %.c - $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) - # fftbench program bench/fftbench.o : %.o : %.c $(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@ @@ -1450,7 +1487,6 @@ bench/fftbench : % : %.o ${ARCHIVE_LIB} # clean up the generated files clean-bench: $(RM) benchmark_include.h $(bench_prog).o $(bench_prog) - $(RM) scripts/benchmark_compare $(RM) $(benchmark_obj) $(RM) $(benchmark_extra_obj) $(RM) bench/fftbench.o @@ -1504,11 +1540,14 @@ example_programs := \ examples/firfarrow_rrrf_example \ examples/firfilt_cccf_example \ examples/firfilt_cccf_notch_example \ + examples/firfilt_crcf_copy_example \ examples/firfilt_crcf_example \ examples/firfilt_crcf_dcblocker_example \ examples/firfilt_rrrf_example \ + examples/firdes_doppler_example \ examples/firdes_kaiser_example \ examples/firdespm_callback_example \ + examples/firdespm_halfband_example \ examples/firdespm_example \ examples/firdespm_lowpass_example \ examples/firhilb_example \ @@ -1525,6 +1564,7 @@ example_programs := \ examples/firinterp_rrrf_window_example \ examples/firpfbch_crcf_example \ examples/firpfbch_crcf_analysis_example \ + examples/firpfbch_crcf_msource_example \ examples/firpfbch_crcf_synthesis_example \ examples/flexframesync_example \ examples/flexframesync_reconfig_example \ @@ -1595,6 +1635,7 @@ example_programs := \ examples/qpacketmodem_example \ examples/qpilotsync_example \ examples/qnsearch_example \ + examples/qs1dsearch_example \ examples/quantize_example \ examples/random_histogram_example \ examples/repack_bytes_example \ @@ -1704,6 +1745,7 @@ sandbox_programs = \ sandbox/firdes_gmskrx_test \ sandbox/firdes_group_delay_test \ sandbox/firdes_length_test \ + sandbox/firdespm_halfband_test \ sandbox/firfarrow_rrrf_test \ sandbox/firfilt_dcblocker_test \ sandbox/firpfbch_analysis_alignment_test \ @@ -1751,6 +1793,7 @@ sandbox_programs = \ sandbox/resamp2_crcf_filterbank_test \ sandbox/resamp2_crcf_interp_recreate_test \ sandbox/reverse_byte_gentab \ + sandbox/rhamming_test \ sandbox/rkaiser2_test \ sandbox/shadowing_test \ sandbox/simplex_test \ @@ -1783,6 +1826,23 @@ clean-sandbox: $(RM) sandbox/*.o $(RM) $(sandbox_programs) +## +## TARGET : check-link- test linking to installed library +## + +# run program, ensuring proper error code +check-link: scripts/liquid_linker_test ; ./$< + +# use subset of compiler flags so we don't try to build or link against +# local files +scripts/liquid_linker_test.o : %.o : %.c + $(CC) -c -Wall -O2 -o $@ $< + +scripts/liquid_linker_test : % : %.o + $(CC) -Wall -O2 -o $@ $< -L/usr/local/lib ${LIBS} -lliquid + +extra_clean += scripts/liquid_linker_test.o scripts/liquid_linker_test + ## ## TARGET : programs - build all programs, but don't run anything ## @@ -1813,7 +1873,7 @@ clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench cle distclean: clean @echo "cleaning distribution..." - $(RM) octave-core *.m + $(RM) octave-core *_example.m $(RM) configure config.h config.h.in config.h.in~ config.log config.status $(RM) -r autom4te.cache $(RM) aclocal.m4 diff --git a/external/liquid-dsp/makefile.mingw64 b/external/liquid-dsp/makefile.mingw64 index 2d27b38..40cd5c3 100644 --- a/external/liquid-dsp/makefile.mingw64 +++ b/external/liquid-dsp/makefile.mingw64 @@ -43,8 +43,10 @@ # autoconf initialization macros NAME := liquid-dsp -VERSION := 1.4.0 +VERSION := 1.5 BUGREPORT := joseph@liquidsdr.org +AR_LIB := a +SH_LIB := dll # paths prefix := /usr/local @@ -71,8 +73,8 @@ COVERAGE_FLAGS = # dynamic library linker needs separate flag #MINGW: optimizations goes here, use SSSE42 for 64bit CONFIG_CFLAGS = -O3 -msse4.2 -ffast-math ${COVERAGE_FLAGS} CPPFLAGS = $(INCLUDE_CFLAGS) -CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -CXXFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-return-type-c-linkage +CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-deprecated-declarations +CXXFLAGS = $(CFLAGS) -std=c++14 -Wno-return-type-c-linkage LDFLAGS = #MINGW: LIBS = -lmsvcrt @@ -110,9 +112,12 @@ agc_objects = \ src/agc/src/agc_crcf.o \ src/agc/src/agc_rrrf.o \ +agc_prototypes := \ + src/agc/src/agc.proto.c \ + # explicit targets and dependencies -src/agc/src/agc_crcf.o : %.o : %.c src/agc/src/agc.c $(include_headers) -src/agc/src/agc_rrrf.o : %.o : %.c src/agc/src/agc.c $(include_headers) +src/agc/src/agc_crcf.o : %.o : %.c $(include_headers) $(agc_prototypes) +src/agc/src/agc_rrrf.o : %.o : %.c $(include_headers) $(agc_prototypes) # autotests agc_autotests := \ @@ -148,22 +153,20 @@ buffer_objects := \ src/buffer/src/bufferf.o \ src/buffer/src/buffercf.o \ -buffer_includes := \ - src/buffer/src/cbuffer.c \ - src/buffer/src/wdelay.c \ - src/buffer/src/window.c \ +# src/buffer/src/buffer.proto.c +buffer_prototypes := \ + src/buffer/src/cbuffer.proto.c \ + src/buffer/src/wdelay.proto.c \ + src/buffer/src/window.proto.c \ -src/buffer/src/bufferf.o : %.o : %.c $(include_headers) $(buffer_includes) - -src/buffer/src/buffercf.o : %.o : %.c $(include_headers) $(buffer_includes) +src/buffer/src/bufferf.o : %.o : %.c $(include_headers) $(buffer_prototypes) +src/buffer/src/buffercf.o : %.o : %.c $(include_headers) $(buffer_prototypes) buffer_autotests := \ src/buffer/tests/cbuffer_autotest.c \ src/buffer/tests/wdelay_autotest.c \ src/buffer/tests/window_autotest.c \ - -# src/buffer/tests/sbuffer_autotest.c buffer_benchmarks := \ src/buffer/bench/cbuffercf_benchmark.c \ @@ -177,13 +180,15 @@ buffer_benchmarks := \ channel_objects := \ src/channel/src/channel_cccf.o \ -channel_includes := \ - src/channel/src/channel.c \ - src/channel/src/tvmpch.c \ +channel_prototypes := \ + src/channel/src/channel.proto.c \ + src/channel/src/tvmpch.proto.c \ -src/channel/src/channel_cccf.o : %.o : %.c $(include_headers) $(channel_includes) +src/channel/src/channel_cccf.o : %.o : %.c $(include_headers) $(channel_prototypes) channel_autotests := \ + src/channel/tests/channel_copy_autotest.c \ + src/channel/tests/tvmpch_copy_autotest.c \ #src/channel/tests/channel_cccf_autotest.c @@ -195,11 +200,11 @@ channel_benchmarks := \ # MODULE : dotprod # dotprod_objects := \ - src/dotprod/src/dotprod_cccf.mmx.o src/dotprod/src/dotprod_crcf.mmx.o src/dotprod/src/dotprod_rrrf.mmx.o src/dotprod/src/sumsq.mmx.o \ + src/dotprod/src/dotprod_cccf.mmx.o src/dotprod/src/dotprod_crcf.mmx.o src/dotprod/src/dotprod_rrrf.sse4.o src/dotprod/src/sumsq.mmx.o \ -src/dotprod/src/dotprod_cccf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c -src/dotprod/src/dotprod_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c -src/dotprod/src/dotprod_rrrf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c +src/dotprod/src/dotprod_cccf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c +src/dotprod/src/dotprod_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c +src/dotprod/src/dotprod_rrrf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c src/dotprod/src/sumsq.o : %.o : %.c $(include_headers) # specific machine architectures @@ -217,6 +222,9 @@ src/dotprod/src/sumsq.mmx.o : %.o : %.c $(include_headers) # SSE4.1/2 src/dotprod/src/dotprod_rrrf.sse4.o : %.o : %.c $(include_headers) +# AVX +src/dotprod/src/sumsq.avx.o : %.o : %.c $(include_headers) + # ARM Neon src/dotprod/src/dotprod_rrrf.neon.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod_crcf.neon.o : %.o : %.c $(include_headers) @@ -243,8 +251,11 @@ equalization_objects := \ src/equalization/src/equalizer_cccf.o \ src/equalization/src/equalizer_rrrf.o \ +equalization_prototypes := \ + src/equalization/src/eqlms.proto.c \ + src/equalization/src/eqrls.proto.c \ -$(equalization_objects) : %.o : %.c $(include_headers) src/equalization/src/eqlms.c src/equalization/src/eqrls.c +$(equalization_objects) : %.o : %.c $(include_headers) $(equalization_prototypes) # autotests @@ -294,6 +305,7 @@ $(fec_objects) : %.o : %.c $(include_headers) fec_autotests := \ src/fec/tests/crc_autotest.c \ src/fec/tests/fec_autotest.c \ + src/fec/tests/fec_copy_autotest.c \ src/fec/tests/fec_soft_autotest.c \ src/fec/tests/fec_golay2412_autotest.c \ src/fec/tests/fec_hamming74_autotest.c \ @@ -308,6 +320,7 @@ fec_autotests := \ src/fec/tests/fec_secded3932_autotest.c \ src/fec/tests/fec_secded7264_autotest.c \ src/fec/tests/interleaver_autotest.c \ + src/fec/tests/packetizer_copy_autotest.c \ src/fec/tests/packetizer_autotest.c \ @@ -332,26 +345,27 @@ fft_objects := \ src/fft/src/fft_utilities.o \ # explicit targets and dependencies -fft_includes := \ - src/fft/src/fft_common.c \ - src/fft/src/fft_dft.c \ - src/fft/src/fft_radix2.c \ - src/fft/src/fft_mixed_radix.c \ - src/fft/src/fft_rader.c \ - src/fft/src/fft_rader2.c \ - src/fft/src/fft_r2r_1d.c \ +fft_prototypes := \ + src/fft/src/fft_common.proto.c \ + src/fft/src/fft_dft.proto.c \ + src/fft/src/fft_radix2.proto.c \ + src/fft/src/fft_mixed_radix.proto.c \ + src/fft/src/fft_rader.proto.c \ + src/fft/src/fft_rader2.proto.c \ + src/fft/src/fft_r2r_1d.proto.c \ -src/fft/src/fftf.o : %.o : %.c $(include_headers) $(fft_includes) +src/fft/src/fftf.o : %.o : %.c $(include_headers) $(fft_prototypes) src/fft/src/asgram.o : %.o : %.c $(include_headers) src/fft/src/dct.o : %.o : %.c $(include_headers) src/fft/src/fftf.o : %.o : %.c $(include_headers) src/fft/src/fft_utilities.o : %.o : %.c $(include_headers) src/fft/src/mdct.o : %.o : %.c $(include_headers) -src/fft/src/spgramcf.o : %.o : %.c $(include_headers) src/fft/src/asgram.c src/fft/src/spgram.c src/fft/src/spwaterfall.c -src/fft/src/spgramf.o : %.o : %.c $(include_headers) src/fft/src/asgram.c src/fft/src/spgram.c src/fft/src/spwaterfall.c +src/fft/src/spgramcf.o : %.o : %.c $(include_headers) src/fft/src/asgram.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c +src/fft/src/spgramf.o : %.o : %.c $(include_headers) src/fft/src/asgram.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c # fft autotest scripts fft_autotests := \ + src/fft/tests/asgram_autotest.c \ src/fft/tests/fft_small_autotest.c \ src/fft/tests/fft_radix2_autotest.c \ src/fft/tests/fft_composite_autotest.c \ @@ -407,6 +421,7 @@ fft_benchmarks := \ src/fft/bench/fft_prime_benchmark.c \ src/fft/bench/fft_radix2_benchmark.c \ src/fft/bench/fft_r2r_benchmark.c \ + src/fft/bench/spgramcf_benchmark.c \ # additional benchmark objects benchmark_extra_obj := \ @@ -427,6 +442,7 @@ filter_objects := \ src/filter/src/filter_cccf.o \ src/filter/src/firdes.o \ src/filter/src/firdespm.o \ + src/filter/src/firdespm_halfband.o \ src/filter/src/fnyquist.o \ src/filter/src/gmsk.o \ src/filter/src/group_delay.o \ @@ -440,29 +456,29 @@ filter_objects := \ # list explicit targets and dependencies here -filter_includes := \ - src/filter/src/autocorr.c \ - src/filter/src/dds.c \ - src/filter/src/fdelay.c \ - src/filter/src/fftfilt.c \ - src/filter/src/firdecim.c \ - src/filter/src/firfarrow.c \ - src/filter/src/firfilt.c \ - src/filter/src/firhilb.c \ - src/filter/src/firinterp.c \ - src/filter/src/firpfb.c \ - src/filter/src/iirdecim.c \ - src/filter/src/iirfilt.c \ - src/filter/src/iirfiltsos.c \ - src/filter/src/iirhilb.c \ - src/filter/src/iirinterp.c \ - src/filter/src/msresamp.c \ - src/filter/src/msresamp2.c \ - src/filter/src/ordfilt.c \ - src/filter/src/rresamp.c \ - src/filter/src/resamp.fixed.c \ - src/filter/src/resamp2.c \ - src/filter/src/symsync.c \ +filter_prototypes := \ + src/filter/src/autocorr.proto.c \ + src/filter/src/dds.proto.c \ + src/filter/src/fdelay.proto.c \ + src/filter/src/fftfilt.proto.c \ + src/filter/src/firdecim.proto.c \ + src/filter/src/firfarrow.proto.c \ + src/filter/src/firfilt.proto.c \ + src/filter/src/firhilb.proto.c \ + src/filter/src/firinterp.proto.c \ + src/filter/src/firpfb.proto.c \ + src/filter/src/iirdecim.proto.c \ + src/filter/src/iirfilt.proto.c \ + src/filter/src/iirfiltsos.proto.c \ + src/filter/src/iirhilb.proto.c \ + src/filter/src/iirinterp.proto.c \ + src/filter/src/msresamp.proto.c \ + src/filter/src/msresamp2.proto.c \ + src/filter/src/ordfilt.proto.c \ + src/filter/src/rresamp.proto.c \ + src/filter/src/resamp.fixed.proto.c \ + src/filter/src/resamp2.proto.c \ + src/filter/src/symsync.proto.c \ src/filter/src/bessel.o : %.o : %.c $(include_headers) src/filter/src/bessel.o : %.o : %.c $(include_headers) @@ -470,9 +486,9 @@ src/filter/src/butter.o : %.o : %.c $(include_headers) src/filter/src/cheby1.o : %.o : %.c $(include_headers) src/filter/src/cheby2.o : %.o : %.c $(include_headers) src/filter/src/ellip.o : %.o : %.c $(include_headers) -src/filter/src/filter_rrrf.o : %.o : %.c $(include_headers) $(filter_includes) -src/filter/src/filter_crcf.o : %.o : %.c $(include_headers) $(filter_includes) -src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_includes) +src/filter/src/filter_rrrf.o : %.o : %.c $(include_headers) $(filter_prototypes) +src/filter/src/filter_crcf.o : %.o : %.c $(include_headers) $(filter_prototypes) +src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_prototypes) src/filter/src/firdes.o : %.o : %.c $(include_headers) src/filter/src/firdespm.o : %.o : %.c $(include_headers) src/filter/src/group_delay.o : %.o : %.c $(include_headers) @@ -486,30 +502,41 @@ src/filter/src/rrcos.o : %.o : %.c $(include_headers) filter_autotests := \ + src/filter/tests/dds_cccf_autotest.c \ src/filter/tests/fdelay_rrrf_autotest.c \ src/filter/tests/fftfilt_xxxf_autotest.c \ src/filter/tests/filter_crosscorr_autotest.c \ + src/filter/tests/firdecim_autotest.c \ src/filter/tests/firdecim_xxxf_autotest.c \ src/filter/tests/firdes_autotest.c \ src/filter/tests/firdespm_autotest.c \ + src/filter/tests/firfilt_autotest.c \ src/filter/tests/firfilt_cccf_notch_autotest.c \ src/filter/tests/firfilt_coefficients_autotest.c \ src/filter/tests/firfilt_rnyquist_autotest.c \ src/filter/tests/firfilt_xxxf_autotest.c \ + src/filter/tests/firfilt_copy_autotest.c \ src/filter/tests/firhilb_autotest.c \ src/filter/tests/firinterp_autotest.c \ src/filter/tests/firpfb_autotest.c \ src/filter/tests/groupdelay_autotest.c \ + src/filter/tests/iirdecim_autotest.c \ src/filter/tests/iirdes_autotest.c \ src/filter/tests/iirdes_support_autotest.c \ src/filter/tests/iirfilt_xxxf_autotest.c \ - src/filter/tests/iirfiltsos_rrrf_autotest.c \ + src/filter/tests/iirfilt_copy_autotest.c \ + src/filter/tests/iirfiltsos_autotest.c \ + src/filter/tests/iirhilb_autotest.c \ + src/filter/tests/iirinterp_autotest.c \ src/filter/tests/lpc_autotest.c \ src/filter/tests/msresamp_crcf_autotest.c \ + src/filter/tests/msresamp2_crcf_autotest.c \ + src/filter/tests/ordfilt_autotest.c \ src/filter/tests/rresamp_crcf_autotest.c \ src/filter/tests/rresamp_crcf_partition_autotest.c \ src/filter/tests/resamp_crcf_autotest.c \ src/filter/tests/resamp2_crcf_autotest.c \ + src/filter/tests/symsync_copy_autotest.c \ src/filter/tests/symsync_crcf_autotest.c \ src/filter/tests/symsync_rrrf_autotest.c \ @@ -638,10 +665,10 @@ framing_objects := \ src/framing/src/bpacketgen.o : %.o : %.c $(include_headers) src/framing/src/bpacketsync.o : %.o : %.c $(include_headers) -src/framing/src/bpresync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bpresync.c -src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c -src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c -src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c +src/framing/src/bpresync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bpresync.proto.c +src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c +src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c +src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c src/framing/src/detector_cccf.o : %.o : %.c $(include_headers) src/framing/src/dsssframegen.o : %.o : %.c $(include_headers) src/framing/src/dsssframesync.o : %.o : %.c $(include_headers) @@ -651,28 +678,34 @@ src/framing/src/framegen64.o : %.o : %.c $(include_headers) src/framing/src/framesync64.o : %.o : %.c $(include_headers) src/framing/src/flexframegen.o : %.o : %.c $(include_headers) src/framing/src/flexframesync.o : %.o : %.c $(include_headers) -src/framing/src/msourcecf.o : %.o : %.c $(include_headers) src/framing/src/msource.c src/framing/src/qsource.c +src/framing/src/msourcecf.o : %.o : %.c $(include_headers) src/framing/src/msource.proto.c src/framing/src/qsource.proto.c src/framing/src/ofdmflexframegen.o : %.o : %.c $(include_headers) src/framing/src/ofdmflexframesync.o : %.o : %.c $(include_headers) -src/framing/src/presync_cccf.o : %.o : %.c $(include_headers) src/framing/src/presync.c +src/framing/src/presync_cccf.o : %.o : %.c $(include_headers) src/framing/src/presync.proto.c src/framing/src/qpacketmodem.o : %.o : %.c $(include_headers) -src/framing/src/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.c -src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.c -src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.c +src/framing/src/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.proto.c +src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.proto.c +src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.proto.c framing_autotests := \ src/framing/tests/bpacketsync_autotest.c \ src/framing/tests/bsync_autotest.c \ src/framing/tests/detector_autotest.c \ + src/framing/tests/dsssframesync_autotest.c \ src/framing/tests/flexframesync_autotest.c \ src/framing/tests/framesync64_autotest.c \ src/framing/tests/gmskframe_autotest.c \ + src/framing/tests/msource_autotest.c \ src/framing/tests/ofdmflexframe_autotest.c \ src/framing/tests/qdetector_cccf_autotest.c \ + src/framing/tests/qdetector_cccf_copy_autotest.c \ src/framing/tests/qpacketmodem_autotest.c \ src/framing/tests/qpilotsync_autotest.c \ + src/framing/tests/qsource_autotest.c \ + src/framing/tests/symstreamcf_autotest.c \ src/framing/tests/symstreamcf_delay_autotest.c \ + src/framing/tests/symstreamrcf_autotest.c \ src/framing/tests/symstreamrcf_delay_autotest.c \ src/framing/tests/symtrack_cccf_autotest.c \ @@ -708,15 +741,15 @@ math_objects := \ src/math/src/windows.o \ -poly_includes := \ - src/math/src/poly.common.c \ - src/math/src/poly.expand.c \ - src/math/src/poly.lagrange.c \ +poly_prototypes := \ + src/math/src/poly.common.proto.c \ + src/math/src/poly.expand.proto.c \ + src/math/src/poly.lagrange.proto.c \ -src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes) -src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_includes) -src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_includes) -src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_includes) +src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_prototypes) +src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_prototypes) +src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_prototypes) +src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_prototypes) src/math/src/math.o : %.o : %.c $(include_headers) src/math/src/math.bessel.o : %.o : %.c $(include_headers) src/math/src/math.gamma.o : %.o : %.c $(include_headers) @@ -757,24 +790,24 @@ matrix_objects := \ src/matrix/src/smatrixi.o \ -matrix_includes := \ - src/matrix/src/matrix.base.c \ - src/matrix/src/matrix.cgsolve.c \ - src/matrix/src/matrix.chol.c \ - src/matrix/src/matrix.gramschmidt.c \ - src/matrix/src/matrix.inv.c \ - src/matrix/src/matrix.linsolve.c \ - src/matrix/src/matrix.ludecomp.c \ - src/matrix/src/matrix.qrdecomp.c \ - src/matrix/src/matrix.math.c \ +matrix_prototypes := \ + src/matrix/src/matrix.base.proto.c \ + src/matrix/src/matrix.cgsolve.proto.c \ + src/matrix/src/matrix.chol.proto.c \ + src/matrix/src/matrix.gramschmidt.proto.c \ + src/matrix/src/matrix.inv.proto.c \ + src/matrix/src/matrix.linsolve.proto.c \ + src/matrix/src/matrix.ludecomp.proto.c \ + src/matrix/src/matrix.qrdecomp.proto.c \ + src/matrix/src/matrix.math.proto.c \ -src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_includes) -src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_includes) -src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_includes) -src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_includes) -src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c -src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c -src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c +src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_prototypes) +src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_prototypes) +src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_prototypes) +src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_prototypes) +src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c +src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c +src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c # matrix autotest scripts @@ -835,26 +868,26 @@ modem_objects := \ src/modem/src/modem_arb_const.o \ # explicit targets and dependencies -modem_includes := \ - src/modem/src/freqdem.c \ - src/modem/src/freqmod.c \ - src/modem/src/modem_common.c \ - src/modem/src/modem_psk.c \ - src/modem/src/modem_dpsk.c \ - src/modem/src/modem_ask.c \ - src/modem/src/modem_qam.c \ - src/modem/src/modem_apsk.c \ - src/modem/src/modem_bpsk.c \ - src/modem/src/modem_qpsk.c \ - src/modem/src/modem_ook.c \ - src/modem/src/modem_pi4dqpsk.c \ - src/modem/src/modem_sqam32.c \ - src/modem/src/modem_sqam128.c \ - src/modem/src/modem_arb.c \ +modem_prototypes := \ + src/modem/src/freqdem.proto.c \ + src/modem/src/freqmod.proto.c \ + src/modem/src/modem_common.proto.c \ + src/modem/src/modem_psk.proto.c \ + src/modem/src/modem_dpsk.proto.c \ + src/modem/src/modem_ask.proto.c \ + src/modem/src/modem_qam.proto.c \ + src/modem/src/modem_apsk.proto.c \ + src/modem/src/modem_bpsk.proto.c \ + src/modem/src/modem_qpsk.proto.c \ + src/modem/src/modem_ook.proto.c \ + src/modem/src/modem_pi4dqpsk.proto.c \ + src/modem/src/modem_sqam32.proto.c \ + src/modem/src/modem_sqam128.proto.c \ + src/modem/src/modem_arb.proto.c \ #src/modem/src/modem_demod_soft_const.c -src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_includes) +src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_prototypes) src/modem/src/modem.shim.o : %.o : %.c $(include_headers) src/modem/src/gmskmod.o : %.o : %.c $(include_headers) src/modem/src/gmskdem.o : %.o : %.c $(include_headers) @@ -870,7 +903,9 @@ modem_autotests := \ src/modem/tests/cpfskmodem_autotest.c \ src/modem/tests/freqmodem_autotest.c \ src/modem/tests/fskmodem_autotest.c \ + src/modem/tests/gmskmodem_autotest.c \ src/modem/tests/modem_autotest.c \ + src/modem/tests/modem_copy_autotest.c \ src/modem/tests/modem_demodsoft_autotest.c \ src/modem/tests/modem_demodstats_autotest.c \ src/modem/tests/modem_utilities_autotest.c \ @@ -900,13 +935,13 @@ multichannel_objects := \ $(multichannel_objects) : %.o : %.c $(include_headers) # list explicit targets and dependencies here -multichannel_includes := \ - src/multichannel/src/firpfbch.c \ - src/multichannel/src/firpfbch2.c \ - src/multichannel/src/firpfbchr.c \ +multichannel_prototypes := \ + src/multichannel/src/firpfbch.proto.c \ + src/multichannel/src/firpfbch2.proto.c \ + src/multichannel/src/firpfbchr.proto.c \ -src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_includes) -src/multichannel/src/firpfbch_cccf.o : %.o : %.c $(include_headers) $(multichannel_includes) +src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_prototypes) +src/multichannel/src/firpfbch_cccf.o : %.o : %.c $(include_headers) $(multichannel_prototypes) # autotests multichannel_autotests := \ @@ -930,16 +965,18 @@ multichannel_benchmarks := \ nco_objects := \ src/nco/src/nco_crcf.o \ src/nco/src/nco.utilities.o \ - src/nco/src/synth_crcf.o \ +nco_prototypes := \ + src/nco/src/nco.proto.c \ + src/nco/src/synth.proto.c \ -src/nco/src/nco_crcf.o : %.o : %.c $(include_headers) src/nco/src/nco.c +src/nco/src/nco_crcf.o : %.o : %.c $(include_headers) $(nco_prototypes) src/nco/src/nco.utilities.o : %.o : %.c $(include_headers) -src/nco/src/synth_crcf.o : %.o : %.c $(include_headers) src/nco/src/synth.c # autotests nco_autotests := \ + src/nco/tests/nco_crcf_copy_autotest.c \ src/nco/tests/nco_crcf_frequency_autotest.c \ src/nco/tests/nco_crcf_mix_autotest.c \ src/nco/tests/nco_crcf_phase_autotest.c \ @@ -968,6 +1005,7 @@ optim_objects := \ src/optim/src/gradsearch.o \ src/optim/src/optim.common.o \ src/optim/src/qnsearch.o \ + src/optim/src/qs1dsearch.o \ src/optim/src/utilities.o \ $(optim_objects) : %.o : %.c $(include_headers) @@ -975,6 +1013,7 @@ $(optim_objects) : %.o : %.c $(include_headers) # autotests optim_autotests := \ src/optim/tests/gradsearch_autotest.c \ + src/optim/tests/qs1dsearch_autotest.c \ # benchmarks optim_benchmarks := @@ -990,10 +1029,12 @@ quantization_objects := \ src/quantization/src/quantizerf.o \ src/quantization/src/quantizer.inline.o \ +quantization_prototypes := \ + src/quantization/src/quantizer.proto.c \ src/quantization/src/compand.o : %.o : %.c $(include_headers) -src/quantization/src/quantizercf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c -src/quantization/src/quantizerf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c +src/quantization/src/quantizercf.o : %.o : %.c $(include_headers) $(quantization_prototypes) +src/quantization/src/quantizerf.o : %.o : %.c $(include_headers) $(quantization_prototypes) src/quantization/src/quantizer.inline.o : %.o : %.c $(include_headers) @@ -1066,6 +1107,7 @@ sequence_benchmarks := \ utility_objects := \ src/utility/src/bshift_array.o \ src/utility/src/byte_utilities.o \ + src/utility/src/memory.o \ src/utility/src/msb_index.o \ src/utility/src/pack_bytes.o \ src/utility/src/shift_array.o \ @@ -1094,14 +1136,14 @@ vector_objects := \ src/vector/src/vectorf_add.port.o src/vector/src/vectorf_norm.port.o src/vector/src/vectorf_mul.port.o src/vector/src/vectorf_trig.port.o src/vector/src/vectorcf_add.port.o src/vector/src/vectorcf_norm.port.o src/vector/src/vectorcf_mul.port.o src/vector/src/vectorcf_trig.port.o \ # portable builds -src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c -src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c -src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c -src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c -src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c -src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c -src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c -src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c +src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.proto.c +src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.proto.c +src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.proto.c +src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.proto.c +src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.proto.c +src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.proto.c +src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.proto.c +src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.proto.c # builds for specific architectures # ... @@ -1202,10 +1244,9 @@ benchmark_sources := \ ## .PHONY: all -# Shared library -ARCHIVE_LIB = libliquid.a -#MINGW: -SHARED_LIB = libliquid.dll +# Shared library targets +ARCHIVE_LIB = libliquid.${AR_LIB} +SHARED_LIB = libliquid.${SH_LIB} # # darwin @@ -1237,7 +1278,7 @@ all: ${ARCHIVE_LIB} ${SHARED_LIB} ## TARGET : help - print list of targets ## -# look for all occurences of '## TARGET : ' and print rest of line to screen +# look for all occurrences of '## TARGET : ' and print rest of line to screen help: @echo "Targets for liquid-dsp makefile:" @$(GREP) -E "^## TARGET : " [Mm]akefile | $(SED) 's/## TARGET : / /' @@ -1249,11 +1290,13 @@ help: install: all @echo "installing..." @echo "" - mkdir -p $(DESTDIR)$(prefix)/include mkdir -p $(DESTDIR)$(prefix)/include/liquid mkdir -p $(DESTDIR)$(libdir) - install -m 644 -p ${ARCHIVE_LIB} ${SHARED_LIB} $(DESTDIR)$(libdir) - install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid + install -m 644 -p libliquid.${AR_LIB} $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION} + install -m 644 -p libliquid.${SH_LIB} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION} + install -m 644 -p include/liquid.h $(DESTDIR)$(prefix)/include/liquid/liquid.h + ln -sf libliquid.${SH_LIB}.${VERSION} $(DESTDIR)$(libdir)/libliquid.${SH_LIB} + ln -sf libliquid.${SH_LIB}.${VERSION} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1 @echo "" @echo "---------------------------------------------------------" @echo " liquid-dsp was successfully installed. " @@ -1272,11 +1315,14 @@ install: all ## TARGET : uninstall - uninstalls the libraries and header files in the host system ## +#$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install)) uninstall: @echo "uninstalling..." - $(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install)) - $(RM) $(DESTDIR)$(libdir)/${ARCHIVE_LIB} - $(RM) $(DESTDIR)$(libdir)/${SHARED_LIB} + $(RM) $(DESTDIR)$(prefix)/include/liquid/liquid.h + $(RM) $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION} + $(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION} + $(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1 + $(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB} @echo "done." ## @@ -1311,26 +1357,19 @@ autotest_include.h : scripts/autoscript $(autotest_sources) $(include_headers) # autotest objects # NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled -# header' so we need to explicity tell it to compile as a c source file with +# header' so we need to explicitly tell it to compile as a c source file with # the '-x c' flag autotest_obj = $(patsubst %.c,%.o,$(autotest_sources)) -$(autotest_obj) : %.o : %.c $(include_headers) - $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ - -# additional autotest objects -$(autotest_extra_obj) : %.o : %.c $(include_headers) - -# compile the autotest internal library functions without linking -autotest/autotestlib.o : autotest/autotestlib.c autotest/autotest.h +$(autotest_obj) $(autotest_extra_obj) autotest/autotest.o : %.o : %.c $(include_headers) autotest/autotest.h $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ # compile the autotest program without linking -$(autotest_prog).o : autotest/autotest.c autotest/autotest.h autotest_include.h +$(autotest_prog).o : autotest/xautotest.c autotest/autotest.h autotest_include.h $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ # link the autotest program with the objects # NOTE: linked libraries must come _after_ the target program -$(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotestlib.o ${ARCHIVE_LIB} +$(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotest.o ${ARCHIVE_LIB} $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) # run the autotest program @@ -1343,10 +1382,12 @@ test: check # clean the generated files clean-check: $(RM) autotest_include.h $(autotest_prog).o $(autotest_prog) - $(RM) autotest/autotestlib.o $(RM) $(autotest_obj) $(RM) $(autotest_extra_obj) + $(RM) autotest/autotest.o $(RM) autotest.json + $(RM) autotest/logs/*.m autotest/logs/*.dat + $(RM) autotest/logs/*.bin autotest/logs/*.gnu autotest/logs/*.png ## ## TARGET : doc-check - build and run basic documentation checks @@ -1414,7 +1455,7 @@ benchmark_include.h : scripts/autoscript $(benchmark_sources) $(include_headers) # benchmark objects # NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled -# header' so we need to explicity tell it to compile as a c source file with +# header' so we need to explicitly tell it to compile as a c source file with # the '-x c' flag benchmark_obj = $(patsubst %.c,%.o,$(benchmark_sources)) $(benchmark_obj) : %.o : %.c $(include_headers) @@ -1436,10 +1477,6 @@ $(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) ${ARCHIVE bench: $(bench_prog) ./$(bench_prog) -o benchmark.json -# benchmark compare script -scripts/benchmark_compare : % : %.c - $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) - # fftbench program bench/fftbench.o : %.o : %.c $(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@ @@ -1450,7 +1487,6 @@ bench/fftbench : % : %.o ${ARCHIVE_LIB} # clean up the generated files clean-bench: $(RM) benchmark_include.h $(bench_prog).o $(bench_prog) - $(RM) scripts/benchmark_compare $(RM) $(benchmark_obj) $(RM) $(benchmark_extra_obj) $(RM) bench/fftbench.o @@ -1504,11 +1540,14 @@ example_programs := \ examples/firfarrow_rrrf_example \ examples/firfilt_cccf_example \ examples/firfilt_cccf_notch_example \ + examples/firfilt_crcf_copy_example \ examples/firfilt_crcf_example \ examples/firfilt_crcf_dcblocker_example \ examples/firfilt_rrrf_example \ + examples/firdes_doppler_example \ examples/firdes_kaiser_example \ examples/firdespm_callback_example \ + examples/firdespm_halfband_example \ examples/firdespm_example \ examples/firdespm_lowpass_example \ examples/firhilb_example \ @@ -1525,6 +1564,7 @@ example_programs := \ examples/firinterp_rrrf_window_example \ examples/firpfbch_crcf_example \ examples/firpfbch_crcf_analysis_example \ + examples/firpfbch_crcf_msource_example \ examples/firpfbch_crcf_synthesis_example \ examples/flexframesync_example \ examples/flexframesync_reconfig_example \ @@ -1595,6 +1635,7 @@ example_programs := \ examples/qpacketmodem_example \ examples/qpilotsync_example \ examples/qnsearch_example \ + examples/qs1dsearch_example \ examples/quantize_example \ examples/random_histogram_example \ examples/repack_bytes_example \ @@ -1704,6 +1745,7 @@ sandbox_programs = \ sandbox/firdes_gmskrx_test \ sandbox/firdes_group_delay_test \ sandbox/firdes_length_test \ + sandbox/firdespm_halfband_test \ sandbox/firfarrow_rrrf_test \ sandbox/firfilt_dcblocker_test \ sandbox/firpfbch_analysis_alignment_test \ @@ -1751,6 +1793,7 @@ sandbox_programs = \ sandbox/resamp2_crcf_filterbank_test \ sandbox/resamp2_crcf_interp_recreate_test \ sandbox/reverse_byte_gentab \ + sandbox/rhamming_test \ sandbox/rkaiser2_test \ sandbox/shadowing_test \ sandbox/simplex_test \ @@ -1783,6 +1826,23 @@ clean-sandbox: $(RM) sandbox/*.o $(RM) $(sandbox_programs) +## +## TARGET : check-link- test linking to installed library +## + +# run program, ensuring proper error code +check-link: scripts/liquid_linker_test ; ./$< + +# use subset of compiler flags so we don't try to build or link against +# local files +scripts/liquid_linker_test.o : %.o : %.c + $(CC) -c -Wall -O2 -o $@ $< + +scripts/liquid_linker_test : % : %.o + $(CC) -Wall -O2 -o $@ $< -L/usr/local/lib ${LIBS} -lliquid + +extra_clean += scripts/liquid_linker_test.o scripts/liquid_linker_test + ## ## TARGET : programs - build all programs, but don't run anything ## @@ -1813,7 +1873,7 @@ clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench cle distclean: clean @echo "cleaning distribution..." - $(RM) octave-core *.m + $(RM) octave-core *_example.m $(RM) configure config.h config.h.in config.h.in~ config.log config.status $(RM) -r autom4te.cache $(RM) aclocal.m4 diff --git a/external/liquid-dsp/msvc/32/libliquid.def b/external/liquid-dsp/msvc/32/libliquid.def index b44b6f0..f79d358 100644 --- a/external/liquid-dsp/msvc/32/libliquid.def +++ b/external/liquid-dsp/msvc/32/libliquid.def @@ -1,2658 +1,2805 @@ EXPORTS - agc_crcf_create @1 - agc_crcf_destroy @2 - agc_crcf_execute @3 - agc_crcf_execute_block @4 - agc_crcf_get_bandwidth @5 - agc_crcf_get_gain @6 - agc_crcf_get_rssi @7 - agc_crcf_get_scale @8 - agc_crcf_get_signal_level @9 - agc_crcf_init @10 - agc_crcf_is_locked @11 - agc_crcf_lock @12 - agc_crcf_print @13 - agc_crcf_reset @14 - agc_crcf_set_bandwidth @15 - agc_crcf_set_gain @16 - agc_crcf_set_rssi @17 - agc_crcf_set_scale @18 - agc_crcf_set_signal_level @19 - agc_crcf_squelch_disable @20 - agc_crcf_squelch_enable @21 - agc_crcf_squelch_get_status @22 - agc_crcf_squelch_get_threshold @23 - agc_crcf_squelch_get_timeout @24 - agc_crcf_squelch_is_enabled @25 - agc_crcf_squelch_set_threshold @26 - agc_crcf_squelch_set_timeout @27 - agc_crcf_squelch_update_mode @28 - agc_crcf_unlock @29 - agc_rrrf_create @30 - agc_rrrf_destroy @31 - agc_rrrf_execute @32 - agc_rrrf_execute_block @33 - agc_rrrf_get_bandwidth @34 - agc_rrrf_get_gain @35 - agc_rrrf_get_rssi @36 - agc_rrrf_get_scale @37 - agc_rrrf_get_signal_level @38 - agc_rrrf_init @39 - agc_rrrf_is_locked @40 - agc_rrrf_lock @41 - agc_rrrf_print @42 - agc_rrrf_reset @43 - agc_rrrf_set_bandwidth @44 - agc_rrrf_set_gain @45 - agc_rrrf_set_rssi @46 - agc_rrrf_set_scale @47 - agc_rrrf_set_signal_level @48 - agc_rrrf_squelch_disable @49 - agc_rrrf_squelch_enable @50 - agc_rrrf_squelch_get_status @51 - agc_rrrf_squelch_get_threshold @52 - agc_rrrf_squelch_get_timeout @53 - agc_rrrf_squelch_is_enabled @54 - agc_rrrf_squelch_set_threshold @55 - agc_rrrf_squelch_set_timeout @56 - agc_rrrf_squelch_update_mode @57 - agc_rrrf_unlock @58 - ampmodem_create @59 - ampmodem_demod_dsb_peak_detect @60 - ampmodem_demod_dsb_pll_carrier @61 - ampmodem_demod_dsb_pll_costas @62 - ampmodem_demod_ssb @63 - ampmodem_demod_ssb_pll_carrier @64 - ampmodem_demodulate @65 - ampmodem_demodulate_block @66 - ampmodem_destroy @67 - ampmodem_get_delay_demod @68 - ampmodem_get_delay_mod @69 - ampmodem_modulate @70 - ampmodem_modulate_block @71 - ampmodem_print @72 - ampmodem_reset @73 - apsk128_map @74 DATA - apsk128_num_levels @75 DATA - apsk128_p @76 DATA - apsk128_phi @77 DATA - apsk128_r @78 DATA - apsk128_r_slicer @79 DATA - apsk16_map @80 DATA - apsk16_num_levels @81 DATA - apsk16_p @82 DATA - apsk16_phi @83 DATA - apsk16_r @84 DATA - apsk16_r_slicer @85 DATA - apsk256_map @86 DATA - apsk256_num_levels @87 DATA - apsk256_p @88 DATA - apsk256_phi @89 DATA - apsk256_r @90 DATA - apsk256_r_slicer @91 DATA - apsk32_map @92 DATA - apsk32_num_levels @93 DATA - apsk32_p @94 DATA - apsk32_phi @95 DATA - apsk32_r @96 DATA - apsk32_r_slicer @97 DATA - apsk4_map @98 DATA - apsk4_num_levels @99 DATA - apsk4_p @100 DATA - apsk4_phi @101 DATA - apsk4_r @102 DATA - apsk4_r_slicer @103 DATA - apsk64_map @104 DATA - apsk64_num_levels @105 DATA - apsk64_p @106 DATA - apsk64_phi @107 DATA - apsk64_r @108 DATA - apsk64_r_slicer @109 DATA - apsk8_map @110 DATA - apsk8_num_levels @111 DATA - apsk8_p @112 DATA - apsk8_phi @113 DATA - apsk8_r @114 DATA - apsk8_r_slicer @115 DATA - asgramcf_create @116 - asgramcf_destroy @117 - asgramcf_execute @118 - asgramcf_print @119 - asgramcf_push @120 - asgramcf_reset @121 - asgramcf_set_display @122 - asgramcf_set_scale @123 - asgramcf_write @124 - asgramf_create @125 - asgramf_destroy @126 - asgramf_execute @127 - asgramf_print @128 - asgramf_push @129 - asgramf_reset @130 - asgramf_set_display @131 - asgramf_set_scale @132 - asgramf_write @133 - autocorr_cccf_create @134 - autocorr_cccf_destroy @135 - autocorr_cccf_execute @136 - autocorr_cccf_execute_block @137 - autocorr_cccf_get_energy @138 - autocorr_cccf_print @139 - autocorr_cccf_push @140 - autocorr_cccf_reset @141 - autocorr_cccf_write @142 - autocorr_rrrf_create @143 - autocorr_rrrf_destroy @144 - autocorr_rrrf_execute @145 - autocorr_rrrf_execute_block @146 - autocorr_rrrf_get_energy @147 - autocorr_rrrf_print @148 - autocorr_rrrf_push @149 - autocorr_rrrf_reset @150 - autocorr_rrrf_write @151 - awgn @152 - bessel_azpkf @153 - bilinear_zpkf @154 - blackmanharris @155 - blackmanharris7 @156 - bpacketgen_assemble_header @157 - bpacketgen_assemble_pnsequence @158 - bpacketgen_compute_packet_len @159 - bpacketgen_create @160 - bpacketgen_destroy @161 - bpacketgen_encode @162 - bpacketgen_get_packet_len @163 - bpacketgen_print @164 - bpacketgen_recreate @165 - bpacketsync_assemble_pnsequence @166 - bpacketsync_create @167 - bpacketsync_decode_header @168 - bpacketsync_decode_payload @169 - bpacketsync_destroy @170 - bpacketsync_execute @171 - bpacketsync_execute_bit @172 - bpacketsync_execute_byte @173 - bpacketsync_execute_rxheader @174 - bpacketsync_execute_rxpayload @175 - bpacketsync_execute_seekpn @176 - bpacketsync_execute_sym @177 - bpacketsync_print @178 - bpacketsync_reconfig @179 - bpacketsync_reset @180 - bpresync_cccf_correlatex @181 - bpresync_cccf_create @182 - bpresync_cccf_destroy @183 - bpresync_cccf_execute @184 - bpresync_cccf_print @185 - bpresync_cccf_push @186 - bpresync_cccf_reset @187 - bsequence_accumulate @188 - bsequence_add @189 - bsequence_circshift @190 - bsequence_correlate @191 - bsequence_create @192 - bsequence_create_ccodes @193 - bsequence_destroy @194 - bsequence_get_length @195 - bsequence_index @196 - bsequence_init @197 - bsequence_init_msequence @198 - bsequence_mul @199 - bsequence_print @200 - bsequence_push @201 - bsequence_reset @202 - bsync_cccf_correlate @203 - bsync_cccf_create @204 - bsync_cccf_create_msequence @205 - bsync_cccf_destroy @206 - bsync_cccf_print @207 - bsync_crcf_correlate @208 - bsync_crcf_create @209 - bsync_crcf_create_msequence @210 - bsync_crcf_destroy @211 - bsync_crcf_print @212 - bsync_rrrf_correlate @213 - bsync_rrrf_create @214 - bsync_rrrf_create_msequence @215 - bsync_rrrf_destroy @216 - bsync_rrrf_print @217 - butter_azpkf @218 - cawgn @219 - cbuffercf_create @220 - cbuffercf_create_max @221 - cbuffercf_debug_print @222 - cbuffercf_destroy @223 - cbuffercf_is_empty @224 - cbuffercf_is_full @225 - cbuffercf_linearize @226 - cbuffercf_max_read @227 - cbuffercf_max_size @228 - cbuffercf_pop @229 - cbuffercf_print @230 - cbuffercf_push @231 - cbuffercf_read @232 - cbuffercf_release @233 - cbuffercf_reset @234 - cbuffercf_size @235 - cbuffercf_space_available @236 - cbuffercf_write @237 - cbufferf_create @238 - cbufferf_create_max @239 - cbufferf_debug_print @240 - cbufferf_destroy @241 - cbufferf_is_empty @242 - cbufferf_is_full @243 - cbufferf_linearize @244 - cbufferf_max_read @245 - cbufferf_max_size @246 - cbufferf_pop @247 - cbufferf_print @248 - cbufferf_push @249 - cbufferf_read @250 - cbufferf_release @251 - cbufferf_reset @252 - cbufferf_size @253 - cbufferf_space_available @254 - cbufferf_write @255 - channel_cccf_add_awgn @256 - channel_cccf_add_carrier_offset @257 - channel_cccf_add_multipath @258 - channel_cccf_add_shadowing @259 - channel_cccf_create @260 - channel_cccf_destroy @261 - channel_cccf_execute @262 - channel_cccf_execute_block @263 - channel_cccf_print @264 - cheby1_azpkf @265 - cheby2_azpkf @266 - checksum_generate_key @267 - chromosome_copy @268 - chromosome_create @269 - chromosome_create_basic @270 - chromosome_create_clone @271 - chromosome_crossover @272 - chromosome_destroy @273 - chromosome_get_num_traits @274 - chromosome_init @275 - chromosome_init_random @276 - chromosome_initf @277 - chromosome_mutate @278 - chromosome_print @279 - chromosome_printf @280 - chromosome_reset @281 - chromosome_value @282 - chromosome_valuef @283 - compress_cf_mulaw @284 - compress_mulaw @285 - count_bit_errors @286 - count_bit_errors_array @287 - cpfskdem_create @288 - cpfskdem_demodulate @289 - cpfskdem_demodulate_coherent @290 - cpfskdem_demodulate_noncoherent @291 - cpfskdem_destroy @292 - cpfskdem_get_delay @293 - cpfskdem_init_coherent @294 - cpfskdem_init_noncoherent @295 - cpfskdem_print @296 - cpfskdem_reset @297 - cpfskmod_create @298 - cpfskmod_destroy @299 - cpfskmod_firdes @300 - cpfskmod_get_delay @301 - cpfskmod_modulate @302 - cpfskmod_print @303 - cpfskmod_reset @304 - crandnf @305 - crc16_generate_key @306 - crc24_generate_key @307 - crc32_generate_key @308 - crc8_generate_key @309 - crc_append_key @310 - crc_check_key @311 - crc_generate_key @312 - crc_get_length @313 - crc_scheme_str @314 DATA - crc_sizeof_key @315 - crc_validate_message @316 - cvsd_create @317 - cvsd_decode @318 - cvsd_decode8 @319 - cvsd_destroy @320 - cvsd_encode @321 - cvsd_encode8 @322 - cvsd_print @323 - dds_cccf_create @324 - dds_cccf_decim_execute @325 - dds_cccf_destroy @326 - dds_cccf_get_delay_decim @327 - dds_cccf_get_delay_interp @328 - dds_cccf_get_num_stages @329 - dds_cccf_interp_execute @330 - dds_cccf_print @331 - dds_cccf_reset @332 - detector_cccf_compute_dotprods @333 - detector_cccf_correlate @334 - detector_cccf_create @335 - detector_cccf_debug_print @336 - detector_cccf_destroy @337 - detector_cccf_estimate_offsets @338 - detector_cccf_print @339 - detector_cccf_reset @340 - detector_cccf_update_sumsq @341 - dotprod_cccf_create @342 - dotprod_cccf_create_opt @343 - dotprod_cccf_create_rev @344 - dotprod_cccf_destroy @345 - dotprod_cccf_execute @346 - dotprod_cccf_execute_mmx @347 - dotprod_cccf_execute_mmx4 @348 - dotprod_cccf_print @349 - dotprod_cccf_recreate @350 - dotprod_cccf_recreate_rev @351 - dotprod_cccf_run @352 - dotprod_cccf_run4 @353 - dotprod_crcf_create @354 - dotprod_crcf_create_opt @355 - dotprod_crcf_create_rev @356 - dotprod_crcf_destroy @357 - dotprod_crcf_execute @358 - dotprod_crcf_execute_mmx @359 - dotprod_crcf_execute_mmx4 @360 - dotprod_crcf_print @361 - dotprod_crcf_recreate @362 - dotprod_crcf_recreate_rev @363 - dotprod_crcf_run @364 - dotprod_crcf_run4 @365 - dotprod_rrrf_create @366 - dotprod_rrrf_create_opt @367 - dotprod_rrrf_create_rev @368 - dotprod_rrrf_destroy @369 - dotprod_rrrf_execute @370 - dotprod_rrrf_execute_mmx @371 - dotprod_rrrf_execute_mmx4 @372 - dotprod_rrrf_print @373 - dotprod_rrrf_recreate @374 - dotprod_rrrf_recreate_rev @375 - dotprod_rrrf_run @376 - dotprod_rrrf_run4 @377 - dsssframegen_assemble @378 - dsssframegen_create @379 - dsssframegen_destroy @380 - dsssframegen_generate_header @381 - dsssframegen_generate_payload @382 - dsssframegen_generate_preamble @383 - dsssframegen_generate_symbol @384 - dsssframegen_generate_tail @385 - dsssframegen_getframelen @386 - dsssframegen_getprops @387 - dsssframegen_is_assembled @388 - dsssframegen_reconfigure @389 - dsssframegen_reconfigure_header @390 - dsssframegen_reset @391 - dsssframegen_set_header_len @392 - dsssframegen_set_header_props @393 - dsssframegen_setprops @394 - dsssframegen_write_samples @395 - dsssframesync_configure_payload @396 - dsssframesync_create @397 - dsssframesync_debug_disable @398 - dsssframesync_debug_enable @399 - dsssframesync_debug_print @400 - dsssframesync_decode_header @401 - dsssframesync_decode_header_soft @402 - dsssframesync_decode_payload @403 - dsssframesync_decode_payload_soft @404 - dsssframesync_destroy @405 - dsssframesync_execute @406 - dsssframesync_execute_rxheader @407 - dsssframesync_execute_rxpayload @408 - dsssframesync_execute_rxpreamble @409 - dsssframesync_execute_seekpn @410 - dsssframesync_get_framedatastats @411 - dsssframesync_is_frame_open @412 - dsssframesync_print @413 - dsssframesync_reset @414 - dsssframesync_reset_framedatastats @415 - dsssframesync_set_header_len @416 - dsssframesync_set_header_props @417 - dsssframesync_step @418 - ellip_acdf @419 - ellip_asnf @420 - ellip_azpkf @421 - ellip_cdf @422 - ellip_snf @423 - ellipdegf @424 - ellipkf @425 - eqlms_cccf_copy_coefficients @426 - eqlms_cccf_create @427 - eqlms_cccf_create_lowpass @428 - eqlms_cccf_create_rnyquist @429 - eqlms_cccf_decim_execute @430 - eqlms_cccf_destroy @431 - eqlms_cccf_execute @432 - eqlms_cccf_execute_block @433 - eqlms_cccf_get_bw @434 - eqlms_cccf_get_coefficients @435 - eqlms_cccf_get_length @436 - eqlms_cccf_get_weights @437 - eqlms_cccf_print @438 - eqlms_cccf_push @439 - eqlms_cccf_push_block @440 - eqlms_cccf_recreate @441 - eqlms_cccf_reset @442 - eqlms_cccf_set_bw @443 - eqlms_cccf_step @444 - eqlms_cccf_step_blind @445 - eqlms_cccf_train @446 - eqlms_cccf_update_sumsq @447 - eqlms_rrrf_copy_coefficients @448 - eqlms_rrrf_create @449 - eqlms_rrrf_create_lowpass @450 - eqlms_rrrf_create_rnyquist @451 - eqlms_rrrf_decim_execute @452 - eqlms_rrrf_destroy @453 - eqlms_rrrf_execute @454 - eqlms_rrrf_execute_block @455 - eqlms_rrrf_get_bw @456 - eqlms_rrrf_get_coefficients @457 - eqlms_rrrf_get_length @458 - eqlms_rrrf_get_weights @459 - eqlms_rrrf_print @460 - eqlms_rrrf_push @461 - eqlms_rrrf_push_block @462 - eqlms_rrrf_recreate @463 - eqlms_rrrf_reset @464 - eqlms_rrrf_set_bw @465 - eqlms_rrrf_step @466 - eqlms_rrrf_step_blind @467 - eqlms_rrrf_train @468 - eqlms_rrrf_update_sumsq @469 - eqrls_cccf_create @470 - eqrls_cccf_destroy @471 - eqrls_cccf_execute @472 - eqrls_cccf_get_bw @473 - eqrls_cccf_get_weights @474 - eqrls_cccf_print @475 - eqrls_cccf_push @476 - eqrls_cccf_recreate @477 - eqrls_cccf_reset @478 - eqrls_cccf_set_bw @479 - eqrls_cccf_step @480 - eqrls_cccf_train @481 - eqrls_rrrf_create @482 - eqrls_rrrf_destroy @483 - eqrls_rrrf_execute @484 - eqrls_rrrf_get_bw @485 - eqrls_rrrf_get_weights @486 - eqrls_rrrf_print @487 - eqrls_rrrf_push @488 - eqrls_rrrf_recreate @489 - eqrls_rrrf_reset @490 - eqrls_rrrf_set_bw @491 - eqrls_rrrf_step @492 - eqrls_rrrf_train @493 - estimate_req_filter_As @494 - estimate_req_filter_df @495 - estimate_req_filter_len @496 - estimate_req_filter_len_Herrmann @497 - estimate_req_filter_len_Kaiser @498 - expand_cf_mulaw @499 - expand_mulaw @500 - fdelay_crcf_adjust_delay @501 - fdelay_crcf_create @502 - fdelay_crcf_create_default @503 - fdelay_crcf_destroy @504 - fdelay_crcf_execute @505 - fdelay_crcf_execute_block @506 - fdelay_crcf_get_delay @507 - fdelay_crcf_get_m @508 - fdelay_crcf_get_nmax @509 - fdelay_crcf_get_npfb @510 - fdelay_crcf_print @511 - fdelay_crcf_push @512 - fdelay_crcf_reset @513 - fdelay_crcf_set_delay @514 - fdelay_crcf_write @515 - fdelay_rrrf_adjust_delay @516 - fdelay_rrrf_create @517 - fdelay_rrrf_create_default @518 - fdelay_rrrf_destroy @519 - fdelay_rrrf_execute @520 - fdelay_rrrf_execute_block @521 - fdelay_rrrf_get_delay @522 - fdelay_rrrf_get_m @523 - fdelay_rrrf_get_nmax @524 - fdelay_rrrf_get_npfb @525 - fdelay_rrrf_print @526 - fdelay_rrrf_push @527 - fdelay_rrrf_reset @528 - fdelay_rrrf_set_delay @529 - fdelay_rrrf_write @530 - fec_block_get_enc_msg_len @531 - fec_conv27_poly @532 DATA - fec_conv27p23_matrix @533 DATA - fec_conv27p34_matrix @534 DATA - fec_conv27p45_matrix @535 DATA - fec_conv27p56_matrix @536 DATA - fec_conv27p67_matrix @537 DATA - fec_conv27p78_matrix @538 DATA - fec_conv29_poly @539 DATA - fec_conv29p23_matrix @540 DATA - fec_conv29p34_matrix @541 DATA - fec_conv29p45_matrix @542 DATA - fec_conv29p56_matrix @543 DATA - fec_conv29p67_matrix @544 DATA - fec_conv29p78_matrix @545 DATA - fec_conv39_poly @546 DATA - fec_conv615_poly @547 DATA - fec_conv_create @548 - fec_conv_destroy @549 - fec_conv_get_enc_msg_len @550 - fec_conv_punctured_create @551 - fec_conv_punctured_decode @552 - fec_conv_punctured_destroy @553 - fec_conv_punctured_encode @554 - fec_create @555 - fec_decode @556 - fec_decode_soft @557 - fec_destroy @558 - fec_encode @559 - fec_get_enc_msg_length @560 - fec_get_rate @561 - fec_golay2412_create @562 - fec_golay2412_decode @563 - fec_golay2412_decode_symbol @564 - fec_golay2412_destroy @565 - fec_golay2412_encode @566 - fec_golay2412_encode_symbol @567 - fec_hamming128_create @568 - fec_hamming128_decode @569 - fec_hamming128_decode_soft @570 - fec_hamming128_decode_symbol @571 - fec_hamming128_destroy @572 - fec_hamming128_encode @573 - fec_hamming128_encode_symbol @574 - fec_hamming1511_decode_symbol @575 - fec_hamming1511_encode_symbol @576 - fec_hamming3126_decode_symbol @577 - fec_hamming3126_encode_symbol @578 - fec_hamming74_create @579 - fec_hamming74_decode @580 - fec_hamming74_decode_soft @581 - fec_hamming74_destroy @582 - fec_hamming74_encode @583 - fec_hamming84_create @584 - fec_hamming84_decode @585 - fec_hamming84_decode_soft @586 - fec_hamming84_destroy @587 - fec_hamming84_encode @588 - fec_pass_create @589 - fec_pass_decode @590 - fec_pass_destroy @591 - fec_pass_encode @592 - fec_pass_print @593 - fec_print @594 - fec_recreate @595 - fec_rep3_create @596 - fec_rep3_decode @597 - fec_rep3_decode_soft @598 - fec_rep3_destroy @599 - fec_rep3_encode @600 - fec_rep3_print @601 - fec_rep5_create @602 - fec_rep5_decode @603 - fec_rep5_decode_soft @604 - fec_rep5_destroy @605 - fec_rep5_encode @606 - fec_rep5_print @607 - fec_rs_create @608 - fec_rs_decode @609 - fec_rs_destroy @610 - fec_rs_encode @611 - fec_rs_get_enc_msg_len @612 - fec_scheme_is_convolutional @613 - fec_scheme_is_hamming @614 - fec_scheme_is_punctured @615 - fec_scheme_is_reedsolomon @616 - fec_scheme_is_repeat @617 - fec_scheme_str @618 DATA - fec_secded2216_compute_parity @619 - fec_secded2216_compute_syndrome @620 - fec_secded2216_create @621 - fec_secded2216_decode @622 - fec_secded2216_decode_symbol @623 - fec_secded2216_destroy @624 - fec_secded2216_encode @625 - fec_secded2216_encode_symbol @626 - fec_secded2216_estimate_ehat @627 - fec_secded3932_compute_parity @628 - fec_secded3932_compute_syndrome @629 - fec_secded3932_create @630 - fec_secded3932_decode @631 - fec_secded3932_decode_symbol @632 - fec_secded3932_destroy @633 - fec_secded3932_encode @634 - fec_secded3932_encode_symbol @635 - fec_secded3932_estimate_ehat @636 - fec_secded7264_compute_parity @637 - fec_secded7264_compute_syndrome @638 - fec_secded7264_create @639 - fec_secded7264_decode @640 - fec_secded7264_decode_symbol @641 - fec_secded7264_destroy @642 - fec_secded7264_encode @643 - fec_secded7264_encode_symbol @644 - fec_secded7264_estimate_ehat @645 - fec_sumproduct @646 - fec_sumproduct_step @647 - fecsoft_hamming128_decode @648 - fecsoft_hamming128_decode_n3 @649 - fecsoft_hamming128_n3 @650 DATA - fecsoft_hamming74_decode @651 - fecsoft_hamming84_decode @652 - fft_create_plan @653 - fft_create_plan_dft @654 - fft_create_plan_mixed_radix @655 - fft_create_plan_r2r_1d @656 - fft_create_plan_rader @657 - fft_create_plan_rader2 @658 - fft_create_plan_radix2 @659 - fft_destroy_plan @660 - fft_destroy_plan_dft @661 - fft_destroy_plan_mixed_radix @662 - fft_destroy_plan_r2r_1d @663 - fft_destroy_plan_rader @664 - fft_destroy_plan_rader2 @665 - fft_destroy_plan_radix2 @666 - fft_estimate_mixed_radix @667 - fft_execute @668 - fft_execute_REDFT00 @669 - fft_execute_REDFT01 @670 - fft_execute_REDFT10 @671 - fft_execute_REDFT11 @672 - fft_execute_RODFT00 @673 - fft_execute_RODFT01 @674 - fft_execute_RODFT10 @675 - fft_execute_RODFT11 @676 - fft_execute_dft @677 - fft_execute_dft_16 @678 - fft_execute_dft_2 @679 - fft_execute_dft_3 @680 - fft_execute_dft_4 @681 - fft_execute_dft_5 @682 - fft_execute_dft_6 @683 - fft_execute_dft_7 @684 - fft_execute_dft_8 @685 - fft_execute_mixed_radix @686 - fft_execute_rader @687 - fft_execute_rader2 @688 - fft_execute_radix2 @689 - fft_is_radix2 @690 - fft_print_plan @691 - fft_print_plan_r2r_1d @692 - fft_print_plan_recursive @693 - fft_r2r_1d_run @694 - fft_reverse_index @695 - fft_run @696 - fft_shift @697 - fftfilt_cccf_create @698 - fftfilt_cccf_destroy @699 - fftfilt_cccf_execute @700 - fftfilt_cccf_get_length @701 - fftfilt_cccf_get_scale @702 - fftfilt_cccf_print @703 - fftfilt_cccf_reset @704 - fftfilt_cccf_set_scale @705 - fftfilt_crcf_create @706 - fftfilt_crcf_destroy @707 - fftfilt_crcf_execute @708 - fftfilt_crcf_get_length @709 - fftfilt_crcf_get_scale @710 - fftfilt_crcf_print @711 - fftfilt_crcf_reset @712 - fftfilt_crcf_set_scale @713 - fftfilt_rrrf_create @714 - fftfilt_rrrf_destroy @715 - fftfilt_rrrf_execute @716 - fftfilt_rrrf_get_length @717 - fftfilt_rrrf_get_scale @718 - fftfilt_rrrf_print @719 - fftfilt_rrrf_reset @720 - fftfilt_rrrf_set_scale @721 - fir_group_delay @722 - firdecim_cccf_create @723 - firdecim_cccf_create_kaiser @724 - firdecim_cccf_create_prototype @725 - firdecim_cccf_destroy @726 - firdecim_cccf_execute @727 - firdecim_cccf_execute_block @728 - firdecim_cccf_get_decim_rate @729 - firdecim_cccf_get_scale @730 - firdecim_cccf_print @731 - firdecim_cccf_reset @732 - firdecim_cccf_set_scale @733 - firdecim_crcf_create @734 - firdecim_crcf_create_kaiser @735 - firdecim_crcf_create_prototype @736 - firdecim_crcf_destroy @737 - firdecim_crcf_execute @738 - firdecim_crcf_execute_block @739 - firdecim_crcf_get_decim_rate @740 - firdecim_crcf_get_scale @741 - firdecim_crcf_print @742 - firdecim_crcf_reset @743 - firdecim_crcf_set_scale @744 - firdecim_rrrf_create @745 - firdecim_rrrf_create_kaiser @746 - firdecim_rrrf_create_prototype @747 - firdecim_rrrf_destroy @748 - firdecim_rrrf_execute @749 - firdecim_rrrf_execute_block @750 - firdecim_rrrf_get_decim_rate @751 - firdecim_rrrf_get_scale @752 - firdecim_rrrf_print @753 - firdecim_rrrf_reset @754 - firdecim_rrrf_set_scale @755 - firdespm_compute_error @756 - firdespm_compute_interp @757 - firdespm_compute_taps @758 - firdespm_create @759 - firdespm_create_callback @760 - firdespm_destroy @761 - firdespm_execute @762 - firdespm_iext_search @763 - firdespm_init_grid @764 - firdespm_init_memory @765 - firdespm_is_search_complete @766 - firdespm_lowpass @767 - firdespm_print @768 - firdespm_run @769 - firfarrow_crcf_create @770 - firfarrow_crcf_destroy @771 - firfarrow_crcf_execute @772 - firfarrow_crcf_execute_block @773 - firfarrow_crcf_freqresponse @774 - firfarrow_crcf_genpoly @775 - firfarrow_crcf_get_coefficients @776 - firfarrow_crcf_get_length @777 - firfarrow_crcf_groupdelay @778 - firfarrow_crcf_print @779 - firfarrow_crcf_push @780 - firfarrow_crcf_reset @781 - firfarrow_crcf_set_delay @782 - firfarrow_rrrf_create @783 - firfarrow_rrrf_destroy @784 - firfarrow_rrrf_execute @785 - firfarrow_rrrf_execute_block @786 - firfarrow_rrrf_freqresponse @787 - firfarrow_rrrf_genpoly @788 - firfarrow_rrrf_get_coefficients @789 - firfarrow_rrrf_get_length @790 - firfarrow_rrrf_groupdelay @791 - firfarrow_rrrf_print @792 - firfarrow_rrrf_push @793 - firfarrow_rrrf_reset @794 - firfarrow_rrrf_set_delay @795 - firfilt_cccf_copy_coefficients @796 - firfilt_cccf_create @797 - firfilt_cccf_create_dc_blocker @798 - firfilt_cccf_create_firdespm @799 - firfilt_cccf_create_kaiser @800 - firfilt_cccf_create_notch @801 - firfilt_cccf_create_rect @802 - firfilt_cccf_create_rnyquist @803 - firfilt_cccf_destroy @804 - firfilt_cccf_execute @805 - firfilt_cccf_execute_block @806 - firfilt_cccf_freqresponse @807 - firfilt_cccf_get_coefficients @808 - firfilt_cccf_get_length @809 - firfilt_cccf_get_scale @810 - firfilt_cccf_groupdelay @811 - firfilt_cccf_print @812 - firfilt_cccf_push @813 - firfilt_cccf_recreate @814 - firfilt_cccf_reset @815 - firfilt_cccf_set_scale @816 - firfilt_cccf_write @817 - firfilt_crcf_copy_coefficients @818 - firfilt_crcf_create @819 - firfilt_crcf_create_dc_blocker @820 - firfilt_crcf_create_firdespm @821 - firfilt_crcf_create_kaiser @822 - firfilt_crcf_create_notch @823 - firfilt_crcf_create_rect @824 - firfilt_crcf_create_rnyquist @825 - firfilt_crcf_destroy @826 - firfilt_crcf_execute @827 - firfilt_crcf_execute_block @828 - firfilt_crcf_freqresponse @829 - firfilt_crcf_get_coefficients @830 - firfilt_crcf_get_length @831 - firfilt_crcf_get_scale @832 - firfilt_crcf_groupdelay @833 - firfilt_crcf_print @834 - firfilt_crcf_push @835 - firfilt_crcf_recreate @836 - firfilt_crcf_reset @837 - firfilt_crcf_set_scale @838 - firfilt_crcf_write @839 - firfilt_rrrf_copy_coefficients @840 - firfilt_rrrf_create @841 - firfilt_rrrf_create_dc_blocker @842 - firfilt_rrrf_create_firdespm @843 - firfilt_rrrf_create_kaiser @844 - firfilt_rrrf_create_notch @845 - firfilt_rrrf_create_rect @846 - firfilt_rrrf_create_rnyquist @847 - firfilt_rrrf_destroy @848 - firfilt_rrrf_execute @849 - firfilt_rrrf_execute_block @850 - firfilt_rrrf_freqresponse @851 - firfilt_rrrf_get_coefficients @852 - firfilt_rrrf_get_length @853 - firfilt_rrrf_get_scale @854 - firfilt_rrrf_groupdelay @855 - firfilt_rrrf_print @856 - firfilt_rrrf_push @857 - firfilt_rrrf_recreate @858 - firfilt_rrrf_reset @859 - firfilt_rrrf_set_scale @860 - firfilt_rrrf_write @861 - firhilbf_c2r_execute @862 - firhilbf_create @863 - firhilbf_decim_execute @864 - firhilbf_decim_execute_block @865 - firhilbf_destroy @866 - firhilbf_interp_execute @867 - firhilbf_interp_execute_block @868 - firhilbf_print @869 - firhilbf_r2c_execute @870 - firhilbf_reset @871 - firinterp_cccf_create @872 - firinterp_cccf_create_kaiser @873 - firinterp_cccf_create_linear @874 - firinterp_cccf_create_prototype @875 - firinterp_cccf_create_window @876 - firinterp_cccf_destroy @877 - firinterp_cccf_execute @878 - firinterp_cccf_execute_block @879 - firinterp_cccf_get_interp_rate @880 - firinterp_cccf_get_scale @881 - firinterp_cccf_get_sub_len @882 - firinterp_cccf_print @883 - firinterp_cccf_reset @884 - firinterp_cccf_set_scale @885 - firinterp_crcf_create @886 - firinterp_crcf_create_kaiser @887 - firinterp_crcf_create_linear @888 - firinterp_crcf_create_prototype @889 - firinterp_crcf_create_window @890 - firinterp_crcf_destroy @891 - firinterp_crcf_execute @892 - firinterp_crcf_execute_block @893 - firinterp_crcf_get_interp_rate @894 - firinterp_crcf_get_scale @895 - firinterp_crcf_get_sub_len @896 - firinterp_crcf_print @897 - firinterp_crcf_reset @898 - firinterp_crcf_set_scale @899 - firinterp_rrrf_create @900 - firinterp_rrrf_create_kaiser @901 - firinterp_rrrf_create_linear @902 - firinterp_rrrf_create_prototype @903 - firinterp_rrrf_create_window @904 - firinterp_rrrf_destroy @905 - firinterp_rrrf_execute @906 - firinterp_rrrf_execute_block @907 - firinterp_rrrf_get_interp_rate @908 - firinterp_rrrf_get_scale @909 - firinterp_rrrf_get_sub_len @910 - firinterp_rrrf_print @911 - firinterp_rrrf_reset @912 - firinterp_rrrf_set_scale @913 - firpfb_cccf_create @914 - firpfb_cccf_create_default @915 - firpfb_cccf_create_drnyquist @916 - firpfb_cccf_create_kaiser @917 - firpfb_cccf_create_rnyquist @918 - firpfb_cccf_destroy @919 - firpfb_cccf_execute @920 - firpfb_cccf_execute_block @921 - firpfb_cccf_get_scale @922 - firpfb_cccf_print @923 - firpfb_cccf_push @924 - firpfb_cccf_recreate @925 - firpfb_cccf_reset @926 - firpfb_cccf_set_scale @927 - firpfb_cccf_write @928 - firpfb_crcf_create @929 - firpfb_crcf_create_default @930 - firpfb_crcf_create_drnyquist @931 - firpfb_crcf_create_kaiser @932 - firpfb_crcf_create_rnyquist @933 - firpfb_crcf_destroy @934 - firpfb_crcf_execute @935 - firpfb_crcf_execute_block @936 - firpfb_crcf_get_scale @937 - firpfb_crcf_print @938 - firpfb_crcf_push @939 - firpfb_crcf_recreate @940 - firpfb_crcf_reset @941 - firpfb_crcf_set_scale @942 - firpfb_crcf_write @943 - firpfb_rrrf_create @944 - firpfb_rrrf_create_default @945 - firpfb_rrrf_create_drnyquist @946 - firpfb_rrrf_create_kaiser @947 - firpfb_rrrf_create_rnyquist @948 - firpfb_rrrf_destroy @949 - firpfb_rrrf_execute @950 - firpfb_rrrf_execute_block @951 - firpfb_rrrf_get_scale @952 - firpfb_rrrf_print @953 - firpfb_rrrf_push @954 - firpfb_rrrf_recreate @955 - firpfb_rrrf_reset @956 - firpfb_rrrf_set_scale @957 - firpfb_rrrf_write @958 - firpfbch2_crcf_create @959 - firpfbch2_crcf_create_kaiser @960 - firpfbch2_crcf_destroy @961 - firpfbch2_crcf_execute @962 - firpfbch2_crcf_execute_analyzer @963 - firpfbch2_crcf_execute_synthesizer @964 - firpfbch2_crcf_get_M @965 - firpfbch2_crcf_get_m @966 - firpfbch2_crcf_get_type @967 - firpfbch2_crcf_print @968 - firpfbch2_crcf_reset @969 - firpfbch_cccf_analyzer_execute @970 - firpfbch_cccf_analyzer_push @971 - firpfbch_cccf_analyzer_run @972 - firpfbch_cccf_create @973 - firpfbch_cccf_create_kaiser @974 - firpfbch_cccf_create_rnyquist @975 - firpfbch_cccf_destroy @976 - firpfbch_cccf_print @977 - firpfbch_cccf_reset @978 - firpfbch_cccf_synthesizer_execute @979 - firpfbch_crcf_analyzer_execute @980 - firpfbch_crcf_analyzer_push @981 - firpfbch_crcf_analyzer_run @982 - firpfbch_crcf_create @983 - firpfbch_crcf_create_kaiser @984 - firpfbch_crcf_create_rnyquist @985 - firpfbch_crcf_destroy @986 - firpfbch_crcf_print @987 - firpfbch_crcf_reset @988 - firpfbch_crcf_synthesizer_execute @989 - firpfbchr_crcf_create @990 - firpfbchr_crcf_create_kaiser @991 - firpfbchr_crcf_destroy @992 - firpfbchr_crcf_execute @993 - firpfbchr_crcf_get_M @994 - firpfbchr_crcf_get_P @995 - firpfbchr_crcf_get_m @996 - firpfbchr_crcf_print @997 - firpfbchr_crcf_push @998 - firpfbchr_crcf_reset @999 - flattop @1000 - flexframegen_assemble @1001 - flexframegen_create @1002 - flexframegen_destroy @1003 - flexframegen_generate_header @1004 - flexframegen_generate_payload @1005 - flexframegen_generate_preamble @1006 - flexframegen_generate_symbol @1007 - flexframegen_generate_tail @1008 - flexframegen_getframelen @1009 - flexframegen_getprops @1010 - flexframegen_is_assembled @1011 - flexframegen_print @1012 - flexframegen_reconfigure @1013 - flexframegen_reset @1014 - flexframegen_set_header_len @1015 - flexframegen_set_header_props @1016 - flexframegen_setprops @1017 - flexframegen_write_samples @1018 - flexframegenprops_init_default @1019 - flexframesync_create @1020 - flexframesync_debug_disable @1021 - flexframesync_debug_enable @1022 - flexframesync_debug_print @1023 - flexframesync_decode_header @1024 - flexframesync_decode_header_soft @1025 - flexframesync_decode_payload_soft @1026 - flexframesync_destroy @1027 - flexframesync_execute @1028 - flexframesync_execute_rxheader @1029 - flexframesync_execute_rxpayload @1030 - flexframesync_execute_rxpreamble @1031 - flexframesync_execute_seekpn @1032 - flexframesync_get_framedatastats @1033 - flexframesync_is_frame_open @1034 - flexframesync_print @1035 - flexframesync_reset @1036 - flexframesync_reset_framedatastats @1037 - flexframesync_set_header_len @1038 - flexframesync_set_header_props @1039 - flexframesync_step @1040 - fpoly_bessel @1041 - fpoly_bessel_roots @1042 - fpoly_bessel_roots_orchard @1043 - fpoly_bessel_roots_orchard_recursion @1044 - framedatastats_print @1045 - framedatastats_reset @1046 - framegen64_create @1047 - framegen64_destroy @1048 - framegen64_execute @1049 - framegen64_print @1050 - framesync64_create @1051 - framesync64_debug_disable @1052 - framesync64_debug_enable @1053 - framesync64_debug_print @1054 - framesync64_destroy @1055 - framesync64_execute @1056 - framesync64_execute_rxpayload @1057 - framesync64_execute_rxpreamble @1058 - framesync64_execute_seekpn @1059 - framesync64_get_framedatastats @1060 - framesync64_get_threshold @1061 - framesync64_print @1062 - framesync64_reset @1063 - framesync64_reset_framedatastats @1064 - framesync64_set_threshold @1065 - framesync64_step @1066 - framesyncstats_default @1067 DATA - framesyncstats_init_default @1068 - framesyncstats_print @1069 - freqdem_create @1070 - freqdem_demodulate @1071 - freqdem_demodulate_block @1072 - freqdem_destroy @1073 - freqdem_print @1074 - freqdem_reset @1075 - freqmod_create @1076 - freqmod_destroy @1077 - freqmod_modulate @1078 - freqmod_modulate_block @1079 - freqmod_print @1080 - freqmod_reset @1081 - fskdem_create @1082 - fskdem_demodulate @1083 - fskdem_destroy @1084 - fskdem_get_frequency_error @1085 - fskdem_get_symbol_energy @1086 - fskdem_print @1087 - fskdem_reset @1088 - fskframegen_assemble @1089 - fskframegen_create @1090 - fskframegen_destroy @1091 - fskframegen_encode_header @1092 - fskframegen_generate_header @1093 - fskframegen_generate_payload @1094 - fskframegen_generate_preamble @1095 - fskframegen_generate_symbol @1096 - fskframegen_generate_zeros @1097 - fskframegen_getframelen @1098 - fskframegen_print @1099 - fskframegen_reset @1100 - fskframegen_write_samples @1101 - fskframesync_create @1102 - fskframesync_debug_disable @1103 - fskframesync_debug_enable @1104 - fskframesync_debug_export @1105 - fskframesync_decode_header @1106 - fskframesync_destroy @1107 - fskframesync_execute @1108 - fskframesync_execute_block @1109 - fskframesync_execute_detectframe @1110 - fskframesync_execute_rxheader @1111 - fskframesync_execute_rxpayload @1112 - fskframesync_print @1113 - fskframesync_reset @1114 - fskmod_create @1115 - fskmod_destroy @1116 - fskmod_modulate @1117 - fskmod_print @1118 - fskmod_reset @1119 - gasearch_create @1120 - gasearch_create_advanced @1121 - gasearch_crossover @1122 - gasearch_destroy @1123 - gasearch_evaluate @1124 - gasearch_evolve @1125 - gasearch_getopt @1126 - gasearch_mutate @1127 - gasearch_print @1128 - gasearch_rank @1129 - gasearch_run @1130 - gasearch_set_mutation_rate @1131 - gasearch_set_population_size @1132 - gmskdem_create @1133 - gmskdem_debug_print @1134 - gmskdem_demodulate @1135 - gmskdem_destroy @1136 - gmskdem_print @1137 - gmskdem_reset @1138 - gmskdem_set_eq_bw @1139 - gmskframegen_assemble @1140 - gmskframegen_assemble_default @1141 - gmskframegen_create @1142 - gmskframegen_create_set @1143 - gmskframegen_destroy @1144 - gmskframegen_encode_header @1145 - gmskframegen_gen_symbol @1146 - gmskframegen_getframelen @1147 - gmskframegen_is_assembled @1148 - gmskframegen_print @1149 - gmskframegen_reset @1150 - gmskframegen_set_header_len @1151 - gmskframegen_write @1152 - gmskframegen_write_header @1153 - gmskframegen_write_payload @1154 - gmskframegen_write_preamble @1155 - gmskframegen_write_samples @1156 - gmskframegen_write_tail @1157 - gmskframegen_write_zeros @1158 - gmskframesync_create @1159 - gmskframesync_create_set @1160 - gmskframesync_debug_disable @1161 - gmskframesync_debug_enable @1162 - gmskframesync_debug_print @1163 - gmskframesync_decode_header @1164 - gmskframesync_destroy @1165 - gmskframesync_execute @1166 - gmskframesync_execute_detectframe @1167 - gmskframesync_execute_rxheader @1168 - gmskframesync_execute_rxpayload @1169 - gmskframesync_execute_rxpreamble @1170 - gmskframesync_execute_sample @1171 - gmskframesync_get_framedatastats @1172 - gmskframesync_is_frame_open @1173 - gmskframesync_print @1174 - gmskframesync_pushpn @1175 - gmskframesync_reset @1176 - gmskframesync_reset_framedatastats @1177 - gmskframesync_set_header_len @1178 - gmskframesync_syncpn @1179 - gmskframesync_update_fi @1180 - gmskframesync_update_symsync @1181 - gmskmod_create @1182 - gmskmod_destroy @1183 - gmskmod_modulate @1184 - gmskmod_print @1185 - gmskmod_reset @1186 - golay2412_Gt @1187 DATA - golay2412_H @1188 DATA - golay2412_P @1189 DATA - golay2412_matrix_mul @1190 - golay2412_parity_search @1191 - gradsearch_create @1192 - gradsearch_destroy @1193 - gradsearch_execute @1194 - gradsearch_gradient @1195 - gradsearch_linesearch @1196 - gradsearch_norm @1197 - gradsearch_print @1198 - gradsearch_step @1199 - gray_decode @1200 - gray_encode @1201 - hamming @1202 - hamming128_enc_gentab @1203 DATA - hamming74_dec_gentab @1204 DATA - hamming74_enc_gentab @1205 DATA - hamming84_dec_gentab @1206 DATA - hamming84_enc_gentab @1207 DATA - hann @1208 - icrandnf @1209 - iir_group_delay @1210 - iirdecim_cccf_create @1211 - iirdecim_cccf_create_default @1212 - iirdecim_cccf_create_prototype @1213 - iirdecim_cccf_destroy @1214 - iirdecim_cccf_execute @1215 - iirdecim_cccf_execute_block @1216 - iirdecim_cccf_groupdelay @1217 - iirdecim_cccf_print @1218 - iirdecim_cccf_reset @1219 - iirdecim_crcf_create @1220 - iirdecim_crcf_create_default @1221 - iirdecim_crcf_create_prototype @1222 - iirdecim_crcf_destroy @1223 - iirdecim_crcf_execute @1224 - iirdecim_crcf_execute_block @1225 - iirdecim_crcf_groupdelay @1226 - iirdecim_crcf_print @1227 - iirdecim_crcf_reset @1228 - iirdecim_rrrf_create @1229 - iirdecim_rrrf_create_default @1230 - iirdecim_rrrf_create_prototype @1231 - iirdecim_rrrf_destroy @1232 - iirdecim_rrrf_execute @1233 - iirdecim_rrrf_execute_block @1234 - iirdecim_rrrf_groupdelay @1235 - iirdecim_rrrf_print @1236 - iirdecim_rrrf_reset @1237 - iirdes_dzpk2sosf @1238 - iirdes_dzpk2tff @1239 - iirdes_dzpk_lp2bp @1240 - iirdes_dzpk_lp2hp @1241 - iirdes_freqprewarp @1242 - iirdes_isstable @1243 - iirdes_pll_active_PI @1244 - iirdes_pll_active_lag @1245 - iirfilt_cccf_create @1246 - iirfilt_cccf_create_dc_blocker @1247 - iirfilt_cccf_create_differentiator @1248 - iirfilt_cccf_create_integrator @1249 - iirfilt_cccf_create_lowpass @1250 - iirfilt_cccf_create_pll @1251 - iirfilt_cccf_create_prototype @1252 - iirfilt_cccf_create_sos @1253 - iirfilt_cccf_destroy @1254 - iirfilt_cccf_execute @1255 - iirfilt_cccf_execute_block @1256 - iirfilt_cccf_execute_norm @1257 - iirfilt_cccf_execute_sos @1258 - iirfilt_cccf_freqresponse @1259 - iirfilt_cccf_get_length @1260 - iirfilt_cccf_groupdelay @1261 - iirfilt_cccf_init @1262 - iirfilt_cccf_print @1263 - iirfilt_cccf_reset @1264 - iirfilt_crcf_create @1265 - iirfilt_crcf_create_dc_blocker @1266 - iirfilt_crcf_create_differentiator @1267 - iirfilt_crcf_create_integrator @1268 - iirfilt_crcf_create_lowpass @1269 - iirfilt_crcf_create_pll @1270 - iirfilt_crcf_create_prototype @1271 - iirfilt_crcf_create_sos @1272 - iirfilt_crcf_destroy @1273 - iirfilt_crcf_execute @1274 - iirfilt_crcf_execute_block @1275 - iirfilt_crcf_execute_norm @1276 - iirfilt_crcf_execute_sos @1277 - iirfilt_crcf_freqresponse @1278 - iirfilt_crcf_get_length @1279 - iirfilt_crcf_groupdelay @1280 - iirfilt_crcf_init @1281 - iirfilt_crcf_print @1282 - iirfilt_crcf_reset @1283 - iirfilt_rrrf_create @1284 - iirfilt_rrrf_create_dc_blocker @1285 - iirfilt_rrrf_create_differentiator @1286 - iirfilt_rrrf_create_integrator @1287 - iirfilt_rrrf_create_lowpass @1288 - iirfilt_rrrf_create_pll @1289 - iirfilt_rrrf_create_prototype @1290 - iirfilt_rrrf_create_sos @1291 - iirfilt_rrrf_destroy @1292 - iirfilt_rrrf_execute @1293 - iirfilt_rrrf_execute_block @1294 - iirfilt_rrrf_execute_norm @1295 - iirfilt_rrrf_execute_sos @1296 - iirfilt_rrrf_freqresponse @1297 - iirfilt_rrrf_get_length @1298 - iirfilt_rrrf_groupdelay @1299 - iirfilt_rrrf_init @1300 - iirfilt_rrrf_print @1301 - iirfilt_rrrf_reset @1302 - iirfiltsos_cccf_create @1303 - iirfiltsos_cccf_destroy @1304 - iirfiltsos_cccf_execute @1305 - iirfiltsos_cccf_execute_df1 @1306 - iirfiltsos_cccf_execute_df2 @1307 - iirfiltsos_cccf_groupdelay @1308 - iirfiltsos_cccf_print @1309 - iirfiltsos_cccf_reset @1310 - iirfiltsos_cccf_set_coefficients @1311 - iirfiltsos_crcf_create @1312 - iirfiltsos_crcf_destroy @1313 - iirfiltsos_crcf_execute @1314 - iirfiltsos_crcf_execute_df1 @1315 - iirfiltsos_crcf_execute_df2 @1316 - iirfiltsos_crcf_groupdelay @1317 - iirfiltsos_crcf_print @1318 - iirfiltsos_crcf_reset @1319 - iirfiltsos_crcf_set_coefficients @1320 - iirfiltsos_rrrf_create @1321 - iirfiltsos_rrrf_destroy @1322 - iirfiltsos_rrrf_execute @1323 - iirfiltsos_rrrf_execute_df1 @1324 - iirfiltsos_rrrf_execute_df2 @1325 - iirfiltsos_rrrf_groupdelay @1326 - iirfiltsos_rrrf_print @1327 - iirfiltsos_rrrf_reset @1328 - iirfiltsos_rrrf_set_coefficients @1329 - iirhilbf_c2r_execute @1330 - iirhilbf_create @1331 - iirhilbf_create_default @1332 - iirhilbf_decim_execute @1333 - iirhilbf_decim_execute_block @1334 - iirhilbf_destroy @1335 - iirhilbf_interp_execute @1336 - iirhilbf_interp_execute_block @1337 - iirhilbf_print @1338 - iirhilbf_r2c_execute @1339 - iirhilbf_reset @1340 - iirinterp_cccf_create @1341 - iirinterp_cccf_create_default @1342 - iirinterp_cccf_create_prototype @1343 - iirinterp_cccf_destroy @1344 - iirinterp_cccf_execute @1345 - iirinterp_cccf_execute_block @1346 - iirinterp_cccf_groupdelay @1347 - iirinterp_cccf_print @1348 - iirinterp_cccf_reset @1349 - iirinterp_crcf_create @1350 - iirinterp_crcf_create_default @1351 - iirinterp_crcf_create_prototype @1352 - iirinterp_crcf_destroy @1353 - iirinterp_crcf_execute @1354 - iirinterp_crcf_execute_block @1355 - iirinterp_crcf_groupdelay @1356 - iirinterp_crcf_print @1357 - iirinterp_crcf_reset @1358 - iirinterp_rrrf_create @1359 - iirinterp_rrrf_create_default @1360 - iirinterp_rrrf_create_prototype @1361 - iirinterp_rrrf_destroy @1362 - iirinterp_rrrf_execute @1363 - iirinterp_rrrf_execute_block @1364 - iirinterp_rrrf_groupdelay @1365 - iirinterp_rrrf_print @1366 - iirinterp_rrrf_reset @1367 - interleaver_create @1368 - interleaver_decode @1369 - interleaver_decode_soft @1370 - interleaver_destroy @1371 - interleaver_encode @1372 - interleaver_encode_soft @1373 - interleaver_permute @1374 - interleaver_permute_mask @1375 - interleaver_permute_mask_soft @1376 - interleaver_permute_soft @1377 - interleaver_print @1378 - interleaver_set_depth @1379 - kaiser @1380 - kaiser_beta_As @1381 - kbd @1382 - kbd_window @1383 - landenf @1384 - liquid_MarcumQ1f @1385 - liquid_MarcumQf @1386 - liquid_Qf @1387 - liquid_apsk128 @1388 DATA - liquid_apsk16 @1389 DATA - liquid_apsk256 @1390 DATA - liquid_apsk32 @1391 DATA - liquid_apsk4 @1392 DATA - liquid_apsk64 @1393 DATA - liquid_apsk8 @1394 DATA - liquid_asechf @1395 - liquid_bdotprod @1396 - liquid_besseli0f @1397 - liquid_besselif @1398 - liquid_besselj0f @1399 - liquid_besseljf @1400 - liquid_blackmanharris @1401 - liquid_blackmanharris7 @1402 - liquid_c_leading_zeros @1403 DATA - liquid_c_ones @1404 DATA - liquid_c_ones_mod2 @1405 DATA - liquid_cacosf @1406 - liquid_cargf_approx @1407 - liquid_casinf @1408 - liquid_catanf @1409 - liquid_cexpf @1410 - liquid_clogf @1411 - liquid_cosf @1412 - liquid_count_leading_zeros @1413 - liquid_count_ones @1414 - liquid_count_ones_mod2 @1415 - liquid_cplxpair @1416 - liquid_cplxpair_cleanup @1417 - liquid_csqrtf @1418 - liquid_error_config_fl @1419 - liquid_error_fl @1420 - liquid_error_info @1421 - liquid_error_str @1422 DATA - liquid_expf @1423 - liquid_factor @1424 - liquid_factorialf @1425 - liquid_fft_estimate_method @1426 - liquid_filter_autocorr @1427 - liquid_filter_crosscorr @1428 - liquid_filter_energy @1429 - liquid_filter_isi @1430 - liquid_firdes_arkaiser @1431 - liquid_firdes_doppler @1432 - liquid_firdes_farcsech @1433 - liquid_firdes_farcsech_freqresponse @1434 - liquid_firdes_fexp @1435 - liquid_firdes_fexp_freqresponse @1436 - liquid_firdes_fnyquist @1437 - liquid_firdes_fsech @1438 - liquid_firdes_fsech_freqresponse @1439 - liquid_firdes_gmskrx @1440 - liquid_firdes_gmsktx @1441 - liquid_firdes_hM3 @1442 - liquid_firdes_kaiser @1443 - liquid_firdes_notch @1444 - liquid_firdes_prototype @1445 - liquid_firdes_rcos @1446 - liquid_firdes_rfarcsech @1447 - liquid_firdes_rfexp @1448 - liquid_firdes_rfsech @1449 - liquid_firdes_rkaiser @1450 - liquid_firdes_rkaiser_bisection @1451 - liquid_firdes_rkaiser_internal_isi @1452 - liquid_firdes_rkaiser_quadratic @1453 - liquid_firdes_rrcos @1454 - liquid_firfilt_type_str @1455 DATA - liquid_flattop @1456 - liquid_gammaf @1457 - liquid_gcd @1458 - liquid_get_scale @1459 - liquid_getopt_str2crc @1460 - liquid_getopt_str2fec @1461 - liquid_getopt_str2firfilt @1462 - liquid_getopt_str2mod @1463 - liquid_getopt_str2window @1464 - liquid_hamming @1465 - liquid_hann @1466 - liquid_iirdes @1467 - liquid_invgauss @1468 - liquid_is_prime @1469 - liquid_kaiser @1470 - liquid_kbd @1471 - liquid_kbd_window @1472 - liquid_lbcircshift @1473 - liquid_lbshift @1474 - liquid_lcircshift @1475 - liquid_levinson @1476 - liquid_libversion @1477 - liquid_libversion_number @1478 - liquid_lnbesselif @1479 - liquid_lngammaf @1480 - liquid_lnlowergammaf @1481 - liquid_lnuppergammaf @1482 - liquid_logf @1483 - liquid_lowergammaf @1484 - liquid_lpc @1485 - liquid_lshift @1486 - liquid_modem_is_apsk @1487 - liquid_modem_is_ask @1488 - liquid_modem_is_dpsk @1489 - liquid_modem_is_psk @1490 - liquid_modem_is_qam @1491 - liquid_modpow @1492 - liquid_msb_index @1493 - liquid_multimodal @1494 - liquid_nchoosek @1495 - liquid_nextpow2 @1496 - liquid_pack_array @1497 - liquid_pack_bytes @1498 - liquid_pack_soft_bits @1499 - liquid_poly_findroots_bairstow @1500 - liquid_poly_findroots_bairstow_persistent @1501 - liquid_poly_findroots_bairstow_recursion @1502 - liquid_poly_findroots_durandkerner @1503 - liquid_poly_sort_roots_compare @1504 - liquid_primitive_root @1505 - liquid_primitive_root_prime @1506 - liquid_print_bitstring @1507 - liquid_print_crc_schemes @1508 - liquid_print_fec_schemes @1509 - liquid_print_modulation_schemes @1510 - liquid_print_windows @1511 - liquid_rbcircshift @1512 - liquid_rbshift @1513 - liquid_rcircshift @1514 - liquid_rcostaper_window @1515 - liquid_rcostaper_windowf @1516 - liquid_repack_bytes @1517 - liquid_reverse_byte @1518 - liquid_reverse_byte_gentab @1519 DATA - liquid_reverse_uint16 @1520 - liquid_reverse_uint24 @1521 - liquid_reverse_uint32 @1522 - liquid_rosenbrock @1523 - liquid_rshift @1524 - liquid_sincosf @1525 - liquid_sinf @1526 - liquid_spiral @1527 - liquid_sumsqcf @1528 - liquid_sumsqf @1529 - liquid_tanf @1530 - liquid_totient @1531 - liquid_triangular @1532 - liquid_unique_factor @1533 - liquid_unpack_array @1534 - liquid_unpack_bytes @1535 - liquid_unpack_soft_bits @1536 - liquid_unwrap_phase @1537 - liquid_unwrap_phase2 @1538 - liquid_uppergammaf @1539 - liquid_vectorcf_abs @1540 - liquid_vectorcf_add @1541 - liquid_vectorcf_addscalar @1542 - liquid_vectorcf_carg @1543 - liquid_vectorcf_cexpj @1544 - liquid_vectorcf_mul @1545 - liquid_vectorcf_mulscalar @1546 - liquid_vectorcf_norm @1547 - liquid_vectorcf_normalize @1548 - liquid_vectorf_abs @1549 - liquid_vectorf_add @1550 - liquid_vectorf_addscalar @1551 - liquid_vectorf_carg @1552 - liquid_vectorf_cexpj @1553 - liquid_vectorf_mul @1554 - liquid_vectorf_mulscalar @1555 - liquid_vectorf_norm @1556 - liquid_vectorf_normalize @1557 - liquid_version @1558 DATA - liquid_window_str @1559 DATA - liquid_windowf @1560 - matrix_add @1561 - matrix_aug @1562 - matrix_cgsolve @1563 - matrix_chol @1564 - matrix_det @1565 - matrix_det2x2 @1566 - matrix_div @1567 - matrix_eye @1568 - matrix_gjelim @1569 - matrix_gramschmidt @1570 - matrix_hermitian @1571 - matrix_hermitian_mul @1572 - matrix_inv @1573 - matrix_linsolve @1574 - matrix_ludecomp_crout @1575 - matrix_ludecomp_doolittle @1576 - matrix_mul @1577 - matrix_mul_hermitian @1578 - matrix_mul_transpose @1579 - matrix_ones @1580 - matrix_pdiv @1581 - matrix_pivot @1582 - matrix_pmul @1583 - matrix_print @1584 - matrix_proj @1585 - matrix_qrdecomp_gramschmidt @1586 - matrix_sub @1587 - matrix_swaprows @1588 - matrix_trans @1589 - matrix_transpose_mul @1590 - matrix_zeros @1591 - matrixc_add @1592 - matrixc_aug @1593 - matrixc_cgsolve @1594 - matrixc_chol @1595 - matrixc_det @1596 - matrixc_det2x2 @1597 - matrixc_div @1598 - matrixc_eye @1599 - matrixc_gjelim @1600 - matrixc_gramschmidt @1601 - matrixc_hermitian @1602 - matrixc_hermitian_mul @1603 - matrixc_inv @1604 - matrixc_linsolve @1605 - matrixc_ludecomp_crout @1606 - matrixc_ludecomp_doolittle @1607 - matrixc_mul @1608 - matrixc_mul_hermitian @1609 - matrixc_mul_transpose @1610 - matrixc_ones @1611 - matrixc_pdiv @1612 - matrixc_pivot @1613 - matrixc_pmul @1614 - matrixc_print @1615 - matrixc_proj @1616 - matrixc_qrdecomp_gramschmidt @1617 - matrixc_sub @1618 - matrixc_swaprows @1619 - matrixc_trans @1620 - matrixc_transpose_mul @1621 - matrixc_zeros @1622 - matrixcf_add @1623 - matrixcf_aug @1624 - matrixcf_cgsolve @1625 - matrixcf_chol @1626 - matrixcf_det @1627 - matrixcf_det2x2 @1628 - matrixcf_div @1629 - matrixcf_eye @1630 - matrixcf_gjelim @1631 - matrixcf_gramschmidt @1632 - matrixcf_hermitian @1633 - matrixcf_hermitian_mul @1634 - matrixcf_inv @1635 - matrixcf_linsolve @1636 - matrixcf_ludecomp_crout @1637 - matrixcf_ludecomp_doolittle @1638 - matrixcf_mul @1639 - matrixcf_mul_hermitian @1640 - matrixcf_mul_transpose @1641 - matrixcf_ones @1642 - matrixcf_pdiv @1643 - matrixcf_pivot @1644 - matrixcf_pmul @1645 - matrixcf_print @1646 - matrixcf_proj @1647 - matrixcf_qrdecomp_gramschmidt @1648 - matrixcf_sub @1649 - matrixcf_swaprows @1650 - matrixcf_trans @1651 - matrixcf_transpose_mul @1652 - matrixcf_zeros @1653 - matrixf_add @1654 - matrixf_aug @1655 - matrixf_cgsolve @1656 - matrixf_chol @1657 - matrixf_det @1658 - matrixf_det2x2 @1659 - matrixf_div @1660 - matrixf_eye @1661 - matrixf_gjelim @1662 - matrixf_gramschmidt @1663 - matrixf_hermitian @1664 - matrixf_hermitian_mul @1665 - matrixf_inv @1666 - matrixf_linsolve @1667 - matrixf_ludecomp_crout @1668 - matrixf_ludecomp_doolittle @1669 - matrixf_mul @1670 - matrixf_mul_hermitian @1671 - matrixf_mul_transpose @1672 - matrixf_ones @1673 - matrixf_pdiv @1674 - matrixf_pivot @1675 - matrixf_pmul @1676 - matrixf_print @1677 - matrixf_proj @1678 - matrixf_qrdecomp_gramschmidt @1679 - matrixf_sub @1680 - matrixf_swaprows @1681 - matrixf_trans @1682 - matrixf_transpose_mul @1683 - matrixf_zeros @1684 - modem_arb128opt @1685 DATA - modem_arb16opt @1686 DATA - modem_arb256opt @1687 DATA - modem_arb32opt @1688 DATA - modem_arb64opt @1689 DATA - modem_arb_V29 @1690 DATA - modem_arb_sqam128 @1691 DATA - modem_arb_sqam32 @1692 DATA - modem_arb_vt64 @1693 DATA - modem_create @1694 - modem_create_arbitrary @1695 - modem_demodulate @1696 - modem_demodulate_soft @1697 - modem_destroy @1698 - modem_gen_rand_sym @1699 - modem_get_bps @1700 - modem_get_demodulator_evm @1701 - modem_get_demodulator_phase_error @1702 - modem_get_demodulator_sample @1703 - modem_get_scheme @1704 - modem_modulate @1705 - modem_print @1706 - modem_recreate @1707 - modem_reset @1708 - modemcf_arb_balance_iq @1709 - modemcf_arb_init @1710 - modemcf_arb_init_file @1711 - modemcf_arb_scale @1712 - modemcf_create @1713 - modemcf_create_V29 @1714 - modemcf_create_apsk @1715 - modemcf_create_arb @1716 - modemcf_create_arb128opt @1717 - modemcf_create_arb16opt @1718 - modemcf_create_arb256opt @1719 - modemcf_create_arb32opt @1720 - modemcf_create_arb64opt @1721 - modemcf_create_arb64vt @1722 - modemcf_create_arbitrary @1723 - modemcf_create_ask @1724 - modemcf_create_bpsk @1725 - modemcf_create_dpsk @1726 - modemcf_create_ook @1727 - modemcf_create_pi4dqpsk @1728 - modemcf_create_psk @1729 - modemcf_create_qam @1730 - modemcf_create_qpsk @1731 - modemcf_create_sqam128 @1732 - modemcf_create_sqam32 @1733 - modemcf_demodsoft_gentab @1734 - modemcf_demodulate @1735 - modemcf_demodulate_apsk @1736 - modemcf_demodulate_arb @1737 - modemcf_demodulate_ask @1738 - modemcf_demodulate_bpsk @1739 - modemcf_demodulate_dpsk @1740 - modemcf_demodulate_linear_array @1741 - modemcf_demodulate_linear_array_ref @1742 - modemcf_demodulate_ook @1743 - modemcf_demodulate_pi4dqpsk @1744 - modemcf_demodulate_psk @1745 - modemcf_demodulate_qam @1746 - modemcf_demodulate_qpsk @1747 - modemcf_demodulate_soft @1748 - modemcf_demodulate_soft_arb @1749 - modemcf_demodulate_soft_bpsk @1750 - modemcf_demodulate_soft_pi4dqpsk @1751 - modemcf_demodulate_soft_qpsk @1752 - modemcf_demodulate_soft_table @1753 - modemcf_demodulate_sqam128 @1754 - modemcf_demodulate_sqam32 @1755 - modemcf_destroy @1756 - modemcf_gen_rand_sym @1757 - modemcf_get_bps @1758 - modemcf_get_demodulator_evm @1759 - modemcf_get_demodulator_phase_error @1760 - modemcf_get_demodulator_sample @1761 - modemcf_get_scheme @1762 - modemcf_init @1763 - modemcf_init_map @1764 - modemcf_modulate @1765 - modemcf_modulate_apsk @1766 - modemcf_modulate_arb @1767 - modemcf_modulate_ask @1768 - modemcf_modulate_bpsk @1769 - modemcf_modulate_dpsk @1770 - modemcf_modulate_map @1771 - modemcf_modulate_ook @1772 - modemcf_modulate_pi4dqpsk @1773 - modemcf_modulate_psk @1774 - modemcf_modulate_qam @1775 - modemcf_modulate_qpsk @1776 - modemcf_modulate_sqam128 @1777 - modemcf_modulate_sqam32 @1778 - modemcf_print @1779 - modemcf_recreate @1780 - modemcf_reset @1781 - modulation_types @1782 DATA - msequence_advance @1783 - msequence_create @1784 - msequence_create_default @1785 - msequence_create_genpoly @1786 - msequence_default @1787 DATA - msequence_destroy @1788 - msequence_generate_symbol @1789 - msequence_get_length @1790 - msequence_get_state @1791 - msequence_print @1792 - msequence_reset @1793 - msequence_set_state @1794 - msourcecf_add_chirp @1795 - msourcecf_add_fsk @1796 - msourcecf_add_gmsk @1797 - msourcecf_add_modem @1798 - msourcecf_add_noise @1799 - msourcecf_add_source @1800 - msourcecf_add_tone @1801 - msourcecf_add_user @1802 - msourcecf_create @1803 - msourcecf_create_default @1804 - msourcecf_destroy @1805 - msourcecf_disable @1806 - msourcecf_enable @1807 - msourcecf_find @1808 - msourcecf_generate @1809 - msourcecf_get_frequency @1810 - msourcecf_get_gain @1811 - msourcecf_get_num_samples @1812 - msourcecf_get_source @1813 - msourcecf_print @1814 - msourcecf_remove @1815 - msourcecf_reset @1816 - msourcecf_set_frequency @1817 - msourcecf_set_gain @1818 - msourcecf_write_samples @1819 - msresamp2_cccf_create @1820 - msresamp2_cccf_decim_execute @1821 - msresamp2_cccf_destroy @1822 - msresamp2_cccf_execute @1823 - msresamp2_cccf_get_delay @1824 - msresamp2_cccf_get_num_stages @1825 - msresamp2_cccf_get_rate @1826 - msresamp2_cccf_get_type @1827 - msresamp2_cccf_interp_execute @1828 - msresamp2_cccf_print @1829 - msresamp2_cccf_reset @1830 - msresamp2_crcf_create @1831 - msresamp2_crcf_decim_execute @1832 - msresamp2_crcf_destroy @1833 - msresamp2_crcf_execute @1834 - msresamp2_crcf_get_delay @1835 - msresamp2_crcf_get_num_stages @1836 - msresamp2_crcf_get_rate @1837 - msresamp2_crcf_get_type @1838 - msresamp2_crcf_interp_execute @1839 - msresamp2_crcf_print @1840 - msresamp2_crcf_reset @1841 - msresamp2_rrrf_create @1842 - msresamp2_rrrf_decim_execute @1843 - msresamp2_rrrf_destroy @1844 - msresamp2_rrrf_execute @1845 - msresamp2_rrrf_get_delay @1846 - msresamp2_rrrf_get_num_stages @1847 - msresamp2_rrrf_get_rate @1848 - msresamp2_rrrf_get_type @1849 - msresamp2_rrrf_interp_execute @1850 - msresamp2_rrrf_print @1851 - msresamp2_rrrf_reset @1852 - msresamp_cccf_create @1853 - msresamp_cccf_decim_execute @1854 - msresamp_cccf_destroy @1855 - msresamp_cccf_execute @1856 - msresamp_cccf_get_delay @1857 - msresamp_cccf_get_rate @1858 - msresamp_cccf_interp_execute @1859 - msresamp_cccf_print @1860 - msresamp_cccf_reset @1861 - msresamp_crcf_create @1862 - msresamp_crcf_decim_execute @1863 - msresamp_crcf_destroy @1864 - msresamp_crcf_execute @1865 - msresamp_crcf_get_delay @1866 - msresamp_crcf_get_rate @1867 - msresamp_crcf_interp_execute @1868 - msresamp_crcf_print @1869 - msresamp_crcf_reset @1870 - msresamp_rrrf_create @1871 - msresamp_rrrf_decim_execute @1872 - msresamp_rrrf_destroy @1873 - msresamp_rrrf_execute @1874 - msresamp_rrrf_get_delay @1875 - msresamp_rrrf_get_rate @1876 - msresamp_rrrf_interp_execute @1877 - msresamp_rrrf_print @1878 - msresamp_rrrf_reset @1879 - nco_crcf_adjust_frequency @1880 - nco_crcf_adjust_phase @1881 - nco_crcf_cexpf @1882 - nco_crcf_constrain @1883 - nco_crcf_cos @1884 - nco_crcf_create @1885 - nco_crcf_destroy @1886 - nco_crcf_get_frequency @1887 - nco_crcf_get_phase @1888 - nco_crcf_index @1889 - nco_crcf_mix_block_down @1890 - nco_crcf_mix_block_up @1891 - nco_crcf_mix_down @1892 - nco_crcf_mix_up @1893 - nco_crcf_pll_reset @1894 - nco_crcf_pll_set_bandwidth @1895 - nco_crcf_pll_step @1896 - nco_crcf_print @1897 - nco_crcf_reset @1898 - nco_crcf_set_frequency @1899 - nco_crcf_set_phase @1900 - nco_crcf_sin @1901 - nco_crcf_sincos @1902 - nco_crcf_step @1903 - ofdmflexframegen_assemble @1904 - ofdmflexframegen_create @1905 - ofdmflexframegen_destroy @1906 - ofdmflexframegen_encode_header @1907 - ofdmflexframegen_gen_S0a @1908 - ofdmflexframegen_gen_S0b @1909 - ofdmflexframegen_gen_S1 @1910 - ofdmflexframegen_gen_header @1911 - ofdmflexframegen_gen_payload @1912 - ofdmflexframegen_gen_symbol @1913 - ofdmflexframegen_gen_tail @1914 - ofdmflexframegen_gen_zeros @1915 - ofdmflexframegen_getframelen @1916 - ofdmflexframegen_getprops @1917 - ofdmflexframegen_is_assembled @1918 - ofdmflexframegen_modulate_header @1919 - ofdmflexframegen_print @1920 - ofdmflexframegen_reconfigure @1921 - ofdmflexframegen_reset @1922 - ofdmflexframegen_set_header_len @1923 - ofdmflexframegen_set_header_props @1924 - ofdmflexframegen_setprops @1925 - ofdmflexframegen_write @1926 - ofdmflexframegenprops_init_default @1927 - ofdmflexframesync_create @1928 - ofdmflexframesync_debug_disable @1929 - ofdmflexframesync_debug_enable @1930 - ofdmflexframesync_debug_print @1931 - ofdmflexframesync_decode_header @1932 - ofdmflexframesync_decode_header_soft @1933 - ofdmflexframesync_decode_payload_soft @1934 - ofdmflexframesync_destroy @1935 - ofdmflexframesync_execute @1936 - ofdmflexframesync_get_cfo @1937 - ofdmflexframesync_get_framedatastats @1938 - ofdmflexframesync_get_rssi @1939 - ofdmflexframesync_internal_callback @1940 - ofdmflexframesync_is_frame_open @1941 - ofdmflexframesync_print @1942 - ofdmflexframesync_reset @1943 - ofdmflexframesync_reset_framedatastats @1944 - ofdmflexframesync_rxheader @1945 - ofdmflexframesync_rxpayload @1946 - ofdmflexframesync_set_cfo @1947 - ofdmflexframesync_set_header_len @1948 - ofdmflexframesync_set_header_props @1949 - ofdmframe_init_S0 @1950 - ofdmframe_init_S1 @1951 - ofdmframe_init_default_sctype @1952 - ofdmframe_init_sctype_range @1953 - ofdmframe_print_sctype @1954 - ofdmframe_validate_sctype @1955 - ofdmframegen_create @1956 - ofdmframegen_destroy @1957 - ofdmframegen_gensymbol @1958 - ofdmframegen_print @1959 - ofdmframegen_reset @1960 - ofdmframegen_write_S0a @1961 - ofdmframegen_write_S0b @1962 - ofdmframegen_write_S1 @1963 - ofdmframegen_writesymbol @1964 - ofdmframegen_writetail @1965 - ofdmframesync_S0_metrics @1966 - ofdmframesync_create @1967 - ofdmframesync_debug_disable @1968 - ofdmframesync_debug_enable @1969 - ofdmframesync_debug_print @1970 - ofdmframesync_destroy @1971 - ofdmframesync_estimate_eqgain @1972 - ofdmframesync_estimate_eqgain_poly @1973 - ofdmframesync_estimate_gain_S0 @1974 - ofdmframesync_estimate_gain_S1 @1975 - ofdmframesync_execute @1976 - ofdmframesync_execute_S0a @1977 - ofdmframesync_execute_S0b @1978 - ofdmframesync_execute_S1 @1979 - ofdmframesync_execute_rxsymbols @1980 - ofdmframesync_execute_seekplcp @1981 - ofdmframesync_get_cfo @1982 - ofdmframesync_get_rssi @1983 - ofdmframesync_is_frame_open @1984 - ofdmframesync_print @1985 - ofdmframesync_reset @1986 - ofdmframesync_rxsymbol @1987 - ofdmframesync_set_cfo @1988 - optim_sort @1989 - optim_threshold_switch @1990 - ordfilt_rrrf_create @1991 - ordfilt_rrrf_create_medfilt @1992 - ordfilt_rrrf_destroy @1993 - ordfilt_rrrf_execute @1994 - ordfilt_rrrf_execute_block @1995 - ordfilt_rrrf_print @1996 - ordfilt_rrrf_push @1997 - ordfilt_rrrf_reset @1998 - ordfilt_rrrf_write @1999 - ordfilt_sort_compf @2000 - packetizer_compute_dec_msg_len @2001 - packetizer_compute_enc_msg_len @2002 - packetizer_create @2003 - packetizer_decode @2004 - packetizer_decode_soft @2005 - packetizer_destroy @2006 - packetizer_encode @2007 - packetizer_get_crc @2008 - packetizer_get_dec_msg_len @2009 - packetizer_get_enc_msg_len @2010 - packetizer_get_fec0 @2011 - packetizer_get_fec1 @2012 - packetizer_print @2013 - packetizer_realloc_buffers @2014 - packetizer_recreate @2015 - packetizer_set_scheme @2016 - poly_expandbinomial @2017 - poly_expandbinomial_pm @2018 - poly_expandroots @2019 - poly_expandroots2 @2020 - poly_findroots @2021 - poly_fit @2022 - poly_fit_lagrange @2023 - poly_fit_lagrange_barycentric @2024 - poly_interp_lagrange @2025 - poly_mul @2026 - poly_val @2027 - poly_val_lagrange_barycentric @2028 - polyc_expandbinomial @2029 - polyc_expandbinomial_pm @2030 - polyc_expandroots @2031 - polyc_expandroots2 @2032 - polyc_findroots @2033 - polyc_fit @2034 - polyc_fit_lagrange @2035 - polyc_fit_lagrange_barycentric @2036 - polyc_interp_lagrange @2037 - polyc_mul @2038 - polyc_val @2039 - polyc_val_lagrange_barycentric @2040 - polycf_expandbinomial @2041 - polycf_expandbinomial_pm @2042 - polycf_expandroots @2043 - polycf_expandroots2 @2044 - polycf_findroots @2045 - polycf_fit @2046 - polycf_fit_lagrange @2047 - polycf_fit_lagrange_barycentric @2048 - polycf_interp_lagrange @2049 - polycf_mul @2050 - polycf_val @2051 - polycf_val_lagrange_barycentric @2052 - polyf_expandbinomial @2053 - polyf_expandbinomial_pm @2054 - polyf_expandroots @2055 - polyf_expandroots2 @2056 - polyf_findroots @2057 - polyf_fit @2058 - polyf_fit_lagrange @2059 - polyf_fit_lagrange_barycentric @2060 - polyf_interp_lagrange @2061 - polyf_mul @2062 - polyf_val @2063 - polyf_val_lagrange_barycentric @2064 - presync_cccf_correlate @2065 - presync_cccf_create @2066 - presync_cccf_destroy @2067 - presync_cccf_execute @2068 - presync_cccf_print @2069 - presync_cccf_push @2070 - presync_cccf_reset @2071 - qdetector_cccf_create @2072 - qdetector_cccf_create_cpfsk @2073 - qdetector_cccf_create_gmsk @2074 - qdetector_cccf_create_linear @2075 - qdetector_cccf_destroy @2076 - qdetector_cccf_execute @2077 - qdetector_cccf_execute_align @2078 - qdetector_cccf_execute_seek @2079 - qdetector_cccf_get_buf_len @2080 - qdetector_cccf_get_dphi @2081 - qdetector_cccf_get_gamma @2082 - qdetector_cccf_get_phi @2083 - qdetector_cccf_get_rxy @2084 - qdetector_cccf_get_seq_len @2085 - qdetector_cccf_get_sequence @2086 - qdetector_cccf_get_tau @2087 - qdetector_cccf_get_threshold @2088 - qdetector_cccf_print @2089 - qdetector_cccf_reset @2090 - qdetector_cccf_set_range @2091 - qdetector_cccf_set_threshold @2092 - qnsearch_compute_Hessian @2093 - qnsearch_compute_gradient @2094 - qnsearch_create @2095 - qnsearch_destroy @2096 - qnsearch_normalize_gradient @2097 - qnsearch_print @2098 - qnsearch_reset @2099 - qnsearch_run @2100 - qnsearch_step @2101 - qpacketmodem_configure @2102 - qpacketmodem_create @2103 - qpacketmodem_decode @2104 - qpacketmodem_decode_bits @2105 - qpacketmodem_decode_soft @2106 - qpacketmodem_decode_soft_payload @2107 - qpacketmodem_decode_soft_sym @2108 - qpacketmodem_decode_syms @2109 - qpacketmodem_destroy @2110 - qpacketmodem_encode @2111 - qpacketmodem_encode_syms @2112 - qpacketmodem_get_crc @2113 - qpacketmodem_get_demodulator_evm @2114 - qpacketmodem_get_demodulator_phase_error @2115 - qpacketmodem_get_fec0 @2116 - qpacketmodem_get_fec1 @2117 - qpacketmodem_get_frame_len @2118 - qpacketmodem_get_modscheme @2119 - qpacketmodem_get_payload_len @2120 - qpacketmodem_print @2121 - qpacketmodem_reset @2122 - qpilot_frame_len @2123 - qpilot_num_pilots @2124 - qpilotgen_create @2125 - qpilotgen_destroy @2126 - qpilotgen_execute @2127 - qpilotgen_get_frame_len @2128 - qpilotgen_print @2129 - qpilotgen_recreate @2130 - qpilotgen_reset @2131 - qpilotsync_create @2132 - qpilotsync_destroy @2133 - qpilotsync_execute @2134 - qpilotsync_get_dphi @2135 - qpilotsync_get_evm @2136 - qpilotsync_get_frame_len @2137 - qpilotsync_get_gain @2138 - qpilotsync_get_phi @2139 - qpilotsync_print @2140 - qpilotsync_recreate @2141 - qpilotsync_reset @2142 - qsourcecf_create @2143 - qsourcecf_destroy @2144 - qsourcecf_disable @2145 - qsourcecf_enable @2146 - qsourcecf_generate @2147 - qsourcecf_generate_into @2148 - qsourcecf_get_frequency @2149 - qsourcecf_get_gain @2150 - qsourcecf_get_id @2151 - qsourcecf_get_num_samples @2152 - qsourcecf_init_chirp @2153 - qsourcecf_init_fsk @2154 - qsourcecf_init_gmsk @2155 - qsourcecf_init_modem @2156 - qsourcecf_init_noise @2157 - qsourcecf_init_tone @2158 - qsourcecf_init_user @2159 - qsourcecf_print @2160 - qsourcecf_reset @2161 - qsourcecf_set_frequency @2162 - qsourcecf_set_gain @2163 - qsourcecf_set_id @2164 - quantize_adc @2165 - quantize_dac @2166 - quantizercf_create @2167 - quantizercf_destroy @2168 - quantizercf_execute_adc @2169 - quantizercf_execute_dac @2170 - quantizercf_print @2171 - quantizerf_create @2172 - quantizerf_destroy @2173 - quantizerf_execute_adc @2174 - quantizerf_execute_dac @2175 - quantizerf_print @2176 - randexpf @2177 - randexpf_cdf @2178 - randexpf_pdf @2179 - randf @2180 - randf_cdf @2181 - randf_pdf @2182 - randgammaf @2183 - randgammaf_cdf @2184 - randgammaf_delta @2185 - randgammaf_pdf @2186 - randnakmf @2187 - randnakmf_cdf @2188 - randnakmf_pdf @2189 - randnf @2190 - randnf_cdf @2191 - randnf_pdf @2192 - randricekf @2193 - randricekf_cdf @2194 - randricekf_pdf @2195 - randuf @2196 - randuf_cdf @2197 - randuf_pdf @2198 - randweibf @2199 - randweibf_cdf @2200 - randweibf_pdf @2201 - resamp2_cccf_analyzer_execute @2202 - resamp2_cccf_create @2203 - resamp2_cccf_decim_execute @2204 - resamp2_cccf_destroy @2205 - resamp2_cccf_filter_execute @2206 - resamp2_cccf_get_delay @2207 - resamp2_cccf_get_scale @2208 - resamp2_cccf_interp_execute @2209 - resamp2_cccf_print @2210 - resamp2_cccf_recreate @2211 - resamp2_cccf_reset @2212 - resamp2_cccf_set_scale @2213 - resamp2_cccf_synthesizer_execute @2214 - resamp2_crcf_analyzer_execute @2215 - resamp2_crcf_create @2216 - resamp2_crcf_decim_execute @2217 - resamp2_crcf_destroy @2218 - resamp2_crcf_filter_execute @2219 - resamp2_crcf_get_delay @2220 - resamp2_crcf_get_scale @2221 - resamp2_crcf_interp_execute @2222 - resamp2_crcf_print @2223 - resamp2_crcf_recreate @2224 - resamp2_crcf_reset @2225 - resamp2_crcf_set_scale @2226 - resamp2_crcf_synthesizer_execute @2227 - resamp2_rrrf_analyzer_execute @2228 - resamp2_rrrf_create @2229 - resamp2_rrrf_decim_execute @2230 - resamp2_rrrf_destroy @2231 - resamp2_rrrf_filter_execute @2232 - resamp2_rrrf_get_delay @2233 - resamp2_rrrf_get_scale @2234 - resamp2_rrrf_interp_execute @2235 - resamp2_rrrf_print @2236 - resamp2_rrrf_recreate @2237 - resamp2_rrrf_reset @2238 - resamp2_rrrf_set_scale @2239 - resamp2_rrrf_synthesizer_execute @2240 - resamp_cccf_adjust_rate @2241 - resamp_cccf_adjust_timing_phase @2242 - resamp_cccf_create @2243 - resamp_cccf_create_default @2244 - resamp_cccf_destroy @2245 - resamp_cccf_execute @2246 - resamp_cccf_execute_block @2247 - resamp_cccf_get_delay @2248 - resamp_cccf_get_rate @2249 - resamp_cccf_print @2250 - resamp_cccf_reset @2251 - resamp_cccf_set_rate @2252 - resamp_cccf_set_timing_phase @2253 - resamp_crcf_adjust_rate @2254 - resamp_crcf_adjust_timing_phase @2255 - resamp_crcf_create @2256 - resamp_crcf_create_default @2257 - resamp_crcf_destroy @2258 - resamp_crcf_execute @2259 - resamp_crcf_execute_block @2260 - resamp_crcf_get_delay @2261 - resamp_crcf_get_rate @2262 - resamp_crcf_print @2263 - resamp_crcf_reset @2264 - resamp_crcf_set_rate @2265 - resamp_crcf_set_timing_phase @2266 - resamp_rrrf_adjust_rate @2267 - resamp_rrrf_adjust_timing_phase @2268 - resamp_rrrf_create @2269 - resamp_rrrf_create_default @2270 - resamp_rrrf_destroy @2271 - resamp_rrrf_execute @2272 - resamp_rrrf_execute_block @2273 - resamp_rrrf_get_delay @2274 - resamp_rrrf_get_rate @2275 - resamp_rrrf_print @2276 - resamp_rrrf_reset @2277 - resamp_rrrf_set_rate @2278 - resamp_rrrf_set_timing_phase @2279 - rkaiser_approximate_rho @2280 - rresamp_cccf_create @2281 - rresamp_cccf_create_default @2282 - rresamp_cccf_create_kaiser @2283 - rresamp_cccf_create_prototype @2284 - rresamp_cccf_destroy @2285 - rresamp_cccf_execute @2286 - rresamp_cccf_execute_block @2287 - rresamp_cccf_execute_primitive @2288 - rresamp_cccf_get_P @2289 - rresamp_cccf_get_Q @2290 - rresamp_cccf_get_block_len @2291 - rresamp_cccf_get_decim @2292 - rresamp_cccf_get_delay @2293 - rresamp_cccf_get_interp @2294 - rresamp_cccf_get_rate @2295 - rresamp_cccf_get_scale @2296 - rresamp_cccf_print @2297 - rresamp_cccf_reset @2298 - rresamp_cccf_set_scale @2299 - rresamp_cccf_write @2300 - rresamp_crcf_create @2301 - rresamp_crcf_create_default @2302 - rresamp_crcf_create_kaiser @2303 - rresamp_crcf_create_prototype @2304 - rresamp_crcf_destroy @2305 - rresamp_crcf_execute @2306 - rresamp_crcf_execute_block @2307 - rresamp_crcf_execute_primitive @2308 - rresamp_crcf_get_P @2309 - rresamp_crcf_get_Q @2310 - rresamp_crcf_get_block_len @2311 - rresamp_crcf_get_decim @2312 - rresamp_crcf_get_delay @2313 - rresamp_crcf_get_interp @2314 - rresamp_crcf_get_rate @2315 - rresamp_crcf_get_scale @2316 - rresamp_crcf_print @2317 - rresamp_crcf_reset @2318 - rresamp_crcf_set_scale @2319 - rresamp_crcf_write @2320 - rresamp_rrrf_create @2321 - rresamp_rrrf_create_default @2322 - rresamp_rrrf_create_kaiser @2323 - rresamp_rrrf_create_prototype @2324 - rresamp_rrrf_destroy @2325 - rresamp_rrrf_execute @2326 - rresamp_rrrf_execute_block @2327 - rresamp_rrrf_execute_primitive @2328 - rresamp_rrrf_get_P @2329 - rresamp_rrrf_get_Q @2330 - rresamp_rrrf_get_block_len @2331 - rresamp_rrrf_get_decim @2332 - rresamp_rrrf_get_delay @2333 - rresamp_rrrf_get_interp @2334 - rresamp_rrrf_get_rate @2335 - rresamp_rrrf_get_scale @2336 - rresamp_rrrf_print @2337 - rresamp_rrrf_reset @2338 - rresamp_rrrf_set_scale @2339 - rresamp_rrrf_write @2340 - scramble_data @2341 - secded2216_P @2342 DATA - secded2216_syndrome_w1 @2343 DATA - secded3932_P @2344 DATA - secded3932_syndrome_w1 @2345 DATA - secded7264_P @2346 DATA - secded7264_syndrome_w1 @2347 DATA - sincf @2348 - smatrix_indexsearch @2349 - smatrixb_clear @2350 - smatrixb_create @2351 - smatrixb_create_array @2352 - smatrixb_delete @2353 - smatrixb_destroy @2354 - smatrixb_eye @2355 - smatrixb_get @2356 - smatrixb_insert @2357 - smatrixb_isset @2358 - smatrixb_mul @2359 - smatrixb_mulf @2360 - smatrixb_print @2361 - smatrixb_print_expanded @2362 - smatrixb_reset @2363 - smatrixb_reset_max_mlist @2364 - smatrixb_reset_max_nlist @2365 - smatrixb_set @2366 - smatrixb_size @2367 - smatrixb_vmul @2368 - smatrixb_vmulf @2369 - smatrixf_clear @2370 - smatrixf_create @2371 - smatrixf_create_array @2372 - smatrixf_delete @2373 - smatrixf_destroy @2374 - smatrixf_eye @2375 - smatrixf_get @2376 - smatrixf_insert @2377 - smatrixf_isset @2378 - smatrixf_mul @2379 - smatrixf_print @2380 - smatrixf_print_expanded @2381 - smatrixf_reset @2382 - smatrixf_reset_max_mlist @2383 - smatrixf_reset_max_nlist @2384 - smatrixf_set @2385 - smatrixf_size @2386 - smatrixf_vmul @2387 - smatrixi_clear @2388 - smatrixi_create @2389 - smatrixi_create_array @2390 - smatrixi_delete @2391 - smatrixi_destroy @2392 - smatrixi_eye @2393 - smatrixi_get @2394 - smatrixi_insert @2395 - smatrixi_isset @2396 - smatrixi_mul @2397 - smatrixi_print @2398 - smatrixi_print_expanded @2399 - smatrixi_reset @2400 - smatrixi_reset_max_mlist @2401 - smatrixi_reset_max_nlist @2402 - smatrixi_set @2403 - smatrixi_size @2404 - smatrixi_vmul @2405 - spgramcf_clear @2406 - spgramcf_create @2407 - spgramcf_create_default @2408 - spgramcf_destroy @2409 - spgramcf_estimate_psd @2410 - spgramcf_export_gnuplot @2411 - spgramcf_get_alpha @2412 - spgramcf_get_delay @2413 - spgramcf_get_nfft @2414 - spgramcf_get_num_samples @2415 - spgramcf_get_num_samples_total @2416 - spgramcf_get_num_transforms @2417 - spgramcf_get_num_transforms_total @2418 - spgramcf_get_psd @2419 - spgramcf_get_psd_mag @2420 - spgramcf_get_window_len @2421 - spgramcf_get_wtype @2422 - spgramcf_print @2423 - spgramcf_push @2424 - spgramcf_reset @2425 - spgramcf_set_alpha @2426 - spgramcf_set_freq @2427 - spgramcf_set_rate @2428 - spgramcf_step @2429 - spgramcf_write @2430 - spgramf_clear @2431 - spgramf_create @2432 - spgramf_create_default @2433 - spgramf_destroy @2434 - spgramf_estimate_psd @2435 - spgramf_export_gnuplot @2436 - spgramf_get_alpha @2437 - spgramf_get_delay @2438 - spgramf_get_nfft @2439 - spgramf_get_num_samples @2440 - spgramf_get_num_samples_total @2441 - spgramf_get_num_transforms @2442 - spgramf_get_num_transforms_total @2443 - spgramf_get_psd @2444 - spgramf_get_psd_mag @2445 - spgramf_get_window_len @2446 - spgramf_get_wtype @2447 - spgramf_print @2448 - spgramf_push @2449 - spgramf_reset @2450 - spgramf_set_alpha @2451 - spgramf_set_freq @2452 - spgramf_set_rate @2453 - spgramf_step @2454 - spgramf_write @2455 - spwaterfallcf_clear @2456 - spwaterfallcf_consolidate_buffer @2457 - spwaterfallcf_create @2458 - spwaterfallcf_create_default @2459 - spwaterfallcf_destroy @2460 - spwaterfallcf_export @2461 - spwaterfallcf_export_bin @2462 - spwaterfallcf_export_gnu @2463 - spwaterfallcf_get_delay @2464 - spwaterfallcf_get_num_freq @2465 - spwaterfallcf_get_num_samples_total @2466 - spwaterfallcf_get_num_time @2467 - spwaterfallcf_get_psd @2468 - spwaterfallcf_get_window_len @2469 - spwaterfallcf_get_wtype @2470 - spwaterfallcf_print @2471 - spwaterfallcf_push @2472 - spwaterfallcf_reset @2473 - spwaterfallcf_set_commands @2474 - spwaterfallcf_set_dims @2475 - spwaterfallcf_set_freq @2476 - spwaterfallcf_set_rate @2477 - spwaterfallcf_step @2478 - spwaterfallcf_write @2479 - spwaterfallf_clear @2480 - spwaterfallf_consolidate_buffer @2481 - spwaterfallf_create @2482 - spwaterfallf_create_default @2483 - spwaterfallf_destroy @2484 - spwaterfallf_export @2485 - spwaterfallf_export_bin @2486 - spwaterfallf_export_gnu @2487 - spwaterfallf_get_delay @2488 - spwaterfallf_get_num_freq @2489 - spwaterfallf_get_num_samples_total @2490 - spwaterfallf_get_num_time @2491 - spwaterfallf_get_psd @2492 - spwaterfallf_get_window_len @2493 - spwaterfallf_get_wtype @2494 - spwaterfallf_print @2495 - spwaterfallf_push @2496 - spwaterfallf_reset @2497 - spwaterfallf_set_commands @2498 - spwaterfallf_set_dims @2499 - spwaterfallf_set_freq @2500 - spwaterfallf_set_rate @2501 - spwaterfallf_step @2502 - spwaterfallf_write @2503 - sumproduct_phi @2504 - symstreamcf_create @2505 - symstreamcf_create_linear @2506 - symstreamcf_destroy @2507 - symstreamcf_fill_buffer @2508 - symstreamcf_get_beta @2509 - symstreamcf_get_delay @2510 - symstreamcf_get_ftype @2511 - symstreamcf_get_gain @2512 - symstreamcf_get_k @2513 - symstreamcf_get_m @2514 - symstreamcf_get_scheme @2515 - symstreamcf_print @2516 - symstreamcf_reset @2517 - symstreamcf_set_gain @2518 - symstreamcf_set_scheme @2519 - symstreamcf_write_samples @2520 - symstreamrcf_create @2521 - symstreamrcf_create_linear @2522 - symstreamrcf_destroy @2523 - symstreamrcf_fill_buffer @2524 - symstreamrcf_get_beta @2525 - symstreamrcf_get_bw @2526 - symstreamrcf_get_delay @2527 - symstreamrcf_get_ftype @2528 - symstreamrcf_get_gain @2529 - symstreamrcf_get_m @2530 - symstreamrcf_get_scheme @2531 - symstreamrcf_print @2532 - symstreamrcf_reset @2533 - symstreamrcf_set_gain @2534 - symstreamrcf_set_scheme @2535 - symstreamrcf_write_samples @2536 - symsync_crcf_advance_internal_loop @2537 - symsync_crcf_create @2538 - symsync_crcf_create_kaiser @2539 - symsync_crcf_create_rnyquist @2540 - symsync_crcf_destroy @2541 - symsync_crcf_execute @2542 - symsync_crcf_get_tau @2543 - symsync_crcf_lock @2544 - symsync_crcf_output_debug_file @2545 - symsync_crcf_print @2546 - symsync_crcf_reset @2547 - symsync_crcf_set_lf_bw @2548 - symsync_crcf_set_output_rate @2549 - symsync_crcf_step @2550 - symsync_crcf_unlock @2551 - symsync_rrrf_advance_internal_loop @2552 - symsync_rrrf_create @2553 - symsync_rrrf_create_kaiser @2554 - symsync_rrrf_create_rnyquist @2555 - symsync_rrrf_destroy @2556 - symsync_rrrf_execute @2557 - symsync_rrrf_get_tau @2558 - symsync_rrrf_lock @2559 - symsync_rrrf_output_debug_file @2560 - symsync_rrrf_print @2561 - symsync_rrrf_reset @2562 - symsync_rrrf_set_lf_bw @2563 - symsync_rrrf_set_output_rate @2564 - symsync_rrrf_step @2565 - symsync_rrrf_unlock @2566 - symtrack_cccf_adjust_frequency @2567 - symtrack_cccf_adjust_phase @2568 - symtrack_cccf_create @2569 - symtrack_cccf_create_default @2570 - symtrack_cccf_destroy @2571 - symtrack_cccf_execute @2572 - symtrack_cccf_execute_block @2573 - symtrack_cccf_get_bandwidth @2574 - symtrack_cccf_get_beta @2575 - symtrack_cccf_get_ftype @2576 - symtrack_cccf_get_k @2577 - symtrack_cccf_get_m @2578 - symtrack_cccf_get_modscheme @2579 - symtrack_cccf_print @2580 - symtrack_cccf_reset @2581 - symtrack_cccf_set_bandwidth @2582 - symtrack_cccf_set_eq_cm @2583 - symtrack_cccf_set_eq_dd @2584 - symtrack_cccf_set_eq_off @2585 - symtrack_cccf_set_modscheme @2586 - synth_crcf_adjust_frequency @2587 - synth_crcf_adjust_phase @2588 - synth_crcf_compute_synth @2589 - synth_crcf_constrain_frequency @2590 - synth_crcf_constrain_phase @2591 - synth_crcf_create @2592 - synth_crcf_despread @2593 - synth_crcf_despread_triple @2594 - synth_crcf_destroy @2595 - synth_crcf_get_current @2596 - synth_crcf_get_frequency @2597 - synth_crcf_get_half_next @2598 - synth_crcf_get_half_previous @2599 - synth_crcf_get_length @2600 - synth_crcf_get_phase @2601 - synth_crcf_mix_block_down @2602 - synth_crcf_mix_block_up @2603 - synth_crcf_mix_down @2604 - synth_crcf_mix_up @2605 - synth_crcf_pll_reset @2606 - synth_crcf_pll_set_bandwidth @2607 - synth_crcf_pll_step @2608 - synth_crcf_reset @2609 - synth_crcf_set_frequency @2610 - synth_crcf_set_phase @2611 - synth_crcf_spread @2612 - synth_crcf_step @2613 - triangular @2614 - tvmpch_cccf_create @2615 - tvmpch_cccf_destroy @2616 - tvmpch_cccf_execute @2617 - tvmpch_cccf_execute_block @2618 - tvmpch_cccf_print @2619 - tvmpch_cccf_push @2620 - tvmpch_cccf_reset @2621 - unscramble_data @2622 - unscramble_data_soft @2623 - wdelaycf_create @2624 - wdelaycf_destroy @2625 - wdelaycf_print @2626 - wdelaycf_push @2627 - wdelaycf_read @2628 - wdelaycf_recreate @2629 - wdelaycf_reset @2630 - wdelayf_create @2631 - wdelayf_destroy @2632 - wdelayf_print @2633 - wdelayf_push @2634 - wdelayf_read @2635 - wdelayf_recreate @2636 - wdelayf_reset @2637 - windowcf_create @2638 - windowcf_debug_print @2639 - windowcf_destroy @2640 - windowcf_index @2641 - windowcf_print @2642 - windowcf_push @2643 - windowcf_read @2644 - windowcf_recreate @2645 - windowcf_reset @2646 - windowcf_write @2647 - windowf_create @2648 - windowf_debug_print @2649 - windowf_destroy @2650 - windowf_index @2651 - windowf_print @2652 - windowf_push @2653 - windowf_read @2654 - windowf_recreate @2655 - windowf_reset @2656 - windowf_write @2657 + agc_crcf_copy @1 + agc_crcf_create @2 + agc_crcf_destroy @3 + agc_crcf_execute @4 + agc_crcf_execute_block @5 + agc_crcf_get_bandwidth @6 + agc_crcf_get_gain @7 + agc_crcf_get_rssi @8 + agc_crcf_get_scale @9 + agc_crcf_get_signal_level @10 + agc_crcf_init @11 + agc_crcf_is_locked @12 + agc_crcf_lock @13 + agc_crcf_print @14 + agc_crcf_reset @15 + agc_crcf_set_bandwidth @16 + agc_crcf_set_gain @17 + agc_crcf_set_rssi @18 + agc_crcf_set_scale @19 + agc_crcf_set_signal_level @20 + agc_crcf_squelch_disable @21 + agc_crcf_squelch_enable @22 + agc_crcf_squelch_get_status @23 + agc_crcf_squelch_get_threshold @24 + agc_crcf_squelch_get_timeout @25 + agc_crcf_squelch_is_enabled @26 + agc_crcf_squelch_set_threshold @27 + agc_crcf_squelch_set_timeout @28 + agc_crcf_squelch_update_mode @29 + agc_crcf_unlock @30 + agc_rrrf_copy @31 + agc_rrrf_create @32 + agc_rrrf_destroy @33 + agc_rrrf_execute @34 + agc_rrrf_execute_block @35 + agc_rrrf_get_bandwidth @36 + agc_rrrf_get_gain @37 + agc_rrrf_get_rssi @38 + agc_rrrf_get_scale @39 + agc_rrrf_get_signal_level @40 + agc_rrrf_init @41 + agc_rrrf_is_locked @42 + agc_rrrf_lock @43 + agc_rrrf_print @44 + agc_rrrf_reset @45 + agc_rrrf_set_bandwidth @46 + agc_rrrf_set_gain @47 + agc_rrrf_set_rssi @48 + agc_rrrf_set_scale @49 + agc_rrrf_set_signal_level @50 + agc_rrrf_squelch_disable @51 + agc_rrrf_squelch_enable @52 + agc_rrrf_squelch_get_status @53 + agc_rrrf_squelch_get_threshold @54 + agc_rrrf_squelch_get_timeout @55 + agc_rrrf_squelch_is_enabled @56 + agc_rrrf_squelch_set_threshold @57 + agc_rrrf_squelch_set_timeout @58 + agc_rrrf_squelch_update_mode @59 + agc_rrrf_unlock @60 + ampmodem_create @61 + ampmodem_demod_dsb_peak_detect @62 + ampmodem_demod_dsb_pll_carrier @63 + ampmodem_demod_dsb_pll_costas @64 + ampmodem_demod_ssb @65 + ampmodem_demod_ssb_pll_carrier @66 + ampmodem_demodulate @67 + ampmodem_demodulate_block @68 + ampmodem_destroy @69 + ampmodem_get_delay_demod @70 + ampmodem_get_delay_mod @71 + ampmodem_modulate @72 + ampmodem_modulate_block @73 + ampmodem_print @74 + ampmodem_reset @75 + apsk128_map @76 DATA + apsk128_num_levels @77 DATA + apsk128_p @78 DATA + apsk128_phi @79 DATA + apsk128_r @80 DATA + apsk128_r_slicer @81 DATA + apsk16_map @82 DATA + apsk16_num_levels @83 DATA + apsk16_p @84 DATA + apsk16_phi @85 DATA + apsk16_r @86 DATA + apsk16_r_slicer @87 DATA + apsk256_map @88 DATA + apsk256_num_levels @89 DATA + apsk256_p @90 DATA + apsk256_phi @91 DATA + apsk256_r @92 DATA + apsk256_r_slicer @93 DATA + apsk32_map @94 DATA + apsk32_num_levels @95 DATA + apsk32_p @96 DATA + apsk32_phi @97 DATA + apsk32_r @98 DATA + apsk32_r_slicer @99 DATA + apsk4_map @100 DATA + apsk4_num_levels @101 DATA + apsk4_p @102 DATA + apsk4_phi @103 DATA + apsk4_r @104 DATA + apsk4_r_slicer @105 DATA + apsk64_map @106 DATA + apsk64_num_levels @107 DATA + apsk64_p @108 DATA + apsk64_phi @109 DATA + apsk64_r @110 DATA + apsk64_r_slicer @111 DATA + apsk8_map @112 DATA + apsk8_num_levels @113 DATA + apsk8_p @114 DATA + apsk8_phi @115 DATA + apsk8_r @116 DATA + apsk8_r_slicer @117 DATA + asgramcf_copy @118 + asgramcf_create @119 + asgramcf_destroy @120 + asgramcf_execute @121 + asgramcf_print @122 + asgramcf_push @123 + asgramcf_reset @124 + asgramcf_set_display @125 + asgramcf_set_scale @126 + asgramcf_write @127 + asgramf_copy @128 + asgramf_create @129 + asgramf_destroy @130 + asgramf_execute @131 + asgramf_print @132 + asgramf_push @133 + asgramf_reset @134 + asgramf_set_display @135 + asgramf_set_scale @136 + asgramf_write @137 + autocorr_cccf_create @138 + autocorr_cccf_destroy @139 + autocorr_cccf_execute @140 + autocorr_cccf_execute_block @141 + autocorr_cccf_get_energy @142 + autocorr_cccf_print @143 + autocorr_cccf_push @144 + autocorr_cccf_reset @145 + autocorr_cccf_write @146 + autocorr_rrrf_create @147 + autocorr_rrrf_destroy @148 + autocorr_rrrf_execute @149 + autocorr_rrrf_execute_block @150 + autocorr_rrrf_get_energy @151 + autocorr_rrrf_print @152 + autocorr_rrrf_push @153 + autocorr_rrrf_reset @154 + autocorr_rrrf_write @155 + awgn @156 + bessel_azpkf @157 + bilinear_nd @158 + bilinear_zpkf @159 + blackmanharris @160 + blackmanharris7 @161 + bpacketgen_assemble_header @162 + bpacketgen_assemble_pnsequence @163 + bpacketgen_compute_packet_len @164 + bpacketgen_create @165 + bpacketgen_destroy @166 + bpacketgen_encode @167 + bpacketgen_get_packet_len @168 + bpacketgen_print @169 + bpacketgen_recreate @170 + bpacketsync_assemble_pnsequence @171 + bpacketsync_create @172 + bpacketsync_decode_header @173 + bpacketsync_decode_payload @174 + bpacketsync_destroy @175 + bpacketsync_execute @176 + bpacketsync_execute_bit @177 + bpacketsync_execute_byte @178 + bpacketsync_execute_rxheader @179 + bpacketsync_execute_rxpayload @180 + bpacketsync_execute_seekpn @181 + bpacketsync_execute_sym @182 + bpacketsync_print @183 + bpacketsync_reconfig @184 + bpacketsync_reset @185 + bpresync_cccf_correlatex @186 + bpresync_cccf_create @187 + bpresync_cccf_destroy @188 + bpresync_cccf_execute @189 + bpresync_cccf_print @190 + bpresync_cccf_push @191 + bpresync_cccf_reset @192 + bsequence_accumulate @193 + bsequence_add @194 + bsequence_circshift @195 + bsequence_correlate @196 + bsequence_create @197 + bsequence_create_ccodes @198 + bsequence_destroy @199 + bsequence_get_length @200 + bsequence_index @201 + bsequence_init @202 + bsequence_init_msequence @203 + bsequence_mul @204 + bsequence_print @205 + bsequence_push @206 + bsequence_reset @207 + bsync_cccf_correlate @208 + bsync_cccf_create @209 + bsync_cccf_create_msequence @210 + bsync_cccf_destroy @211 + bsync_cccf_print @212 + bsync_crcf_correlate @213 + bsync_crcf_create @214 + bsync_crcf_create_msequence @215 + bsync_crcf_destroy @216 + bsync_crcf_print @217 + bsync_rrrf_correlate @218 + bsync_rrrf_create @219 + bsync_rrrf_create_msequence @220 + bsync_rrrf_destroy @221 + bsync_rrrf_print @222 + butter_azpkf @223 + cawgn @224 + cbuffercf_copy @225 + cbuffercf_create @226 + cbuffercf_create_max @227 + cbuffercf_debug_print @228 + cbuffercf_destroy @229 + cbuffercf_is_empty @230 + cbuffercf_is_full @231 + cbuffercf_linearize @232 + cbuffercf_max_read @233 + cbuffercf_max_size @234 + cbuffercf_pop @235 + cbuffercf_print @236 + cbuffercf_push @237 + cbuffercf_read @238 + cbuffercf_release @239 + cbuffercf_reset @240 + cbuffercf_size @241 + cbuffercf_space_available @242 + cbuffercf_write @243 + cbufferf_copy @244 + cbufferf_create @245 + cbufferf_create_max @246 + cbufferf_debug_print @247 + cbufferf_destroy @248 + cbufferf_is_empty @249 + cbufferf_is_full @250 + cbufferf_linearize @251 + cbufferf_max_read @252 + cbufferf_max_size @253 + cbufferf_pop @254 + cbufferf_print @255 + cbufferf_push @256 + cbufferf_read @257 + cbufferf_release @258 + cbufferf_reset @259 + cbufferf_size @260 + cbufferf_space_available @261 + cbufferf_write @262 + channel_cccf_add_awgn @263 + channel_cccf_add_carrier_offset @264 + channel_cccf_add_multipath @265 + channel_cccf_add_shadowing @266 + channel_cccf_copy @267 + channel_cccf_create @268 + channel_cccf_destroy @269 + channel_cccf_execute @270 + channel_cccf_execute_block @271 + channel_cccf_print @272 + cheby1_azpkf @273 + cheby2_azpkf @274 + checksum_generate_key @275 + chromosome_copy @276 + chromosome_create @277 + chromosome_create_basic @278 + chromosome_create_clone @279 + chromosome_crossover @280 + chromosome_destroy @281 + chromosome_get_num_traits @282 + chromosome_init @283 + chromosome_init_random @284 + chromosome_initf @285 + chromosome_mutate @286 + chromosome_print @287 + chromosome_printf @288 + chromosome_reset @289 + chromosome_value @290 + chromosome_valuef @291 + compress_cf_mulaw @292 + compress_mulaw @293 + count_bit_errors @294 + count_bit_errors_array @295 + cpfskdem_create @296 + cpfskdem_demodulate @297 + cpfskdem_demodulate_coherent @298 + cpfskdem_demodulate_noncoherent @299 + cpfskdem_destroy @300 + cpfskdem_get_delay @301 + cpfskdem_init_coherent @302 + cpfskdem_init_noncoherent @303 + cpfskdem_print @304 + cpfskdem_reset @305 + cpfskmod_create @306 + cpfskmod_destroy @307 + cpfskmod_firdes @308 + cpfskmod_get_delay @309 + cpfskmod_modulate @310 + cpfskmod_print @311 + cpfskmod_reset @312 + crandnf @313 + crc16_generate_key @314 + crc24_generate_key @315 + crc32_generate_key @316 + crc8_generate_key @317 + crc_append_key @318 + crc_check_key @319 + crc_generate_key @320 + crc_get_length @321 + crc_scheme_str @322 DATA + crc_sizeof_key @323 + crc_validate_message @324 + cvsd_create @325 + cvsd_decode @326 + cvsd_decode8 @327 + cvsd_destroy @328 + cvsd_encode @329 + cvsd_encode8 @330 + cvsd_print @331 + dds_cccf_copy @332 + dds_cccf_create @333 + dds_cccf_decim_execute @334 + dds_cccf_destroy @335 + dds_cccf_get_delay_decim @336 + dds_cccf_get_delay_interp @337 + dds_cccf_get_num_stages @338 + dds_cccf_get_scale @339 + dds_cccf_interp_execute @340 + dds_cccf_print @341 + dds_cccf_reset @342 + dds_cccf_set_scale @343 + detector_cccf_compute_dotprods @344 + detector_cccf_correlate @345 + detector_cccf_create @346 + detector_cccf_debug_print @347 + detector_cccf_destroy @348 + detector_cccf_estimate_offsets @349 + detector_cccf_print @350 + detector_cccf_reset @351 + detector_cccf_update_sumsq @352 + dotprod_cccf_copy @353 + dotprod_cccf_create @354 + dotprod_cccf_create_opt @355 + dotprod_cccf_create_rev @356 + dotprod_cccf_destroy @357 + dotprod_cccf_execute @358 + dotprod_cccf_execute_mmx @359 + dotprod_cccf_execute_mmx4 @360 + dotprod_cccf_print @361 + dotprod_cccf_recreate @362 + dotprod_cccf_recreate_rev @363 + dotprod_cccf_run @364 + dotprod_cccf_run4 @365 + dotprod_crcf_copy @366 + dotprod_crcf_create @367 + dotprod_crcf_create_opt @368 + dotprod_crcf_create_rev @369 + dotprod_crcf_destroy @370 + dotprod_crcf_execute @371 + dotprod_crcf_execute_mmx @372 + dotprod_crcf_execute_mmx4 @373 + dotprod_crcf_print @374 + dotprod_crcf_recreate @375 + dotprod_crcf_recreate_rev @376 + dotprod_crcf_run @377 + dotprod_crcf_run4 @378 + dotprod_rrrf_copy @379 + dotprod_rrrf_create @380 + dotprod_rrrf_create_opt @381 + dotprod_rrrf_create_rev @382 + dotprod_rrrf_destroy @383 + dotprod_rrrf_execute @384 + dotprod_rrrf_execute_sse4 @385 + dotprod_rrrf_execute_sse4u @386 + dotprod_rrrf_print @387 + dotprod_rrrf_recreate @388 + dotprod_rrrf_recreate_rev @389 + dotprod_rrrf_run @390 + dotprod_rrrf_run4 @391 + dsssframegen_assemble @392 + dsssframegen_create @393 + dsssframegen_destroy @394 + dsssframegen_generate_header @395 + dsssframegen_generate_payload @396 + dsssframegen_generate_preamble @397 + dsssframegen_generate_symbol @398 + dsssframegen_generate_tail @399 + dsssframegen_getframelen @400 + dsssframegen_getprops @401 + dsssframegen_is_assembled @402 + dsssframegen_reconfigure @403 + dsssframegen_reconfigure_header @404 + dsssframegen_reset @405 + dsssframegen_set_header_len @406 + dsssframegen_set_header_props @407 + dsssframegen_setprops @408 + dsssframegen_write_samples @409 + dsssframesync_configure_payload @410 + dsssframesync_create @411 + dsssframesync_debug_disable @412 + dsssframesync_debug_enable @413 + dsssframesync_debug_print @414 + dsssframesync_decode_header @415 + dsssframesync_decode_header_soft @416 + dsssframesync_decode_payload @417 + dsssframesync_decode_payload_soft @418 + dsssframesync_destroy @419 + dsssframesync_execute @420 + dsssframesync_execute_rxheader @421 + dsssframesync_execute_rxpayload @422 + dsssframesync_execute_rxpreamble @423 + dsssframesync_execute_seekpn @424 + dsssframesync_get_framedatastats @425 + dsssframesync_is_frame_open @426 + dsssframesync_print @427 + dsssframesync_reset @428 + dsssframesync_reset_framedatastats @429 + dsssframesync_set_header_len @430 + dsssframesync_set_header_props @431 + dsssframesync_step @432 + ellip_acdf @433 + ellip_asnf @434 + ellip_azpkf @435 + ellip_cdf @436 + ellip_snf @437 + ellipdegf @438 + ellipkf @439 + eqlms_cccf_copy @440 + eqlms_cccf_copy_coefficients @441 + eqlms_cccf_create @442 + eqlms_cccf_create_lowpass @443 + eqlms_cccf_create_rnyquist @444 + eqlms_cccf_decim_execute @445 + eqlms_cccf_destroy @446 + eqlms_cccf_execute @447 + eqlms_cccf_execute_block @448 + eqlms_cccf_get_bw @449 + eqlms_cccf_get_coefficients @450 + eqlms_cccf_get_length @451 + eqlms_cccf_get_weights @452 + eqlms_cccf_print @453 + eqlms_cccf_push @454 + eqlms_cccf_push_block @455 + eqlms_cccf_recreate @456 + eqlms_cccf_reset @457 + eqlms_cccf_set_bw @458 + eqlms_cccf_step @459 + eqlms_cccf_step_blind @460 + eqlms_cccf_train @461 + eqlms_cccf_update_sumsq @462 + eqlms_rrrf_copy @463 + eqlms_rrrf_copy_coefficients @464 + eqlms_rrrf_create @465 + eqlms_rrrf_create_lowpass @466 + eqlms_rrrf_create_rnyquist @467 + eqlms_rrrf_decim_execute @468 + eqlms_rrrf_destroy @469 + eqlms_rrrf_execute @470 + eqlms_rrrf_execute_block @471 + eqlms_rrrf_get_bw @472 + eqlms_rrrf_get_coefficients @473 + eqlms_rrrf_get_length @474 + eqlms_rrrf_get_weights @475 + eqlms_rrrf_print @476 + eqlms_rrrf_push @477 + eqlms_rrrf_push_block @478 + eqlms_rrrf_recreate @479 + eqlms_rrrf_reset @480 + eqlms_rrrf_set_bw @481 + eqlms_rrrf_step @482 + eqlms_rrrf_step_blind @483 + eqlms_rrrf_train @484 + eqlms_rrrf_update_sumsq @485 + eqrls_cccf_copy @486 + eqrls_cccf_create @487 + eqrls_cccf_destroy @488 + eqrls_cccf_execute @489 + eqrls_cccf_get_bw @490 + eqrls_cccf_get_weights @491 + eqrls_cccf_print @492 + eqrls_cccf_push @493 + eqrls_cccf_recreate @494 + eqrls_cccf_reset @495 + eqrls_cccf_set_bw @496 + eqrls_cccf_step @497 + eqrls_cccf_train @498 + eqrls_rrrf_copy @499 + eqrls_rrrf_create @500 + eqrls_rrrf_destroy @501 + eqrls_rrrf_execute @502 + eqrls_rrrf_get_bw @503 + eqrls_rrrf_get_weights @504 + eqrls_rrrf_print @505 + eqrls_rrrf_push @506 + eqrls_rrrf_recreate @507 + eqrls_rrrf_reset @508 + eqrls_rrrf_set_bw @509 + eqrls_rrrf_step @510 + eqrls_rrrf_train @511 + estimate_req_filter_As @512 + estimate_req_filter_df @513 + estimate_req_filter_len @514 + estimate_req_filter_len_Herrmann @515 + estimate_req_filter_len_Kaiser @516 + expand_cf_mulaw @517 + expand_mulaw @518 + fdelay_crcf_adjust_delay @519 + fdelay_crcf_create @520 + fdelay_crcf_create_default @521 + fdelay_crcf_destroy @522 + fdelay_crcf_execute @523 + fdelay_crcf_execute_block @524 + fdelay_crcf_get_delay @525 + fdelay_crcf_get_m @526 + fdelay_crcf_get_nmax @527 + fdelay_crcf_get_npfb @528 + fdelay_crcf_print @529 + fdelay_crcf_push @530 + fdelay_crcf_reset @531 + fdelay_crcf_set_delay @532 + fdelay_crcf_write @533 + fdelay_rrrf_adjust_delay @534 + fdelay_rrrf_create @535 + fdelay_rrrf_create_default @536 + fdelay_rrrf_destroy @537 + fdelay_rrrf_execute @538 + fdelay_rrrf_execute_block @539 + fdelay_rrrf_get_delay @540 + fdelay_rrrf_get_m @541 + fdelay_rrrf_get_nmax @542 + fdelay_rrrf_get_npfb @543 + fdelay_rrrf_print @544 + fdelay_rrrf_push @545 + fdelay_rrrf_reset @546 + fdelay_rrrf_set_delay @547 + fdelay_rrrf_write @548 + fec_block_get_enc_msg_len @549 + fec_conv27_poly @550 DATA + fec_conv27p23_matrix @551 DATA + fec_conv27p34_matrix @552 DATA + fec_conv27p45_matrix @553 DATA + fec_conv27p56_matrix @554 DATA + fec_conv27p67_matrix @555 DATA + fec_conv27p78_matrix @556 DATA + fec_conv29_poly @557 DATA + fec_conv29p23_matrix @558 DATA + fec_conv29p34_matrix @559 DATA + fec_conv29p45_matrix @560 DATA + fec_conv29p56_matrix @561 DATA + fec_conv29p67_matrix @562 DATA + fec_conv29p78_matrix @563 DATA + fec_conv39_poly @564 DATA + fec_conv615_poly @565 DATA + fec_conv_create @566 + fec_conv_destroy @567 + fec_conv_get_enc_msg_len @568 + fec_conv_punctured_create @569 + fec_conv_punctured_decode @570 + fec_conv_punctured_destroy @571 + fec_conv_punctured_encode @572 + fec_copy @573 + fec_create @574 + fec_decode @575 + fec_decode_soft @576 + fec_destroy @577 + fec_encode @578 + fec_get_enc_msg_length @579 + fec_get_rate @580 + fec_golay2412_create @581 + fec_golay2412_decode @582 + fec_golay2412_decode_symbol @583 + fec_golay2412_destroy @584 + fec_golay2412_encode @585 + fec_golay2412_encode_symbol @586 + fec_hamming128_create @587 + fec_hamming128_decode @588 + fec_hamming128_decode_soft @589 + fec_hamming128_decode_symbol @590 + fec_hamming128_destroy @591 + fec_hamming128_encode @592 + fec_hamming128_encode_symbol @593 + fec_hamming1511_decode_symbol @594 + fec_hamming1511_encode_symbol @595 + fec_hamming3126_decode_symbol @596 + fec_hamming3126_encode_symbol @597 + fec_hamming74_create @598 + fec_hamming74_decode @599 + fec_hamming74_decode_soft @600 + fec_hamming74_destroy @601 + fec_hamming74_encode @602 + fec_hamming84_create @603 + fec_hamming84_decode @604 + fec_hamming84_decode_soft @605 + fec_hamming84_destroy @606 + fec_hamming84_encode @607 + fec_pass_create @608 + fec_pass_decode @609 + fec_pass_destroy @610 + fec_pass_encode @611 + fec_pass_print @612 + fec_print @613 + fec_recreate @614 + fec_rep3_create @615 + fec_rep3_decode @616 + fec_rep3_decode_soft @617 + fec_rep3_destroy @618 + fec_rep3_encode @619 + fec_rep3_print @620 + fec_rep5_create @621 + fec_rep5_decode @622 + fec_rep5_decode_soft @623 + fec_rep5_destroy @624 + fec_rep5_encode @625 + fec_rep5_print @626 + fec_rs_create @627 + fec_rs_decode @628 + fec_rs_destroy @629 + fec_rs_encode @630 + fec_rs_get_enc_msg_len @631 + fec_scheme_is_convolutional @632 + fec_scheme_is_hamming @633 + fec_scheme_is_punctured @634 + fec_scheme_is_reedsolomon @635 + fec_scheme_is_repeat @636 + fec_scheme_str @637 DATA + fec_secded2216_compute_parity @638 + fec_secded2216_compute_syndrome @639 + fec_secded2216_create @640 + fec_secded2216_decode @641 + fec_secded2216_decode_symbol @642 + fec_secded2216_destroy @643 + fec_secded2216_encode @644 + fec_secded2216_encode_symbol @645 + fec_secded2216_estimate_ehat @646 + fec_secded3932_compute_parity @647 + fec_secded3932_compute_syndrome @648 + fec_secded3932_create @649 + fec_secded3932_decode @650 + fec_secded3932_decode_symbol @651 + fec_secded3932_destroy @652 + fec_secded3932_encode @653 + fec_secded3932_encode_symbol @654 + fec_secded3932_estimate_ehat @655 + fec_secded7264_compute_parity @656 + fec_secded7264_compute_syndrome @657 + fec_secded7264_create @658 + fec_secded7264_decode @659 + fec_secded7264_decode_symbol @660 + fec_secded7264_destroy @661 + fec_secded7264_encode @662 + fec_secded7264_encode_symbol @663 + fec_secded7264_estimate_ehat @664 + fec_sumproduct @665 + fec_sumproduct_step @666 + fecsoft_hamming128_decode @667 + fecsoft_hamming128_decode_n3 @668 + fecsoft_hamming128_n3 @669 DATA + fecsoft_hamming74_decode @670 + fecsoft_hamming84_decode @671 + fft_create_plan @672 + fft_create_plan_dft @673 + fft_create_plan_mixed_radix @674 + fft_create_plan_r2r_1d @675 + fft_create_plan_rader @676 + fft_create_plan_rader2 @677 + fft_create_plan_radix2 @678 + fft_destroy_plan @679 + fft_destroy_plan_dft @680 + fft_destroy_plan_mixed_radix @681 + fft_destroy_plan_r2r_1d @682 + fft_destroy_plan_rader @683 + fft_destroy_plan_rader2 @684 + fft_destroy_plan_radix2 @685 + fft_estimate_mixed_radix @686 + fft_execute @687 + fft_execute_REDFT00 @688 + fft_execute_REDFT01 @689 + fft_execute_REDFT10 @690 + fft_execute_REDFT11 @691 + fft_execute_RODFT00 @692 + fft_execute_RODFT01 @693 + fft_execute_RODFT10 @694 + fft_execute_RODFT11 @695 + fft_execute_dft @696 + fft_execute_dft_16 @697 + fft_execute_dft_2 @698 + fft_execute_dft_3 @699 + fft_execute_dft_4 @700 + fft_execute_dft_5 @701 + fft_execute_dft_6 @702 + fft_execute_dft_7 @703 + fft_execute_dft_8 @704 + fft_execute_mixed_radix @705 + fft_execute_rader @706 + fft_execute_rader2 @707 + fft_execute_radix2 @708 + fft_free @709 + fft_is_radix2 @710 + fft_malloc @711 + fft_print_plan @712 + fft_print_plan_r2r_1d @713 + fft_print_plan_recursive @714 + fft_r2r_1d_run @715 + fft_reverse_index @716 + fft_run @717 + fft_shift @718 + fftfilt_cccf_copy @719 + fftfilt_cccf_create @720 + fftfilt_cccf_destroy @721 + fftfilt_cccf_execute @722 + fftfilt_cccf_get_length @723 + fftfilt_cccf_get_scale @724 + fftfilt_cccf_print @725 + fftfilt_cccf_reset @726 + fftfilt_cccf_set_scale @727 + fftfilt_crcf_copy @728 + fftfilt_crcf_create @729 + fftfilt_crcf_destroy @730 + fftfilt_crcf_execute @731 + fftfilt_crcf_get_length @732 + fftfilt_crcf_get_scale @733 + fftfilt_crcf_print @734 + fftfilt_crcf_reset @735 + fftfilt_crcf_set_scale @736 + fftfilt_rrrf_copy @737 + fftfilt_rrrf_create @738 + fftfilt_rrrf_destroy @739 + fftfilt_rrrf_execute @740 + fftfilt_rrrf_get_length @741 + fftfilt_rrrf_get_scale @742 + fftfilt_rrrf_print @743 + fftfilt_rrrf_reset @744 + fftfilt_rrrf_set_scale @745 + fir_group_delay @746 + firdecim_cccf_copy @747 + firdecim_cccf_create @748 + firdecim_cccf_create_kaiser @749 + firdecim_cccf_create_prototype @750 + firdecim_cccf_destroy @751 + firdecim_cccf_execute @752 + firdecim_cccf_execute_block @753 + firdecim_cccf_freqresp @754 + firdecim_cccf_get_decim_rate @755 + firdecim_cccf_get_scale @756 + firdecim_cccf_print @757 + firdecim_cccf_reset @758 + firdecim_cccf_set_scale @759 + firdecim_crcf_copy @760 + firdecim_crcf_create @761 + firdecim_crcf_create_kaiser @762 + firdecim_crcf_create_prototype @763 + firdecim_crcf_destroy @764 + firdecim_crcf_execute @765 + firdecim_crcf_execute_block @766 + firdecim_crcf_freqresp @767 + firdecim_crcf_get_decim_rate @768 + firdecim_crcf_get_scale @769 + firdecim_crcf_print @770 + firdecim_crcf_reset @771 + firdecim_crcf_set_scale @772 + firdecim_rrrf_copy @773 + firdecim_rrrf_create @774 + firdecim_rrrf_create_kaiser @775 + firdecim_rrrf_create_prototype @776 + firdecim_rrrf_destroy @777 + firdecim_rrrf_execute @778 + firdecim_rrrf_execute_block @779 + firdecim_rrrf_freqresp @780 + firdecim_rrrf_get_decim_rate @781 + firdecim_rrrf_get_scale @782 + firdecim_rrrf_print @783 + firdecim_rrrf_reset @784 + firdecim_rrrf_set_scale @785 + firdespm_compute_error @786 + firdespm_compute_interp @787 + firdespm_compute_taps @788 + firdespm_copy @789 + firdespm_create @790 + firdespm_create_callback @791 + firdespm_destroy @792 + firdespm_execute @793 + firdespm_halfband_utility @794 + firdespm_iext_search @795 + firdespm_init_grid @796 + firdespm_is_search_complete @797 + firdespm_lowpass @798 + firdespm_print @799 + firdespm_run @800 + firfarrow_crcf_create @801 + firfarrow_crcf_destroy @802 + firfarrow_crcf_execute @803 + firfarrow_crcf_execute_block @804 + firfarrow_crcf_freqresponse @805 + firfarrow_crcf_genpoly @806 + firfarrow_crcf_get_coefficients @807 + firfarrow_crcf_get_length @808 + firfarrow_crcf_groupdelay @809 + firfarrow_crcf_print @810 + firfarrow_crcf_push @811 + firfarrow_crcf_reset @812 + firfarrow_crcf_set_delay @813 + firfarrow_rrrf_create @814 + firfarrow_rrrf_destroy @815 + firfarrow_rrrf_execute @816 + firfarrow_rrrf_execute_block @817 + firfarrow_rrrf_freqresponse @818 + firfarrow_rrrf_genpoly @819 + firfarrow_rrrf_get_coefficients @820 + firfarrow_rrrf_get_length @821 + firfarrow_rrrf_groupdelay @822 + firfarrow_rrrf_print @823 + firfarrow_rrrf_push @824 + firfarrow_rrrf_reset @825 + firfarrow_rrrf_set_delay @826 + firfilt_cccf_copy @827 + firfilt_cccf_copy_coefficients @828 + firfilt_cccf_create @829 + firfilt_cccf_create_dc_blocker @830 + firfilt_cccf_create_firdespm @831 + firfilt_cccf_create_kaiser @832 + firfilt_cccf_create_notch @833 + firfilt_cccf_create_rect @834 + firfilt_cccf_create_rnyquist @835 + firfilt_cccf_destroy @836 + firfilt_cccf_execute @837 + firfilt_cccf_execute_block @838 + firfilt_cccf_execute_one @839 + firfilt_cccf_freqresponse @840 + firfilt_cccf_get_coefficients @841 + firfilt_cccf_get_length @842 + firfilt_cccf_get_scale @843 + firfilt_cccf_groupdelay @844 + firfilt_cccf_print @845 + firfilt_cccf_push @846 + firfilt_cccf_recreate @847 + firfilt_cccf_reset @848 + firfilt_cccf_set_scale @849 + firfilt_cccf_write @850 + firfilt_crcf_copy @851 + firfilt_crcf_copy_coefficients @852 + firfilt_crcf_create @853 + firfilt_crcf_create_dc_blocker @854 + firfilt_crcf_create_firdespm @855 + firfilt_crcf_create_kaiser @856 + firfilt_crcf_create_notch @857 + firfilt_crcf_create_rect @858 + firfilt_crcf_create_rnyquist @859 + firfilt_crcf_destroy @860 + firfilt_crcf_execute @861 + firfilt_crcf_execute_block @862 + firfilt_crcf_execute_one @863 + firfilt_crcf_freqresponse @864 + firfilt_crcf_get_coefficients @865 + firfilt_crcf_get_length @866 + firfilt_crcf_get_scale @867 + firfilt_crcf_groupdelay @868 + firfilt_crcf_print @869 + firfilt_crcf_push @870 + firfilt_crcf_recreate @871 + firfilt_crcf_reset @872 + firfilt_crcf_set_scale @873 + firfilt_crcf_write @874 + firfilt_rrrf_copy @875 + firfilt_rrrf_copy_coefficients @876 + firfilt_rrrf_create @877 + firfilt_rrrf_create_dc_blocker @878 + firfilt_rrrf_create_firdespm @879 + firfilt_rrrf_create_kaiser @880 + firfilt_rrrf_create_notch @881 + firfilt_rrrf_create_rect @882 + firfilt_rrrf_create_rnyquist @883 + firfilt_rrrf_destroy @884 + firfilt_rrrf_execute @885 + firfilt_rrrf_execute_block @886 + firfilt_rrrf_execute_one @887 + firfilt_rrrf_freqresponse @888 + firfilt_rrrf_get_coefficients @889 + firfilt_rrrf_get_length @890 + firfilt_rrrf_get_scale @891 + firfilt_rrrf_groupdelay @892 + firfilt_rrrf_print @893 + firfilt_rrrf_push @894 + firfilt_rrrf_recreate @895 + firfilt_rrrf_reset @896 + firfilt_rrrf_set_scale @897 + firfilt_rrrf_write @898 + firhilbf_c2r_execute @899 + firhilbf_copy @900 + firhilbf_create @901 + firhilbf_decim_execute @902 + firhilbf_decim_execute_block @903 + firhilbf_destroy @904 + firhilbf_interp_execute @905 + firhilbf_interp_execute_block @906 + firhilbf_print @907 + firhilbf_r2c_execute @908 + firhilbf_reset @909 + firinterp_cccf_copy @910 + firinterp_cccf_create @911 + firinterp_cccf_create_kaiser @912 + firinterp_cccf_create_linear @913 + firinterp_cccf_create_prototype @914 + firinterp_cccf_create_window @915 + firinterp_cccf_destroy @916 + firinterp_cccf_execute @917 + firinterp_cccf_execute_block @918 + firinterp_cccf_get_interp_rate @919 + firinterp_cccf_get_scale @920 + firinterp_cccf_get_sub_len @921 + firinterp_cccf_print @922 + firinterp_cccf_reset @923 + firinterp_cccf_set_scale @924 + firinterp_crcf_copy @925 + firinterp_crcf_create @926 + firinterp_crcf_create_kaiser @927 + firinterp_crcf_create_linear @928 + firinterp_crcf_create_prototype @929 + firinterp_crcf_create_window @930 + firinterp_crcf_destroy @931 + firinterp_crcf_execute @932 + firinterp_crcf_execute_block @933 + firinterp_crcf_get_interp_rate @934 + firinterp_crcf_get_scale @935 + firinterp_crcf_get_sub_len @936 + firinterp_crcf_print @937 + firinterp_crcf_reset @938 + firinterp_crcf_set_scale @939 + firinterp_rrrf_copy @940 + firinterp_rrrf_create @941 + firinterp_rrrf_create_kaiser @942 + firinterp_rrrf_create_linear @943 + firinterp_rrrf_create_prototype @944 + firinterp_rrrf_create_window @945 + firinterp_rrrf_destroy @946 + firinterp_rrrf_execute @947 + firinterp_rrrf_execute_block @948 + firinterp_rrrf_get_interp_rate @949 + firinterp_rrrf_get_scale @950 + firinterp_rrrf_get_sub_len @951 + firinterp_rrrf_print @952 + firinterp_rrrf_reset @953 + firinterp_rrrf_set_scale @954 + firpfb_cccf_copy @955 + firpfb_cccf_create @956 + firpfb_cccf_create_default @957 + firpfb_cccf_create_drnyquist @958 + firpfb_cccf_create_kaiser @959 + firpfb_cccf_create_rnyquist @960 + firpfb_cccf_destroy @961 + firpfb_cccf_execute @962 + firpfb_cccf_execute_block @963 + firpfb_cccf_get_scale @964 + firpfb_cccf_print @965 + firpfb_cccf_push @966 + firpfb_cccf_recreate @967 + firpfb_cccf_reset @968 + firpfb_cccf_set_scale @969 + firpfb_cccf_write @970 + firpfb_crcf_copy @971 + firpfb_crcf_create @972 + firpfb_crcf_create_default @973 + firpfb_crcf_create_drnyquist @974 + firpfb_crcf_create_kaiser @975 + firpfb_crcf_create_rnyquist @976 + firpfb_crcf_destroy @977 + firpfb_crcf_execute @978 + firpfb_crcf_execute_block @979 + firpfb_crcf_get_scale @980 + firpfb_crcf_print @981 + firpfb_crcf_push @982 + firpfb_crcf_recreate @983 + firpfb_crcf_reset @984 + firpfb_crcf_set_scale @985 + firpfb_crcf_write @986 + firpfb_rrrf_copy @987 + firpfb_rrrf_create @988 + firpfb_rrrf_create_default @989 + firpfb_rrrf_create_drnyquist @990 + firpfb_rrrf_create_kaiser @991 + firpfb_rrrf_create_rnyquist @992 + firpfb_rrrf_destroy @993 + firpfb_rrrf_execute @994 + firpfb_rrrf_execute_block @995 + firpfb_rrrf_get_scale @996 + firpfb_rrrf_print @997 + firpfb_rrrf_push @998 + firpfb_rrrf_recreate @999 + firpfb_rrrf_reset @1000 + firpfb_rrrf_set_scale @1001 + firpfb_rrrf_write @1002 + firpfbch2_crcf_copy @1003 + firpfbch2_crcf_create @1004 + firpfbch2_crcf_create_kaiser @1005 + firpfbch2_crcf_destroy @1006 + firpfbch2_crcf_execute @1007 + firpfbch2_crcf_execute_analyzer @1008 + firpfbch2_crcf_execute_synthesizer @1009 + firpfbch2_crcf_get_M @1010 + firpfbch2_crcf_get_m @1011 + firpfbch2_crcf_get_type @1012 + firpfbch2_crcf_print @1013 + firpfbch2_crcf_reset @1014 + firpfbch_cccf_analyzer_execute @1015 + firpfbch_cccf_analyzer_push @1016 + firpfbch_cccf_analyzer_run @1017 + firpfbch_cccf_create @1018 + firpfbch_cccf_create_kaiser @1019 + firpfbch_cccf_create_rnyquist @1020 + firpfbch_cccf_destroy @1021 + firpfbch_cccf_print @1022 + firpfbch_cccf_reset @1023 + firpfbch_cccf_synthesizer_execute @1024 + firpfbch_crcf_analyzer_execute @1025 + firpfbch_crcf_analyzer_push @1026 + firpfbch_crcf_analyzer_run @1027 + firpfbch_crcf_create @1028 + firpfbch_crcf_create_kaiser @1029 + firpfbch_crcf_create_rnyquist @1030 + firpfbch_crcf_destroy @1031 + firpfbch_crcf_print @1032 + firpfbch_crcf_reset @1033 + firpfbch_crcf_synthesizer_execute @1034 + firpfbchr_crcf_create @1035 + firpfbchr_crcf_create_kaiser @1036 + firpfbchr_crcf_destroy @1037 + firpfbchr_crcf_execute @1038 + firpfbchr_crcf_get_M @1039 + firpfbchr_crcf_get_P @1040 + firpfbchr_crcf_get_decim_rate @1041 + firpfbchr_crcf_get_m @1042 + firpfbchr_crcf_get_num_channels @1043 + firpfbchr_crcf_print @1044 + firpfbchr_crcf_push @1045 + firpfbchr_crcf_reset @1046 + flattop @1047 + flexframegen_assemble @1048 + flexframegen_create @1049 + flexframegen_destroy @1050 + flexframegen_generate_header @1051 + flexframegen_generate_payload @1052 + flexframegen_generate_preamble @1053 + flexframegen_generate_symbol @1054 + flexframegen_generate_tail @1055 + flexframegen_getframelen @1056 + flexframegen_getprops @1057 + flexframegen_is_assembled @1058 + flexframegen_print @1059 + flexframegen_reconfigure @1060 + flexframegen_reset @1061 + flexframegen_set_header_len @1062 + flexframegen_set_header_props @1063 + flexframegen_setprops @1064 + flexframegen_write_samples @1065 + flexframegenprops_init_default @1066 + flexframesync_create @1067 + flexframesync_debug_disable @1068 + flexframesync_debug_enable @1069 + flexframesync_debug_print @1070 + flexframesync_decode_header @1071 + flexframesync_decode_header_soft @1072 + flexframesync_decode_payload_soft @1073 + flexframesync_destroy @1074 + flexframesync_execute @1075 + flexframesync_execute_rxheader @1076 + flexframesync_execute_rxpayload @1077 + flexframesync_execute_rxpreamble @1078 + flexframesync_execute_seekpn @1079 + flexframesync_get_framedatastats @1080 + flexframesync_is_frame_open @1081 + flexframesync_print @1082 + flexframesync_reset @1083 + flexframesync_reset_framedatastats @1084 + flexframesync_set_header_len @1085 + flexframesync_set_header_props @1086 + flexframesync_step @1087 + fpoly_bessel @1088 + fpoly_bessel_roots @1089 + fpoly_bessel_roots_orchard @1090 + fpoly_bessel_roots_orchard_recursion @1091 + framedatastats_print @1092 + framedatastats_reset @1093 + framegen64_copy @1094 + framegen64_create @1095 + framegen64_destroy @1096 + framegen64_execute @1097 + framegen64_print @1098 + framesync64_copy @1099 + framesync64_create @1100 + framesync64_debug_disable @1101 + framesync64_debug_enable @1102 + framesync64_debug_export @1103 + framesync64_debug_print @1104 + framesync64_destroy @1105 + framesync64_execute @1106 + framesync64_execute_rxpayload @1107 + framesync64_execute_rxpreamble @1108 + framesync64_execute_seekpn @1109 + framesync64_get_filename @1110 + framesync64_get_framedatastats @1111 + framesync64_get_num_files_exported @1112 + framesync64_get_prefix @1113 + framesync64_get_threshold @1114 + framesync64_print @1115 + framesync64_reset @1116 + framesync64_reset_framedatastats @1117 + framesync64_set_callback @1118 + framesync64_set_prefix @1119 + framesync64_set_threshold @1120 + framesync64_set_userdata @1121 + framesync64_step @1122 + framesyncstats_default @1123 DATA + framesyncstats_init_default @1124 + framesyncstats_print @1125 + freqdem_create @1126 + freqdem_demodulate @1127 + freqdem_demodulate_block @1128 + freqdem_destroy @1129 + freqdem_print @1130 + freqdem_reset @1131 + freqmod_create @1132 + freqmod_destroy @1133 + freqmod_modulate @1134 + freqmod_modulate_block @1135 + freqmod_print @1136 + freqmod_reset @1137 + fskdem_copy @1138 + fskdem_create @1139 + fskdem_demodulate @1140 + fskdem_destroy @1141 + fskdem_get_frequency_error @1142 + fskdem_get_symbol_energy @1143 + fskdem_print @1144 + fskdem_reset @1145 + fskframegen_assemble @1146 + fskframegen_create @1147 + fskframegen_destroy @1148 + fskframegen_encode_header @1149 + fskframegen_generate_header @1150 + fskframegen_generate_payload @1151 + fskframegen_generate_preamble @1152 + fskframegen_generate_symbol @1153 + fskframegen_generate_zeros @1154 + fskframegen_getframelen @1155 + fskframegen_print @1156 + fskframegen_reset @1157 + fskframegen_write_samples @1158 + fskframesync_create @1159 + fskframesync_debug_disable @1160 + fskframesync_debug_enable @1161 + fskframesync_debug_export @1162 + fskframesync_decode_header @1163 + fskframesync_destroy @1164 + fskframesync_execute @1165 + fskframesync_execute_block @1166 + fskframesync_execute_detectframe @1167 + fskframesync_execute_rxheader @1168 + fskframesync_execute_rxpayload @1169 + fskframesync_print @1170 + fskframesync_reset @1171 + fskmod_copy @1172 + fskmod_create @1173 + fskmod_destroy @1174 + fskmod_modulate @1175 + fskmod_print @1176 + fskmod_reset @1177 + gasearch_create @1178 + gasearch_create_advanced @1179 + gasearch_crossover @1180 + gasearch_destroy @1181 + gasearch_evaluate @1182 + gasearch_evolve @1183 + gasearch_getopt @1184 + gasearch_mutate @1185 + gasearch_print @1186 + gasearch_rank @1187 + gasearch_run @1188 + gasearch_set_mutation_rate @1189 + gasearch_set_population_size @1190 + gmskdem_copy @1191 + gmskdem_create @1192 + gmskdem_debug_print @1193 + gmskdem_demodulate @1194 + gmskdem_destroy @1195 + gmskdem_print @1196 + gmskdem_reset @1197 + gmskdem_set_eq_bw @1198 + gmskframegen_assemble @1199 + gmskframegen_assemble_default @1200 + gmskframegen_create @1201 + gmskframegen_create_set @1202 + gmskframegen_destroy @1203 + gmskframegen_encode_header @1204 + gmskframegen_gen_symbol @1205 + gmskframegen_getframelen @1206 + gmskframegen_is_assembled @1207 + gmskframegen_print @1208 + gmskframegen_reset @1209 + gmskframegen_set_header_len @1210 + gmskframegen_write @1211 + gmskframegen_write_header @1212 + gmskframegen_write_payload @1213 + gmskframegen_write_preamble @1214 + gmskframegen_write_samples @1215 + gmskframegen_write_tail @1216 + gmskframegen_write_zeros @1217 + gmskframesync_create @1218 + gmskframesync_create_set @1219 + gmskframesync_debug_disable @1220 + gmskframesync_debug_enable @1221 + gmskframesync_debug_print @1222 + gmskframesync_decode_header @1223 + gmskframesync_destroy @1224 + gmskframesync_execute @1225 + gmskframesync_execute_detectframe @1226 + gmskframesync_execute_rxheader @1227 + gmskframesync_execute_rxpayload @1228 + gmskframesync_execute_rxpreamble @1229 + gmskframesync_execute_sample @1230 + gmskframesync_get_framedatastats @1231 + gmskframesync_is_frame_open @1232 + gmskframesync_print @1233 + gmskframesync_pushpn @1234 + gmskframesync_reset @1235 + gmskframesync_reset_framedatastats @1236 + gmskframesync_set_header_len @1237 + gmskframesync_syncpn @1238 + gmskframesync_update_fi @1239 + gmskframesync_update_symsync @1240 + gmskmod_copy @1241 + gmskmod_create @1242 + gmskmod_destroy @1243 + gmskmod_modulate @1244 + gmskmod_print @1245 + gmskmod_reset @1246 + golay2412_Gt @1247 DATA + golay2412_H @1248 DATA + golay2412_P @1249 DATA + golay2412_matrix_mul @1250 + golay2412_parity_search @1251 + gradsearch_create @1252 + gradsearch_destroy @1253 + gradsearch_execute @1254 + gradsearch_gradient @1255 + gradsearch_linesearch @1256 + gradsearch_norm @1257 + gradsearch_print @1258 + gradsearch_step @1259 + gray_decode @1260 + gray_encode @1261 + hamming @1262 + hamming128_enc_gentab @1263 DATA + hamming74_dec_gentab @1264 DATA + hamming74_enc_gentab @1265 DATA + hamming84_dec_gentab @1266 DATA + hamming84_enc_gentab @1267 DATA + hann @1268 + icrandnf @1269 + iir_group_delay @1270 + iirdecim_cccf_copy @1271 + iirdecim_cccf_create @1272 + iirdecim_cccf_create_default @1273 + iirdecim_cccf_create_prototype @1274 + iirdecim_cccf_destroy @1275 + iirdecim_cccf_execute @1276 + iirdecim_cccf_execute_block @1277 + iirdecim_cccf_groupdelay @1278 + iirdecim_cccf_print @1279 + iirdecim_cccf_reset @1280 + iirdecim_crcf_copy @1281 + iirdecim_crcf_create @1282 + iirdecim_crcf_create_default @1283 + iirdecim_crcf_create_prototype @1284 + iirdecim_crcf_destroy @1285 + iirdecim_crcf_execute @1286 + iirdecim_crcf_execute_block @1287 + iirdecim_crcf_groupdelay @1288 + iirdecim_crcf_print @1289 + iirdecim_crcf_reset @1290 + iirdecim_rrrf_copy @1291 + iirdecim_rrrf_create @1292 + iirdecim_rrrf_create_default @1293 + iirdecim_rrrf_create_prototype @1294 + iirdecim_rrrf_destroy @1295 + iirdecim_rrrf_execute @1296 + iirdecim_rrrf_execute_block @1297 + iirdecim_rrrf_groupdelay @1298 + iirdecim_rrrf_print @1299 + iirdecim_rrrf_reset @1300 + iirdes_dzpk2sosf @1301 + iirdes_dzpk2tff @1302 + iirdes_dzpk_lp2bp @1303 + iirdes_dzpk_lp2hp @1304 + iirdes_freqprewarp @1305 + iirdes_isstable @1306 + iirdes_pll_active_PI @1307 + iirdes_pll_active_lag @1308 + iirfilt_cccf_copy @1309 + iirfilt_cccf_create @1310 + iirfilt_cccf_create_dc_blocker @1311 + iirfilt_cccf_create_differentiator @1312 + iirfilt_cccf_create_integrator @1313 + iirfilt_cccf_create_lowpass @1314 + iirfilt_cccf_create_pll @1315 + iirfilt_cccf_create_prototype @1316 + iirfilt_cccf_create_sos @1317 + iirfilt_cccf_destroy @1318 + iirfilt_cccf_execute @1319 + iirfilt_cccf_execute_block @1320 + iirfilt_cccf_execute_norm @1321 + iirfilt_cccf_execute_sos @1322 + iirfilt_cccf_freqresponse @1323 + iirfilt_cccf_get_length @1324 + iirfilt_cccf_get_psd @1325 + iirfilt_cccf_groupdelay @1326 + iirfilt_cccf_init @1327 + iirfilt_cccf_print @1328 + iirfilt_cccf_reset @1329 + iirfilt_crcf_copy @1330 + iirfilt_crcf_create @1331 + iirfilt_crcf_create_dc_blocker @1332 + iirfilt_crcf_create_differentiator @1333 + iirfilt_crcf_create_integrator @1334 + iirfilt_crcf_create_lowpass @1335 + iirfilt_crcf_create_pll @1336 + iirfilt_crcf_create_prototype @1337 + iirfilt_crcf_create_sos @1338 + iirfilt_crcf_destroy @1339 + iirfilt_crcf_execute @1340 + iirfilt_crcf_execute_block @1341 + iirfilt_crcf_execute_norm @1342 + iirfilt_crcf_execute_sos @1343 + iirfilt_crcf_freqresponse @1344 + iirfilt_crcf_get_length @1345 + iirfilt_crcf_get_psd @1346 + iirfilt_crcf_groupdelay @1347 + iirfilt_crcf_init @1348 + iirfilt_crcf_print @1349 + iirfilt_crcf_reset @1350 + iirfilt_rrrf_copy @1351 + iirfilt_rrrf_create @1352 + iirfilt_rrrf_create_dc_blocker @1353 + iirfilt_rrrf_create_differentiator @1354 + iirfilt_rrrf_create_integrator @1355 + iirfilt_rrrf_create_lowpass @1356 + iirfilt_rrrf_create_pll @1357 + iirfilt_rrrf_create_prototype @1358 + iirfilt_rrrf_create_sos @1359 + iirfilt_rrrf_destroy @1360 + iirfilt_rrrf_execute @1361 + iirfilt_rrrf_execute_block @1362 + iirfilt_rrrf_execute_norm @1363 + iirfilt_rrrf_execute_sos @1364 + iirfilt_rrrf_freqresponse @1365 + iirfilt_rrrf_get_length @1366 + iirfilt_rrrf_get_psd @1367 + iirfilt_rrrf_groupdelay @1368 + iirfilt_rrrf_init @1369 + iirfilt_rrrf_print @1370 + iirfilt_rrrf_reset @1371 + iirfiltsos_cccf_copy @1372 + iirfiltsos_cccf_create @1373 + iirfiltsos_cccf_destroy @1374 + iirfiltsos_cccf_execute @1375 + iirfiltsos_cccf_execute_df1 @1376 + iirfiltsos_cccf_execute_df2 @1377 + iirfiltsos_cccf_groupdelay @1378 + iirfiltsos_cccf_print @1379 + iirfiltsos_cccf_reset @1380 + iirfiltsos_cccf_set_coefficients @1381 + iirfiltsos_crcf_copy @1382 + iirfiltsos_crcf_create @1383 + iirfiltsos_crcf_destroy @1384 + iirfiltsos_crcf_execute @1385 + iirfiltsos_crcf_execute_df1 @1386 + iirfiltsos_crcf_execute_df2 @1387 + iirfiltsos_crcf_groupdelay @1388 + iirfiltsos_crcf_print @1389 + iirfiltsos_crcf_reset @1390 + iirfiltsos_crcf_set_coefficients @1391 + iirfiltsos_rrrf_copy @1392 + iirfiltsos_rrrf_create @1393 + iirfiltsos_rrrf_destroy @1394 + iirfiltsos_rrrf_execute @1395 + iirfiltsos_rrrf_execute_df1 @1396 + iirfiltsos_rrrf_execute_df2 @1397 + iirfiltsos_rrrf_groupdelay @1398 + iirfiltsos_rrrf_print @1399 + iirfiltsos_rrrf_reset @1400 + iirfiltsos_rrrf_set_coefficients @1401 + iirhilbf_c2r_execute @1402 + iirhilbf_c2r_execute_block @1403 + iirhilbf_copy @1404 + iirhilbf_create @1405 + iirhilbf_create_default @1406 + iirhilbf_decim_execute @1407 + iirhilbf_decim_execute_block @1408 + iirhilbf_destroy @1409 + iirhilbf_interp_execute @1410 + iirhilbf_interp_execute_block @1411 + iirhilbf_print @1412 + iirhilbf_r2c_execute @1413 + iirhilbf_r2c_execute_block @1414 + iirhilbf_reset @1415 + iirinterp_cccf_copy @1416 + iirinterp_cccf_create @1417 + iirinterp_cccf_create_default @1418 + iirinterp_cccf_create_prototype @1419 + iirinterp_cccf_destroy @1420 + iirinterp_cccf_execute @1421 + iirinterp_cccf_execute_block @1422 + iirinterp_cccf_groupdelay @1423 + iirinterp_cccf_print @1424 + iirinterp_cccf_reset @1425 + iirinterp_crcf_copy @1426 + iirinterp_crcf_create @1427 + iirinterp_crcf_create_default @1428 + iirinterp_crcf_create_prototype @1429 + iirinterp_crcf_destroy @1430 + iirinterp_crcf_execute @1431 + iirinterp_crcf_execute_block @1432 + iirinterp_crcf_groupdelay @1433 + iirinterp_crcf_print @1434 + iirinterp_crcf_reset @1435 + iirinterp_rrrf_copy @1436 + iirinterp_rrrf_create @1437 + iirinterp_rrrf_create_default @1438 + iirinterp_rrrf_create_prototype @1439 + iirinterp_rrrf_destroy @1440 + iirinterp_rrrf_execute @1441 + iirinterp_rrrf_execute_block @1442 + iirinterp_rrrf_groupdelay @1443 + iirinterp_rrrf_print @1444 + iirinterp_rrrf_reset @1445 + interleaver_copy @1446 + interleaver_create @1447 + interleaver_decode @1448 + interleaver_decode_soft @1449 + interleaver_destroy @1450 + interleaver_encode @1451 + interleaver_encode_soft @1452 + interleaver_permute @1453 + interleaver_permute_mask @1454 + interleaver_permute_mask_soft @1455 + interleaver_permute_soft @1456 + interleaver_print @1457 + interleaver_set_depth @1458 + kaiser @1459 + kaiser_beta_As @1460 + kbd @1461 + kbd_window @1462 + landenf @1463 + liquid_MarcumQ1f @1464 + liquid_MarcumQf @1465 + liquid_Qf @1466 + liquid_apsk128 @1467 DATA + liquid_apsk16 @1468 DATA + liquid_apsk256 @1469 DATA + liquid_apsk32 @1470 DATA + liquid_apsk4 @1471 DATA + liquid_apsk64 @1472 DATA + liquid_apsk8 @1473 DATA + liquid_asechf @1474 + liquid_bdotprod @1475 + liquid_besseli0f @1476 + liquid_besselif @1477 + liquid_besselj0f @1478 + liquid_besseljf @1479 + liquid_blackmanharris @1480 + liquid_blackmanharris7 @1481 + liquid_c_leading_zeros @1482 DATA + liquid_c_ones @1483 DATA + liquid_c_ones_mod2 @1484 DATA + liquid_cacosf @1485 + liquid_cargf_approx @1486 + liquid_casinf @1487 + liquid_catanf @1488 + liquid_cexpf @1489 + liquid_clogf @1490 + liquid_cosf @1491 + liquid_count_leading_zeros @1492 + liquid_count_ones @1493 + liquid_count_ones_mod2 @1494 + liquid_cplxpair @1495 + liquid_cplxpair_cleanup @1496 + liquid_csqrtf @1497 + liquid_error_config_fl @1498 + liquid_error_fl @1499 + liquid_error_info @1500 + liquid_error_str @1501 DATA + liquid_expf @1502 + liquid_factor @1503 + liquid_factorialf @1504 + liquid_fft_estimate_method @1505 + liquid_filter_autocorr @1506 + liquid_filter_crosscorr @1507 + liquid_filter_energy @1508 + liquid_filter_isi @1509 + liquid_firdes_arkaiser @1510 + liquid_firdes_doppler @1511 + liquid_firdes_farcsech @1512 + liquid_firdes_farcsech_freqresponse @1513 + liquid_firdes_fexp @1514 + liquid_firdes_fexp_freqresponse @1515 + liquid_firdes_fnyquist @1516 + liquid_firdes_fsech @1517 + liquid_firdes_fsech_freqresponse @1518 + liquid_firdes_gmskrx @1519 + liquid_firdes_gmsktx @1520 + liquid_firdes_hM3 @1521 + liquid_firdes_kaiser @1522 + liquid_firdes_notch @1523 + liquid_firdes_prototype @1524 + liquid_firdes_rcos @1525 + liquid_firdes_rfarcsech @1526 + liquid_firdes_rfexp @1527 + liquid_firdes_rfsech @1528 + liquid_firdes_rkaiser @1529 + liquid_firdes_rkaiser_bisection @1530 + liquid_firdes_rkaiser_internal_isi @1531 + liquid_firdes_rkaiser_quadratic @1532 + liquid_firdes_rrcos @1533 + liquid_firdes_windowf @1534 + liquid_firdespm_halfband_as @1535 + liquid_firdespm_halfband_ft @1536 + liquid_firfilt_type_str @1537 DATA + liquid_flattop @1538 + liquid_freqrespcf @1539 + liquid_freqrespf @1540 + liquid_gammaf @1541 + liquid_gcd @1542 + liquid_get_scale @1543 + liquid_getopt_str2crc @1544 + liquid_getopt_str2fec @1545 + liquid_getopt_str2firfilt @1546 + liquid_getopt_str2mod @1547 + liquid_getopt_str2window @1548 + liquid_hamming @1549 + liquid_hann @1550 + liquid_iirdes @1551 + liquid_invgauss @1552 + liquid_is_prime @1553 + liquid_kaiser @1554 + liquid_kbd @1555 + liquid_kbd_window @1556 + liquid_lbcircshift @1557 + liquid_lbshift @1558 + liquid_lcircshift @1559 + liquid_levinson @1560 + liquid_libversion @1561 + liquid_libversion_number @1562 + liquid_lnbesselif @1563 + liquid_lngammaf @1564 + liquid_lnlowergammaf @1565 + liquid_lnuppergammaf @1566 + liquid_logf @1567 + liquid_lowergammaf @1568 + liquid_lpc @1569 + liquid_lshift @1570 + liquid_malloc_copy @1571 + liquid_modem_is_apsk @1572 + liquid_modem_is_ask @1573 + liquid_modem_is_dpsk @1574 + liquid_modem_is_psk @1575 + liquid_modem_is_qam @1576 + liquid_modpow @1577 + liquid_msb_index @1578 + liquid_multimodal @1579 + liquid_nchoosek @1580 + liquid_nextpow2 @1581 + liquid_pack_array @1582 + liquid_pack_bytes @1583 + liquid_pack_soft_bits @1584 + liquid_poly_findroots_bairstow @1585 + liquid_poly_findroots_bairstow_persistent @1586 + liquid_poly_findroots_bairstow_recursion @1587 + liquid_poly_findroots_durandkerner @1588 + liquid_poly_sort_roots_compare @1589 + liquid_primitive_root @1590 + liquid_primitive_root_prime @1591 + liquid_print_bitstring @1592 + liquid_print_crc_schemes @1593 + liquid_print_fec_schemes @1594 + liquid_print_modulation_schemes @1595 + liquid_print_windows @1596 + liquid_rbcircshift @1597 + liquid_rbshift @1598 + liquid_rcircshift @1599 + liquid_rcostaper_window @1600 + liquid_rcostaper_windowf @1601 + liquid_repack_bytes @1602 + liquid_reverse_byte @1603 + liquid_reverse_byte_gentab @1604 DATA + liquid_reverse_uint16 @1605 + liquid_reverse_uint24 @1606 + liquid_reverse_uint32 @1607 + liquid_rosenbrock @1608 + liquid_rshift @1609 + liquid_sincosf @1610 + liquid_sinf @1611 + liquid_spiral @1612 + liquid_sumsqcf @1613 + liquid_sumsqf @1614 + liquid_tanf @1615 + liquid_totient @1616 + liquid_triangular @1617 + liquid_unique_factor @1618 + liquid_unpack_array @1619 + liquid_unpack_bytes @1620 + liquid_unpack_soft_bits @1621 + liquid_unwrap_phase @1622 + liquid_unwrap_phase2 @1623 + liquid_uppergammaf @1624 + liquid_vectorcf_abs @1625 + liquid_vectorcf_add @1626 + liquid_vectorcf_addscalar @1627 + liquid_vectorcf_carg @1628 + liquid_vectorcf_cexpj @1629 + liquid_vectorcf_mul @1630 + liquid_vectorcf_mulscalar @1631 + liquid_vectorcf_norm @1632 + liquid_vectorcf_normalize @1633 + liquid_vectorf_abs @1634 + liquid_vectorf_add @1635 + liquid_vectorf_addscalar @1636 + liquid_vectorf_carg @1637 + liquid_vectorf_cexpj @1638 + liquid_vectorf_mul @1639 + liquid_vectorf_mulscalar @1640 + liquid_vectorf_norm @1641 + liquid_vectorf_normalize @1642 + liquid_version @1643 DATA + liquid_window_str @1644 DATA + liquid_windowf @1645 + matrix_add @1646 + matrix_aug @1647 + matrix_cgsolve @1648 + matrix_chol @1649 + matrix_det @1650 + matrix_det2x2 @1651 + matrix_div @1652 + matrix_eye @1653 + matrix_gjelim @1654 + matrix_gramschmidt @1655 + matrix_hermitian @1656 + matrix_hermitian_mul @1657 + matrix_inv @1658 + matrix_linsolve @1659 + matrix_ludecomp_crout @1660 + matrix_ludecomp_doolittle @1661 + matrix_mul @1662 + matrix_mul_hermitian @1663 + matrix_mul_transpose @1664 + matrix_ones @1665 + matrix_pdiv @1666 + matrix_pivot @1667 + matrix_pmul @1668 + matrix_print @1669 + matrix_proj @1670 + matrix_qrdecomp_gramschmidt @1671 + matrix_sub @1672 + matrix_swaprows @1673 + matrix_trans @1674 + matrix_transpose_mul @1675 + matrix_zeros @1676 + matrixc_add @1677 + matrixc_aug @1678 + matrixc_cgsolve @1679 + matrixc_chol @1680 + matrixc_det @1681 + matrixc_det2x2 @1682 + matrixc_div @1683 + matrixc_eye @1684 + matrixc_gjelim @1685 + matrixc_gramschmidt @1686 + matrixc_hermitian @1687 + matrixc_hermitian_mul @1688 + matrixc_inv @1689 + matrixc_linsolve @1690 + matrixc_ludecomp_crout @1691 + matrixc_ludecomp_doolittle @1692 + matrixc_mul @1693 + matrixc_mul_hermitian @1694 + matrixc_mul_transpose @1695 + matrixc_ones @1696 + matrixc_pdiv @1697 + matrixc_pivot @1698 + matrixc_pmul @1699 + matrixc_print @1700 + matrixc_proj @1701 + matrixc_qrdecomp_gramschmidt @1702 + matrixc_sub @1703 + matrixc_swaprows @1704 + matrixc_trans @1705 + matrixc_transpose_mul @1706 + matrixc_zeros @1707 + matrixcf_add @1708 + matrixcf_aug @1709 + matrixcf_cgsolve @1710 + matrixcf_chol @1711 + matrixcf_det @1712 + matrixcf_det2x2 @1713 + matrixcf_div @1714 + matrixcf_eye @1715 + matrixcf_gjelim @1716 + matrixcf_gramschmidt @1717 + matrixcf_hermitian @1718 + matrixcf_hermitian_mul @1719 + matrixcf_inv @1720 + matrixcf_linsolve @1721 + matrixcf_ludecomp_crout @1722 + matrixcf_ludecomp_doolittle @1723 + matrixcf_mul @1724 + matrixcf_mul_hermitian @1725 + matrixcf_mul_transpose @1726 + matrixcf_ones @1727 + matrixcf_pdiv @1728 + matrixcf_pivot @1729 + matrixcf_pmul @1730 + matrixcf_print @1731 + matrixcf_proj @1732 + matrixcf_qrdecomp_gramschmidt @1733 + matrixcf_sub @1734 + matrixcf_swaprows @1735 + matrixcf_trans @1736 + matrixcf_transpose_mul @1737 + matrixcf_zeros @1738 + matrixf_add @1739 + matrixf_aug @1740 + matrixf_cgsolve @1741 + matrixf_chol @1742 + matrixf_det @1743 + matrixf_det2x2 @1744 + matrixf_div @1745 + matrixf_eye @1746 + matrixf_gjelim @1747 + matrixf_gramschmidt @1748 + matrixf_hermitian @1749 + matrixf_hermitian_mul @1750 + matrixf_inv @1751 + matrixf_linsolve @1752 + matrixf_ludecomp_crout @1753 + matrixf_ludecomp_doolittle @1754 + matrixf_mul @1755 + matrixf_mul_hermitian @1756 + matrixf_mul_transpose @1757 + matrixf_ones @1758 + matrixf_pdiv @1759 + matrixf_pivot @1760 + matrixf_pmul @1761 + matrixf_print @1762 + matrixf_proj @1763 + matrixf_qrdecomp_gramschmidt @1764 + matrixf_sub @1765 + matrixf_swaprows @1766 + matrixf_trans @1767 + matrixf_transpose_mul @1768 + matrixf_zeros @1769 + modem_arb128opt @1770 DATA + modem_arb16opt @1771 DATA + modem_arb256opt @1772 DATA + modem_arb32opt @1773 DATA + modem_arb64opt @1774 DATA + modem_arb_V29 @1775 DATA + modem_arb_sqam128 @1776 DATA + modem_arb_sqam32 @1777 DATA + modem_arb_vt64 @1778 DATA + modem_create @1779 + modem_create_arbitrary @1780 + modem_demodulate @1781 + modem_demodulate_soft @1782 + modem_destroy @1783 + modem_gen_rand_sym @1784 + modem_get_bps @1785 + modem_get_demodulator_evm @1786 + modem_get_demodulator_phase_error @1787 + modem_get_demodulator_sample @1788 + modem_get_scheme @1789 + modem_modulate @1790 + modem_print @1791 + modem_recreate @1792 + modem_reset @1793 + modemcf_arb_balance_iq @1794 + modemcf_arb_init @1795 + modemcf_arb_init_file @1796 + modemcf_arb_scale @1797 + modemcf_copy @1798 + modemcf_create @1799 + modemcf_create_V29 @1800 + modemcf_create_apsk @1801 + modemcf_create_arb @1802 + modemcf_create_arb128opt @1803 + modemcf_create_arb16opt @1804 + modemcf_create_arb256opt @1805 + modemcf_create_arb32opt @1806 + modemcf_create_arb64opt @1807 + modemcf_create_arb64vt @1808 + modemcf_create_arbitrary @1809 + modemcf_create_ask @1810 + modemcf_create_bpsk @1811 + modemcf_create_dpsk @1812 + modemcf_create_ook @1813 + modemcf_create_pi4dqpsk @1814 + modemcf_create_psk @1815 + modemcf_create_qam @1816 + modemcf_create_qpsk @1817 + modemcf_create_sqam128 @1818 + modemcf_create_sqam32 @1819 + modemcf_demodsoft_gentab @1820 + modemcf_demodulate @1821 + modemcf_demodulate_apsk @1822 + modemcf_demodulate_arb @1823 + modemcf_demodulate_ask @1824 + modemcf_demodulate_bpsk @1825 + modemcf_demodulate_dpsk @1826 + modemcf_demodulate_linear_array @1827 + modemcf_demodulate_linear_array_ref @1828 + modemcf_demodulate_ook @1829 + modemcf_demodulate_pi4dqpsk @1830 + modemcf_demodulate_psk @1831 + modemcf_demodulate_qam @1832 + modemcf_demodulate_qpsk @1833 + modemcf_demodulate_soft @1834 + modemcf_demodulate_soft_arb @1835 + modemcf_demodulate_soft_bpsk @1836 + modemcf_demodulate_soft_pi4dqpsk @1837 + modemcf_demodulate_soft_qpsk @1838 + modemcf_demodulate_soft_table @1839 + modemcf_demodulate_sqam128 @1840 + modemcf_demodulate_sqam32 @1841 + modemcf_destroy @1842 + modemcf_gen_rand_sym @1843 + modemcf_get_bps @1844 + modemcf_get_demodulator_evm @1845 + modemcf_get_demodulator_phase_error @1846 + modemcf_get_demodulator_sample @1847 + modemcf_get_scheme @1848 + modemcf_init @1849 + modemcf_init_map @1850 + modemcf_modulate @1851 + modemcf_modulate_apsk @1852 + modemcf_modulate_arb @1853 + modemcf_modulate_ask @1854 + modemcf_modulate_bpsk @1855 + modemcf_modulate_dpsk @1856 + modemcf_modulate_map @1857 + modemcf_modulate_ook @1858 + modemcf_modulate_pi4dqpsk @1859 + modemcf_modulate_psk @1860 + modemcf_modulate_qam @1861 + modemcf_modulate_qpsk @1862 + modemcf_modulate_sqam128 @1863 + modemcf_modulate_sqam32 @1864 + modemcf_print @1865 + modemcf_recreate @1866 + modemcf_reset @1867 + modulation_types @1868 DATA + msequence_advance @1869 + msequence_create @1870 + msequence_create_default @1871 + msequence_create_genpoly @1872 + msequence_default @1873 DATA + msequence_destroy @1874 + msequence_generate_symbol @1875 + msequence_get_length @1876 + msequence_get_state @1877 + msequence_print @1878 + msequence_reset @1879 + msequence_set_state @1880 + msourcecf_add_chirp @1881 + msourcecf_add_fsk @1882 + msourcecf_add_gmsk @1883 + msourcecf_add_modem @1884 + msourcecf_add_noise @1885 + msourcecf_add_source @1886 + msourcecf_add_tone @1887 + msourcecf_add_user @1888 + msourcecf_copy @1889 + msourcecf_create @1890 + msourcecf_create_default @1891 + msourcecf_destroy @1892 + msourcecf_disable @1893 + msourcecf_enable @1894 + msourcecf_find @1895 + msourcecf_generate @1896 + msourcecf_get_frequency @1897 + msourcecf_get_gain @1898 + msourcecf_get_num_samples @1899 + msourcecf_get_num_samples_source @1900 + msourcecf_get_source @1901 + msourcecf_print @1902 + msourcecf_remove @1903 + msourcecf_reset @1904 + msourcecf_set_frequency @1905 + msourcecf_set_gain @1906 + msourcecf_write_samples @1907 + msresamp2_cccf_copy @1908 + msresamp2_cccf_create @1909 + msresamp2_cccf_decim_execute @1910 + msresamp2_cccf_destroy @1911 + msresamp2_cccf_execute @1912 + msresamp2_cccf_get_delay @1913 + msresamp2_cccf_get_num_stages @1914 + msresamp2_cccf_get_rate @1915 + msresamp2_cccf_get_type @1916 + msresamp2_cccf_interp_execute @1917 + msresamp2_cccf_print @1918 + msresamp2_cccf_reset @1919 + msresamp2_crcf_copy @1920 + msresamp2_crcf_create @1921 + msresamp2_crcf_decim_execute @1922 + msresamp2_crcf_destroy @1923 + msresamp2_crcf_execute @1924 + msresamp2_crcf_get_delay @1925 + msresamp2_crcf_get_num_stages @1926 + msresamp2_crcf_get_rate @1927 + msresamp2_crcf_get_type @1928 + msresamp2_crcf_interp_execute @1929 + msresamp2_crcf_print @1930 + msresamp2_crcf_reset @1931 + msresamp2_rrrf_copy @1932 + msresamp2_rrrf_create @1933 + msresamp2_rrrf_decim_execute @1934 + msresamp2_rrrf_destroy @1935 + msresamp2_rrrf_execute @1936 + msresamp2_rrrf_get_delay @1937 + msresamp2_rrrf_get_num_stages @1938 + msresamp2_rrrf_get_rate @1939 + msresamp2_rrrf_get_type @1940 + msresamp2_rrrf_interp_execute @1941 + msresamp2_rrrf_print @1942 + msresamp2_rrrf_reset @1943 + msresamp_cccf_copy @1944 + msresamp_cccf_create @1945 + msresamp_cccf_decim_execute @1946 + msresamp_cccf_destroy @1947 + msresamp_cccf_execute @1948 + msresamp_cccf_get_delay @1949 + msresamp_cccf_get_num_output @1950 + msresamp_cccf_get_rate @1951 + msresamp_cccf_interp_execute @1952 + msresamp_cccf_print @1953 + msresamp_cccf_reset @1954 + msresamp_crcf_copy @1955 + msresamp_crcf_create @1956 + msresamp_crcf_decim_execute @1957 + msresamp_crcf_destroy @1958 + msresamp_crcf_execute @1959 + msresamp_crcf_get_delay @1960 + msresamp_crcf_get_num_output @1961 + msresamp_crcf_get_rate @1962 + msresamp_crcf_interp_execute @1963 + msresamp_crcf_print @1964 + msresamp_crcf_reset @1965 + msresamp_rrrf_copy @1966 + msresamp_rrrf_create @1967 + msresamp_rrrf_decim_execute @1968 + msresamp_rrrf_destroy @1969 + msresamp_rrrf_execute @1970 + msresamp_rrrf_get_delay @1971 + msresamp_rrrf_get_num_output @1972 + msresamp_rrrf_get_rate @1973 + msresamp_rrrf_interp_execute @1974 + msresamp_rrrf_print @1975 + msresamp_rrrf_reset @1976 + nco_crcf_adjust_frequency @1977 + nco_crcf_adjust_phase @1978 + nco_crcf_cexpf @1979 + nco_crcf_constrain @1980 + nco_crcf_copy @1981 + nco_crcf_cos @1982 + nco_crcf_create @1983 + nco_crcf_destroy @1984 + nco_crcf_get_frequency @1985 + nco_crcf_get_phase @1986 + nco_crcf_index @1987 + nco_crcf_mix_block_down @1988 + nco_crcf_mix_block_up @1989 + nco_crcf_mix_down @1990 + nco_crcf_mix_up @1991 + nco_crcf_pll_reset @1992 + nco_crcf_pll_set_bandwidth @1993 + nco_crcf_pll_step @1994 + nco_crcf_print @1995 + nco_crcf_reset @1996 + nco_crcf_set_frequency @1997 + nco_crcf_set_phase @1998 + nco_crcf_sin @1999 + nco_crcf_sincos @2000 + nco_crcf_step @2001 + ofdmflexframegen_assemble @2002 + ofdmflexframegen_create @2003 + ofdmflexframegen_destroy @2004 + ofdmflexframegen_encode_header @2005 + ofdmflexframegen_gen_S0a @2006 + ofdmflexframegen_gen_S0b @2007 + ofdmflexframegen_gen_S1 @2008 + ofdmflexframegen_gen_header @2009 + ofdmflexframegen_gen_payload @2010 + ofdmflexframegen_gen_symbol @2011 + ofdmflexframegen_gen_tail @2012 + ofdmflexframegen_gen_zeros @2013 + ofdmflexframegen_getframelen @2014 + ofdmflexframegen_getprops @2015 + ofdmflexframegen_is_assembled @2016 + ofdmflexframegen_modulate_header @2017 + ofdmflexframegen_print @2018 + ofdmflexframegen_reconfigure @2019 + ofdmflexframegen_reset @2020 + ofdmflexframegen_set_header_len @2021 + ofdmflexframegen_set_header_props @2022 + ofdmflexframegen_setprops @2023 + ofdmflexframegen_write @2024 + ofdmflexframegenprops_init_default @2025 + ofdmflexframesync_create @2026 + ofdmflexframesync_debug_disable @2027 + ofdmflexframesync_debug_enable @2028 + ofdmflexframesync_debug_print @2029 + ofdmflexframesync_decode_header @2030 + ofdmflexframesync_decode_header_soft @2031 + ofdmflexframesync_decode_payload_soft @2032 + ofdmflexframesync_destroy @2033 + ofdmflexframesync_execute @2034 + ofdmflexframesync_get_cfo @2035 + ofdmflexframesync_get_framedatastats @2036 + ofdmflexframesync_get_rssi @2037 + ofdmflexframesync_internal_callback @2038 + ofdmflexframesync_is_frame_open @2039 + ofdmflexframesync_print @2040 + ofdmflexframesync_reset @2041 + ofdmflexframesync_reset_framedatastats @2042 + ofdmflexframesync_rxheader @2043 + ofdmflexframesync_rxpayload @2044 + ofdmflexframesync_set_callback @2045 + ofdmflexframesync_set_cfo @2046 + ofdmflexframesync_set_header_len @2047 + ofdmflexframesync_set_header_props @2048 + ofdmflexframesync_set_userdata @2049 + ofdmframe_init_S0 @2050 + ofdmframe_init_S1 @2051 + ofdmframe_init_default_sctype @2052 + ofdmframe_init_sctype_range @2053 + ofdmframe_print_sctype @2054 + ofdmframe_validate_sctype @2055 + ofdmframegen_create @2056 + ofdmframegen_destroy @2057 + ofdmframegen_gensymbol @2058 + ofdmframegen_print @2059 + ofdmframegen_reset @2060 + ofdmframegen_write_S0a @2061 + ofdmframegen_write_S0b @2062 + ofdmframegen_write_S1 @2063 + ofdmframegen_writesymbol @2064 + ofdmframegen_writetail @2065 + ofdmframesync_S0_metrics @2066 + ofdmframesync_create @2067 + ofdmframesync_debug_disable @2068 + ofdmframesync_debug_enable @2069 + ofdmframesync_debug_print @2070 + ofdmframesync_destroy @2071 + ofdmframesync_estimate_eqgain @2072 + ofdmframesync_estimate_eqgain_poly @2073 + ofdmframesync_estimate_gain_S0 @2074 + ofdmframesync_estimate_gain_S1 @2075 + ofdmframesync_execute @2076 + ofdmframesync_execute_S0a @2077 + ofdmframesync_execute_S0b @2078 + ofdmframesync_execute_S1 @2079 + ofdmframesync_execute_rxsymbols @2080 + ofdmframesync_execute_seekplcp @2081 + ofdmframesync_get_cfo @2082 + ofdmframesync_get_rssi @2083 + ofdmframesync_is_frame_open @2084 + ofdmframesync_print @2085 + ofdmframesync_reset @2086 + ofdmframesync_rxsymbol @2087 + ofdmframesync_set_cfo @2088 + optim_sort @2089 + optim_threshold_switch @2090 + ordfilt_rrrf_copy @2091 + ordfilt_rrrf_create @2092 + ordfilt_rrrf_create_medfilt @2093 + ordfilt_rrrf_destroy @2094 + ordfilt_rrrf_execute @2095 + ordfilt_rrrf_execute_block @2096 + ordfilt_rrrf_execute_one @2097 + ordfilt_rrrf_print @2098 + ordfilt_rrrf_push @2099 + ordfilt_rrrf_reset @2100 + ordfilt_rrrf_write @2101 + ordfilt_sort_compf @2102 + packetizer_compute_dec_msg_len @2103 + packetizer_compute_enc_msg_len @2104 + packetizer_copy @2105 + packetizer_create @2106 + packetizer_decode @2107 + packetizer_decode_soft @2108 + packetizer_destroy @2109 + packetizer_encode @2110 + packetizer_get_crc @2111 + packetizer_get_dec_msg_len @2112 + packetizer_get_enc_msg_len @2113 + packetizer_get_fec0 @2114 + packetizer_get_fec1 @2115 + packetizer_print @2116 + packetizer_realloc_buffers @2117 + packetizer_recreate @2118 + poly_expandbinomial @2119 + poly_expandbinomial_pm @2120 + poly_expandroots @2121 + poly_expandroots2 @2122 + poly_findroots @2123 + poly_fit @2124 + poly_fit_lagrange @2125 + poly_fit_lagrange_barycentric @2126 + poly_interp_lagrange @2127 + poly_mul @2128 + poly_val @2129 + poly_val_lagrange_barycentric @2130 + polyc_expandbinomial @2131 + polyc_expandbinomial_pm @2132 + polyc_expandroots @2133 + polyc_expandroots2 @2134 + polyc_findroots @2135 + polyc_fit @2136 + polyc_fit_lagrange @2137 + polyc_fit_lagrange_barycentric @2138 + polyc_interp_lagrange @2139 + polyc_mul @2140 + polyc_val @2141 + polyc_val_lagrange_barycentric @2142 + polycf_expandbinomial @2143 + polycf_expandbinomial_pm @2144 + polycf_expandroots @2145 + polycf_expandroots2 @2146 + polycf_findroots @2147 + polycf_fit @2148 + polycf_fit_lagrange @2149 + polycf_fit_lagrange_barycentric @2150 + polycf_interp_lagrange @2151 + polycf_mul @2152 + polycf_val @2153 + polycf_val_lagrange_barycentric @2154 + polyf_expandbinomial @2155 + polyf_expandbinomial_pm @2156 + polyf_expandroots @2157 + polyf_expandroots2 @2158 + polyf_findroots @2159 + polyf_fit @2160 + polyf_fit_lagrange @2161 + polyf_fit_lagrange_barycentric @2162 + polyf_interp_lagrange @2163 + polyf_mul @2164 + polyf_val @2165 + polyf_val_lagrange_barycentric @2166 + presync_cccf_correlate @2167 + presync_cccf_create @2168 + presync_cccf_destroy @2169 + presync_cccf_execute @2170 + presync_cccf_print @2171 + presync_cccf_push @2172 + presync_cccf_reset @2173 + qdetector_cccf_copy @2174 + qdetector_cccf_create @2175 + qdetector_cccf_create_cpfsk @2176 + qdetector_cccf_create_gmsk @2177 + qdetector_cccf_create_linear @2178 + qdetector_cccf_destroy @2179 + qdetector_cccf_execute @2180 + qdetector_cccf_execute_align @2181 + qdetector_cccf_execute_seek @2182 + qdetector_cccf_get_buf_len @2183 + qdetector_cccf_get_dphi @2184 + qdetector_cccf_get_gamma @2185 + qdetector_cccf_get_phi @2186 + qdetector_cccf_get_rxy @2187 + qdetector_cccf_get_seq_len @2188 + qdetector_cccf_get_sequence @2189 + qdetector_cccf_get_tau @2190 + qdetector_cccf_get_threshold @2191 + qdetector_cccf_print @2192 + qdetector_cccf_reset @2193 + qdetector_cccf_set_range @2194 + qdetector_cccf_set_threshold @2195 + qnsearch_compute_Hessian @2196 + qnsearch_compute_gradient @2197 + qnsearch_create @2198 + qnsearch_destroy @2199 + qnsearch_normalize_gradient @2200 + qnsearch_print @2201 + qnsearch_reset @2202 + qnsearch_run @2203 + qnsearch_step @2204 + qpacketmodem_configure @2205 + qpacketmodem_copy @2206 + qpacketmodem_create @2207 + qpacketmodem_decode @2208 + qpacketmodem_decode_bits @2209 + qpacketmodem_decode_soft @2210 + qpacketmodem_decode_soft_payload @2211 + qpacketmodem_decode_soft_sym @2212 + qpacketmodem_decode_syms @2213 + qpacketmodem_destroy @2214 + qpacketmodem_encode @2215 + qpacketmodem_encode_syms @2216 + qpacketmodem_get_crc @2217 + qpacketmodem_get_demodulator_evm @2218 + qpacketmodem_get_demodulator_phase_error @2219 + qpacketmodem_get_fec0 @2220 + qpacketmodem_get_fec1 @2221 + qpacketmodem_get_frame_len @2222 + qpacketmodem_get_modscheme @2223 + qpacketmodem_get_payload_len @2224 + qpacketmodem_print @2225 + qpacketmodem_reset @2226 + qpilot_frame_len @2227 + qpilot_num_pilots @2228 + qpilotgen_copy @2229 + qpilotgen_create @2230 + qpilotgen_destroy @2231 + qpilotgen_execute @2232 + qpilotgen_get_frame_len @2233 + qpilotgen_print @2234 + qpilotgen_recreate @2235 + qpilotgen_reset @2236 + qpilotsync_copy @2237 + qpilotsync_create @2238 + qpilotsync_destroy @2239 + qpilotsync_execute @2240 + qpilotsync_get_dphi @2241 + qpilotsync_get_evm @2242 + qpilotsync_get_frame_len @2243 + qpilotsync_get_gain @2244 + qpilotsync_get_phi @2245 + qpilotsync_print @2246 + qpilotsync_recreate @2247 + qpilotsync_reset @2248 + qs1dsearch_copy @2249 + qs1dsearch_create @2250 + qs1dsearch_destroy @2251 + qs1dsearch_execute @2252 + qs1dsearch_get_num_steps @2253 + qs1dsearch_get_opt_u @2254 + qs1dsearch_get_opt_v @2255 + qs1dsearch_init @2256 + qs1dsearch_init_bounds @2257 + qs1dsearch_init_direction @2258 + qs1dsearch_print @2259 + qs1dsearch_reset @2260 + qs1dsearch_step @2261 + qsourcecf_copy @2262 + qsourcecf_create @2263 + qsourcecf_destroy @2264 + qsourcecf_disable @2265 + qsourcecf_enable @2266 + qsourcecf_generate @2267 + qsourcecf_generate_into @2268 + qsourcecf_get_frequency @2269 + qsourcecf_get_frequency_index @2270 + qsourcecf_get_gain @2271 + qsourcecf_get_id @2272 + qsourcecf_get_num_samples @2273 + qsourcecf_init_chirp @2274 + qsourcecf_init_fsk @2275 + qsourcecf_init_gmsk @2276 + qsourcecf_init_modem @2277 + qsourcecf_init_noise @2278 + qsourcecf_init_tone @2279 + qsourcecf_init_user @2280 + qsourcecf_print @2281 + qsourcecf_reset @2282 + qsourcecf_set_frequency @2283 + qsourcecf_set_gain @2284 + qsourcecf_set_id @2285 + quantize_adc @2286 + quantize_dac @2287 + quantizercf_create @2288 + quantizercf_destroy @2289 + quantizercf_execute_adc @2290 + quantizercf_execute_dac @2291 + quantizercf_print @2292 + quantizerf_create @2293 + quantizerf_destroy @2294 + quantizerf_execute_adc @2295 + quantizerf_execute_dac @2296 + quantizerf_print @2297 + randexpf @2298 + randexpf_cdf @2299 + randexpf_pdf @2300 + randf @2301 + randf_cdf @2302 + randf_pdf @2303 + randgammaf @2304 + randgammaf_cdf @2305 + randgammaf_delta @2306 + randgammaf_pdf @2307 + randnakmf @2308 + randnakmf_cdf @2309 + randnakmf_pdf @2310 + randnf @2311 + randnf_cdf @2312 + randnf_pdf @2313 + randricekf @2314 + randricekf_cdf @2315 + randricekf_pdf @2316 + randuf @2317 + randuf_cdf @2318 + randuf_pdf @2319 + randweibf @2320 + randweibf_cdf @2321 + randweibf_pdf @2322 + resamp2_cccf_analyzer_execute @2323 + resamp2_cccf_copy @2324 + resamp2_cccf_create @2325 + resamp2_cccf_decim_execute @2326 + resamp2_cccf_destroy @2327 + resamp2_cccf_filter_execute @2328 + resamp2_cccf_get_delay @2329 + resamp2_cccf_get_scale @2330 + resamp2_cccf_interp_execute @2331 + resamp2_cccf_print @2332 + resamp2_cccf_recreate @2333 + resamp2_cccf_reset @2334 + resamp2_cccf_set_scale @2335 + resamp2_cccf_synthesizer_execute @2336 + resamp2_crcf_analyzer_execute @2337 + resamp2_crcf_copy @2338 + resamp2_crcf_create @2339 + resamp2_crcf_decim_execute @2340 + resamp2_crcf_destroy @2341 + resamp2_crcf_filter_execute @2342 + resamp2_crcf_get_delay @2343 + resamp2_crcf_get_scale @2344 + resamp2_crcf_interp_execute @2345 + resamp2_crcf_print @2346 + resamp2_crcf_recreate @2347 + resamp2_crcf_reset @2348 + resamp2_crcf_set_scale @2349 + resamp2_crcf_synthesizer_execute @2350 + resamp2_rrrf_analyzer_execute @2351 + resamp2_rrrf_copy @2352 + resamp2_rrrf_create @2353 + resamp2_rrrf_decim_execute @2354 + resamp2_rrrf_destroy @2355 + resamp2_rrrf_filter_execute @2356 + resamp2_rrrf_get_delay @2357 + resamp2_rrrf_get_scale @2358 + resamp2_rrrf_interp_execute @2359 + resamp2_rrrf_print @2360 + resamp2_rrrf_recreate @2361 + resamp2_rrrf_reset @2362 + resamp2_rrrf_set_scale @2363 + resamp2_rrrf_synthesizer_execute @2364 + resamp_cccf_adjust_rate @2365 + resamp_cccf_adjust_timing_phase @2366 + resamp_cccf_copy @2367 + resamp_cccf_create @2368 + resamp_cccf_create_default @2369 + resamp_cccf_destroy @2370 + resamp_cccf_execute @2371 + resamp_cccf_execute_block @2372 + resamp_cccf_get_delay @2373 + resamp_cccf_get_num_output @2374 + resamp_cccf_get_rate @2375 + resamp_cccf_print @2376 + resamp_cccf_reset @2377 + resamp_cccf_set_rate @2378 + resamp_cccf_set_timing_phase @2379 + resamp_crcf_adjust_rate @2380 + resamp_crcf_adjust_timing_phase @2381 + resamp_crcf_copy @2382 + resamp_crcf_create @2383 + resamp_crcf_create_default @2384 + resamp_crcf_destroy @2385 + resamp_crcf_execute @2386 + resamp_crcf_execute_block @2387 + resamp_crcf_get_delay @2388 + resamp_crcf_get_num_output @2389 + resamp_crcf_get_rate @2390 + resamp_crcf_print @2391 + resamp_crcf_reset @2392 + resamp_crcf_set_rate @2393 + resamp_crcf_set_timing_phase @2394 + resamp_rrrf_adjust_rate @2395 + resamp_rrrf_adjust_timing_phase @2396 + resamp_rrrf_copy @2397 + resamp_rrrf_create @2398 + resamp_rrrf_create_default @2399 + resamp_rrrf_destroy @2400 + resamp_rrrf_execute @2401 + resamp_rrrf_execute_block @2402 + resamp_rrrf_get_delay @2403 + resamp_rrrf_get_num_output @2404 + resamp_rrrf_get_rate @2405 + resamp_rrrf_print @2406 + resamp_rrrf_reset @2407 + resamp_rrrf_set_rate @2408 + resamp_rrrf_set_timing_phase @2409 + rkaiser_approximate_rho @2410 + rresamp_cccf_copy @2411 + rresamp_cccf_create @2412 + rresamp_cccf_create_default @2413 + rresamp_cccf_create_kaiser @2414 + rresamp_cccf_create_prototype @2415 + rresamp_cccf_destroy @2416 + rresamp_cccf_execute @2417 + rresamp_cccf_execute_block @2418 + rresamp_cccf_execute_primitive @2419 + rresamp_cccf_get_P @2420 + rresamp_cccf_get_Q @2421 + rresamp_cccf_get_block_len @2422 + rresamp_cccf_get_decim @2423 + rresamp_cccf_get_delay @2424 + rresamp_cccf_get_interp @2425 + rresamp_cccf_get_rate @2426 + rresamp_cccf_get_scale @2427 + rresamp_cccf_print @2428 + rresamp_cccf_reset @2429 + rresamp_cccf_set_scale @2430 + rresamp_cccf_write @2431 + rresamp_crcf_copy @2432 + rresamp_crcf_create @2433 + rresamp_crcf_create_default @2434 + rresamp_crcf_create_kaiser @2435 + rresamp_crcf_create_prototype @2436 + rresamp_crcf_destroy @2437 + rresamp_crcf_execute @2438 + rresamp_crcf_execute_block @2439 + rresamp_crcf_execute_primitive @2440 + rresamp_crcf_get_P @2441 + rresamp_crcf_get_Q @2442 + rresamp_crcf_get_block_len @2443 + rresamp_crcf_get_decim @2444 + rresamp_crcf_get_delay @2445 + rresamp_crcf_get_interp @2446 + rresamp_crcf_get_rate @2447 + rresamp_crcf_get_scale @2448 + rresamp_crcf_print @2449 + rresamp_crcf_reset @2450 + rresamp_crcf_set_scale @2451 + rresamp_crcf_write @2452 + rresamp_rrrf_copy @2453 + rresamp_rrrf_create @2454 + rresamp_rrrf_create_default @2455 + rresamp_rrrf_create_kaiser @2456 + rresamp_rrrf_create_prototype @2457 + rresamp_rrrf_destroy @2458 + rresamp_rrrf_execute @2459 + rresamp_rrrf_execute_block @2460 + rresamp_rrrf_execute_primitive @2461 + rresamp_rrrf_get_P @2462 + rresamp_rrrf_get_Q @2463 + rresamp_rrrf_get_block_len @2464 + rresamp_rrrf_get_decim @2465 + rresamp_rrrf_get_delay @2466 + rresamp_rrrf_get_interp @2467 + rresamp_rrrf_get_rate @2468 + rresamp_rrrf_get_scale @2469 + rresamp_rrrf_print @2470 + rresamp_rrrf_reset @2471 + rresamp_rrrf_set_scale @2472 + rresamp_rrrf_write @2473 + scramble_data @2474 + secded2216_P @2475 DATA + secded2216_syndrome_w1 @2476 DATA + secded3932_P @2477 DATA + secded3932_syndrome_w1 @2478 DATA + secded7264_P @2479 DATA + secded7264_syndrome_w1 @2480 DATA + sincf @2481 + smatrix_indexsearch @2482 + smatrixb_clear @2483 + smatrixb_create @2484 + smatrixb_create_array @2485 + smatrixb_delete @2486 + smatrixb_destroy @2487 + smatrixb_eye @2488 + smatrixb_get @2489 + smatrixb_insert @2490 + smatrixb_isset @2491 + smatrixb_mul @2492 + smatrixb_mulf @2493 + smatrixb_print @2494 + smatrixb_print_expanded @2495 + smatrixb_reset @2496 + smatrixb_reset_max_mlist @2497 + smatrixb_reset_max_nlist @2498 + smatrixb_set @2499 + smatrixb_size @2500 + smatrixb_vmul @2501 + smatrixb_vmulf @2502 + smatrixf_clear @2503 + smatrixf_create @2504 + smatrixf_create_array @2505 + smatrixf_delete @2506 + smatrixf_destroy @2507 + smatrixf_eye @2508 + smatrixf_get @2509 + smatrixf_insert @2510 + smatrixf_isset @2511 + smatrixf_mul @2512 + smatrixf_print @2513 + smatrixf_print_expanded @2514 + smatrixf_reset @2515 + smatrixf_reset_max_mlist @2516 + smatrixf_reset_max_nlist @2517 + smatrixf_set @2518 + smatrixf_size @2519 + smatrixf_vmul @2520 + smatrixi_clear @2521 + smatrixi_create @2522 + smatrixi_create_array @2523 + smatrixi_delete @2524 + smatrixi_destroy @2525 + smatrixi_eye @2526 + smatrixi_get @2527 + smatrixi_insert @2528 + smatrixi_isset @2529 + smatrixi_mul @2530 + smatrixi_print @2531 + smatrixi_print_expanded @2532 + smatrixi_reset @2533 + smatrixi_reset_max_mlist @2534 + smatrixi_reset_max_nlist @2535 + smatrixi_set @2536 + smatrixi_size @2537 + smatrixi_vmul @2538 + spgramcf_clear @2539 + spgramcf_copy @2540 + spgramcf_create @2541 + spgramcf_create_default @2542 + spgramcf_destroy @2543 + spgramcf_estimate_psd @2544 + spgramcf_export_gnuplot @2545 + spgramcf_get_alpha @2546 + spgramcf_get_delay @2547 + spgramcf_get_nfft @2548 + spgramcf_get_num_samples @2549 + spgramcf_get_num_samples_total @2550 + spgramcf_get_num_transforms @2551 + spgramcf_get_num_transforms_total @2552 + spgramcf_get_psd @2553 + spgramcf_get_psd_mag @2554 + spgramcf_get_window_len @2555 + spgramcf_get_wtype @2556 + spgramcf_print @2557 + spgramcf_push @2558 + spgramcf_reset @2559 + spgramcf_set_alpha @2560 + spgramcf_set_freq @2561 + spgramcf_set_rate @2562 + spgramcf_step @2563 + spgramcf_write @2564 + spgramf_clear @2565 + spgramf_copy @2566 + spgramf_create @2567 + spgramf_create_default @2568 + spgramf_destroy @2569 + spgramf_estimate_psd @2570 + spgramf_export_gnuplot @2571 + spgramf_get_alpha @2572 + spgramf_get_delay @2573 + spgramf_get_nfft @2574 + spgramf_get_num_samples @2575 + spgramf_get_num_samples_total @2576 + spgramf_get_num_transforms @2577 + spgramf_get_num_transforms_total @2578 + spgramf_get_psd @2579 + spgramf_get_psd_mag @2580 + spgramf_get_window_len @2581 + spgramf_get_wtype @2582 + spgramf_print @2583 + spgramf_push @2584 + spgramf_reset @2585 + spgramf_set_alpha @2586 + spgramf_set_freq @2587 + spgramf_set_rate @2588 + spgramf_step @2589 + spgramf_write @2590 + spwaterfallcf_clear @2591 + spwaterfallcf_consolidate_buffer @2592 + spwaterfallcf_copy @2593 + spwaterfallcf_create @2594 + spwaterfallcf_create_default @2595 + spwaterfallcf_destroy @2596 + spwaterfallcf_export @2597 + spwaterfallcf_export_bin @2598 + spwaterfallcf_export_gnu @2599 + spwaterfallcf_get_delay @2600 + spwaterfallcf_get_num_freq @2601 + spwaterfallcf_get_num_samples_total @2602 + spwaterfallcf_get_num_time @2603 + spwaterfallcf_get_psd @2604 + spwaterfallcf_get_window_len @2605 + spwaterfallcf_get_wtype @2606 + spwaterfallcf_print @2607 + spwaterfallcf_push @2608 + spwaterfallcf_reset @2609 + spwaterfallcf_set_commands @2610 + spwaterfallcf_set_dims @2611 + spwaterfallcf_set_freq @2612 + spwaterfallcf_set_rate @2613 + spwaterfallcf_step @2614 + spwaterfallcf_write @2615 + spwaterfallf_clear @2616 + spwaterfallf_consolidate_buffer @2617 + spwaterfallf_copy @2618 + spwaterfallf_create @2619 + spwaterfallf_create_default @2620 + spwaterfallf_destroy @2621 + spwaterfallf_export @2622 + spwaterfallf_export_bin @2623 + spwaterfallf_export_gnu @2624 + spwaterfallf_get_delay @2625 + spwaterfallf_get_num_freq @2626 + spwaterfallf_get_num_samples_total @2627 + spwaterfallf_get_num_time @2628 + spwaterfallf_get_psd @2629 + spwaterfallf_get_window_len @2630 + spwaterfallf_get_wtype @2631 + spwaterfallf_print @2632 + spwaterfallf_push @2633 + spwaterfallf_reset @2634 + spwaterfallf_set_commands @2635 + spwaterfallf_set_dims @2636 + spwaterfallf_set_freq @2637 + spwaterfallf_set_rate @2638 + spwaterfallf_step @2639 + spwaterfallf_write @2640 + sumproduct_phi @2641 + symstreamcf_copy @2642 + symstreamcf_create @2643 + symstreamcf_create_linear @2644 + symstreamcf_destroy @2645 + symstreamcf_fill_buffer @2646 + symstreamcf_get_beta @2647 + symstreamcf_get_delay @2648 + symstreamcf_get_ftype @2649 + symstreamcf_get_gain @2650 + symstreamcf_get_k @2651 + symstreamcf_get_m @2652 + symstreamcf_get_scheme @2653 + symstreamcf_print @2654 + symstreamcf_reset @2655 + symstreamcf_set_gain @2656 + symstreamcf_set_scheme @2657 + symstreamcf_write_samples @2658 + symstreamrcf_copy @2659 + symstreamrcf_create @2660 + symstreamrcf_create_linear @2661 + symstreamrcf_destroy @2662 + symstreamrcf_fill_buffer @2663 + symstreamrcf_get_beta @2664 + symstreamrcf_get_bw @2665 + symstreamrcf_get_delay @2666 + symstreamrcf_get_ftype @2667 + symstreamrcf_get_gain @2668 + symstreamrcf_get_m @2669 + symstreamrcf_get_scheme @2670 + symstreamrcf_print @2671 + symstreamrcf_reset @2672 + symstreamrcf_set_gain @2673 + symstreamrcf_set_scheme @2674 + symstreamrcf_write_samples @2675 + symsync_crcf_advance_internal_loop @2676 + symsync_crcf_copy @2677 + symsync_crcf_create @2678 + symsync_crcf_create_kaiser @2679 + symsync_crcf_create_rnyquist @2680 + symsync_crcf_destroy @2681 + symsync_crcf_execute @2682 + symsync_crcf_get_tau @2683 + symsync_crcf_lock @2684 + symsync_crcf_output_debug_file @2685 + symsync_crcf_print @2686 + symsync_crcf_reset @2687 + symsync_crcf_set_lf_bw @2688 + symsync_crcf_set_output_rate @2689 + symsync_crcf_step @2690 + symsync_crcf_unlock @2691 + symsync_rrrf_advance_internal_loop @2692 + symsync_rrrf_copy @2693 + symsync_rrrf_create @2694 + symsync_rrrf_create_kaiser @2695 + symsync_rrrf_create_rnyquist @2696 + symsync_rrrf_destroy @2697 + symsync_rrrf_execute @2698 + symsync_rrrf_get_tau @2699 + symsync_rrrf_lock @2700 + symsync_rrrf_output_debug_file @2701 + symsync_rrrf_print @2702 + symsync_rrrf_reset @2703 + symsync_rrrf_set_lf_bw @2704 + symsync_rrrf_set_output_rate @2705 + symsync_rrrf_step @2706 + symsync_rrrf_unlock @2707 + symtrack_cccf_adjust_frequency @2708 + symtrack_cccf_adjust_phase @2709 + symtrack_cccf_create @2710 + symtrack_cccf_create_default @2711 + symtrack_cccf_destroy @2712 + symtrack_cccf_execute @2713 + symtrack_cccf_execute_block @2714 + symtrack_cccf_get_bandwidth @2715 + symtrack_cccf_get_beta @2716 + symtrack_cccf_get_ftype @2717 + symtrack_cccf_get_k @2718 + symtrack_cccf_get_m @2719 + symtrack_cccf_get_modscheme @2720 + symtrack_cccf_print @2721 + symtrack_cccf_reset @2722 + symtrack_cccf_set_bandwidth @2723 + symtrack_cccf_set_eq_cm @2724 + symtrack_cccf_set_eq_dd @2725 + symtrack_cccf_set_eq_off @2726 + symtrack_cccf_set_modscheme @2727 + synth_crcf_adjust_frequency @2728 + synth_crcf_adjust_phase @2729 + synth_crcf_compute_synth @2730 + synth_crcf_constrain_frequency @2731 + synth_crcf_constrain_phase @2732 + synth_crcf_create @2733 + synth_crcf_despread @2734 + synth_crcf_despread_triple @2735 + synth_crcf_destroy @2736 + synth_crcf_get_current @2737 + synth_crcf_get_frequency @2738 + synth_crcf_get_half_next @2739 + synth_crcf_get_half_previous @2740 + synth_crcf_get_length @2741 + synth_crcf_get_phase @2742 + synth_crcf_mix_block_down @2743 + synth_crcf_mix_block_up @2744 + synth_crcf_mix_down @2745 + synth_crcf_mix_up @2746 + synth_crcf_pll_reset @2747 + synth_crcf_pll_set_bandwidth @2748 + synth_crcf_pll_step @2749 + synth_crcf_reset @2750 + synth_crcf_set_frequency @2751 + synth_crcf_set_phase @2752 + synth_crcf_spread @2753 + synth_crcf_step @2754 + triangular @2755 + tvmpch_cccf_copy @2756 + tvmpch_cccf_create @2757 + tvmpch_cccf_destroy @2758 + tvmpch_cccf_execute @2759 + tvmpch_cccf_execute_block @2760 + tvmpch_cccf_execute_one @2761 + tvmpch_cccf_print @2762 + tvmpch_cccf_push @2763 + tvmpch_cccf_reset @2764 + unscramble_data @2765 + unscramble_data_soft @2766 + wdelaycf_copy @2767 + wdelaycf_create @2768 + wdelaycf_destroy @2769 + wdelaycf_print @2770 + wdelaycf_push @2771 + wdelaycf_read @2772 + wdelaycf_recreate @2773 + wdelaycf_reset @2774 + wdelayf_copy @2775 + wdelayf_create @2776 + wdelayf_destroy @2777 + wdelayf_print @2778 + wdelayf_push @2779 + wdelayf_read @2780 + wdelayf_recreate @2781 + wdelayf_reset @2782 + windowcf_copy @2783 + windowcf_create @2784 + windowcf_debug_print @2785 + windowcf_destroy @2786 + windowcf_index @2787 + windowcf_print @2788 + windowcf_push @2789 + windowcf_read @2790 + windowcf_recreate @2791 + windowcf_reset @2792 + windowcf_write @2793 + windowf_copy @2794 + windowf_create @2795 + windowf_debug_print @2796 + windowf_destroy @2797 + windowf_index @2798 + windowf_print @2799 + windowf_push @2800 + windowf_read @2801 + windowf_recreate @2802 + windowf_reset @2803 + windowf_write @2804 diff --git a/external/liquid-dsp/msvc/32/libliquid.dll b/external/liquid-dsp/msvc/32/libliquid.dll index 77cd4f0..8ac1536 100644 Binary files a/external/liquid-dsp/msvc/32/libliquid.dll and b/external/liquid-dsp/msvc/32/libliquid.dll differ diff --git a/external/liquid-dsp/msvc/32/libliquid.lib b/external/liquid-dsp/msvc/32/libliquid.lib index 286d633..6c8893b 100644 Binary files a/external/liquid-dsp/msvc/32/libliquid.lib and b/external/liquid-dsp/msvc/32/libliquid.lib differ diff --git a/external/liquid-dsp/msvc/64/libliquid.def b/external/liquid-dsp/msvc/64/libliquid.def index b44b6f0..f79d358 100644 --- a/external/liquid-dsp/msvc/64/libliquid.def +++ b/external/liquid-dsp/msvc/64/libliquid.def @@ -1,2658 +1,2805 @@ EXPORTS - agc_crcf_create @1 - agc_crcf_destroy @2 - agc_crcf_execute @3 - agc_crcf_execute_block @4 - agc_crcf_get_bandwidth @5 - agc_crcf_get_gain @6 - agc_crcf_get_rssi @7 - agc_crcf_get_scale @8 - agc_crcf_get_signal_level @9 - agc_crcf_init @10 - agc_crcf_is_locked @11 - agc_crcf_lock @12 - agc_crcf_print @13 - agc_crcf_reset @14 - agc_crcf_set_bandwidth @15 - agc_crcf_set_gain @16 - agc_crcf_set_rssi @17 - agc_crcf_set_scale @18 - agc_crcf_set_signal_level @19 - agc_crcf_squelch_disable @20 - agc_crcf_squelch_enable @21 - agc_crcf_squelch_get_status @22 - agc_crcf_squelch_get_threshold @23 - agc_crcf_squelch_get_timeout @24 - agc_crcf_squelch_is_enabled @25 - agc_crcf_squelch_set_threshold @26 - agc_crcf_squelch_set_timeout @27 - agc_crcf_squelch_update_mode @28 - agc_crcf_unlock @29 - agc_rrrf_create @30 - agc_rrrf_destroy @31 - agc_rrrf_execute @32 - agc_rrrf_execute_block @33 - agc_rrrf_get_bandwidth @34 - agc_rrrf_get_gain @35 - agc_rrrf_get_rssi @36 - agc_rrrf_get_scale @37 - agc_rrrf_get_signal_level @38 - agc_rrrf_init @39 - agc_rrrf_is_locked @40 - agc_rrrf_lock @41 - agc_rrrf_print @42 - agc_rrrf_reset @43 - agc_rrrf_set_bandwidth @44 - agc_rrrf_set_gain @45 - agc_rrrf_set_rssi @46 - agc_rrrf_set_scale @47 - agc_rrrf_set_signal_level @48 - agc_rrrf_squelch_disable @49 - agc_rrrf_squelch_enable @50 - agc_rrrf_squelch_get_status @51 - agc_rrrf_squelch_get_threshold @52 - agc_rrrf_squelch_get_timeout @53 - agc_rrrf_squelch_is_enabled @54 - agc_rrrf_squelch_set_threshold @55 - agc_rrrf_squelch_set_timeout @56 - agc_rrrf_squelch_update_mode @57 - agc_rrrf_unlock @58 - ampmodem_create @59 - ampmodem_demod_dsb_peak_detect @60 - ampmodem_demod_dsb_pll_carrier @61 - ampmodem_demod_dsb_pll_costas @62 - ampmodem_demod_ssb @63 - ampmodem_demod_ssb_pll_carrier @64 - ampmodem_demodulate @65 - ampmodem_demodulate_block @66 - ampmodem_destroy @67 - ampmodem_get_delay_demod @68 - ampmodem_get_delay_mod @69 - ampmodem_modulate @70 - ampmodem_modulate_block @71 - ampmodem_print @72 - ampmodem_reset @73 - apsk128_map @74 DATA - apsk128_num_levels @75 DATA - apsk128_p @76 DATA - apsk128_phi @77 DATA - apsk128_r @78 DATA - apsk128_r_slicer @79 DATA - apsk16_map @80 DATA - apsk16_num_levels @81 DATA - apsk16_p @82 DATA - apsk16_phi @83 DATA - apsk16_r @84 DATA - apsk16_r_slicer @85 DATA - apsk256_map @86 DATA - apsk256_num_levels @87 DATA - apsk256_p @88 DATA - apsk256_phi @89 DATA - apsk256_r @90 DATA - apsk256_r_slicer @91 DATA - apsk32_map @92 DATA - apsk32_num_levels @93 DATA - apsk32_p @94 DATA - apsk32_phi @95 DATA - apsk32_r @96 DATA - apsk32_r_slicer @97 DATA - apsk4_map @98 DATA - apsk4_num_levels @99 DATA - apsk4_p @100 DATA - apsk4_phi @101 DATA - apsk4_r @102 DATA - apsk4_r_slicer @103 DATA - apsk64_map @104 DATA - apsk64_num_levels @105 DATA - apsk64_p @106 DATA - apsk64_phi @107 DATA - apsk64_r @108 DATA - apsk64_r_slicer @109 DATA - apsk8_map @110 DATA - apsk8_num_levels @111 DATA - apsk8_p @112 DATA - apsk8_phi @113 DATA - apsk8_r @114 DATA - apsk8_r_slicer @115 DATA - asgramcf_create @116 - asgramcf_destroy @117 - asgramcf_execute @118 - asgramcf_print @119 - asgramcf_push @120 - asgramcf_reset @121 - asgramcf_set_display @122 - asgramcf_set_scale @123 - asgramcf_write @124 - asgramf_create @125 - asgramf_destroy @126 - asgramf_execute @127 - asgramf_print @128 - asgramf_push @129 - asgramf_reset @130 - asgramf_set_display @131 - asgramf_set_scale @132 - asgramf_write @133 - autocorr_cccf_create @134 - autocorr_cccf_destroy @135 - autocorr_cccf_execute @136 - autocorr_cccf_execute_block @137 - autocorr_cccf_get_energy @138 - autocorr_cccf_print @139 - autocorr_cccf_push @140 - autocorr_cccf_reset @141 - autocorr_cccf_write @142 - autocorr_rrrf_create @143 - autocorr_rrrf_destroy @144 - autocorr_rrrf_execute @145 - autocorr_rrrf_execute_block @146 - autocorr_rrrf_get_energy @147 - autocorr_rrrf_print @148 - autocorr_rrrf_push @149 - autocorr_rrrf_reset @150 - autocorr_rrrf_write @151 - awgn @152 - bessel_azpkf @153 - bilinear_zpkf @154 - blackmanharris @155 - blackmanharris7 @156 - bpacketgen_assemble_header @157 - bpacketgen_assemble_pnsequence @158 - bpacketgen_compute_packet_len @159 - bpacketgen_create @160 - bpacketgen_destroy @161 - bpacketgen_encode @162 - bpacketgen_get_packet_len @163 - bpacketgen_print @164 - bpacketgen_recreate @165 - bpacketsync_assemble_pnsequence @166 - bpacketsync_create @167 - bpacketsync_decode_header @168 - bpacketsync_decode_payload @169 - bpacketsync_destroy @170 - bpacketsync_execute @171 - bpacketsync_execute_bit @172 - bpacketsync_execute_byte @173 - bpacketsync_execute_rxheader @174 - bpacketsync_execute_rxpayload @175 - bpacketsync_execute_seekpn @176 - bpacketsync_execute_sym @177 - bpacketsync_print @178 - bpacketsync_reconfig @179 - bpacketsync_reset @180 - bpresync_cccf_correlatex @181 - bpresync_cccf_create @182 - bpresync_cccf_destroy @183 - bpresync_cccf_execute @184 - bpresync_cccf_print @185 - bpresync_cccf_push @186 - bpresync_cccf_reset @187 - bsequence_accumulate @188 - bsequence_add @189 - bsequence_circshift @190 - bsequence_correlate @191 - bsequence_create @192 - bsequence_create_ccodes @193 - bsequence_destroy @194 - bsequence_get_length @195 - bsequence_index @196 - bsequence_init @197 - bsequence_init_msequence @198 - bsequence_mul @199 - bsequence_print @200 - bsequence_push @201 - bsequence_reset @202 - bsync_cccf_correlate @203 - bsync_cccf_create @204 - bsync_cccf_create_msequence @205 - bsync_cccf_destroy @206 - bsync_cccf_print @207 - bsync_crcf_correlate @208 - bsync_crcf_create @209 - bsync_crcf_create_msequence @210 - bsync_crcf_destroy @211 - bsync_crcf_print @212 - bsync_rrrf_correlate @213 - bsync_rrrf_create @214 - bsync_rrrf_create_msequence @215 - bsync_rrrf_destroy @216 - bsync_rrrf_print @217 - butter_azpkf @218 - cawgn @219 - cbuffercf_create @220 - cbuffercf_create_max @221 - cbuffercf_debug_print @222 - cbuffercf_destroy @223 - cbuffercf_is_empty @224 - cbuffercf_is_full @225 - cbuffercf_linearize @226 - cbuffercf_max_read @227 - cbuffercf_max_size @228 - cbuffercf_pop @229 - cbuffercf_print @230 - cbuffercf_push @231 - cbuffercf_read @232 - cbuffercf_release @233 - cbuffercf_reset @234 - cbuffercf_size @235 - cbuffercf_space_available @236 - cbuffercf_write @237 - cbufferf_create @238 - cbufferf_create_max @239 - cbufferf_debug_print @240 - cbufferf_destroy @241 - cbufferf_is_empty @242 - cbufferf_is_full @243 - cbufferf_linearize @244 - cbufferf_max_read @245 - cbufferf_max_size @246 - cbufferf_pop @247 - cbufferf_print @248 - cbufferf_push @249 - cbufferf_read @250 - cbufferf_release @251 - cbufferf_reset @252 - cbufferf_size @253 - cbufferf_space_available @254 - cbufferf_write @255 - channel_cccf_add_awgn @256 - channel_cccf_add_carrier_offset @257 - channel_cccf_add_multipath @258 - channel_cccf_add_shadowing @259 - channel_cccf_create @260 - channel_cccf_destroy @261 - channel_cccf_execute @262 - channel_cccf_execute_block @263 - channel_cccf_print @264 - cheby1_azpkf @265 - cheby2_azpkf @266 - checksum_generate_key @267 - chromosome_copy @268 - chromosome_create @269 - chromosome_create_basic @270 - chromosome_create_clone @271 - chromosome_crossover @272 - chromosome_destroy @273 - chromosome_get_num_traits @274 - chromosome_init @275 - chromosome_init_random @276 - chromosome_initf @277 - chromosome_mutate @278 - chromosome_print @279 - chromosome_printf @280 - chromosome_reset @281 - chromosome_value @282 - chromosome_valuef @283 - compress_cf_mulaw @284 - compress_mulaw @285 - count_bit_errors @286 - count_bit_errors_array @287 - cpfskdem_create @288 - cpfskdem_demodulate @289 - cpfskdem_demodulate_coherent @290 - cpfskdem_demodulate_noncoherent @291 - cpfskdem_destroy @292 - cpfskdem_get_delay @293 - cpfskdem_init_coherent @294 - cpfskdem_init_noncoherent @295 - cpfskdem_print @296 - cpfskdem_reset @297 - cpfskmod_create @298 - cpfskmod_destroy @299 - cpfskmod_firdes @300 - cpfskmod_get_delay @301 - cpfskmod_modulate @302 - cpfskmod_print @303 - cpfskmod_reset @304 - crandnf @305 - crc16_generate_key @306 - crc24_generate_key @307 - crc32_generate_key @308 - crc8_generate_key @309 - crc_append_key @310 - crc_check_key @311 - crc_generate_key @312 - crc_get_length @313 - crc_scheme_str @314 DATA - crc_sizeof_key @315 - crc_validate_message @316 - cvsd_create @317 - cvsd_decode @318 - cvsd_decode8 @319 - cvsd_destroy @320 - cvsd_encode @321 - cvsd_encode8 @322 - cvsd_print @323 - dds_cccf_create @324 - dds_cccf_decim_execute @325 - dds_cccf_destroy @326 - dds_cccf_get_delay_decim @327 - dds_cccf_get_delay_interp @328 - dds_cccf_get_num_stages @329 - dds_cccf_interp_execute @330 - dds_cccf_print @331 - dds_cccf_reset @332 - detector_cccf_compute_dotprods @333 - detector_cccf_correlate @334 - detector_cccf_create @335 - detector_cccf_debug_print @336 - detector_cccf_destroy @337 - detector_cccf_estimate_offsets @338 - detector_cccf_print @339 - detector_cccf_reset @340 - detector_cccf_update_sumsq @341 - dotprod_cccf_create @342 - dotprod_cccf_create_opt @343 - dotprod_cccf_create_rev @344 - dotprod_cccf_destroy @345 - dotprod_cccf_execute @346 - dotprod_cccf_execute_mmx @347 - dotprod_cccf_execute_mmx4 @348 - dotprod_cccf_print @349 - dotprod_cccf_recreate @350 - dotprod_cccf_recreate_rev @351 - dotprod_cccf_run @352 - dotprod_cccf_run4 @353 - dotprod_crcf_create @354 - dotprod_crcf_create_opt @355 - dotprod_crcf_create_rev @356 - dotprod_crcf_destroy @357 - dotprod_crcf_execute @358 - dotprod_crcf_execute_mmx @359 - dotprod_crcf_execute_mmx4 @360 - dotprod_crcf_print @361 - dotprod_crcf_recreate @362 - dotprod_crcf_recreate_rev @363 - dotprod_crcf_run @364 - dotprod_crcf_run4 @365 - dotprod_rrrf_create @366 - dotprod_rrrf_create_opt @367 - dotprod_rrrf_create_rev @368 - dotprod_rrrf_destroy @369 - dotprod_rrrf_execute @370 - dotprod_rrrf_execute_mmx @371 - dotprod_rrrf_execute_mmx4 @372 - dotprod_rrrf_print @373 - dotprod_rrrf_recreate @374 - dotprod_rrrf_recreate_rev @375 - dotprod_rrrf_run @376 - dotprod_rrrf_run4 @377 - dsssframegen_assemble @378 - dsssframegen_create @379 - dsssframegen_destroy @380 - dsssframegen_generate_header @381 - dsssframegen_generate_payload @382 - dsssframegen_generate_preamble @383 - dsssframegen_generate_symbol @384 - dsssframegen_generate_tail @385 - dsssframegen_getframelen @386 - dsssframegen_getprops @387 - dsssframegen_is_assembled @388 - dsssframegen_reconfigure @389 - dsssframegen_reconfigure_header @390 - dsssframegen_reset @391 - dsssframegen_set_header_len @392 - dsssframegen_set_header_props @393 - dsssframegen_setprops @394 - dsssframegen_write_samples @395 - dsssframesync_configure_payload @396 - dsssframesync_create @397 - dsssframesync_debug_disable @398 - dsssframesync_debug_enable @399 - dsssframesync_debug_print @400 - dsssframesync_decode_header @401 - dsssframesync_decode_header_soft @402 - dsssframesync_decode_payload @403 - dsssframesync_decode_payload_soft @404 - dsssframesync_destroy @405 - dsssframesync_execute @406 - dsssframesync_execute_rxheader @407 - dsssframesync_execute_rxpayload @408 - dsssframesync_execute_rxpreamble @409 - dsssframesync_execute_seekpn @410 - dsssframesync_get_framedatastats @411 - dsssframesync_is_frame_open @412 - dsssframesync_print @413 - dsssframesync_reset @414 - dsssframesync_reset_framedatastats @415 - dsssframesync_set_header_len @416 - dsssframesync_set_header_props @417 - dsssframesync_step @418 - ellip_acdf @419 - ellip_asnf @420 - ellip_azpkf @421 - ellip_cdf @422 - ellip_snf @423 - ellipdegf @424 - ellipkf @425 - eqlms_cccf_copy_coefficients @426 - eqlms_cccf_create @427 - eqlms_cccf_create_lowpass @428 - eqlms_cccf_create_rnyquist @429 - eqlms_cccf_decim_execute @430 - eqlms_cccf_destroy @431 - eqlms_cccf_execute @432 - eqlms_cccf_execute_block @433 - eqlms_cccf_get_bw @434 - eqlms_cccf_get_coefficients @435 - eqlms_cccf_get_length @436 - eqlms_cccf_get_weights @437 - eqlms_cccf_print @438 - eqlms_cccf_push @439 - eqlms_cccf_push_block @440 - eqlms_cccf_recreate @441 - eqlms_cccf_reset @442 - eqlms_cccf_set_bw @443 - eqlms_cccf_step @444 - eqlms_cccf_step_blind @445 - eqlms_cccf_train @446 - eqlms_cccf_update_sumsq @447 - eqlms_rrrf_copy_coefficients @448 - eqlms_rrrf_create @449 - eqlms_rrrf_create_lowpass @450 - eqlms_rrrf_create_rnyquist @451 - eqlms_rrrf_decim_execute @452 - eqlms_rrrf_destroy @453 - eqlms_rrrf_execute @454 - eqlms_rrrf_execute_block @455 - eqlms_rrrf_get_bw @456 - eqlms_rrrf_get_coefficients @457 - eqlms_rrrf_get_length @458 - eqlms_rrrf_get_weights @459 - eqlms_rrrf_print @460 - eqlms_rrrf_push @461 - eqlms_rrrf_push_block @462 - eqlms_rrrf_recreate @463 - eqlms_rrrf_reset @464 - eqlms_rrrf_set_bw @465 - eqlms_rrrf_step @466 - eqlms_rrrf_step_blind @467 - eqlms_rrrf_train @468 - eqlms_rrrf_update_sumsq @469 - eqrls_cccf_create @470 - eqrls_cccf_destroy @471 - eqrls_cccf_execute @472 - eqrls_cccf_get_bw @473 - eqrls_cccf_get_weights @474 - eqrls_cccf_print @475 - eqrls_cccf_push @476 - eqrls_cccf_recreate @477 - eqrls_cccf_reset @478 - eqrls_cccf_set_bw @479 - eqrls_cccf_step @480 - eqrls_cccf_train @481 - eqrls_rrrf_create @482 - eqrls_rrrf_destroy @483 - eqrls_rrrf_execute @484 - eqrls_rrrf_get_bw @485 - eqrls_rrrf_get_weights @486 - eqrls_rrrf_print @487 - eqrls_rrrf_push @488 - eqrls_rrrf_recreate @489 - eqrls_rrrf_reset @490 - eqrls_rrrf_set_bw @491 - eqrls_rrrf_step @492 - eqrls_rrrf_train @493 - estimate_req_filter_As @494 - estimate_req_filter_df @495 - estimate_req_filter_len @496 - estimate_req_filter_len_Herrmann @497 - estimate_req_filter_len_Kaiser @498 - expand_cf_mulaw @499 - expand_mulaw @500 - fdelay_crcf_adjust_delay @501 - fdelay_crcf_create @502 - fdelay_crcf_create_default @503 - fdelay_crcf_destroy @504 - fdelay_crcf_execute @505 - fdelay_crcf_execute_block @506 - fdelay_crcf_get_delay @507 - fdelay_crcf_get_m @508 - fdelay_crcf_get_nmax @509 - fdelay_crcf_get_npfb @510 - fdelay_crcf_print @511 - fdelay_crcf_push @512 - fdelay_crcf_reset @513 - fdelay_crcf_set_delay @514 - fdelay_crcf_write @515 - fdelay_rrrf_adjust_delay @516 - fdelay_rrrf_create @517 - fdelay_rrrf_create_default @518 - fdelay_rrrf_destroy @519 - fdelay_rrrf_execute @520 - fdelay_rrrf_execute_block @521 - fdelay_rrrf_get_delay @522 - fdelay_rrrf_get_m @523 - fdelay_rrrf_get_nmax @524 - fdelay_rrrf_get_npfb @525 - fdelay_rrrf_print @526 - fdelay_rrrf_push @527 - fdelay_rrrf_reset @528 - fdelay_rrrf_set_delay @529 - fdelay_rrrf_write @530 - fec_block_get_enc_msg_len @531 - fec_conv27_poly @532 DATA - fec_conv27p23_matrix @533 DATA - fec_conv27p34_matrix @534 DATA - fec_conv27p45_matrix @535 DATA - fec_conv27p56_matrix @536 DATA - fec_conv27p67_matrix @537 DATA - fec_conv27p78_matrix @538 DATA - fec_conv29_poly @539 DATA - fec_conv29p23_matrix @540 DATA - fec_conv29p34_matrix @541 DATA - fec_conv29p45_matrix @542 DATA - fec_conv29p56_matrix @543 DATA - fec_conv29p67_matrix @544 DATA - fec_conv29p78_matrix @545 DATA - fec_conv39_poly @546 DATA - fec_conv615_poly @547 DATA - fec_conv_create @548 - fec_conv_destroy @549 - fec_conv_get_enc_msg_len @550 - fec_conv_punctured_create @551 - fec_conv_punctured_decode @552 - fec_conv_punctured_destroy @553 - fec_conv_punctured_encode @554 - fec_create @555 - fec_decode @556 - fec_decode_soft @557 - fec_destroy @558 - fec_encode @559 - fec_get_enc_msg_length @560 - fec_get_rate @561 - fec_golay2412_create @562 - fec_golay2412_decode @563 - fec_golay2412_decode_symbol @564 - fec_golay2412_destroy @565 - fec_golay2412_encode @566 - fec_golay2412_encode_symbol @567 - fec_hamming128_create @568 - fec_hamming128_decode @569 - fec_hamming128_decode_soft @570 - fec_hamming128_decode_symbol @571 - fec_hamming128_destroy @572 - fec_hamming128_encode @573 - fec_hamming128_encode_symbol @574 - fec_hamming1511_decode_symbol @575 - fec_hamming1511_encode_symbol @576 - fec_hamming3126_decode_symbol @577 - fec_hamming3126_encode_symbol @578 - fec_hamming74_create @579 - fec_hamming74_decode @580 - fec_hamming74_decode_soft @581 - fec_hamming74_destroy @582 - fec_hamming74_encode @583 - fec_hamming84_create @584 - fec_hamming84_decode @585 - fec_hamming84_decode_soft @586 - fec_hamming84_destroy @587 - fec_hamming84_encode @588 - fec_pass_create @589 - fec_pass_decode @590 - fec_pass_destroy @591 - fec_pass_encode @592 - fec_pass_print @593 - fec_print @594 - fec_recreate @595 - fec_rep3_create @596 - fec_rep3_decode @597 - fec_rep3_decode_soft @598 - fec_rep3_destroy @599 - fec_rep3_encode @600 - fec_rep3_print @601 - fec_rep5_create @602 - fec_rep5_decode @603 - fec_rep5_decode_soft @604 - fec_rep5_destroy @605 - fec_rep5_encode @606 - fec_rep5_print @607 - fec_rs_create @608 - fec_rs_decode @609 - fec_rs_destroy @610 - fec_rs_encode @611 - fec_rs_get_enc_msg_len @612 - fec_scheme_is_convolutional @613 - fec_scheme_is_hamming @614 - fec_scheme_is_punctured @615 - fec_scheme_is_reedsolomon @616 - fec_scheme_is_repeat @617 - fec_scheme_str @618 DATA - fec_secded2216_compute_parity @619 - fec_secded2216_compute_syndrome @620 - fec_secded2216_create @621 - fec_secded2216_decode @622 - fec_secded2216_decode_symbol @623 - fec_secded2216_destroy @624 - fec_secded2216_encode @625 - fec_secded2216_encode_symbol @626 - fec_secded2216_estimate_ehat @627 - fec_secded3932_compute_parity @628 - fec_secded3932_compute_syndrome @629 - fec_secded3932_create @630 - fec_secded3932_decode @631 - fec_secded3932_decode_symbol @632 - fec_secded3932_destroy @633 - fec_secded3932_encode @634 - fec_secded3932_encode_symbol @635 - fec_secded3932_estimate_ehat @636 - fec_secded7264_compute_parity @637 - fec_secded7264_compute_syndrome @638 - fec_secded7264_create @639 - fec_secded7264_decode @640 - fec_secded7264_decode_symbol @641 - fec_secded7264_destroy @642 - fec_secded7264_encode @643 - fec_secded7264_encode_symbol @644 - fec_secded7264_estimate_ehat @645 - fec_sumproduct @646 - fec_sumproduct_step @647 - fecsoft_hamming128_decode @648 - fecsoft_hamming128_decode_n3 @649 - fecsoft_hamming128_n3 @650 DATA - fecsoft_hamming74_decode @651 - fecsoft_hamming84_decode @652 - fft_create_plan @653 - fft_create_plan_dft @654 - fft_create_plan_mixed_radix @655 - fft_create_plan_r2r_1d @656 - fft_create_plan_rader @657 - fft_create_plan_rader2 @658 - fft_create_plan_radix2 @659 - fft_destroy_plan @660 - fft_destroy_plan_dft @661 - fft_destroy_plan_mixed_radix @662 - fft_destroy_plan_r2r_1d @663 - fft_destroy_plan_rader @664 - fft_destroy_plan_rader2 @665 - fft_destroy_plan_radix2 @666 - fft_estimate_mixed_radix @667 - fft_execute @668 - fft_execute_REDFT00 @669 - fft_execute_REDFT01 @670 - fft_execute_REDFT10 @671 - fft_execute_REDFT11 @672 - fft_execute_RODFT00 @673 - fft_execute_RODFT01 @674 - fft_execute_RODFT10 @675 - fft_execute_RODFT11 @676 - fft_execute_dft @677 - fft_execute_dft_16 @678 - fft_execute_dft_2 @679 - fft_execute_dft_3 @680 - fft_execute_dft_4 @681 - fft_execute_dft_5 @682 - fft_execute_dft_6 @683 - fft_execute_dft_7 @684 - fft_execute_dft_8 @685 - fft_execute_mixed_radix @686 - fft_execute_rader @687 - fft_execute_rader2 @688 - fft_execute_radix2 @689 - fft_is_radix2 @690 - fft_print_plan @691 - fft_print_plan_r2r_1d @692 - fft_print_plan_recursive @693 - fft_r2r_1d_run @694 - fft_reverse_index @695 - fft_run @696 - fft_shift @697 - fftfilt_cccf_create @698 - fftfilt_cccf_destroy @699 - fftfilt_cccf_execute @700 - fftfilt_cccf_get_length @701 - fftfilt_cccf_get_scale @702 - fftfilt_cccf_print @703 - fftfilt_cccf_reset @704 - fftfilt_cccf_set_scale @705 - fftfilt_crcf_create @706 - fftfilt_crcf_destroy @707 - fftfilt_crcf_execute @708 - fftfilt_crcf_get_length @709 - fftfilt_crcf_get_scale @710 - fftfilt_crcf_print @711 - fftfilt_crcf_reset @712 - fftfilt_crcf_set_scale @713 - fftfilt_rrrf_create @714 - fftfilt_rrrf_destroy @715 - fftfilt_rrrf_execute @716 - fftfilt_rrrf_get_length @717 - fftfilt_rrrf_get_scale @718 - fftfilt_rrrf_print @719 - fftfilt_rrrf_reset @720 - fftfilt_rrrf_set_scale @721 - fir_group_delay @722 - firdecim_cccf_create @723 - firdecim_cccf_create_kaiser @724 - firdecim_cccf_create_prototype @725 - firdecim_cccf_destroy @726 - firdecim_cccf_execute @727 - firdecim_cccf_execute_block @728 - firdecim_cccf_get_decim_rate @729 - firdecim_cccf_get_scale @730 - firdecim_cccf_print @731 - firdecim_cccf_reset @732 - firdecim_cccf_set_scale @733 - firdecim_crcf_create @734 - firdecim_crcf_create_kaiser @735 - firdecim_crcf_create_prototype @736 - firdecim_crcf_destroy @737 - firdecim_crcf_execute @738 - firdecim_crcf_execute_block @739 - firdecim_crcf_get_decim_rate @740 - firdecim_crcf_get_scale @741 - firdecim_crcf_print @742 - firdecim_crcf_reset @743 - firdecim_crcf_set_scale @744 - firdecim_rrrf_create @745 - firdecim_rrrf_create_kaiser @746 - firdecim_rrrf_create_prototype @747 - firdecim_rrrf_destroy @748 - firdecim_rrrf_execute @749 - firdecim_rrrf_execute_block @750 - firdecim_rrrf_get_decim_rate @751 - firdecim_rrrf_get_scale @752 - firdecim_rrrf_print @753 - firdecim_rrrf_reset @754 - firdecim_rrrf_set_scale @755 - firdespm_compute_error @756 - firdespm_compute_interp @757 - firdespm_compute_taps @758 - firdespm_create @759 - firdespm_create_callback @760 - firdespm_destroy @761 - firdespm_execute @762 - firdespm_iext_search @763 - firdespm_init_grid @764 - firdespm_init_memory @765 - firdespm_is_search_complete @766 - firdespm_lowpass @767 - firdespm_print @768 - firdespm_run @769 - firfarrow_crcf_create @770 - firfarrow_crcf_destroy @771 - firfarrow_crcf_execute @772 - firfarrow_crcf_execute_block @773 - firfarrow_crcf_freqresponse @774 - firfarrow_crcf_genpoly @775 - firfarrow_crcf_get_coefficients @776 - firfarrow_crcf_get_length @777 - firfarrow_crcf_groupdelay @778 - firfarrow_crcf_print @779 - firfarrow_crcf_push @780 - firfarrow_crcf_reset @781 - firfarrow_crcf_set_delay @782 - firfarrow_rrrf_create @783 - firfarrow_rrrf_destroy @784 - firfarrow_rrrf_execute @785 - firfarrow_rrrf_execute_block @786 - firfarrow_rrrf_freqresponse @787 - firfarrow_rrrf_genpoly @788 - firfarrow_rrrf_get_coefficients @789 - firfarrow_rrrf_get_length @790 - firfarrow_rrrf_groupdelay @791 - firfarrow_rrrf_print @792 - firfarrow_rrrf_push @793 - firfarrow_rrrf_reset @794 - firfarrow_rrrf_set_delay @795 - firfilt_cccf_copy_coefficients @796 - firfilt_cccf_create @797 - firfilt_cccf_create_dc_blocker @798 - firfilt_cccf_create_firdespm @799 - firfilt_cccf_create_kaiser @800 - firfilt_cccf_create_notch @801 - firfilt_cccf_create_rect @802 - firfilt_cccf_create_rnyquist @803 - firfilt_cccf_destroy @804 - firfilt_cccf_execute @805 - firfilt_cccf_execute_block @806 - firfilt_cccf_freqresponse @807 - firfilt_cccf_get_coefficients @808 - firfilt_cccf_get_length @809 - firfilt_cccf_get_scale @810 - firfilt_cccf_groupdelay @811 - firfilt_cccf_print @812 - firfilt_cccf_push @813 - firfilt_cccf_recreate @814 - firfilt_cccf_reset @815 - firfilt_cccf_set_scale @816 - firfilt_cccf_write @817 - firfilt_crcf_copy_coefficients @818 - firfilt_crcf_create @819 - firfilt_crcf_create_dc_blocker @820 - firfilt_crcf_create_firdespm @821 - firfilt_crcf_create_kaiser @822 - firfilt_crcf_create_notch @823 - firfilt_crcf_create_rect @824 - firfilt_crcf_create_rnyquist @825 - firfilt_crcf_destroy @826 - firfilt_crcf_execute @827 - firfilt_crcf_execute_block @828 - firfilt_crcf_freqresponse @829 - firfilt_crcf_get_coefficients @830 - firfilt_crcf_get_length @831 - firfilt_crcf_get_scale @832 - firfilt_crcf_groupdelay @833 - firfilt_crcf_print @834 - firfilt_crcf_push @835 - firfilt_crcf_recreate @836 - firfilt_crcf_reset @837 - firfilt_crcf_set_scale @838 - firfilt_crcf_write @839 - firfilt_rrrf_copy_coefficients @840 - firfilt_rrrf_create @841 - firfilt_rrrf_create_dc_blocker @842 - firfilt_rrrf_create_firdespm @843 - firfilt_rrrf_create_kaiser @844 - firfilt_rrrf_create_notch @845 - firfilt_rrrf_create_rect @846 - firfilt_rrrf_create_rnyquist @847 - firfilt_rrrf_destroy @848 - firfilt_rrrf_execute @849 - firfilt_rrrf_execute_block @850 - firfilt_rrrf_freqresponse @851 - firfilt_rrrf_get_coefficients @852 - firfilt_rrrf_get_length @853 - firfilt_rrrf_get_scale @854 - firfilt_rrrf_groupdelay @855 - firfilt_rrrf_print @856 - firfilt_rrrf_push @857 - firfilt_rrrf_recreate @858 - firfilt_rrrf_reset @859 - firfilt_rrrf_set_scale @860 - firfilt_rrrf_write @861 - firhilbf_c2r_execute @862 - firhilbf_create @863 - firhilbf_decim_execute @864 - firhilbf_decim_execute_block @865 - firhilbf_destroy @866 - firhilbf_interp_execute @867 - firhilbf_interp_execute_block @868 - firhilbf_print @869 - firhilbf_r2c_execute @870 - firhilbf_reset @871 - firinterp_cccf_create @872 - firinterp_cccf_create_kaiser @873 - firinterp_cccf_create_linear @874 - firinterp_cccf_create_prototype @875 - firinterp_cccf_create_window @876 - firinterp_cccf_destroy @877 - firinterp_cccf_execute @878 - firinterp_cccf_execute_block @879 - firinterp_cccf_get_interp_rate @880 - firinterp_cccf_get_scale @881 - firinterp_cccf_get_sub_len @882 - firinterp_cccf_print @883 - firinterp_cccf_reset @884 - firinterp_cccf_set_scale @885 - firinterp_crcf_create @886 - firinterp_crcf_create_kaiser @887 - firinterp_crcf_create_linear @888 - firinterp_crcf_create_prototype @889 - firinterp_crcf_create_window @890 - firinterp_crcf_destroy @891 - firinterp_crcf_execute @892 - firinterp_crcf_execute_block @893 - firinterp_crcf_get_interp_rate @894 - firinterp_crcf_get_scale @895 - firinterp_crcf_get_sub_len @896 - firinterp_crcf_print @897 - firinterp_crcf_reset @898 - firinterp_crcf_set_scale @899 - firinterp_rrrf_create @900 - firinterp_rrrf_create_kaiser @901 - firinterp_rrrf_create_linear @902 - firinterp_rrrf_create_prototype @903 - firinterp_rrrf_create_window @904 - firinterp_rrrf_destroy @905 - firinterp_rrrf_execute @906 - firinterp_rrrf_execute_block @907 - firinterp_rrrf_get_interp_rate @908 - firinterp_rrrf_get_scale @909 - firinterp_rrrf_get_sub_len @910 - firinterp_rrrf_print @911 - firinterp_rrrf_reset @912 - firinterp_rrrf_set_scale @913 - firpfb_cccf_create @914 - firpfb_cccf_create_default @915 - firpfb_cccf_create_drnyquist @916 - firpfb_cccf_create_kaiser @917 - firpfb_cccf_create_rnyquist @918 - firpfb_cccf_destroy @919 - firpfb_cccf_execute @920 - firpfb_cccf_execute_block @921 - firpfb_cccf_get_scale @922 - firpfb_cccf_print @923 - firpfb_cccf_push @924 - firpfb_cccf_recreate @925 - firpfb_cccf_reset @926 - firpfb_cccf_set_scale @927 - firpfb_cccf_write @928 - firpfb_crcf_create @929 - firpfb_crcf_create_default @930 - firpfb_crcf_create_drnyquist @931 - firpfb_crcf_create_kaiser @932 - firpfb_crcf_create_rnyquist @933 - firpfb_crcf_destroy @934 - firpfb_crcf_execute @935 - firpfb_crcf_execute_block @936 - firpfb_crcf_get_scale @937 - firpfb_crcf_print @938 - firpfb_crcf_push @939 - firpfb_crcf_recreate @940 - firpfb_crcf_reset @941 - firpfb_crcf_set_scale @942 - firpfb_crcf_write @943 - firpfb_rrrf_create @944 - firpfb_rrrf_create_default @945 - firpfb_rrrf_create_drnyquist @946 - firpfb_rrrf_create_kaiser @947 - firpfb_rrrf_create_rnyquist @948 - firpfb_rrrf_destroy @949 - firpfb_rrrf_execute @950 - firpfb_rrrf_execute_block @951 - firpfb_rrrf_get_scale @952 - firpfb_rrrf_print @953 - firpfb_rrrf_push @954 - firpfb_rrrf_recreate @955 - firpfb_rrrf_reset @956 - firpfb_rrrf_set_scale @957 - firpfb_rrrf_write @958 - firpfbch2_crcf_create @959 - firpfbch2_crcf_create_kaiser @960 - firpfbch2_crcf_destroy @961 - firpfbch2_crcf_execute @962 - firpfbch2_crcf_execute_analyzer @963 - firpfbch2_crcf_execute_synthesizer @964 - firpfbch2_crcf_get_M @965 - firpfbch2_crcf_get_m @966 - firpfbch2_crcf_get_type @967 - firpfbch2_crcf_print @968 - firpfbch2_crcf_reset @969 - firpfbch_cccf_analyzer_execute @970 - firpfbch_cccf_analyzer_push @971 - firpfbch_cccf_analyzer_run @972 - firpfbch_cccf_create @973 - firpfbch_cccf_create_kaiser @974 - firpfbch_cccf_create_rnyquist @975 - firpfbch_cccf_destroy @976 - firpfbch_cccf_print @977 - firpfbch_cccf_reset @978 - firpfbch_cccf_synthesizer_execute @979 - firpfbch_crcf_analyzer_execute @980 - firpfbch_crcf_analyzer_push @981 - firpfbch_crcf_analyzer_run @982 - firpfbch_crcf_create @983 - firpfbch_crcf_create_kaiser @984 - firpfbch_crcf_create_rnyquist @985 - firpfbch_crcf_destroy @986 - firpfbch_crcf_print @987 - firpfbch_crcf_reset @988 - firpfbch_crcf_synthesizer_execute @989 - firpfbchr_crcf_create @990 - firpfbchr_crcf_create_kaiser @991 - firpfbchr_crcf_destroy @992 - firpfbchr_crcf_execute @993 - firpfbchr_crcf_get_M @994 - firpfbchr_crcf_get_P @995 - firpfbchr_crcf_get_m @996 - firpfbchr_crcf_print @997 - firpfbchr_crcf_push @998 - firpfbchr_crcf_reset @999 - flattop @1000 - flexframegen_assemble @1001 - flexframegen_create @1002 - flexframegen_destroy @1003 - flexframegen_generate_header @1004 - flexframegen_generate_payload @1005 - flexframegen_generate_preamble @1006 - flexframegen_generate_symbol @1007 - flexframegen_generate_tail @1008 - flexframegen_getframelen @1009 - flexframegen_getprops @1010 - flexframegen_is_assembled @1011 - flexframegen_print @1012 - flexframegen_reconfigure @1013 - flexframegen_reset @1014 - flexframegen_set_header_len @1015 - flexframegen_set_header_props @1016 - flexframegen_setprops @1017 - flexframegen_write_samples @1018 - flexframegenprops_init_default @1019 - flexframesync_create @1020 - flexframesync_debug_disable @1021 - flexframesync_debug_enable @1022 - flexframesync_debug_print @1023 - flexframesync_decode_header @1024 - flexframesync_decode_header_soft @1025 - flexframesync_decode_payload_soft @1026 - flexframesync_destroy @1027 - flexframesync_execute @1028 - flexframesync_execute_rxheader @1029 - flexframesync_execute_rxpayload @1030 - flexframesync_execute_rxpreamble @1031 - flexframesync_execute_seekpn @1032 - flexframesync_get_framedatastats @1033 - flexframesync_is_frame_open @1034 - flexframesync_print @1035 - flexframesync_reset @1036 - flexframesync_reset_framedatastats @1037 - flexframesync_set_header_len @1038 - flexframesync_set_header_props @1039 - flexframesync_step @1040 - fpoly_bessel @1041 - fpoly_bessel_roots @1042 - fpoly_bessel_roots_orchard @1043 - fpoly_bessel_roots_orchard_recursion @1044 - framedatastats_print @1045 - framedatastats_reset @1046 - framegen64_create @1047 - framegen64_destroy @1048 - framegen64_execute @1049 - framegen64_print @1050 - framesync64_create @1051 - framesync64_debug_disable @1052 - framesync64_debug_enable @1053 - framesync64_debug_print @1054 - framesync64_destroy @1055 - framesync64_execute @1056 - framesync64_execute_rxpayload @1057 - framesync64_execute_rxpreamble @1058 - framesync64_execute_seekpn @1059 - framesync64_get_framedatastats @1060 - framesync64_get_threshold @1061 - framesync64_print @1062 - framesync64_reset @1063 - framesync64_reset_framedatastats @1064 - framesync64_set_threshold @1065 - framesync64_step @1066 - framesyncstats_default @1067 DATA - framesyncstats_init_default @1068 - framesyncstats_print @1069 - freqdem_create @1070 - freqdem_demodulate @1071 - freqdem_demodulate_block @1072 - freqdem_destroy @1073 - freqdem_print @1074 - freqdem_reset @1075 - freqmod_create @1076 - freqmod_destroy @1077 - freqmod_modulate @1078 - freqmod_modulate_block @1079 - freqmod_print @1080 - freqmod_reset @1081 - fskdem_create @1082 - fskdem_demodulate @1083 - fskdem_destroy @1084 - fskdem_get_frequency_error @1085 - fskdem_get_symbol_energy @1086 - fskdem_print @1087 - fskdem_reset @1088 - fskframegen_assemble @1089 - fskframegen_create @1090 - fskframegen_destroy @1091 - fskframegen_encode_header @1092 - fskframegen_generate_header @1093 - fskframegen_generate_payload @1094 - fskframegen_generate_preamble @1095 - fskframegen_generate_symbol @1096 - fskframegen_generate_zeros @1097 - fskframegen_getframelen @1098 - fskframegen_print @1099 - fskframegen_reset @1100 - fskframegen_write_samples @1101 - fskframesync_create @1102 - fskframesync_debug_disable @1103 - fskframesync_debug_enable @1104 - fskframesync_debug_export @1105 - fskframesync_decode_header @1106 - fskframesync_destroy @1107 - fskframesync_execute @1108 - fskframesync_execute_block @1109 - fskframesync_execute_detectframe @1110 - fskframesync_execute_rxheader @1111 - fskframesync_execute_rxpayload @1112 - fskframesync_print @1113 - fskframesync_reset @1114 - fskmod_create @1115 - fskmod_destroy @1116 - fskmod_modulate @1117 - fskmod_print @1118 - fskmod_reset @1119 - gasearch_create @1120 - gasearch_create_advanced @1121 - gasearch_crossover @1122 - gasearch_destroy @1123 - gasearch_evaluate @1124 - gasearch_evolve @1125 - gasearch_getopt @1126 - gasearch_mutate @1127 - gasearch_print @1128 - gasearch_rank @1129 - gasearch_run @1130 - gasearch_set_mutation_rate @1131 - gasearch_set_population_size @1132 - gmskdem_create @1133 - gmskdem_debug_print @1134 - gmskdem_demodulate @1135 - gmskdem_destroy @1136 - gmskdem_print @1137 - gmskdem_reset @1138 - gmskdem_set_eq_bw @1139 - gmskframegen_assemble @1140 - gmskframegen_assemble_default @1141 - gmskframegen_create @1142 - gmskframegen_create_set @1143 - gmskframegen_destroy @1144 - gmskframegen_encode_header @1145 - gmskframegen_gen_symbol @1146 - gmskframegen_getframelen @1147 - gmskframegen_is_assembled @1148 - gmskframegen_print @1149 - gmskframegen_reset @1150 - gmskframegen_set_header_len @1151 - gmskframegen_write @1152 - gmskframegen_write_header @1153 - gmskframegen_write_payload @1154 - gmskframegen_write_preamble @1155 - gmskframegen_write_samples @1156 - gmskframegen_write_tail @1157 - gmskframegen_write_zeros @1158 - gmskframesync_create @1159 - gmskframesync_create_set @1160 - gmskframesync_debug_disable @1161 - gmskframesync_debug_enable @1162 - gmskframesync_debug_print @1163 - gmskframesync_decode_header @1164 - gmskframesync_destroy @1165 - gmskframesync_execute @1166 - gmskframesync_execute_detectframe @1167 - gmskframesync_execute_rxheader @1168 - gmskframesync_execute_rxpayload @1169 - gmskframesync_execute_rxpreamble @1170 - gmskframesync_execute_sample @1171 - gmskframesync_get_framedatastats @1172 - gmskframesync_is_frame_open @1173 - gmskframesync_print @1174 - gmskframesync_pushpn @1175 - gmskframesync_reset @1176 - gmskframesync_reset_framedatastats @1177 - gmskframesync_set_header_len @1178 - gmskframesync_syncpn @1179 - gmskframesync_update_fi @1180 - gmskframesync_update_symsync @1181 - gmskmod_create @1182 - gmskmod_destroy @1183 - gmskmod_modulate @1184 - gmskmod_print @1185 - gmskmod_reset @1186 - golay2412_Gt @1187 DATA - golay2412_H @1188 DATA - golay2412_P @1189 DATA - golay2412_matrix_mul @1190 - golay2412_parity_search @1191 - gradsearch_create @1192 - gradsearch_destroy @1193 - gradsearch_execute @1194 - gradsearch_gradient @1195 - gradsearch_linesearch @1196 - gradsearch_norm @1197 - gradsearch_print @1198 - gradsearch_step @1199 - gray_decode @1200 - gray_encode @1201 - hamming @1202 - hamming128_enc_gentab @1203 DATA - hamming74_dec_gentab @1204 DATA - hamming74_enc_gentab @1205 DATA - hamming84_dec_gentab @1206 DATA - hamming84_enc_gentab @1207 DATA - hann @1208 - icrandnf @1209 - iir_group_delay @1210 - iirdecim_cccf_create @1211 - iirdecim_cccf_create_default @1212 - iirdecim_cccf_create_prototype @1213 - iirdecim_cccf_destroy @1214 - iirdecim_cccf_execute @1215 - iirdecim_cccf_execute_block @1216 - iirdecim_cccf_groupdelay @1217 - iirdecim_cccf_print @1218 - iirdecim_cccf_reset @1219 - iirdecim_crcf_create @1220 - iirdecim_crcf_create_default @1221 - iirdecim_crcf_create_prototype @1222 - iirdecim_crcf_destroy @1223 - iirdecim_crcf_execute @1224 - iirdecim_crcf_execute_block @1225 - iirdecim_crcf_groupdelay @1226 - iirdecim_crcf_print @1227 - iirdecim_crcf_reset @1228 - iirdecim_rrrf_create @1229 - iirdecim_rrrf_create_default @1230 - iirdecim_rrrf_create_prototype @1231 - iirdecim_rrrf_destroy @1232 - iirdecim_rrrf_execute @1233 - iirdecim_rrrf_execute_block @1234 - iirdecim_rrrf_groupdelay @1235 - iirdecim_rrrf_print @1236 - iirdecim_rrrf_reset @1237 - iirdes_dzpk2sosf @1238 - iirdes_dzpk2tff @1239 - iirdes_dzpk_lp2bp @1240 - iirdes_dzpk_lp2hp @1241 - iirdes_freqprewarp @1242 - iirdes_isstable @1243 - iirdes_pll_active_PI @1244 - iirdes_pll_active_lag @1245 - iirfilt_cccf_create @1246 - iirfilt_cccf_create_dc_blocker @1247 - iirfilt_cccf_create_differentiator @1248 - iirfilt_cccf_create_integrator @1249 - iirfilt_cccf_create_lowpass @1250 - iirfilt_cccf_create_pll @1251 - iirfilt_cccf_create_prototype @1252 - iirfilt_cccf_create_sos @1253 - iirfilt_cccf_destroy @1254 - iirfilt_cccf_execute @1255 - iirfilt_cccf_execute_block @1256 - iirfilt_cccf_execute_norm @1257 - iirfilt_cccf_execute_sos @1258 - iirfilt_cccf_freqresponse @1259 - iirfilt_cccf_get_length @1260 - iirfilt_cccf_groupdelay @1261 - iirfilt_cccf_init @1262 - iirfilt_cccf_print @1263 - iirfilt_cccf_reset @1264 - iirfilt_crcf_create @1265 - iirfilt_crcf_create_dc_blocker @1266 - iirfilt_crcf_create_differentiator @1267 - iirfilt_crcf_create_integrator @1268 - iirfilt_crcf_create_lowpass @1269 - iirfilt_crcf_create_pll @1270 - iirfilt_crcf_create_prototype @1271 - iirfilt_crcf_create_sos @1272 - iirfilt_crcf_destroy @1273 - iirfilt_crcf_execute @1274 - iirfilt_crcf_execute_block @1275 - iirfilt_crcf_execute_norm @1276 - iirfilt_crcf_execute_sos @1277 - iirfilt_crcf_freqresponse @1278 - iirfilt_crcf_get_length @1279 - iirfilt_crcf_groupdelay @1280 - iirfilt_crcf_init @1281 - iirfilt_crcf_print @1282 - iirfilt_crcf_reset @1283 - iirfilt_rrrf_create @1284 - iirfilt_rrrf_create_dc_blocker @1285 - iirfilt_rrrf_create_differentiator @1286 - iirfilt_rrrf_create_integrator @1287 - iirfilt_rrrf_create_lowpass @1288 - iirfilt_rrrf_create_pll @1289 - iirfilt_rrrf_create_prototype @1290 - iirfilt_rrrf_create_sos @1291 - iirfilt_rrrf_destroy @1292 - iirfilt_rrrf_execute @1293 - iirfilt_rrrf_execute_block @1294 - iirfilt_rrrf_execute_norm @1295 - iirfilt_rrrf_execute_sos @1296 - iirfilt_rrrf_freqresponse @1297 - iirfilt_rrrf_get_length @1298 - iirfilt_rrrf_groupdelay @1299 - iirfilt_rrrf_init @1300 - iirfilt_rrrf_print @1301 - iirfilt_rrrf_reset @1302 - iirfiltsos_cccf_create @1303 - iirfiltsos_cccf_destroy @1304 - iirfiltsos_cccf_execute @1305 - iirfiltsos_cccf_execute_df1 @1306 - iirfiltsos_cccf_execute_df2 @1307 - iirfiltsos_cccf_groupdelay @1308 - iirfiltsos_cccf_print @1309 - iirfiltsos_cccf_reset @1310 - iirfiltsos_cccf_set_coefficients @1311 - iirfiltsos_crcf_create @1312 - iirfiltsos_crcf_destroy @1313 - iirfiltsos_crcf_execute @1314 - iirfiltsos_crcf_execute_df1 @1315 - iirfiltsos_crcf_execute_df2 @1316 - iirfiltsos_crcf_groupdelay @1317 - iirfiltsos_crcf_print @1318 - iirfiltsos_crcf_reset @1319 - iirfiltsos_crcf_set_coefficients @1320 - iirfiltsos_rrrf_create @1321 - iirfiltsos_rrrf_destroy @1322 - iirfiltsos_rrrf_execute @1323 - iirfiltsos_rrrf_execute_df1 @1324 - iirfiltsos_rrrf_execute_df2 @1325 - iirfiltsos_rrrf_groupdelay @1326 - iirfiltsos_rrrf_print @1327 - iirfiltsos_rrrf_reset @1328 - iirfiltsos_rrrf_set_coefficients @1329 - iirhilbf_c2r_execute @1330 - iirhilbf_create @1331 - iirhilbf_create_default @1332 - iirhilbf_decim_execute @1333 - iirhilbf_decim_execute_block @1334 - iirhilbf_destroy @1335 - iirhilbf_interp_execute @1336 - iirhilbf_interp_execute_block @1337 - iirhilbf_print @1338 - iirhilbf_r2c_execute @1339 - iirhilbf_reset @1340 - iirinterp_cccf_create @1341 - iirinterp_cccf_create_default @1342 - iirinterp_cccf_create_prototype @1343 - iirinterp_cccf_destroy @1344 - iirinterp_cccf_execute @1345 - iirinterp_cccf_execute_block @1346 - iirinterp_cccf_groupdelay @1347 - iirinterp_cccf_print @1348 - iirinterp_cccf_reset @1349 - iirinterp_crcf_create @1350 - iirinterp_crcf_create_default @1351 - iirinterp_crcf_create_prototype @1352 - iirinterp_crcf_destroy @1353 - iirinterp_crcf_execute @1354 - iirinterp_crcf_execute_block @1355 - iirinterp_crcf_groupdelay @1356 - iirinterp_crcf_print @1357 - iirinterp_crcf_reset @1358 - iirinterp_rrrf_create @1359 - iirinterp_rrrf_create_default @1360 - iirinterp_rrrf_create_prototype @1361 - iirinterp_rrrf_destroy @1362 - iirinterp_rrrf_execute @1363 - iirinterp_rrrf_execute_block @1364 - iirinterp_rrrf_groupdelay @1365 - iirinterp_rrrf_print @1366 - iirinterp_rrrf_reset @1367 - interleaver_create @1368 - interleaver_decode @1369 - interleaver_decode_soft @1370 - interleaver_destroy @1371 - interleaver_encode @1372 - interleaver_encode_soft @1373 - interleaver_permute @1374 - interleaver_permute_mask @1375 - interleaver_permute_mask_soft @1376 - interleaver_permute_soft @1377 - interleaver_print @1378 - interleaver_set_depth @1379 - kaiser @1380 - kaiser_beta_As @1381 - kbd @1382 - kbd_window @1383 - landenf @1384 - liquid_MarcumQ1f @1385 - liquid_MarcumQf @1386 - liquid_Qf @1387 - liquid_apsk128 @1388 DATA - liquid_apsk16 @1389 DATA - liquid_apsk256 @1390 DATA - liquid_apsk32 @1391 DATA - liquid_apsk4 @1392 DATA - liquid_apsk64 @1393 DATA - liquid_apsk8 @1394 DATA - liquid_asechf @1395 - liquid_bdotprod @1396 - liquid_besseli0f @1397 - liquid_besselif @1398 - liquid_besselj0f @1399 - liquid_besseljf @1400 - liquid_blackmanharris @1401 - liquid_blackmanharris7 @1402 - liquid_c_leading_zeros @1403 DATA - liquid_c_ones @1404 DATA - liquid_c_ones_mod2 @1405 DATA - liquid_cacosf @1406 - liquid_cargf_approx @1407 - liquid_casinf @1408 - liquid_catanf @1409 - liquid_cexpf @1410 - liquid_clogf @1411 - liquid_cosf @1412 - liquid_count_leading_zeros @1413 - liquid_count_ones @1414 - liquid_count_ones_mod2 @1415 - liquid_cplxpair @1416 - liquid_cplxpair_cleanup @1417 - liquid_csqrtf @1418 - liquid_error_config_fl @1419 - liquid_error_fl @1420 - liquid_error_info @1421 - liquid_error_str @1422 DATA - liquid_expf @1423 - liquid_factor @1424 - liquid_factorialf @1425 - liquid_fft_estimate_method @1426 - liquid_filter_autocorr @1427 - liquid_filter_crosscorr @1428 - liquid_filter_energy @1429 - liquid_filter_isi @1430 - liquid_firdes_arkaiser @1431 - liquid_firdes_doppler @1432 - liquid_firdes_farcsech @1433 - liquid_firdes_farcsech_freqresponse @1434 - liquid_firdes_fexp @1435 - liquid_firdes_fexp_freqresponse @1436 - liquid_firdes_fnyquist @1437 - liquid_firdes_fsech @1438 - liquid_firdes_fsech_freqresponse @1439 - liquid_firdes_gmskrx @1440 - liquid_firdes_gmsktx @1441 - liquid_firdes_hM3 @1442 - liquid_firdes_kaiser @1443 - liquid_firdes_notch @1444 - liquid_firdes_prototype @1445 - liquid_firdes_rcos @1446 - liquid_firdes_rfarcsech @1447 - liquid_firdes_rfexp @1448 - liquid_firdes_rfsech @1449 - liquid_firdes_rkaiser @1450 - liquid_firdes_rkaiser_bisection @1451 - liquid_firdes_rkaiser_internal_isi @1452 - liquid_firdes_rkaiser_quadratic @1453 - liquid_firdes_rrcos @1454 - liquid_firfilt_type_str @1455 DATA - liquid_flattop @1456 - liquid_gammaf @1457 - liquid_gcd @1458 - liquid_get_scale @1459 - liquid_getopt_str2crc @1460 - liquid_getopt_str2fec @1461 - liquid_getopt_str2firfilt @1462 - liquid_getopt_str2mod @1463 - liquid_getopt_str2window @1464 - liquid_hamming @1465 - liquid_hann @1466 - liquid_iirdes @1467 - liquid_invgauss @1468 - liquid_is_prime @1469 - liquid_kaiser @1470 - liquid_kbd @1471 - liquid_kbd_window @1472 - liquid_lbcircshift @1473 - liquid_lbshift @1474 - liquid_lcircshift @1475 - liquid_levinson @1476 - liquid_libversion @1477 - liquid_libversion_number @1478 - liquid_lnbesselif @1479 - liquid_lngammaf @1480 - liquid_lnlowergammaf @1481 - liquid_lnuppergammaf @1482 - liquid_logf @1483 - liquid_lowergammaf @1484 - liquid_lpc @1485 - liquid_lshift @1486 - liquid_modem_is_apsk @1487 - liquid_modem_is_ask @1488 - liquid_modem_is_dpsk @1489 - liquid_modem_is_psk @1490 - liquid_modem_is_qam @1491 - liquid_modpow @1492 - liquid_msb_index @1493 - liquid_multimodal @1494 - liquid_nchoosek @1495 - liquid_nextpow2 @1496 - liquid_pack_array @1497 - liquid_pack_bytes @1498 - liquid_pack_soft_bits @1499 - liquid_poly_findroots_bairstow @1500 - liquid_poly_findroots_bairstow_persistent @1501 - liquid_poly_findroots_bairstow_recursion @1502 - liquid_poly_findroots_durandkerner @1503 - liquid_poly_sort_roots_compare @1504 - liquid_primitive_root @1505 - liquid_primitive_root_prime @1506 - liquid_print_bitstring @1507 - liquid_print_crc_schemes @1508 - liquid_print_fec_schemes @1509 - liquid_print_modulation_schemes @1510 - liquid_print_windows @1511 - liquid_rbcircshift @1512 - liquid_rbshift @1513 - liquid_rcircshift @1514 - liquid_rcostaper_window @1515 - liquid_rcostaper_windowf @1516 - liquid_repack_bytes @1517 - liquid_reverse_byte @1518 - liquid_reverse_byte_gentab @1519 DATA - liquid_reverse_uint16 @1520 - liquid_reverse_uint24 @1521 - liquid_reverse_uint32 @1522 - liquid_rosenbrock @1523 - liquid_rshift @1524 - liquid_sincosf @1525 - liquid_sinf @1526 - liquid_spiral @1527 - liquid_sumsqcf @1528 - liquid_sumsqf @1529 - liquid_tanf @1530 - liquid_totient @1531 - liquid_triangular @1532 - liquid_unique_factor @1533 - liquid_unpack_array @1534 - liquid_unpack_bytes @1535 - liquid_unpack_soft_bits @1536 - liquid_unwrap_phase @1537 - liquid_unwrap_phase2 @1538 - liquid_uppergammaf @1539 - liquid_vectorcf_abs @1540 - liquid_vectorcf_add @1541 - liquid_vectorcf_addscalar @1542 - liquid_vectorcf_carg @1543 - liquid_vectorcf_cexpj @1544 - liquid_vectorcf_mul @1545 - liquid_vectorcf_mulscalar @1546 - liquid_vectorcf_norm @1547 - liquid_vectorcf_normalize @1548 - liquid_vectorf_abs @1549 - liquid_vectorf_add @1550 - liquid_vectorf_addscalar @1551 - liquid_vectorf_carg @1552 - liquid_vectorf_cexpj @1553 - liquid_vectorf_mul @1554 - liquid_vectorf_mulscalar @1555 - liquid_vectorf_norm @1556 - liquid_vectorf_normalize @1557 - liquid_version @1558 DATA - liquid_window_str @1559 DATA - liquid_windowf @1560 - matrix_add @1561 - matrix_aug @1562 - matrix_cgsolve @1563 - matrix_chol @1564 - matrix_det @1565 - matrix_det2x2 @1566 - matrix_div @1567 - matrix_eye @1568 - matrix_gjelim @1569 - matrix_gramschmidt @1570 - matrix_hermitian @1571 - matrix_hermitian_mul @1572 - matrix_inv @1573 - matrix_linsolve @1574 - matrix_ludecomp_crout @1575 - matrix_ludecomp_doolittle @1576 - matrix_mul @1577 - matrix_mul_hermitian @1578 - matrix_mul_transpose @1579 - matrix_ones @1580 - matrix_pdiv @1581 - matrix_pivot @1582 - matrix_pmul @1583 - matrix_print @1584 - matrix_proj @1585 - matrix_qrdecomp_gramschmidt @1586 - matrix_sub @1587 - matrix_swaprows @1588 - matrix_trans @1589 - matrix_transpose_mul @1590 - matrix_zeros @1591 - matrixc_add @1592 - matrixc_aug @1593 - matrixc_cgsolve @1594 - matrixc_chol @1595 - matrixc_det @1596 - matrixc_det2x2 @1597 - matrixc_div @1598 - matrixc_eye @1599 - matrixc_gjelim @1600 - matrixc_gramschmidt @1601 - matrixc_hermitian @1602 - matrixc_hermitian_mul @1603 - matrixc_inv @1604 - matrixc_linsolve @1605 - matrixc_ludecomp_crout @1606 - matrixc_ludecomp_doolittle @1607 - matrixc_mul @1608 - matrixc_mul_hermitian @1609 - matrixc_mul_transpose @1610 - matrixc_ones @1611 - matrixc_pdiv @1612 - matrixc_pivot @1613 - matrixc_pmul @1614 - matrixc_print @1615 - matrixc_proj @1616 - matrixc_qrdecomp_gramschmidt @1617 - matrixc_sub @1618 - matrixc_swaprows @1619 - matrixc_trans @1620 - matrixc_transpose_mul @1621 - matrixc_zeros @1622 - matrixcf_add @1623 - matrixcf_aug @1624 - matrixcf_cgsolve @1625 - matrixcf_chol @1626 - matrixcf_det @1627 - matrixcf_det2x2 @1628 - matrixcf_div @1629 - matrixcf_eye @1630 - matrixcf_gjelim @1631 - matrixcf_gramschmidt @1632 - matrixcf_hermitian @1633 - matrixcf_hermitian_mul @1634 - matrixcf_inv @1635 - matrixcf_linsolve @1636 - matrixcf_ludecomp_crout @1637 - matrixcf_ludecomp_doolittle @1638 - matrixcf_mul @1639 - matrixcf_mul_hermitian @1640 - matrixcf_mul_transpose @1641 - matrixcf_ones @1642 - matrixcf_pdiv @1643 - matrixcf_pivot @1644 - matrixcf_pmul @1645 - matrixcf_print @1646 - matrixcf_proj @1647 - matrixcf_qrdecomp_gramschmidt @1648 - matrixcf_sub @1649 - matrixcf_swaprows @1650 - matrixcf_trans @1651 - matrixcf_transpose_mul @1652 - matrixcf_zeros @1653 - matrixf_add @1654 - matrixf_aug @1655 - matrixf_cgsolve @1656 - matrixf_chol @1657 - matrixf_det @1658 - matrixf_det2x2 @1659 - matrixf_div @1660 - matrixf_eye @1661 - matrixf_gjelim @1662 - matrixf_gramschmidt @1663 - matrixf_hermitian @1664 - matrixf_hermitian_mul @1665 - matrixf_inv @1666 - matrixf_linsolve @1667 - matrixf_ludecomp_crout @1668 - matrixf_ludecomp_doolittle @1669 - matrixf_mul @1670 - matrixf_mul_hermitian @1671 - matrixf_mul_transpose @1672 - matrixf_ones @1673 - matrixf_pdiv @1674 - matrixf_pivot @1675 - matrixf_pmul @1676 - matrixf_print @1677 - matrixf_proj @1678 - matrixf_qrdecomp_gramschmidt @1679 - matrixf_sub @1680 - matrixf_swaprows @1681 - matrixf_trans @1682 - matrixf_transpose_mul @1683 - matrixf_zeros @1684 - modem_arb128opt @1685 DATA - modem_arb16opt @1686 DATA - modem_arb256opt @1687 DATA - modem_arb32opt @1688 DATA - modem_arb64opt @1689 DATA - modem_arb_V29 @1690 DATA - modem_arb_sqam128 @1691 DATA - modem_arb_sqam32 @1692 DATA - modem_arb_vt64 @1693 DATA - modem_create @1694 - modem_create_arbitrary @1695 - modem_demodulate @1696 - modem_demodulate_soft @1697 - modem_destroy @1698 - modem_gen_rand_sym @1699 - modem_get_bps @1700 - modem_get_demodulator_evm @1701 - modem_get_demodulator_phase_error @1702 - modem_get_demodulator_sample @1703 - modem_get_scheme @1704 - modem_modulate @1705 - modem_print @1706 - modem_recreate @1707 - modem_reset @1708 - modemcf_arb_balance_iq @1709 - modemcf_arb_init @1710 - modemcf_arb_init_file @1711 - modemcf_arb_scale @1712 - modemcf_create @1713 - modemcf_create_V29 @1714 - modemcf_create_apsk @1715 - modemcf_create_arb @1716 - modemcf_create_arb128opt @1717 - modemcf_create_arb16opt @1718 - modemcf_create_arb256opt @1719 - modemcf_create_arb32opt @1720 - modemcf_create_arb64opt @1721 - modemcf_create_arb64vt @1722 - modemcf_create_arbitrary @1723 - modemcf_create_ask @1724 - modemcf_create_bpsk @1725 - modemcf_create_dpsk @1726 - modemcf_create_ook @1727 - modemcf_create_pi4dqpsk @1728 - modemcf_create_psk @1729 - modemcf_create_qam @1730 - modemcf_create_qpsk @1731 - modemcf_create_sqam128 @1732 - modemcf_create_sqam32 @1733 - modemcf_demodsoft_gentab @1734 - modemcf_demodulate @1735 - modemcf_demodulate_apsk @1736 - modemcf_demodulate_arb @1737 - modemcf_demodulate_ask @1738 - modemcf_demodulate_bpsk @1739 - modemcf_demodulate_dpsk @1740 - modemcf_demodulate_linear_array @1741 - modemcf_demodulate_linear_array_ref @1742 - modemcf_demodulate_ook @1743 - modemcf_demodulate_pi4dqpsk @1744 - modemcf_demodulate_psk @1745 - modemcf_demodulate_qam @1746 - modemcf_demodulate_qpsk @1747 - modemcf_demodulate_soft @1748 - modemcf_demodulate_soft_arb @1749 - modemcf_demodulate_soft_bpsk @1750 - modemcf_demodulate_soft_pi4dqpsk @1751 - modemcf_demodulate_soft_qpsk @1752 - modemcf_demodulate_soft_table @1753 - modemcf_demodulate_sqam128 @1754 - modemcf_demodulate_sqam32 @1755 - modemcf_destroy @1756 - modemcf_gen_rand_sym @1757 - modemcf_get_bps @1758 - modemcf_get_demodulator_evm @1759 - modemcf_get_demodulator_phase_error @1760 - modemcf_get_demodulator_sample @1761 - modemcf_get_scheme @1762 - modemcf_init @1763 - modemcf_init_map @1764 - modemcf_modulate @1765 - modemcf_modulate_apsk @1766 - modemcf_modulate_arb @1767 - modemcf_modulate_ask @1768 - modemcf_modulate_bpsk @1769 - modemcf_modulate_dpsk @1770 - modemcf_modulate_map @1771 - modemcf_modulate_ook @1772 - modemcf_modulate_pi4dqpsk @1773 - modemcf_modulate_psk @1774 - modemcf_modulate_qam @1775 - modemcf_modulate_qpsk @1776 - modemcf_modulate_sqam128 @1777 - modemcf_modulate_sqam32 @1778 - modemcf_print @1779 - modemcf_recreate @1780 - modemcf_reset @1781 - modulation_types @1782 DATA - msequence_advance @1783 - msequence_create @1784 - msequence_create_default @1785 - msequence_create_genpoly @1786 - msequence_default @1787 DATA - msequence_destroy @1788 - msequence_generate_symbol @1789 - msequence_get_length @1790 - msequence_get_state @1791 - msequence_print @1792 - msequence_reset @1793 - msequence_set_state @1794 - msourcecf_add_chirp @1795 - msourcecf_add_fsk @1796 - msourcecf_add_gmsk @1797 - msourcecf_add_modem @1798 - msourcecf_add_noise @1799 - msourcecf_add_source @1800 - msourcecf_add_tone @1801 - msourcecf_add_user @1802 - msourcecf_create @1803 - msourcecf_create_default @1804 - msourcecf_destroy @1805 - msourcecf_disable @1806 - msourcecf_enable @1807 - msourcecf_find @1808 - msourcecf_generate @1809 - msourcecf_get_frequency @1810 - msourcecf_get_gain @1811 - msourcecf_get_num_samples @1812 - msourcecf_get_source @1813 - msourcecf_print @1814 - msourcecf_remove @1815 - msourcecf_reset @1816 - msourcecf_set_frequency @1817 - msourcecf_set_gain @1818 - msourcecf_write_samples @1819 - msresamp2_cccf_create @1820 - msresamp2_cccf_decim_execute @1821 - msresamp2_cccf_destroy @1822 - msresamp2_cccf_execute @1823 - msresamp2_cccf_get_delay @1824 - msresamp2_cccf_get_num_stages @1825 - msresamp2_cccf_get_rate @1826 - msresamp2_cccf_get_type @1827 - msresamp2_cccf_interp_execute @1828 - msresamp2_cccf_print @1829 - msresamp2_cccf_reset @1830 - msresamp2_crcf_create @1831 - msresamp2_crcf_decim_execute @1832 - msresamp2_crcf_destroy @1833 - msresamp2_crcf_execute @1834 - msresamp2_crcf_get_delay @1835 - msresamp2_crcf_get_num_stages @1836 - msresamp2_crcf_get_rate @1837 - msresamp2_crcf_get_type @1838 - msresamp2_crcf_interp_execute @1839 - msresamp2_crcf_print @1840 - msresamp2_crcf_reset @1841 - msresamp2_rrrf_create @1842 - msresamp2_rrrf_decim_execute @1843 - msresamp2_rrrf_destroy @1844 - msresamp2_rrrf_execute @1845 - msresamp2_rrrf_get_delay @1846 - msresamp2_rrrf_get_num_stages @1847 - msresamp2_rrrf_get_rate @1848 - msresamp2_rrrf_get_type @1849 - msresamp2_rrrf_interp_execute @1850 - msresamp2_rrrf_print @1851 - msresamp2_rrrf_reset @1852 - msresamp_cccf_create @1853 - msresamp_cccf_decim_execute @1854 - msresamp_cccf_destroy @1855 - msresamp_cccf_execute @1856 - msresamp_cccf_get_delay @1857 - msresamp_cccf_get_rate @1858 - msresamp_cccf_interp_execute @1859 - msresamp_cccf_print @1860 - msresamp_cccf_reset @1861 - msresamp_crcf_create @1862 - msresamp_crcf_decim_execute @1863 - msresamp_crcf_destroy @1864 - msresamp_crcf_execute @1865 - msresamp_crcf_get_delay @1866 - msresamp_crcf_get_rate @1867 - msresamp_crcf_interp_execute @1868 - msresamp_crcf_print @1869 - msresamp_crcf_reset @1870 - msresamp_rrrf_create @1871 - msresamp_rrrf_decim_execute @1872 - msresamp_rrrf_destroy @1873 - msresamp_rrrf_execute @1874 - msresamp_rrrf_get_delay @1875 - msresamp_rrrf_get_rate @1876 - msresamp_rrrf_interp_execute @1877 - msresamp_rrrf_print @1878 - msresamp_rrrf_reset @1879 - nco_crcf_adjust_frequency @1880 - nco_crcf_adjust_phase @1881 - nco_crcf_cexpf @1882 - nco_crcf_constrain @1883 - nco_crcf_cos @1884 - nco_crcf_create @1885 - nco_crcf_destroy @1886 - nco_crcf_get_frequency @1887 - nco_crcf_get_phase @1888 - nco_crcf_index @1889 - nco_crcf_mix_block_down @1890 - nco_crcf_mix_block_up @1891 - nco_crcf_mix_down @1892 - nco_crcf_mix_up @1893 - nco_crcf_pll_reset @1894 - nco_crcf_pll_set_bandwidth @1895 - nco_crcf_pll_step @1896 - nco_crcf_print @1897 - nco_crcf_reset @1898 - nco_crcf_set_frequency @1899 - nco_crcf_set_phase @1900 - nco_crcf_sin @1901 - nco_crcf_sincos @1902 - nco_crcf_step @1903 - ofdmflexframegen_assemble @1904 - ofdmflexframegen_create @1905 - ofdmflexframegen_destroy @1906 - ofdmflexframegen_encode_header @1907 - ofdmflexframegen_gen_S0a @1908 - ofdmflexframegen_gen_S0b @1909 - ofdmflexframegen_gen_S1 @1910 - ofdmflexframegen_gen_header @1911 - ofdmflexframegen_gen_payload @1912 - ofdmflexframegen_gen_symbol @1913 - ofdmflexframegen_gen_tail @1914 - ofdmflexframegen_gen_zeros @1915 - ofdmflexframegen_getframelen @1916 - ofdmflexframegen_getprops @1917 - ofdmflexframegen_is_assembled @1918 - ofdmflexframegen_modulate_header @1919 - ofdmflexframegen_print @1920 - ofdmflexframegen_reconfigure @1921 - ofdmflexframegen_reset @1922 - ofdmflexframegen_set_header_len @1923 - ofdmflexframegen_set_header_props @1924 - ofdmflexframegen_setprops @1925 - ofdmflexframegen_write @1926 - ofdmflexframegenprops_init_default @1927 - ofdmflexframesync_create @1928 - ofdmflexframesync_debug_disable @1929 - ofdmflexframesync_debug_enable @1930 - ofdmflexframesync_debug_print @1931 - ofdmflexframesync_decode_header @1932 - ofdmflexframesync_decode_header_soft @1933 - ofdmflexframesync_decode_payload_soft @1934 - ofdmflexframesync_destroy @1935 - ofdmflexframesync_execute @1936 - ofdmflexframesync_get_cfo @1937 - ofdmflexframesync_get_framedatastats @1938 - ofdmflexframesync_get_rssi @1939 - ofdmflexframesync_internal_callback @1940 - ofdmflexframesync_is_frame_open @1941 - ofdmflexframesync_print @1942 - ofdmflexframesync_reset @1943 - ofdmflexframesync_reset_framedatastats @1944 - ofdmflexframesync_rxheader @1945 - ofdmflexframesync_rxpayload @1946 - ofdmflexframesync_set_cfo @1947 - ofdmflexframesync_set_header_len @1948 - ofdmflexframesync_set_header_props @1949 - ofdmframe_init_S0 @1950 - ofdmframe_init_S1 @1951 - ofdmframe_init_default_sctype @1952 - ofdmframe_init_sctype_range @1953 - ofdmframe_print_sctype @1954 - ofdmframe_validate_sctype @1955 - ofdmframegen_create @1956 - ofdmframegen_destroy @1957 - ofdmframegen_gensymbol @1958 - ofdmframegen_print @1959 - ofdmframegen_reset @1960 - ofdmframegen_write_S0a @1961 - ofdmframegen_write_S0b @1962 - ofdmframegen_write_S1 @1963 - ofdmframegen_writesymbol @1964 - ofdmframegen_writetail @1965 - ofdmframesync_S0_metrics @1966 - ofdmframesync_create @1967 - ofdmframesync_debug_disable @1968 - ofdmframesync_debug_enable @1969 - ofdmframesync_debug_print @1970 - ofdmframesync_destroy @1971 - ofdmframesync_estimate_eqgain @1972 - ofdmframesync_estimate_eqgain_poly @1973 - ofdmframesync_estimate_gain_S0 @1974 - ofdmframesync_estimate_gain_S1 @1975 - ofdmframesync_execute @1976 - ofdmframesync_execute_S0a @1977 - ofdmframesync_execute_S0b @1978 - ofdmframesync_execute_S1 @1979 - ofdmframesync_execute_rxsymbols @1980 - ofdmframesync_execute_seekplcp @1981 - ofdmframesync_get_cfo @1982 - ofdmframesync_get_rssi @1983 - ofdmframesync_is_frame_open @1984 - ofdmframesync_print @1985 - ofdmframesync_reset @1986 - ofdmframesync_rxsymbol @1987 - ofdmframesync_set_cfo @1988 - optim_sort @1989 - optim_threshold_switch @1990 - ordfilt_rrrf_create @1991 - ordfilt_rrrf_create_medfilt @1992 - ordfilt_rrrf_destroy @1993 - ordfilt_rrrf_execute @1994 - ordfilt_rrrf_execute_block @1995 - ordfilt_rrrf_print @1996 - ordfilt_rrrf_push @1997 - ordfilt_rrrf_reset @1998 - ordfilt_rrrf_write @1999 - ordfilt_sort_compf @2000 - packetizer_compute_dec_msg_len @2001 - packetizer_compute_enc_msg_len @2002 - packetizer_create @2003 - packetizer_decode @2004 - packetizer_decode_soft @2005 - packetizer_destroy @2006 - packetizer_encode @2007 - packetizer_get_crc @2008 - packetizer_get_dec_msg_len @2009 - packetizer_get_enc_msg_len @2010 - packetizer_get_fec0 @2011 - packetizer_get_fec1 @2012 - packetizer_print @2013 - packetizer_realloc_buffers @2014 - packetizer_recreate @2015 - packetizer_set_scheme @2016 - poly_expandbinomial @2017 - poly_expandbinomial_pm @2018 - poly_expandroots @2019 - poly_expandroots2 @2020 - poly_findroots @2021 - poly_fit @2022 - poly_fit_lagrange @2023 - poly_fit_lagrange_barycentric @2024 - poly_interp_lagrange @2025 - poly_mul @2026 - poly_val @2027 - poly_val_lagrange_barycentric @2028 - polyc_expandbinomial @2029 - polyc_expandbinomial_pm @2030 - polyc_expandroots @2031 - polyc_expandroots2 @2032 - polyc_findroots @2033 - polyc_fit @2034 - polyc_fit_lagrange @2035 - polyc_fit_lagrange_barycentric @2036 - polyc_interp_lagrange @2037 - polyc_mul @2038 - polyc_val @2039 - polyc_val_lagrange_barycentric @2040 - polycf_expandbinomial @2041 - polycf_expandbinomial_pm @2042 - polycf_expandroots @2043 - polycf_expandroots2 @2044 - polycf_findroots @2045 - polycf_fit @2046 - polycf_fit_lagrange @2047 - polycf_fit_lagrange_barycentric @2048 - polycf_interp_lagrange @2049 - polycf_mul @2050 - polycf_val @2051 - polycf_val_lagrange_barycentric @2052 - polyf_expandbinomial @2053 - polyf_expandbinomial_pm @2054 - polyf_expandroots @2055 - polyf_expandroots2 @2056 - polyf_findroots @2057 - polyf_fit @2058 - polyf_fit_lagrange @2059 - polyf_fit_lagrange_barycentric @2060 - polyf_interp_lagrange @2061 - polyf_mul @2062 - polyf_val @2063 - polyf_val_lagrange_barycentric @2064 - presync_cccf_correlate @2065 - presync_cccf_create @2066 - presync_cccf_destroy @2067 - presync_cccf_execute @2068 - presync_cccf_print @2069 - presync_cccf_push @2070 - presync_cccf_reset @2071 - qdetector_cccf_create @2072 - qdetector_cccf_create_cpfsk @2073 - qdetector_cccf_create_gmsk @2074 - qdetector_cccf_create_linear @2075 - qdetector_cccf_destroy @2076 - qdetector_cccf_execute @2077 - qdetector_cccf_execute_align @2078 - qdetector_cccf_execute_seek @2079 - qdetector_cccf_get_buf_len @2080 - qdetector_cccf_get_dphi @2081 - qdetector_cccf_get_gamma @2082 - qdetector_cccf_get_phi @2083 - qdetector_cccf_get_rxy @2084 - qdetector_cccf_get_seq_len @2085 - qdetector_cccf_get_sequence @2086 - qdetector_cccf_get_tau @2087 - qdetector_cccf_get_threshold @2088 - qdetector_cccf_print @2089 - qdetector_cccf_reset @2090 - qdetector_cccf_set_range @2091 - qdetector_cccf_set_threshold @2092 - qnsearch_compute_Hessian @2093 - qnsearch_compute_gradient @2094 - qnsearch_create @2095 - qnsearch_destroy @2096 - qnsearch_normalize_gradient @2097 - qnsearch_print @2098 - qnsearch_reset @2099 - qnsearch_run @2100 - qnsearch_step @2101 - qpacketmodem_configure @2102 - qpacketmodem_create @2103 - qpacketmodem_decode @2104 - qpacketmodem_decode_bits @2105 - qpacketmodem_decode_soft @2106 - qpacketmodem_decode_soft_payload @2107 - qpacketmodem_decode_soft_sym @2108 - qpacketmodem_decode_syms @2109 - qpacketmodem_destroy @2110 - qpacketmodem_encode @2111 - qpacketmodem_encode_syms @2112 - qpacketmodem_get_crc @2113 - qpacketmodem_get_demodulator_evm @2114 - qpacketmodem_get_demodulator_phase_error @2115 - qpacketmodem_get_fec0 @2116 - qpacketmodem_get_fec1 @2117 - qpacketmodem_get_frame_len @2118 - qpacketmodem_get_modscheme @2119 - qpacketmodem_get_payload_len @2120 - qpacketmodem_print @2121 - qpacketmodem_reset @2122 - qpilot_frame_len @2123 - qpilot_num_pilots @2124 - qpilotgen_create @2125 - qpilotgen_destroy @2126 - qpilotgen_execute @2127 - qpilotgen_get_frame_len @2128 - qpilotgen_print @2129 - qpilotgen_recreate @2130 - qpilotgen_reset @2131 - qpilotsync_create @2132 - qpilotsync_destroy @2133 - qpilotsync_execute @2134 - qpilotsync_get_dphi @2135 - qpilotsync_get_evm @2136 - qpilotsync_get_frame_len @2137 - qpilotsync_get_gain @2138 - qpilotsync_get_phi @2139 - qpilotsync_print @2140 - qpilotsync_recreate @2141 - qpilotsync_reset @2142 - qsourcecf_create @2143 - qsourcecf_destroy @2144 - qsourcecf_disable @2145 - qsourcecf_enable @2146 - qsourcecf_generate @2147 - qsourcecf_generate_into @2148 - qsourcecf_get_frequency @2149 - qsourcecf_get_gain @2150 - qsourcecf_get_id @2151 - qsourcecf_get_num_samples @2152 - qsourcecf_init_chirp @2153 - qsourcecf_init_fsk @2154 - qsourcecf_init_gmsk @2155 - qsourcecf_init_modem @2156 - qsourcecf_init_noise @2157 - qsourcecf_init_tone @2158 - qsourcecf_init_user @2159 - qsourcecf_print @2160 - qsourcecf_reset @2161 - qsourcecf_set_frequency @2162 - qsourcecf_set_gain @2163 - qsourcecf_set_id @2164 - quantize_adc @2165 - quantize_dac @2166 - quantizercf_create @2167 - quantizercf_destroy @2168 - quantizercf_execute_adc @2169 - quantizercf_execute_dac @2170 - quantizercf_print @2171 - quantizerf_create @2172 - quantizerf_destroy @2173 - quantizerf_execute_adc @2174 - quantizerf_execute_dac @2175 - quantizerf_print @2176 - randexpf @2177 - randexpf_cdf @2178 - randexpf_pdf @2179 - randf @2180 - randf_cdf @2181 - randf_pdf @2182 - randgammaf @2183 - randgammaf_cdf @2184 - randgammaf_delta @2185 - randgammaf_pdf @2186 - randnakmf @2187 - randnakmf_cdf @2188 - randnakmf_pdf @2189 - randnf @2190 - randnf_cdf @2191 - randnf_pdf @2192 - randricekf @2193 - randricekf_cdf @2194 - randricekf_pdf @2195 - randuf @2196 - randuf_cdf @2197 - randuf_pdf @2198 - randweibf @2199 - randweibf_cdf @2200 - randweibf_pdf @2201 - resamp2_cccf_analyzer_execute @2202 - resamp2_cccf_create @2203 - resamp2_cccf_decim_execute @2204 - resamp2_cccf_destroy @2205 - resamp2_cccf_filter_execute @2206 - resamp2_cccf_get_delay @2207 - resamp2_cccf_get_scale @2208 - resamp2_cccf_interp_execute @2209 - resamp2_cccf_print @2210 - resamp2_cccf_recreate @2211 - resamp2_cccf_reset @2212 - resamp2_cccf_set_scale @2213 - resamp2_cccf_synthesizer_execute @2214 - resamp2_crcf_analyzer_execute @2215 - resamp2_crcf_create @2216 - resamp2_crcf_decim_execute @2217 - resamp2_crcf_destroy @2218 - resamp2_crcf_filter_execute @2219 - resamp2_crcf_get_delay @2220 - resamp2_crcf_get_scale @2221 - resamp2_crcf_interp_execute @2222 - resamp2_crcf_print @2223 - resamp2_crcf_recreate @2224 - resamp2_crcf_reset @2225 - resamp2_crcf_set_scale @2226 - resamp2_crcf_synthesizer_execute @2227 - resamp2_rrrf_analyzer_execute @2228 - resamp2_rrrf_create @2229 - resamp2_rrrf_decim_execute @2230 - resamp2_rrrf_destroy @2231 - resamp2_rrrf_filter_execute @2232 - resamp2_rrrf_get_delay @2233 - resamp2_rrrf_get_scale @2234 - resamp2_rrrf_interp_execute @2235 - resamp2_rrrf_print @2236 - resamp2_rrrf_recreate @2237 - resamp2_rrrf_reset @2238 - resamp2_rrrf_set_scale @2239 - resamp2_rrrf_synthesizer_execute @2240 - resamp_cccf_adjust_rate @2241 - resamp_cccf_adjust_timing_phase @2242 - resamp_cccf_create @2243 - resamp_cccf_create_default @2244 - resamp_cccf_destroy @2245 - resamp_cccf_execute @2246 - resamp_cccf_execute_block @2247 - resamp_cccf_get_delay @2248 - resamp_cccf_get_rate @2249 - resamp_cccf_print @2250 - resamp_cccf_reset @2251 - resamp_cccf_set_rate @2252 - resamp_cccf_set_timing_phase @2253 - resamp_crcf_adjust_rate @2254 - resamp_crcf_adjust_timing_phase @2255 - resamp_crcf_create @2256 - resamp_crcf_create_default @2257 - resamp_crcf_destroy @2258 - resamp_crcf_execute @2259 - resamp_crcf_execute_block @2260 - resamp_crcf_get_delay @2261 - resamp_crcf_get_rate @2262 - resamp_crcf_print @2263 - resamp_crcf_reset @2264 - resamp_crcf_set_rate @2265 - resamp_crcf_set_timing_phase @2266 - resamp_rrrf_adjust_rate @2267 - resamp_rrrf_adjust_timing_phase @2268 - resamp_rrrf_create @2269 - resamp_rrrf_create_default @2270 - resamp_rrrf_destroy @2271 - resamp_rrrf_execute @2272 - resamp_rrrf_execute_block @2273 - resamp_rrrf_get_delay @2274 - resamp_rrrf_get_rate @2275 - resamp_rrrf_print @2276 - resamp_rrrf_reset @2277 - resamp_rrrf_set_rate @2278 - resamp_rrrf_set_timing_phase @2279 - rkaiser_approximate_rho @2280 - rresamp_cccf_create @2281 - rresamp_cccf_create_default @2282 - rresamp_cccf_create_kaiser @2283 - rresamp_cccf_create_prototype @2284 - rresamp_cccf_destroy @2285 - rresamp_cccf_execute @2286 - rresamp_cccf_execute_block @2287 - rresamp_cccf_execute_primitive @2288 - rresamp_cccf_get_P @2289 - rresamp_cccf_get_Q @2290 - rresamp_cccf_get_block_len @2291 - rresamp_cccf_get_decim @2292 - rresamp_cccf_get_delay @2293 - rresamp_cccf_get_interp @2294 - rresamp_cccf_get_rate @2295 - rresamp_cccf_get_scale @2296 - rresamp_cccf_print @2297 - rresamp_cccf_reset @2298 - rresamp_cccf_set_scale @2299 - rresamp_cccf_write @2300 - rresamp_crcf_create @2301 - rresamp_crcf_create_default @2302 - rresamp_crcf_create_kaiser @2303 - rresamp_crcf_create_prototype @2304 - rresamp_crcf_destroy @2305 - rresamp_crcf_execute @2306 - rresamp_crcf_execute_block @2307 - rresamp_crcf_execute_primitive @2308 - rresamp_crcf_get_P @2309 - rresamp_crcf_get_Q @2310 - rresamp_crcf_get_block_len @2311 - rresamp_crcf_get_decim @2312 - rresamp_crcf_get_delay @2313 - rresamp_crcf_get_interp @2314 - rresamp_crcf_get_rate @2315 - rresamp_crcf_get_scale @2316 - rresamp_crcf_print @2317 - rresamp_crcf_reset @2318 - rresamp_crcf_set_scale @2319 - rresamp_crcf_write @2320 - rresamp_rrrf_create @2321 - rresamp_rrrf_create_default @2322 - rresamp_rrrf_create_kaiser @2323 - rresamp_rrrf_create_prototype @2324 - rresamp_rrrf_destroy @2325 - rresamp_rrrf_execute @2326 - rresamp_rrrf_execute_block @2327 - rresamp_rrrf_execute_primitive @2328 - rresamp_rrrf_get_P @2329 - rresamp_rrrf_get_Q @2330 - rresamp_rrrf_get_block_len @2331 - rresamp_rrrf_get_decim @2332 - rresamp_rrrf_get_delay @2333 - rresamp_rrrf_get_interp @2334 - rresamp_rrrf_get_rate @2335 - rresamp_rrrf_get_scale @2336 - rresamp_rrrf_print @2337 - rresamp_rrrf_reset @2338 - rresamp_rrrf_set_scale @2339 - rresamp_rrrf_write @2340 - scramble_data @2341 - secded2216_P @2342 DATA - secded2216_syndrome_w1 @2343 DATA - secded3932_P @2344 DATA - secded3932_syndrome_w1 @2345 DATA - secded7264_P @2346 DATA - secded7264_syndrome_w1 @2347 DATA - sincf @2348 - smatrix_indexsearch @2349 - smatrixb_clear @2350 - smatrixb_create @2351 - smatrixb_create_array @2352 - smatrixb_delete @2353 - smatrixb_destroy @2354 - smatrixb_eye @2355 - smatrixb_get @2356 - smatrixb_insert @2357 - smatrixb_isset @2358 - smatrixb_mul @2359 - smatrixb_mulf @2360 - smatrixb_print @2361 - smatrixb_print_expanded @2362 - smatrixb_reset @2363 - smatrixb_reset_max_mlist @2364 - smatrixb_reset_max_nlist @2365 - smatrixb_set @2366 - smatrixb_size @2367 - smatrixb_vmul @2368 - smatrixb_vmulf @2369 - smatrixf_clear @2370 - smatrixf_create @2371 - smatrixf_create_array @2372 - smatrixf_delete @2373 - smatrixf_destroy @2374 - smatrixf_eye @2375 - smatrixf_get @2376 - smatrixf_insert @2377 - smatrixf_isset @2378 - smatrixf_mul @2379 - smatrixf_print @2380 - smatrixf_print_expanded @2381 - smatrixf_reset @2382 - smatrixf_reset_max_mlist @2383 - smatrixf_reset_max_nlist @2384 - smatrixf_set @2385 - smatrixf_size @2386 - smatrixf_vmul @2387 - smatrixi_clear @2388 - smatrixi_create @2389 - smatrixi_create_array @2390 - smatrixi_delete @2391 - smatrixi_destroy @2392 - smatrixi_eye @2393 - smatrixi_get @2394 - smatrixi_insert @2395 - smatrixi_isset @2396 - smatrixi_mul @2397 - smatrixi_print @2398 - smatrixi_print_expanded @2399 - smatrixi_reset @2400 - smatrixi_reset_max_mlist @2401 - smatrixi_reset_max_nlist @2402 - smatrixi_set @2403 - smatrixi_size @2404 - smatrixi_vmul @2405 - spgramcf_clear @2406 - spgramcf_create @2407 - spgramcf_create_default @2408 - spgramcf_destroy @2409 - spgramcf_estimate_psd @2410 - spgramcf_export_gnuplot @2411 - spgramcf_get_alpha @2412 - spgramcf_get_delay @2413 - spgramcf_get_nfft @2414 - spgramcf_get_num_samples @2415 - spgramcf_get_num_samples_total @2416 - spgramcf_get_num_transforms @2417 - spgramcf_get_num_transforms_total @2418 - spgramcf_get_psd @2419 - spgramcf_get_psd_mag @2420 - spgramcf_get_window_len @2421 - spgramcf_get_wtype @2422 - spgramcf_print @2423 - spgramcf_push @2424 - spgramcf_reset @2425 - spgramcf_set_alpha @2426 - spgramcf_set_freq @2427 - spgramcf_set_rate @2428 - spgramcf_step @2429 - spgramcf_write @2430 - spgramf_clear @2431 - spgramf_create @2432 - spgramf_create_default @2433 - spgramf_destroy @2434 - spgramf_estimate_psd @2435 - spgramf_export_gnuplot @2436 - spgramf_get_alpha @2437 - spgramf_get_delay @2438 - spgramf_get_nfft @2439 - spgramf_get_num_samples @2440 - spgramf_get_num_samples_total @2441 - spgramf_get_num_transforms @2442 - spgramf_get_num_transforms_total @2443 - spgramf_get_psd @2444 - spgramf_get_psd_mag @2445 - spgramf_get_window_len @2446 - spgramf_get_wtype @2447 - spgramf_print @2448 - spgramf_push @2449 - spgramf_reset @2450 - spgramf_set_alpha @2451 - spgramf_set_freq @2452 - spgramf_set_rate @2453 - spgramf_step @2454 - spgramf_write @2455 - spwaterfallcf_clear @2456 - spwaterfallcf_consolidate_buffer @2457 - spwaterfallcf_create @2458 - spwaterfallcf_create_default @2459 - spwaterfallcf_destroy @2460 - spwaterfallcf_export @2461 - spwaterfallcf_export_bin @2462 - spwaterfallcf_export_gnu @2463 - spwaterfallcf_get_delay @2464 - spwaterfallcf_get_num_freq @2465 - spwaterfallcf_get_num_samples_total @2466 - spwaterfallcf_get_num_time @2467 - spwaterfallcf_get_psd @2468 - spwaterfallcf_get_window_len @2469 - spwaterfallcf_get_wtype @2470 - spwaterfallcf_print @2471 - spwaterfallcf_push @2472 - spwaterfallcf_reset @2473 - spwaterfallcf_set_commands @2474 - spwaterfallcf_set_dims @2475 - spwaterfallcf_set_freq @2476 - spwaterfallcf_set_rate @2477 - spwaterfallcf_step @2478 - spwaterfallcf_write @2479 - spwaterfallf_clear @2480 - spwaterfallf_consolidate_buffer @2481 - spwaterfallf_create @2482 - spwaterfallf_create_default @2483 - spwaterfallf_destroy @2484 - spwaterfallf_export @2485 - spwaterfallf_export_bin @2486 - spwaterfallf_export_gnu @2487 - spwaterfallf_get_delay @2488 - spwaterfallf_get_num_freq @2489 - spwaterfallf_get_num_samples_total @2490 - spwaterfallf_get_num_time @2491 - spwaterfallf_get_psd @2492 - spwaterfallf_get_window_len @2493 - spwaterfallf_get_wtype @2494 - spwaterfallf_print @2495 - spwaterfallf_push @2496 - spwaterfallf_reset @2497 - spwaterfallf_set_commands @2498 - spwaterfallf_set_dims @2499 - spwaterfallf_set_freq @2500 - spwaterfallf_set_rate @2501 - spwaterfallf_step @2502 - spwaterfallf_write @2503 - sumproduct_phi @2504 - symstreamcf_create @2505 - symstreamcf_create_linear @2506 - symstreamcf_destroy @2507 - symstreamcf_fill_buffer @2508 - symstreamcf_get_beta @2509 - symstreamcf_get_delay @2510 - symstreamcf_get_ftype @2511 - symstreamcf_get_gain @2512 - symstreamcf_get_k @2513 - symstreamcf_get_m @2514 - symstreamcf_get_scheme @2515 - symstreamcf_print @2516 - symstreamcf_reset @2517 - symstreamcf_set_gain @2518 - symstreamcf_set_scheme @2519 - symstreamcf_write_samples @2520 - symstreamrcf_create @2521 - symstreamrcf_create_linear @2522 - symstreamrcf_destroy @2523 - symstreamrcf_fill_buffer @2524 - symstreamrcf_get_beta @2525 - symstreamrcf_get_bw @2526 - symstreamrcf_get_delay @2527 - symstreamrcf_get_ftype @2528 - symstreamrcf_get_gain @2529 - symstreamrcf_get_m @2530 - symstreamrcf_get_scheme @2531 - symstreamrcf_print @2532 - symstreamrcf_reset @2533 - symstreamrcf_set_gain @2534 - symstreamrcf_set_scheme @2535 - symstreamrcf_write_samples @2536 - symsync_crcf_advance_internal_loop @2537 - symsync_crcf_create @2538 - symsync_crcf_create_kaiser @2539 - symsync_crcf_create_rnyquist @2540 - symsync_crcf_destroy @2541 - symsync_crcf_execute @2542 - symsync_crcf_get_tau @2543 - symsync_crcf_lock @2544 - symsync_crcf_output_debug_file @2545 - symsync_crcf_print @2546 - symsync_crcf_reset @2547 - symsync_crcf_set_lf_bw @2548 - symsync_crcf_set_output_rate @2549 - symsync_crcf_step @2550 - symsync_crcf_unlock @2551 - symsync_rrrf_advance_internal_loop @2552 - symsync_rrrf_create @2553 - symsync_rrrf_create_kaiser @2554 - symsync_rrrf_create_rnyquist @2555 - symsync_rrrf_destroy @2556 - symsync_rrrf_execute @2557 - symsync_rrrf_get_tau @2558 - symsync_rrrf_lock @2559 - symsync_rrrf_output_debug_file @2560 - symsync_rrrf_print @2561 - symsync_rrrf_reset @2562 - symsync_rrrf_set_lf_bw @2563 - symsync_rrrf_set_output_rate @2564 - symsync_rrrf_step @2565 - symsync_rrrf_unlock @2566 - symtrack_cccf_adjust_frequency @2567 - symtrack_cccf_adjust_phase @2568 - symtrack_cccf_create @2569 - symtrack_cccf_create_default @2570 - symtrack_cccf_destroy @2571 - symtrack_cccf_execute @2572 - symtrack_cccf_execute_block @2573 - symtrack_cccf_get_bandwidth @2574 - symtrack_cccf_get_beta @2575 - symtrack_cccf_get_ftype @2576 - symtrack_cccf_get_k @2577 - symtrack_cccf_get_m @2578 - symtrack_cccf_get_modscheme @2579 - symtrack_cccf_print @2580 - symtrack_cccf_reset @2581 - symtrack_cccf_set_bandwidth @2582 - symtrack_cccf_set_eq_cm @2583 - symtrack_cccf_set_eq_dd @2584 - symtrack_cccf_set_eq_off @2585 - symtrack_cccf_set_modscheme @2586 - synth_crcf_adjust_frequency @2587 - synth_crcf_adjust_phase @2588 - synth_crcf_compute_synth @2589 - synth_crcf_constrain_frequency @2590 - synth_crcf_constrain_phase @2591 - synth_crcf_create @2592 - synth_crcf_despread @2593 - synth_crcf_despread_triple @2594 - synth_crcf_destroy @2595 - synth_crcf_get_current @2596 - synth_crcf_get_frequency @2597 - synth_crcf_get_half_next @2598 - synth_crcf_get_half_previous @2599 - synth_crcf_get_length @2600 - synth_crcf_get_phase @2601 - synth_crcf_mix_block_down @2602 - synth_crcf_mix_block_up @2603 - synth_crcf_mix_down @2604 - synth_crcf_mix_up @2605 - synth_crcf_pll_reset @2606 - synth_crcf_pll_set_bandwidth @2607 - synth_crcf_pll_step @2608 - synth_crcf_reset @2609 - synth_crcf_set_frequency @2610 - synth_crcf_set_phase @2611 - synth_crcf_spread @2612 - synth_crcf_step @2613 - triangular @2614 - tvmpch_cccf_create @2615 - tvmpch_cccf_destroy @2616 - tvmpch_cccf_execute @2617 - tvmpch_cccf_execute_block @2618 - tvmpch_cccf_print @2619 - tvmpch_cccf_push @2620 - tvmpch_cccf_reset @2621 - unscramble_data @2622 - unscramble_data_soft @2623 - wdelaycf_create @2624 - wdelaycf_destroy @2625 - wdelaycf_print @2626 - wdelaycf_push @2627 - wdelaycf_read @2628 - wdelaycf_recreate @2629 - wdelaycf_reset @2630 - wdelayf_create @2631 - wdelayf_destroy @2632 - wdelayf_print @2633 - wdelayf_push @2634 - wdelayf_read @2635 - wdelayf_recreate @2636 - wdelayf_reset @2637 - windowcf_create @2638 - windowcf_debug_print @2639 - windowcf_destroy @2640 - windowcf_index @2641 - windowcf_print @2642 - windowcf_push @2643 - windowcf_read @2644 - windowcf_recreate @2645 - windowcf_reset @2646 - windowcf_write @2647 - windowf_create @2648 - windowf_debug_print @2649 - windowf_destroy @2650 - windowf_index @2651 - windowf_print @2652 - windowf_push @2653 - windowf_read @2654 - windowf_recreate @2655 - windowf_reset @2656 - windowf_write @2657 + agc_crcf_copy @1 + agc_crcf_create @2 + agc_crcf_destroy @3 + agc_crcf_execute @4 + agc_crcf_execute_block @5 + agc_crcf_get_bandwidth @6 + agc_crcf_get_gain @7 + agc_crcf_get_rssi @8 + agc_crcf_get_scale @9 + agc_crcf_get_signal_level @10 + agc_crcf_init @11 + agc_crcf_is_locked @12 + agc_crcf_lock @13 + agc_crcf_print @14 + agc_crcf_reset @15 + agc_crcf_set_bandwidth @16 + agc_crcf_set_gain @17 + agc_crcf_set_rssi @18 + agc_crcf_set_scale @19 + agc_crcf_set_signal_level @20 + agc_crcf_squelch_disable @21 + agc_crcf_squelch_enable @22 + agc_crcf_squelch_get_status @23 + agc_crcf_squelch_get_threshold @24 + agc_crcf_squelch_get_timeout @25 + agc_crcf_squelch_is_enabled @26 + agc_crcf_squelch_set_threshold @27 + agc_crcf_squelch_set_timeout @28 + agc_crcf_squelch_update_mode @29 + agc_crcf_unlock @30 + agc_rrrf_copy @31 + agc_rrrf_create @32 + agc_rrrf_destroy @33 + agc_rrrf_execute @34 + agc_rrrf_execute_block @35 + agc_rrrf_get_bandwidth @36 + agc_rrrf_get_gain @37 + agc_rrrf_get_rssi @38 + agc_rrrf_get_scale @39 + agc_rrrf_get_signal_level @40 + agc_rrrf_init @41 + agc_rrrf_is_locked @42 + agc_rrrf_lock @43 + agc_rrrf_print @44 + agc_rrrf_reset @45 + agc_rrrf_set_bandwidth @46 + agc_rrrf_set_gain @47 + agc_rrrf_set_rssi @48 + agc_rrrf_set_scale @49 + agc_rrrf_set_signal_level @50 + agc_rrrf_squelch_disable @51 + agc_rrrf_squelch_enable @52 + agc_rrrf_squelch_get_status @53 + agc_rrrf_squelch_get_threshold @54 + agc_rrrf_squelch_get_timeout @55 + agc_rrrf_squelch_is_enabled @56 + agc_rrrf_squelch_set_threshold @57 + agc_rrrf_squelch_set_timeout @58 + agc_rrrf_squelch_update_mode @59 + agc_rrrf_unlock @60 + ampmodem_create @61 + ampmodem_demod_dsb_peak_detect @62 + ampmodem_demod_dsb_pll_carrier @63 + ampmodem_demod_dsb_pll_costas @64 + ampmodem_demod_ssb @65 + ampmodem_demod_ssb_pll_carrier @66 + ampmodem_demodulate @67 + ampmodem_demodulate_block @68 + ampmodem_destroy @69 + ampmodem_get_delay_demod @70 + ampmodem_get_delay_mod @71 + ampmodem_modulate @72 + ampmodem_modulate_block @73 + ampmodem_print @74 + ampmodem_reset @75 + apsk128_map @76 DATA + apsk128_num_levels @77 DATA + apsk128_p @78 DATA + apsk128_phi @79 DATA + apsk128_r @80 DATA + apsk128_r_slicer @81 DATA + apsk16_map @82 DATA + apsk16_num_levels @83 DATA + apsk16_p @84 DATA + apsk16_phi @85 DATA + apsk16_r @86 DATA + apsk16_r_slicer @87 DATA + apsk256_map @88 DATA + apsk256_num_levels @89 DATA + apsk256_p @90 DATA + apsk256_phi @91 DATA + apsk256_r @92 DATA + apsk256_r_slicer @93 DATA + apsk32_map @94 DATA + apsk32_num_levels @95 DATA + apsk32_p @96 DATA + apsk32_phi @97 DATA + apsk32_r @98 DATA + apsk32_r_slicer @99 DATA + apsk4_map @100 DATA + apsk4_num_levels @101 DATA + apsk4_p @102 DATA + apsk4_phi @103 DATA + apsk4_r @104 DATA + apsk4_r_slicer @105 DATA + apsk64_map @106 DATA + apsk64_num_levels @107 DATA + apsk64_p @108 DATA + apsk64_phi @109 DATA + apsk64_r @110 DATA + apsk64_r_slicer @111 DATA + apsk8_map @112 DATA + apsk8_num_levels @113 DATA + apsk8_p @114 DATA + apsk8_phi @115 DATA + apsk8_r @116 DATA + apsk8_r_slicer @117 DATA + asgramcf_copy @118 + asgramcf_create @119 + asgramcf_destroy @120 + asgramcf_execute @121 + asgramcf_print @122 + asgramcf_push @123 + asgramcf_reset @124 + asgramcf_set_display @125 + asgramcf_set_scale @126 + asgramcf_write @127 + asgramf_copy @128 + asgramf_create @129 + asgramf_destroy @130 + asgramf_execute @131 + asgramf_print @132 + asgramf_push @133 + asgramf_reset @134 + asgramf_set_display @135 + asgramf_set_scale @136 + asgramf_write @137 + autocorr_cccf_create @138 + autocorr_cccf_destroy @139 + autocorr_cccf_execute @140 + autocorr_cccf_execute_block @141 + autocorr_cccf_get_energy @142 + autocorr_cccf_print @143 + autocorr_cccf_push @144 + autocorr_cccf_reset @145 + autocorr_cccf_write @146 + autocorr_rrrf_create @147 + autocorr_rrrf_destroy @148 + autocorr_rrrf_execute @149 + autocorr_rrrf_execute_block @150 + autocorr_rrrf_get_energy @151 + autocorr_rrrf_print @152 + autocorr_rrrf_push @153 + autocorr_rrrf_reset @154 + autocorr_rrrf_write @155 + awgn @156 + bessel_azpkf @157 + bilinear_nd @158 + bilinear_zpkf @159 + blackmanharris @160 + blackmanharris7 @161 + bpacketgen_assemble_header @162 + bpacketgen_assemble_pnsequence @163 + bpacketgen_compute_packet_len @164 + bpacketgen_create @165 + bpacketgen_destroy @166 + bpacketgen_encode @167 + bpacketgen_get_packet_len @168 + bpacketgen_print @169 + bpacketgen_recreate @170 + bpacketsync_assemble_pnsequence @171 + bpacketsync_create @172 + bpacketsync_decode_header @173 + bpacketsync_decode_payload @174 + bpacketsync_destroy @175 + bpacketsync_execute @176 + bpacketsync_execute_bit @177 + bpacketsync_execute_byte @178 + bpacketsync_execute_rxheader @179 + bpacketsync_execute_rxpayload @180 + bpacketsync_execute_seekpn @181 + bpacketsync_execute_sym @182 + bpacketsync_print @183 + bpacketsync_reconfig @184 + bpacketsync_reset @185 + bpresync_cccf_correlatex @186 + bpresync_cccf_create @187 + bpresync_cccf_destroy @188 + bpresync_cccf_execute @189 + bpresync_cccf_print @190 + bpresync_cccf_push @191 + bpresync_cccf_reset @192 + bsequence_accumulate @193 + bsequence_add @194 + bsequence_circshift @195 + bsequence_correlate @196 + bsequence_create @197 + bsequence_create_ccodes @198 + bsequence_destroy @199 + bsequence_get_length @200 + bsequence_index @201 + bsequence_init @202 + bsequence_init_msequence @203 + bsequence_mul @204 + bsequence_print @205 + bsequence_push @206 + bsequence_reset @207 + bsync_cccf_correlate @208 + bsync_cccf_create @209 + bsync_cccf_create_msequence @210 + bsync_cccf_destroy @211 + bsync_cccf_print @212 + bsync_crcf_correlate @213 + bsync_crcf_create @214 + bsync_crcf_create_msequence @215 + bsync_crcf_destroy @216 + bsync_crcf_print @217 + bsync_rrrf_correlate @218 + bsync_rrrf_create @219 + bsync_rrrf_create_msequence @220 + bsync_rrrf_destroy @221 + bsync_rrrf_print @222 + butter_azpkf @223 + cawgn @224 + cbuffercf_copy @225 + cbuffercf_create @226 + cbuffercf_create_max @227 + cbuffercf_debug_print @228 + cbuffercf_destroy @229 + cbuffercf_is_empty @230 + cbuffercf_is_full @231 + cbuffercf_linearize @232 + cbuffercf_max_read @233 + cbuffercf_max_size @234 + cbuffercf_pop @235 + cbuffercf_print @236 + cbuffercf_push @237 + cbuffercf_read @238 + cbuffercf_release @239 + cbuffercf_reset @240 + cbuffercf_size @241 + cbuffercf_space_available @242 + cbuffercf_write @243 + cbufferf_copy @244 + cbufferf_create @245 + cbufferf_create_max @246 + cbufferf_debug_print @247 + cbufferf_destroy @248 + cbufferf_is_empty @249 + cbufferf_is_full @250 + cbufferf_linearize @251 + cbufferf_max_read @252 + cbufferf_max_size @253 + cbufferf_pop @254 + cbufferf_print @255 + cbufferf_push @256 + cbufferf_read @257 + cbufferf_release @258 + cbufferf_reset @259 + cbufferf_size @260 + cbufferf_space_available @261 + cbufferf_write @262 + channel_cccf_add_awgn @263 + channel_cccf_add_carrier_offset @264 + channel_cccf_add_multipath @265 + channel_cccf_add_shadowing @266 + channel_cccf_copy @267 + channel_cccf_create @268 + channel_cccf_destroy @269 + channel_cccf_execute @270 + channel_cccf_execute_block @271 + channel_cccf_print @272 + cheby1_azpkf @273 + cheby2_azpkf @274 + checksum_generate_key @275 + chromosome_copy @276 + chromosome_create @277 + chromosome_create_basic @278 + chromosome_create_clone @279 + chromosome_crossover @280 + chromosome_destroy @281 + chromosome_get_num_traits @282 + chromosome_init @283 + chromosome_init_random @284 + chromosome_initf @285 + chromosome_mutate @286 + chromosome_print @287 + chromosome_printf @288 + chromosome_reset @289 + chromosome_value @290 + chromosome_valuef @291 + compress_cf_mulaw @292 + compress_mulaw @293 + count_bit_errors @294 + count_bit_errors_array @295 + cpfskdem_create @296 + cpfskdem_demodulate @297 + cpfskdem_demodulate_coherent @298 + cpfskdem_demodulate_noncoherent @299 + cpfskdem_destroy @300 + cpfskdem_get_delay @301 + cpfskdem_init_coherent @302 + cpfskdem_init_noncoherent @303 + cpfskdem_print @304 + cpfskdem_reset @305 + cpfskmod_create @306 + cpfskmod_destroy @307 + cpfskmod_firdes @308 + cpfskmod_get_delay @309 + cpfskmod_modulate @310 + cpfskmod_print @311 + cpfskmod_reset @312 + crandnf @313 + crc16_generate_key @314 + crc24_generate_key @315 + crc32_generate_key @316 + crc8_generate_key @317 + crc_append_key @318 + crc_check_key @319 + crc_generate_key @320 + crc_get_length @321 + crc_scheme_str @322 DATA + crc_sizeof_key @323 + crc_validate_message @324 + cvsd_create @325 + cvsd_decode @326 + cvsd_decode8 @327 + cvsd_destroy @328 + cvsd_encode @329 + cvsd_encode8 @330 + cvsd_print @331 + dds_cccf_copy @332 + dds_cccf_create @333 + dds_cccf_decim_execute @334 + dds_cccf_destroy @335 + dds_cccf_get_delay_decim @336 + dds_cccf_get_delay_interp @337 + dds_cccf_get_num_stages @338 + dds_cccf_get_scale @339 + dds_cccf_interp_execute @340 + dds_cccf_print @341 + dds_cccf_reset @342 + dds_cccf_set_scale @343 + detector_cccf_compute_dotprods @344 + detector_cccf_correlate @345 + detector_cccf_create @346 + detector_cccf_debug_print @347 + detector_cccf_destroy @348 + detector_cccf_estimate_offsets @349 + detector_cccf_print @350 + detector_cccf_reset @351 + detector_cccf_update_sumsq @352 + dotprod_cccf_copy @353 + dotprod_cccf_create @354 + dotprod_cccf_create_opt @355 + dotprod_cccf_create_rev @356 + dotprod_cccf_destroy @357 + dotprod_cccf_execute @358 + dotprod_cccf_execute_mmx @359 + dotprod_cccf_execute_mmx4 @360 + dotprod_cccf_print @361 + dotprod_cccf_recreate @362 + dotprod_cccf_recreate_rev @363 + dotprod_cccf_run @364 + dotprod_cccf_run4 @365 + dotprod_crcf_copy @366 + dotprod_crcf_create @367 + dotprod_crcf_create_opt @368 + dotprod_crcf_create_rev @369 + dotprod_crcf_destroy @370 + dotprod_crcf_execute @371 + dotprod_crcf_execute_mmx @372 + dotprod_crcf_execute_mmx4 @373 + dotprod_crcf_print @374 + dotprod_crcf_recreate @375 + dotprod_crcf_recreate_rev @376 + dotprod_crcf_run @377 + dotprod_crcf_run4 @378 + dotprod_rrrf_copy @379 + dotprod_rrrf_create @380 + dotprod_rrrf_create_opt @381 + dotprod_rrrf_create_rev @382 + dotprod_rrrf_destroy @383 + dotprod_rrrf_execute @384 + dotprod_rrrf_execute_sse4 @385 + dotprod_rrrf_execute_sse4u @386 + dotprod_rrrf_print @387 + dotprod_rrrf_recreate @388 + dotprod_rrrf_recreate_rev @389 + dotprod_rrrf_run @390 + dotprod_rrrf_run4 @391 + dsssframegen_assemble @392 + dsssframegen_create @393 + dsssframegen_destroy @394 + dsssframegen_generate_header @395 + dsssframegen_generate_payload @396 + dsssframegen_generate_preamble @397 + dsssframegen_generate_symbol @398 + dsssframegen_generate_tail @399 + dsssframegen_getframelen @400 + dsssframegen_getprops @401 + dsssframegen_is_assembled @402 + dsssframegen_reconfigure @403 + dsssframegen_reconfigure_header @404 + dsssframegen_reset @405 + dsssframegen_set_header_len @406 + dsssframegen_set_header_props @407 + dsssframegen_setprops @408 + dsssframegen_write_samples @409 + dsssframesync_configure_payload @410 + dsssframesync_create @411 + dsssframesync_debug_disable @412 + dsssframesync_debug_enable @413 + dsssframesync_debug_print @414 + dsssframesync_decode_header @415 + dsssframesync_decode_header_soft @416 + dsssframesync_decode_payload @417 + dsssframesync_decode_payload_soft @418 + dsssframesync_destroy @419 + dsssframesync_execute @420 + dsssframesync_execute_rxheader @421 + dsssframesync_execute_rxpayload @422 + dsssframesync_execute_rxpreamble @423 + dsssframesync_execute_seekpn @424 + dsssframesync_get_framedatastats @425 + dsssframesync_is_frame_open @426 + dsssframesync_print @427 + dsssframesync_reset @428 + dsssframesync_reset_framedatastats @429 + dsssframesync_set_header_len @430 + dsssframesync_set_header_props @431 + dsssframesync_step @432 + ellip_acdf @433 + ellip_asnf @434 + ellip_azpkf @435 + ellip_cdf @436 + ellip_snf @437 + ellipdegf @438 + ellipkf @439 + eqlms_cccf_copy @440 + eqlms_cccf_copy_coefficients @441 + eqlms_cccf_create @442 + eqlms_cccf_create_lowpass @443 + eqlms_cccf_create_rnyquist @444 + eqlms_cccf_decim_execute @445 + eqlms_cccf_destroy @446 + eqlms_cccf_execute @447 + eqlms_cccf_execute_block @448 + eqlms_cccf_get_bw @449 + eqlms_cccf_get_coefficients @450 + eqlms_cccf_get_length @451 + eqlms_cccf_get_weights @452 + eqlms_cccf_print @453 + eqlms_cccf_push @454 + eqlms_cccf_push_block @455 + eqlms_cccf_recreate @456 + eqlms_cccf_reset @457 + eqlms_cccf_set_bw @458 + eqlms_cccf_step @459 + eqlms_cccf_step_blind @460 + eqlms_cccf_train @461 + eqlms_cccf_update_sumsq @462 + eqlms_rrrf_copy @463 + eqlms_rrrf_copy_coefficients @464 + eqlms_rrrf_create @465 + eqlms_rrrf_create_lowpass @466 + eqlms_rrrf_create_rnyquist @467 + eqlms_rrrf_decim_execute @468 + eqlms_rrrf_destroy @469 + eqlms_rrrf_execute @470 + eqlms_rrrf_execute_block @471 + eqlms_rrrf_get_bw @472 + eqlms_rrrf_get_coefficients @473 + eqlms_rrrf_get_length @474 + eqlms_rrrf_get_weights @475 + eqlms_rrrf_print @476 + eqlms_rrrf_push @477 + eqlms_rrrf_push_block @478 + eqlms_rrrf_recreate @479 + eqlms_rrrf_reset @480 + eqlms_rrrf_set_bw @481 + eqlms_rrrf_step @482 + eqlms_rrrf_step_blind @483 + eqlms_rrrf_train @484 + eqlms_rrrf_update_sumsq @485 + eqrls_cccf_copy @486 + eqrls_cccf_create @487 + eqrls_cccf_destroy @488 + eqrls_cccf_execute @489 + eqrls_cccf_get_bw @490 + eqrls_cccf_get_weights @491 + eqrls_cccf_print @492 + eqrls_cccf_push @493 + eqrls_cccf_recreate @494 + eqrls_cccf_reset @495 + eqrls_cccf_set_bw @496 + eqrls_cccf_step @497 + eqrls_cccf_train @498 + eqrls_rrrf_copy @499 + eqrls_rrrf_create @500 + eqrls_rrrf_destroy @501 + eqrls_rrrf_execute @502 + eqrls_rrrf_get_bw @503 + eqrls_rrrf_get_weights @504 + eqrls_rrrf_print @505 + eqrls_rrrf_push @506 + eqrls_rrrf_recreate @507 + eqrls_rrrf_reset @508 + eqrls_rrrf_set_bw @509 + eqrls_rrrf_step @510 + eqrls_rrrf_train @511 + estimate_req_filter_As @512 + estimate_req_filter_df @513 + estimate_req_filter_len @514 + estimate_req_filter_len_Herrmann @515 + estimate_req_filter_len_Kaiser @516 + expand_cf_mulaw @517 + expand_mulaw @518 + fdelay_crcf_adjust_delay @519 + fdelay_crcf_create @520 + fdelay_crcf_create_default @521 + fdelay_crcf_destroy @522 + fdelay_crcf_execute @523 + fdelay_crcf_execute_block @524 + fdelay_crcf_get_delay @525 + fdelay_crcf_get_m @526 + fdelay_crcf_get_nmax @527 + fdelay_crcf_get_npfb @528 + fdelay_crcf_print @529 + fdelay_crcf_push @530 + fdelay_crcf_reset @531 + fdelay_crcf_set_delay @532 + fdelay_crcf_write @533 + fdelay_rrrf_adjust_delay @534 + fdelay_rrrf_create @535 + fdelay_rrrf_create_default @536 + fdelay_rrrf_destroy @537 + fdelay_rrrf_execute @538 + fdelay_rrrf_execute_block @539 + fdelay_rrrf_get_delay @540 + fdelay_rrrf_get_m @541 + fdelay_rrrf_get_nmax @542 + fdelay_rrrf_get_npfb @543 + fdelay_rrrf_print @544 + fdelay_rrrf_push @545 + fdelay_rrrf_reset @546 + fdelay_rrrf_set_delay @547 + fdelay_rrrf_write @548 + fec_block_get_enc_msg_len @549 + fec_conv27_poly @550 DATA + fec_conv27p23_matrix @551 DATA + fec_conv27p34_matrix @552 DATA + fec_conv27p45_matrix @553 DATA + fec_conv27p56_matrix @554 DATA + fec_conv27p67_matrix @555 DATA + fec_conv27p78_matrix @556 DATA + fec_conv29_poly @557 DATA + fec_conv29p23_matrix @558 DATA + fec_conv29p34_matrix @559 DATA + fec_conv29p45_matrix @560 DATA + fec_conv29p56_matrix @561 DATA + fec_conv29p67_matrix @562 DATA + fec_conv29p78_matrix @563 DATA + fec_conv39_poly @564 DATA + fec_conv615_poly @565 DATA + fec_conv_create @566 + fec_conv_destroy @567 + fec_conv_get_enc_msg_len @568 + fec_conv_punctured_create @569 + fec_conv_punctured_decode @570 + fec_conv_punctured_destroy @571 + fec_conv_punctured_encode @572 + fec_copy @573 + fec_create @574 + fec_decode @575 + fec_decode_soft @576 + fec_destroy @577 + fec_encode @578 + fec_get_enc_msg_length @579 + fec_get_rate @580 + fec_golay2412_create @581 + fec_golay2412_decode @582 + fec_golay2412_decode_symbol @583 + fec_golay2412_destroy @584 + fec_golay2412_encode @585 + fec_golay2412_encode_symbol @586 + fec_hamming128_create @587 + fec_hamming128_decode @588 + fec_hamming128_decode_soft @589 + fec_hamming128_decode_symbol @590 + fec_hamming128_destroy @591 + fec_hamming128_encode @592 + fec_hamming128_encode_symbol @593 + fec_hamming1511_decode_symbol @594 + fec_hamming1511_encode_symbol @595 + fec_hamming3126_decode_symbol @596 + fec_hamming3126_encode_symbol @597 + fec_hamming74_create @598 + fec_hamming74_decode @599 + fec_hamming74_decode_soft @600 + fec_hamming74_destroy @601 + fec_hamming74_encode @602 + fec_hamming84_create @603 + fec_hamming84_decode @604 + fec_hamming84_decode_soft @605 + fec_hamming84_destroy @606 + fec_hamming84_encode @607 + fec_pass_create @608 + fec_pass_decode @609 + fec_pass_destroy @610 + fec_pass_encode @611 + fec_pass_print @612 + fec_print @613 + fec_recreate @614 + fec_rep3_create @615 + fec_rep3_decode @616 + fec_rep3_decode_soft @617 + fec_rep3_destroy @618 + fec_rep3_encode @619 + fec_rep3_print @620 + fec_rep5_create @621 + fec_rep5_decode @622 + fec_rep5_decode_soft @623 + fec_rep5_destroy @624 + fec_rep5_encode @625 + fec_rep5_print @626 + fec_rs_create @627 + fec_rs_decode @628 + fec_rs_destroy @629 + fec_rs_encode @630 + fec_rs_get_enc_msg_len @631 + fec_scheme_is_convolutional @632 + fec_scheme_is_hamming @633 + fec_scheme_is_punctured @634 + fec_scheme_is_reedsolomon @635 + fec_scheme_is_repeat @636 + fec_scheme_str @637 DATA + fec_secded2216_compute_parity @638 + fec_secded2216_compute_syndrome @639 + fec_secded2216_create @640 + fec_secded2216_decode @641 + fec_secded2216_decode_symbol @642 + fec_secded2216_destroy @643 + fec_secded2216_encode @644 + fec_secded2216_encode_symbol @645 + fec_secded2216_estimate_ehat @646 + fec_secded3932_compute_parity @647 + fec_secded3932_compute_syndrome @648 + fec_secded3932_create @649 + fec_secded3932_decode @650 + fec_secded3932_decode_symbol @651 + fec_secded3932_destroy @652 + fec_secded3932_encode @653 + fec_secded3932_encode_symbol @654 + fec_secded3932_estimate_ehat @655 + fec_secded7264_compute_parity @656 + fec_secded7264_compute_syndrome @657 + fec_secded7264_create @658 + fec_secded7264_decode @659 + fec_secded7264_decode_symbol @660 + fec_secded7264_destroy @661 + fec_secded7264_encode @662 + fec_secded7264_encode_symbol @663 + fec_secded7264_estimate_ehat @664 + fec_sumproduct @665 + fec_sumproduct_step @666 + fecsoft_hamming128_decode @667 + fecsoft_hamming128_decode_n3 @668 + fecsoft_hamming128_n3 @669 DATA + fecsoft_hamming74_decode @670 + fecsoft_hamming84_decode @671 + fft_create_plan @672 + fft_create_plan_dft @673 + fft_create_plan_mixed_radix @674 + fft_create_plan_r2r_1d @675 + fft_create_plan_rader @676 + fft_create_plan_rader2 @677 + fft_create_plan_radix2 @678 + fft_destroy_plan @679 + fft_destroy_plan_dft @680 + fft_destroy_plan_mixed_radix @681 + fft_destroy_plan_r2r_1d @682 + fft_destroy_plan_rader @683 + fft_destroy_plan_rader2 @684 + fft_destroy_plan_radix2 @685 + fft_estimate_mixed_radix @686 + fft_execute @687 + fft_execute_REDFT00 @688 + fft_execute_REDFT01 @689 + fft_execute_REDFT10 @690 + fft_execute_REDFT11 @691 + fft_execute_RODFT00 @692 + fft_execute_RODFT01 @693 + fft_execute_RODFT10 @694 + fft_execute_RODFT11 @695 + fft_execute_dft @696 + fft_execute_dft_16 @697 + fft_execute_dft_2 @698 + fft_execute_dft_3 @699 + fft_execute_dft_4 @700 + fft_execute_dft_5 @701 + fft_execute_dft_6 @702 + fft_execute_dft_7 @703 + fft_execute_dft_8 @704 + fft_execute_mixed_radix @705 + fft_execute_rader @706 + fft_execute_rader2 @707 + fft_execute_radix2 @708 + fft_free @709 + fft_is_radix2 @710 + fft_malloc @711 + fft_print_plan @712 + fft_print_plan_r2r_1d @713 + fft_print_plan_recursive @714 + fft_r2r_1d_run @715 + fft_reverse_index @716 + fft_run @717 + fft_shift @718 + fftfilt_cccf_copy @719 + fftfilt_cccf_create @720 + fftfilt_cccf_destroy @721 + fftfilt_cccf_execute @722 + fftfilt_cccf_get_length @723 + fftfilt_cccf_get_scale @724 + fftfilt_cccf_print @725 + fftfilt_cccf_reset @726 + fftfilt_cccf_set_scale @727 + fftfilt_crcf_copy @728 + fftfilt_crcf_create @729 + fftfilt_crcf_destroy @730 + fftfilt_crcf_execute @731 + fftfilt_crcf_get_length @732 + fftfilt_crcf_get_scale @733 + fftfilt_crcf_print @734 + fftfilt_crcf_reset @735 + fftfilt_crcf_set_scale @736 + fftfilt_rrrf_copy @737 + fftfilt_rrrf_create @738 + fftfilt_rrrf_destroy @739 + fftfilt_rrrf_execute @740 + fftfilt_rrrf_get_length @741 + fftfilt_rrrf_get_scale @742 + fftfilt_rrrf_print @743 + fftfilt_rrrf_reset @744 + fftfilt_rrrf_set_scale @745 + fir_group_delay @746 + firdecim_cccf_copy @747 + firdecim_cccf_create @748 + firdecim_cccf_create_kaiser @749 + firdecim_cccf_create_prototype @750 + firdecim_cccf_destroy @751 + firdecim_cccf_execute @752 + firdecim_cccf_execute_block @753 + firdecim_cccf_freqresp @754 + firdecim_cccf_get_decim_rate @755 + firdecim_cccf_get_scale @756 + firdecim_cccf_print @757 + firdecim_cccf_reset @758 + firdecim_cccf_set_scale @759 + firdecim_crcf_copy @760 + firdecim_crcf_create @761 + firdecim_crcf_create_kaiser @762 + firdecim_crcf_create_prototype @763 + firdecim_crcf_destroy @764 + firdecim_crcf_execute @765 + firdecim_crcf_execute_block @766 + firdecim_crcf_freqresp @767 + firdecim_crcf_get_decim_rate @768 + firdecim_crcf_get_scale @769 + firdecim_crcf_print @770 + firdecim_crcf_reset @771 + firdecim_crcf_set_scale @772 + firdecim_rrrf_copy @773 + firdecim_rrrf_create @774 + firdecim_rrrf_create_kaiser @775 + firdecim_rrrf_create_prototype @776 + firdecim_rrrf_destroy @777 + firdecim_rrrf_execute @778 + firdecim_rrrf_execute_block @779 + firdecim_rrrf_freqresp @780 + firdecim_rrrf_get_decim_rate @781 + firdecim_rrrf_get_scale @782 + firdecim_rrrf_print @783 + firdecim_rrrf_reset @784 + firdecim_rrrf_set_scale @785 + firdespm_compute_error @786 + firdespm_compute_interp @787 + firdespm_compute_taps @788 + firdespm_copy @789 + firdespm_create @790 + firdespm_create_callback @791 + firdespm_destroy @792 + firdespm_execute @793 + firdespm_halfband_utility @794 + firdespm_iext_search @795 + firdespm_init_grid @796 + firdespm_is_search_complete @797 + firdespm_lowpass @798 + firdespm_print @799 + firdespm_run @800 + firfarrow_crcf_create @801 + firfarrow_crcf_destroy @802 + firfarrow_crcf_execute @803 + firfarrow_crcf_execute_block @804 + firfarrow_crcf_freqresponse @805 + firfarrow_crcf_genpoly @806 + firfarrow_crcf_get_coefficients @807 + firfarrow_crcf_get_length @808 + firfarrow_crcf_groupdelay @809 + firfarrow_crcf_print @810 + firfarrow_crcf_push @811 + firfarrow_crcf_reset @812 + firfarrow_crcf_set_delay @813 + firfarrow_rrrf_create @814 + firfarrow_rrrf_destroy @815 + firfarrow_rrrf_execute @816 + firfarrow_rrrf_execute_block @817 + firfarrow_rrrf_freqresponse @818 + firfarrow_rrrf_genpoly @819 + firfarrow_rrrf_get_coefficients @820 + firfarrow_rrrf_get_length @821 + firfarrow_rrrf_groupdelay @822 + firfarrow_rrrf_print @823 + firfarrow_rrrf_push @824 + firfarrow_rrrf_reset @825 + firfarrow_rrrf_set_delay @826 + firfilt_cccf_copy @827 + firfilt_cccf_copy_coefficients @828 + firfilt_cccf_create @829 + firfilt_cccf_create_dc_blocker @830 + firfilt_cccf_create_firdespm @831 + firfilt_cccf_create_kaiser @832 + firfilt_cccf_create_notch @833 + firfilt_cccf_create_rect @834 + firfilt_cccf_create_rnyquist @835 + firfilt_cccf_destroy @836 + firfilt_cccf_execute @837 + firfilt_cccf_execute_block @838 + firfilt_cccf_execute_one @839 + firfilt_cccf_freqresponse @840 + firfilt_cccf_get_coefficients @841 + firfilt_cccf_get_length @842 + firfilt_cccf_get_scale @843 + firfilt_cccf_groupdelay @844 + firfilt_cccf_print @845 + firfilt_cccf_push @846 + firfilt_cccf_recreate @847 + firfilt_cccf_reset @848 + firfilt_cccf_set_scale @849 + firfilt_cccf_write @850 + firfilt_crcf_copy @851 + firfilt_crcf_copy_coefficients @852 + firfilt_crcf_create @853 + firfilt_crcf_create_dc_blocker @854 + firfilt_crcf_create_firdespm @855 + firfilt_crcf_create_kaiser @856 + firfilt_crcf_create_notch @857 + firfilt_crcf_create_rect @858 + firfilt_crcf_create_rnyquist @859 + firfilt_crcf_destroy @860 + firfilt_crcf_execute @861 + firfilt_crcf_execute_block @862 + firfilt_crcf_execute_one @863 + firfilt_crcf_freqresponse @864 + firfilt_crcf_get_coefficients @865 + firfilt_crcf_get_length @866 + firfilt_crcf_get_scale @867 + firfilt_crcf_groupdelay @868 + firfilt_crcf_print @869 + firfilt_crcf_push @870 + firfilt_crcf_recreate @871 + firfilt_crcf_reset @872 + firfilt_crcf_set_scale @873 + firfilt_crcf_write @874 + firfilt_rrrf_copy @875 + firfilt_rrrf_copy_coefficients @876 + firfilt_rrrf_create @877 + firfilt_rrrf_create_dc_blocker @878 + firfilt_rrrf_create_firdespm @879 + firfilt_rrrf_create_kaiser @880 + firfilt_rrrf_create_notch @881 + firfilt_rrrf_create_rect @882 + firfilt_rrrf_create_rnyquist @883 + firfilt_rrrf_destroy @884 + firfilt_rrrf_execute @885 + firfilt_rrrf_execute_block @886 + firfilt_rrrf_execute_one @887 + firfilt_rrrf_freqresponse @888 + firfilt_rrrf_get_coefficients @889 + firfilt_rrrf_get_length @890 + firfilt_rrrf_get_scale @891 + firfilt_rrrf_groupdelay @892 + firfilt_rrrf_print @893 + firfilt_rrrf_push @894 + firfilt_rrrf_recreate @895 + firfilt_rrrf_reset @896 + firfilt_rrrf_set_scale @897 + firfilt_rrrf_write @898 + firhilbf_c2r_execute @899 + firhilbf_copy @900 + firhilbf_create @901 + firhilbf_decim_execute @902 + firhilbf_decim_execute_block @903 + firhilbf_destroy @904 + firhilbf_interp_execute @905 + firhilbf_interp_execute_block @906 + firhilbf_print @907 + firhilbf_r2c_execute @908 + firhilbf_reset @909 + firinterp_cccf_copy @910 + firinterp_cccf_create @911 + firinterp_cccf_create_kaiser @912 + firinterp_cccf_create_linear @913 + firinterp_cccf_create_prototype @914 + firinterp_cccf_create_window @915 + firinterp_cccf_destroy @916 + firinterp_cccf_execute @917 + firinterp_cccf_execute_block @918 + firinterp_cccf_get_interp_rate @919 + firinterp_cccf_get_scale @920 + firinterp_cccf_get_sub_len @921 + firinterp_cccf_print @922 + firinterp_cccf_reset @923 + firinterp_cccf_set_scale @924 + firinterp_crcf_copy @925 + firinterp_crcf_create @926 + firinterp_crcf_create_kaiser @927 + firinterp_crcf_create_linear @928 + firinterp_crcf_create_prototype @929 + firinterp_crcf_create_window @930 + firinterp_crcf_destroy @931 + firinterp_crcf_execute @932 + firinterp_crcf_execute_block @933 + firinterp_crcf_get_interp_rate @934 + firinterp_crcf_get_scale @935 + firinterp_crcf_get_sub_len @936 + firinterp_crcf_print @937 + firinterp_crcf_reset @938 + firinterp_crcf_set_scale @939 + firinterp_rrrf_copy @940 + firinterp_rrrf_create @941 + firinterp_rrrf_create_kaiser @942 + firinterp_rrrf_create_linear @943 + firinterp_rrrf_create_prototype @944 + firinterp_rrrf_create_window @945 + firinterp_rrrf_destroy @946 + firinterp_rrrf_execute @947 + firinterp_rrrf_execute_block @948 + firinterp_rrrf_get_interp_rate @949 + firinterp_rrrf_get_scale @950 + firinterp_rrrf_get_sub_len @951 + firinterp_rrrf_print @952 + firinterp_rrrf_reset @953 + firinterp_rrrf_set_scale @954 + firpfb_cccf_copy @955 + firpfb_cccf_create @956 + firpfb_cccf_create_default @957 + firpfb_cccf_create_drnyquist @958 + firpfb_cccf_create_kaiser @959 + firpfb_cccf_create_rnyquist @960 + firpfb_cccf_destroy @961 + firpfb_cccf_execute @962 + firpfb_cccf_execute_block @963 + firpfb_cccf_get_scale @964 + firpfb_cccf_print @965 + firpfb_cccf_push @966 + firpfb_cccf_recreate @967 + firpfb_cccf_reset @968 + firpfb_cccf_set_scale @969 + firpfb_cccf_write @970 + firpfb_crcf_copy @971 + firpfb_crcf_create @972 + firpfb_crcf_create_default @973 + firpfb_crcf_create_drnyquist @974 + firpfb_crcf_create_kaiser @975 + firpfb_crcf_create_rnyquist @976 + firpfb_crcf_destroy @977 + firpfb_crcf_execute @978 + firpfb_crcf_execute_block @979 + firpfb_crcf_get_scale @980 + firpfb_crcf_print @981 + firpfb_crcf_push @982 + firpfb_crcf_recreate @983 + firpfb_crcf_reset @984 + firpfb_crcf_set_scale @985 + firpfb_crcf_write @986 + firpfb_rrrf_copy @987 + firpfb_rrrf_create @988 + firpfb_rrrf_create_default @989 + firpfb_rrrf_create_drnyquist @990 + firpfb_rrrf_create_kaiser @991 + firpfb_rrrf_create_rnyquist @992 + firpfb_rrrf_destroy @993 + firpfb_rrrf_execute @994 + firpfb_rrrf_execute_block @995 + firpfb_rrrf_get_scale @996 + firpfb_rrrf_print @997 + firpfb_rrrf_push @998 + firpfb_rrrf_recreate @999 + firpfb_rrrf_reset @1000 + firpfb_rrrf_set_scale @1001 + firpfb_rrrf_write @1002 + firpfbch2_crcf_copy @1003 + firpfbch2_crcf_create @1004 + firpfbch2_crcf_create_kaiser @1005 + firpfbch2_crcf_destroy @1006 + firpfbch2_crcf_execute @1007 + firpfbch2_crcf_execute_analyzer @1008 + firpfbch2_crcf_execute_synthesizer @1009 + firpfbch2_crcf_get_M @1010 + firpfbch2_crcf_get_m @1011 + firpfbch2_crcf_get_type @1012 + firpfbch2_crcf_print @1013 + firpfbch2_crcf_reset @1014 + firpfbch_cccf_analyzer_execute @1015 + firpfbch_cccf_analyzer_push @1016 + firpfbch_cccf_analyzer_run @1017 + firpfbch_cccf_create @1018 + firpfbch_cccf_create_kaiser @1019 + firpfbch_cccf_create_rnyquist @1020 + firpfbch_cccf_destroy @1021 + firpfbch_cccf_print @1022 + firpfbch_cccf_reset @1023 + firpfbch_cccf_synthesizer_execute @1024 + firpfbch_crcf_analyzer_execute @1025 + firpfbch_crcf_analyzer_push @1026 + firpfbch_crcf_analyzer_run @1027 + firpfbch_crcf_create @1028 + firpfbch_crcf_create_kaiser @1029 + firpfbch_crcf_create_rnyquist @1030 + firpfbch_crcf_destroy @1031 + firpfbch_crcf_print @1032 + firpfbch_crcf_reset @1033 + firpfbch_crcf_synthesizer_execute @1034 + firpfbchr_crcf_create @1035 + firpfbchr_crcf_create_kaiser @1036 + firpfbchr_crcf_destroy @1037 + firpfbchr_crcf_execute @1038 + firpfbchr_crcf_get_M @1039 + firpfbchr_crcf_get_P @1040 + firpfbchr_crcf_get_decim_rate @1041 + firpfbchr_crcf_get_m @1042 + firpfbchr_crcf_get_num_channels @1043 + firpfbchr_crcf_print @1044 + firpfbchr_crcf_push @1045 + firpfbchr_crcf_reset @1046 + flattop @1047 + flexframegen_assemble @1048 + flexframegen_create @1049 + flexframegen_destroy @1050 + flexframegen_generate_header @1051 + flexframegen_generate_payload @1052 + flexframegen_generate_preamble @1053 + flexframegen_generate_symbol @1054 + flexframegen_generate_tail @1055 + flexframegen_getframelen @1056 + flexframegen_getprops @1057 + flexframegen_is_assembled @1058 + flexframegen_print @1059 + flexframegen_reconfigure @1060 + flexframegen_reset @1061 + flexframegen_set_header_len @1062 + flexframegen_set_header_props @1063 + flexframegen_setprops @1064 + flexframegen_write_samples @1065 + flexframegenprops_init_default @1066 + flexframesync_create @1067 + flexframesync_debug_disable @1068 + flexframesync_debug_enable @1069 + flexframesync_debug_print @1070 + flexframesync_decode_header @1071 + flexframesync_decode_header_soft @1072 + flexframesync_decode_payload_soft @1073 + flexframesync_destroy @1074 + flexframesync_execute @1075 + flexframesync_execute_rxheader @1076 + flexframesync_execute_rxpayload @1077 + flexframesync_execute_rxpreamble @1078 + flexframesync_execute_seekpn @1079 + flexframesync_get_framedatastats @1080 + flexframesync_is_frame_open @1081 + flexframesync_print @1082 + flexframesync_reset @1083 + flexframesync_reset_framedatastats @1084 + flexframesync_set_header_len @1085 + flexframesync_set_header_props @1086 + flexframesync_step @1087 + fpoly_bessel @1088 + fpoly_bessel_roots @1089 + fpoly_bessel_roots_orchard @1090 + fpoly_bessel_roots_orchard_recursion @1091 + framedatastats_print @1092 + framedatastats_reset @1093 + framegen64_copy @1094 + framegen64_create @1095 + framegen64_destroy @1096 + framegen64_execute @1097 + framegen64_print @1098 + framesync64_copy @1099 + framesync64_create @1100 + framesync64_debug_disable @1101 + framesync64_debug_enable @1102 + framesync64_debug_export @1103 + framesync64_debug_print @1104 + framesync64_destroy @1105 + framesync64_execute @1106 + framesync64_execute_rxpayload @1107 + framesync64_execute_rxpreamble @1108 + framesync64_execute_seekpn @1109 + framesync64_get_filename @1110 + framesync64_get_framedatastats @1111 + framesync64_get_num_files_exported @1112 + framesync64_get_prefix @1113 + framesync64_get_threshold @1114 + framesync64_print @1115 + framesync64_reset @1116 + framesync64_reset_framedatastats @1117 + framesync64_set_callback @1118 + framesync64_set_prefix @1119 + framesync64_set_threshold @1120 + framesync64_set_userdata @1121 + framesync64_step @1122 + framesyncstats_default @1123 DATA + framesyncstats_init_default @1124 + framesyncstats_print @1125 + freqdem_create @1126 + freqdem_demodulate @1127 + freqdem_demodulate_block @1128 + freqdem_destroy @1129 + freqdem_print @1130 + freqdem_reset @1131 + freqmod_create @1132 + freqmod_destroy @1133 + freqmod_modulate @1134 + freqmod_modulate_block @1135 + freqmod_print @1136 + freqmod_reset @1137 + fskdem_copy @1138 + fskdem_create @1139 + fskdem_demodulate @1140 + fskdem_destroy @1141 + fskdem_get_frequency_error @1142 + fskdem_get_symbol_energy @1143 + fskdem_print @1144 + fskdem_reset @1145 + fskframegen_assemble @1146 + fskframegen_create @1147 + fskframegen_destroy @1148 + fskframegen_encode_header @1149 + fskframegen_generate_header @1150 + fskframegen_generate_payload @1151 + fskframegen_generate_preamble @1152 + fskframegen_generate_symbol @1153 + fskframegen_generate_zeros @1154 + fskframegen_getframelen @1155 + fskframegen_print @1156 + fskframegen_reset @1157 + fskframegen_write_samples @1158 + fskframesync_create @1159 + fskframesync_debug_disable @1160 + fskframesync_debug_enable @1161 + fskframesync_debug_export @1162 + fskframesync_decode_header @1163 + fskframesync_destroy @1164 + fskframesync_execute @1165 + fskframesync_execute_block @1166 + fskframesync_execute_detectframe @1167 + fskframesync_execute_rxheader @1168 + fskframesync_execute_rxpayload @1169 + fskframesync_print @1170 + fskframesync_reset @1171 + fskmod_copy @1172 + fskmod_create @1173 + fskmod_destroy @1174 + fskmod_modulate @1175 + fskmod_print @1176 + fskmod_reset @1177 + gasearch_create @1178 + gasearch_create_advanced @1179 + gasearch_crossover @1180 + gasearch_destroy @1181 + gasearch_evaluate @1182 + gasearch_evolve @1183 + gasearch_getopt @1184 + gasearch_mutate @1185 + gasearch_print @1186 + gasearch_rank @1187 + gasearch_run @1188 + gasearch_set_mutation_rate @1189 + gasearch_set_population_size @1190 + gmskdem_copy @1191 + gmskdem_create @1192 + gmskdem_debug_print @1193 + gmskdem_demodulate @1194 + gmskdem_destroy @1195 + gmskdem_print @1196 + gmskdem_reset @1197 + gmskdem_set_eq_bw @1198 + gmskframegen_assemble @1199 + gmskframegen_assemble_default @1200 + gmskframegen_create @1201 + gmskframegen_create_set @1202 + gmskframegen_destroy @1203 + gmskframegen_encode_header @1204 + gmskframegen_gen_symbol @1205 + gmskframegen_getframelen @1206 + gmskframegen_is_assembled @1207 + gmskframegen_print @1208 + gmskframegen_reset @1209 + gmskframegen_set_header_len @1210 + gmskframegen_write @1211 + gmskframegen_write_header @1212 + gmskframegen_write_payload @1213 + gmskframegen_write_preamble @1214 + gmskframegen_write_samples @1215 + gmskframegen_write_tail @1216 + gmskframegen_write_zeros @1217 + gmskframesync_create @1218 + gmskframesync_create_set @1219 + gmskframesync_debug_disable @1220 + gmskframesync_debug_enable @1221 + gmskframesync_debug_print @1222 + gmskframesync_decode_header @1223 + gmskframesync_destroy @1224 + gmskframesync_execute @1225 + gmskframesync_execute_detectframe @1226 + gmskframesync_execute_rxheader @1227 + gmskframesync_execute_rxpayload @1228 + gmskframesync_execute_rxpreamble @1229 + gmskframesync_execute_sample @1230 + gmskframesync_get_framedatastats @1231 + gmskframesync_is_frame_open @1232 + gmskframesync_print @1233 + gmskframesync_pushpn @1234 + gmskframesync_reset @1235 + gmskframesync_reset_framedatastats @1236 + gmskframesync_set_header_len @1237 + gmskframesync_syncpn @1238 + gmskframesync_update_fi @1239 + gmskframesync_update_symsync @1240 + gmskmod_copy @1241 + gmskmod_create @1242 + gmskmod_destroy @1243 + gmskmod_modulate @1244 + gmskmod_print @1245 + gmskmod_reset @1246 + golay2412_Gt @1247 DATA + golay2412_H @1248 DATA + golay2412_P @1249 DATA + golay2412_matrix_mul @1250 + golay2412_parity_search @1251 + gradsearch_create @1252 + gradsearch_destroy @1253 + gradsearch_execute @1254 + gradsearch_gradient @1255 + gradsearch_linesearch @1256 + gradsearch_norm @1257 + gradsearch_print @1258 + gradsearch_step @1259 + gray_decode @1260 + gray_encode @1261 + hamming @1262 + hamming128_enc_gentab @1263 DATA + hamming74_dec_gentab @1264 DATA + hamming74_enc_gentab @1265 DATA + hamming84_dec_gentab @1266 DATA + hamming84_enc_gentab @1267 DATA + hann @1268 + icrandnf @1269 + iir_group_delay @1270 + iirdecim_cccf_copy @1271 + iirdecim_cccf_create @1272 + iirdecim_cccf_create_default @1273 + iirdecim_cccf_create_prototype @1274 + iirdecim_cccf_destroy @1275 + iirdecim_cccf_execute @1276 + iirdecim_cccf_execute_block @1277 + iirdecim_cccf_groupdelay @1278 + iirdecim_cccf_print @1279 + iirdecim_cccf_reset @1280 + iirdecim_crcf_copy @1281 + iirdecim_crcf_create @1282 + iirdecim_crcf_create_default @1283 + iirdecim_crcf_create_prototype @1284 + iirdecim_crcf_destroy @1285 + iirdecim_crcf_execute @1286 + iirdecim_crcf_execute_block @1287 + iirdecim_crcf_groupdelay @1288 + iirdecim_crcf_print @1289 + iirdecim_crcf_reset @1290 + iirdecim_rrrf_copy @1291 + iirdecim_rrrf_create @1292 + iirdecim_rrrf_create_default @1293 + iirdecim_rrrf_create_prototype @1294 + iirdecim_rrrf_destroy @1295 + iirdecim_rrrf_execute @1296 + iirdecim_rrrf_execute_block @1297 + iirdecim_rrrf_groupdelay @1298 + iirdecim_rrrf_print @1299 + iirdecim_rrrf_reset @1300 + iirdes_dzpk2sosf @1301 + iirdes_dzpk2tff @1302 + iirdes_dzpk_lp2bp @1303 + iirdes_dzpk_lp2hp @1304 + iirdes_freqprewarp @1305 + iirdes_isstable @1306 + iirdes_pll_active_PI @1307 + iirdes_pll_active_lag @1308 + iirfilt_cccf_copy @1309 + iirfilt_cccf_create @1310 + iirfilt_cccf_create_dc_blocker @1311 + iirfilt_cccf_create_differentiator @1312 + iirfilt_cccf_create_integrator @1313 + iirfilt_cccf_create_lowpass @1314 + iirfilt_cccf_create_pll @1315 + iirfilt_cccf_create_prototype @1316 + iirfilt_cccf_create_sos @1317 + iirfilt_cccf_destroy @1318 + iirfilt_cccf_execute @1319 + iirfilt_cccf_execute_block @1320 + iirfilt_cccf_execute_norm @1321 + iirfilt_cccf_execute_sos @1322 + iirfilt_cccf_freqresponse @1323 + iirfilt_cccf_get_length @1324 + iirfilt_cccf_get_psd @1325 + iirfilt_cccf_groupdelay @1326 + iirfilt_cccf_init @1327 + iirfilt_cccf_print @1328 + iirfilt_cccf_reset @1329 + iirfilt_crcf_copy @1330 + iirfilt_crcf_create @1331 + iirfilt_crcf_create_dc_blocker @1332 + iirfilt_crcf_create_differentiator @1333 + iirfilt_crcf_create_integrator @1334 + iirfilt_crcf_create_lowpass @1335 + iirfilt_crcf_create_pll @1336 + iirfilt_crcf_create_prototype @1337 + iirfilt_crcf_create_sos @1338 + iirfilt_crcf_destroy @1339 + iirfilt_crcf_execute @1340 + iirfilt_crcf_execute_block @1341 + iirfilt_crcf_execute_norm @1342 + iirfilt_crcf_execute_sos @1343 + iirfilt_crcf_freqresponse @1344 + iirfilt_crcf_get_length @1345 + iirfilt_crcf_get_psd @1346 + iirfilt_crcf_groupdelay @1347 + iirfilt_crcf_init @1348 + iirfilt_crcf_print @1349 + iirfilt_crcf_reset @1350 + iirfilt_rrrf_copy @1351 + iirfilt_rrrf_create @1352 + iirfilt_rrrf_create_dc_blocker @1353 + iirfilt_rrrf_create_differentiator @1354 + iirfilt_rrrf_create_integrator @1355 + iirfilt_rrrf_create_lowpass @1356 + iirfilt_rrrf_create_pll @1357 + iirfilt_rrrf_create_prototype @1358 + iirfilt_rrrf_create_sos @1359 + iirfilt_rrrf_destroy @1360 + iirfilt_rrrf_execute @1361 + iirfilt_rrrf_execute_block @1362 + iirfilt_rrrf_execute_norm @1363 + iirfilt_rrrf_execute_sos @1364 + iirfilt_rrrf_freqresponse @1365 + iirfilt_rrrf_get_length @1366 + iirfilt_rrrf_get_psd @1367 + iirfilt_rrrf_groupdelay @1368 + iirfilt_rrrf_init @1369 + iirfilt_rrrf_print @1370 + iirfilt_rrrf_reset @1371 + iirfiltsos_cccf_copy @1372 + iirfiltsos_cccf_create @1373 + iirfiltsos_cccf_destroy @1374 + iirfiltsos_cccf_execute @1375 + iirfiltsos_cccf_execute_df1 @1376 + iirfiltsos_cccf_execute_df2 @1377 + iirfiltsos_cccf_groupdelay @1378 + iirfiltsos_cccf_print @1379 + iirfiltsos_cccf_reset @1380 + iirfiltsos_cccf_set_coefficients @1381 + iirfiltsos_crcf_copy @1382 + iirfiltsos_crcf_create @1383 + iirfiltsos_crcf_destroy @1384 + iirfiltsos_crcf_execute @1385 + iirfiltsos_crcf_execute_df1 @1386 + iirfiltsos_crcf_execute_df2 @1387 + iirfiltsos_crcf_groupdelay @1388 + iirfiltsos_crcf_print @1389 + iirfiltsos_crcf_reset @1390 + iirfiltsos_crcf_set_coefficients @1391 + iirfiltsos_rrrf_copy @1392 + iirfiltsos_rrrf_create @1393 + iirfiltsos_rrrf_destroy @1394 + iirfiltsos_rrrf_execute @1395 + iirfiltsos_rrrf_execute_df1 @1396 + iirfiltsos_rrrf_execute_df2 @1397 + iirfiltsos_rrrf_groupdelay @1398 + iirfiltsos_rrrf_print @1399 + iirfiltsos_rrrf_reset @1400 + iirfiltsos_rrrf_set_coefficients @1401 + iirhilbf_c2r_execute @1402 + iirhilbf_c2r_execute_block @1403 + iirhilbf_copy @1404 + iirhilbf_create @1405 + iirhilbf_create_default @1406 + iirhilbf_decim_execute @1407 + iirhilbf_decim_execute_block @1408 + iirhilbf_destroy @1409 + iirhilbf_interp_execute @1410 + iirhilbf_interp_execute_block @1411 + iirhilbf_print @1412 + iirhilbf_r2c_execute @1413 + iirhilbf_r2c_execute_block @1414 + iirhilbf_reset @1415 + iirinterp_cccf_copy @1416 + iirinterp_cccf_create @1417 + iirinterp_cccf_create_default @1418 + iirinterp_cccf_create_prototype @1419 + iirinterp_cccf_destroy @1420 + iirinterp_cccf_execute @1421 + iirinterp_cccf_execute_block @1422 + iirinterp_cccf_groupdelay @1423 + iirinterp_cccf_print @1424 + iirinterp_cccf_reset @1425 + iirinterp_crcf_copy @1426 + iirinterp_crcf_create @1427 + iirinterp_crcf_create_default @1428 + iirinterp_crcf_create_prototype @1429 + iirinterp_crcf_destroy @1430 + iirinterp_crcf_execute @1431 + iirinterp_crcf_execute_block @1432 + iirinterp_crcf_groupdelay @1433 + iirinterp_crcf_print @1434 + iirinterp_crcf_reset @1435 + iirinterp_rrrf_copy @1436 + iirinterp_rrrf_create @1437 + iirinterp_rrrf_create_default @1438 + iirinterp_rrrf_create_prototype @1439 + iirinterp_rrrf_destroy @1440 + iirinterp_rrrf_execute @1441 + iirinterp_rrrf_execute_block @1442 + iirinterp_rrrf_groupdelay @1443 + iirinterp_rrrf_print @1444 + iirinterp_rrrf_reset @1445 + interleaver_copy @1446 + interleaver_create @1447 + interleaver_decode @1448 + interleaver_decode_soft @1449 + interleaver_destroy @1450 + interleaver_encode @1451 + interleaver_encode_soft @1452 + interleaver_permute @1453 + interleaver_permute_mask @1454 + interleaver_permute_mask_soft @1455 + interleaver_permute_soft @1456 + interleaver_print @1457 + interleaver_set_depth @1458 + kaiser @1459 + kaiser_beta_As @1460 + kbd @1461 + kbd_window @1462 + landenf @1463 + liquid_MarcumQ1f @1464 + liquid_MarcumQf @1465 + liquid_Qf @1466 + liquid_apsk128 @1467 DATA + liquid_apsk16 @1468 DATA + liquid_apsk256 @1469 DATA + liquid_apsk32 @1470 DATA + liquid_apsk4 @1471 DATA + liquid_apsk64 @1472 DATA + liquid_apsk8 @1473 DATA + liquid_asechf @1474 + liquid_bdotprod @1475 + liquid_besseli0f @1476 + liquid_besselif @1477 + liquid_besselj0f @1478 + liquid_besseljf @1479 + liquid_blackmanharris @1480 + liquid_blackmanharris7 @1481 + liquid_c_leading_zeros @1482 DATA + liquid_c_ones @1483 DATA + liquid_c_ones_mod2 @1484 DATA + liquid_cacosf @1485 + liquid_cargf_approx @1486 + liquid_casinf @1487 + liquid_catanf @1488 + liquid_cexpf @1489 + liquid_clogf @1490 + liquid_cosf @1491 + liquid_count_leading_zeros @1492 + liquid_count_ones @1493 + liquid_count_ones_mod2 @1494 + liquid_cplxpair @1495 + liquid_cplxpair_cleanup @1496 + liquid_csqrtf @1497 + liquid_error_config_fl @1498 + liquid_error_fl @1499 + liquid_error_info @1500 + liquid_error_str @1501 DATA + liquid_expf @1502 + liquid_factor @1503 + liquid_factorialf @1504 + liquid_fft_estimate_method @1505 + liquid_filter_autocorr @1506 + liquid_filter_crosscorr @1507 + liquid_filter_energy @1508 + liquid_filter_isi @1509 + liquid_firdes_arkaiser @1510 + liquid_firdes_doppler @1511 + liquid_firdes_farcsech @1512 + liquid_firdes_farcsech_freqresponse @1513 + liquid_firdes_fexp @1514 + liquid_firdes_fexp_freqresponse @1515 + liquid_firdes_fnyquist @1516 + liquid_firdes_fsech @1517 + liquid_firdes_fsech_freqresponse @1518 + liquid_firdes_gmskrx @1519 + liquid_firdes_gmsktx @1520 + liquid_firdes_hM3 @1521 + liquid_firdes_kaiser @1522 + liquid_firdes_notch @1523 + liquid_firdes_prototype @1524 + liquid_firdes_rcos @1525 + liquid_firdes_rfarcsech @1526 + liquid_firdes_rfexp @1527 + liquid_firdes_rfsech @1528 + liquid_firdes_rkaiser @1529 + liquid_firdes_rkaiser_bisection @1530 + liquid_firdes_rkaiser_internal_isi @1531 + liquid_firdes_rkaiser_quadratic @1532 + liquid_firdes_rrcos @1533 + liquid_firdes_windowf @1534 + liquid_firdespm_halfband_as @1535 + liquid_firdespm_halfband_ft @1536 + liquid_firfilt_type_str @1537 DATA + liquid_flattop @1538 + liquid_freqrespcf @1539 + liquid_freqrespf @1540 + liquid_gammaf @1541 + liquid_gcd @1542 + liquid_get_scale @1543 + liquid_getopt_str2crc @1544 + liquid_getopt_str2fec @1545 + liquid_getopt_str2firfilt @1546 + liquid_getopt_str2mod @1547 + liquid_getopt_str2window @1548 + liquid_hamming @1549 + liquid_hann @1550 + liquid_iirdes @1551 + liquid_invgauss @1552 + liquid_is_prime @1553 + liquid_kaiser @1554 + liquid_kbd @1555 + liquid_kbd_window @1556 + liquid_lbcircshift @1557 + liquid_lbshift @1558 + liquid_lcircshift @1559 + liquid_levinson @1560 + liquid_libversion @1561 + liquid_libversion_number @1562 + liquid_lnbesselif @1563 + liquid_lngammaf @1564 + liquid_lnlowergammaf @1565 + liquid_lnuppergammaf @1566 + liquid_logf @1567 + liquid_lowergammaf @1568 + liquid_lpc @1569 + liquid_lshift @1570 + liquid_malloc_copy @1571 + liquid_modem_is_apsk @1572 + liquid_modem_is_ask @1573 + liquid_modem_is_dpsk @1574 + liquid_modem_is_psk @1575 + liquid_modem_is_qam @1576 + liquid_modpow @1577 + liquid_msb_index @1578 + liquid_multimodal @1579 + liquid_nchoosek @1580 + liquid_nextpow2 @1581 + liquid_pack_array @1582 + liquid_pack_bytes @1583 + liquid_pack_soft_bits @1584 + liquid_poly_findroots_bairstow @1585 + liquid_poly_findroots_bairstow_persistent @1586 + liquid_poly_findroots_bairstow_recursion @1587 + liquid_poly_findroots_durandkerner @1588 + liquid_poly_sort_roots_compare @1589 + liquid_primitive_root @1590 + liquid_primitive_root_prime @1591 + liquid_print_bitstring @1592 + liquid_print_crc_schemes @1593 + liquid_print_fec_schemes @1594 + liquid_print_modulation_schemes @1595 + liquid_print_windows @1596 + liquid_rbcircshift @1597 + liquid_rbshift @1598 + liquid_rcircshift @1599 + liquid_rcostaper_window @1600 + liquid_rcostaper_windowf @1601 + liquid_repack_bytes @1602 + liquid_reverse_byte @1603 + liquid_reverse_byte_gentab @1604 DATA + liquid_reverse_uint16 @1605 + liquid_reverse_uint24 @1606 + liquid_reverse_uint32 @1607 + liquid_rosenbrock @1608 + liquid_rshift @1609 + liquid_sincosf @1610 + liquid_sinf @1611 + liquid_spiral @1612 + liquid_sumsqcf @1613 + liquid_sumsqf @1614 + liquid_tanf @1615 + liquid_totient @1616 + liquid_triangular @1617 + liquid_unique_factor @1618 + liquid_unpack_array @1619 + liquid_unpack_bytes @1620 + liquid_unpack_soft_bits @1621 + liquid_unwrap_phase @1622 + liquid_unwrap_phase2 @1623 + liquid_uppergammaf @1624 + liquid_vectorcf_abs @1625 + liquid_vectorcf_add @1626 + liquid_vectorcf_addscalar @1627 + liquid_vectorcf_carg @1628 + liquid_vectorcf_cexpj @1629 + liquid_vectorcf_mul @1630 + liquid_vectorcf_mulscalar @1631 + liquid_vectorcf_norm @1632 + liquid_vectorcf_normalize @1633 + liquid_vectorf_abs @1634 + liquid_vectorf_add @1635 + liquid_vectorf_addscalar @1636 + liquid_vectorf_carg @1637 + liquid_vectorf_cexpj @1638 + liquid_vectorf_mul @1639 + liquid_vectorf_mulscalar @1640 + liquid_vectorf_norm @1641 + liquid_vectorf_normalize @1642 + liquid_version @1643 DATA + liquid_window_str @1644 DATA + liquid_windowf @1645 + matrix_add @1646 + matrix_aug @1647 + matrix_cgsolve @1648 + matrix_chol @1649 + matrix_det @1650 + matrix_det2x2 @1651 + matrix_div @1652 + matrix_eye @1653 + matrix_gjelim @1654 + matrix_gramschmidt @1655 + matrix_hermitian @1656 + matrix_hermitian_mul @1657 + matrix_inv @1658 + matrix_linsolve @1659 + matrix_ludecomp_crout @1660 + matrix_ludecomp_doolittle @1661 + matrix_mul @1662 + matrix_mul_hermitian @1663 + matrix_mul_transpose @1664 + matrix_ones @1665 + matrix_pdiv @1666 + matrix_pivot @1667 + matrix_pmul @1668 + matrix_print @1669 + matrix_proj @1670 + matrix_qrdecomp_gramschmidt @1671 + matrix_sub @1672 + matrix_swaprows @1673 + matrix_trans @1674 + matrix_transpose_mul @1675 + matrix_zeros @1676 + matrixc_add @1677 + matrixc_aug @1678 + matrixc_cgsolve @1679 + matrixc_chol @1680 + matrixc_det @1681 + matrixc_det2x2 @1682 + matrixc_div @1683 + matrixc_eye @1684 + matrixc_gjelim @1685 + matrixc_gramschmidt @1686 + matrixc_hermitian @1687 + matrixc_hermitian_mul @1688 + matrixc_inv @1689 + matrixc_linsolve @1690 + matrixc_ludecomp_crout @1691 + matrixc_ludecomp_doolittle @1692 + matrixc_mul @1693 + matrixc_mul_hermitian @1694 + matrixc_mul_transpose @1695 + matrixc_ones @1696 + matrixc_pdiv @1697 + matrixc_pivot @1698 + matrixc_pmul @1699 + matrixc_print @1700 + matrixc_proj @1701 + matrixc_qrdecomp_gramschmidt @1702 + matrixc_sub @1703 + matrixc_swaprows @1704 + matrixc_trans @1705 + matrixc_transpose_mul @1706 + matrixc_zeros @1707 + matrixcf_add @1708 + matrixcf_aug @1709 + matrixcf_cgsolve @1710 + matrixcf_chol @1711 + matrixcf_det @1712 + matrixcf_det2x2 @1713 + matrixcf_div @1714 + matrixcf_eye @1715 + matrixcf_gjelim @1716 + matrixcf_gramschmidt @1717 + matrixcf_hermitian @1718 + matrixcf_hermitian_mul @1719 + matrixcf_inv @1720 + matrixcf_linsolve @1721 + matrixcf_ludecomp_crout @1722 + matrixcf_ludecomp_doolittle @1723 + matrixcf_mul @1724 + matrixcf_mul_hermitian @1725 + matrixcf_mul_transpose @1726 + matrixcf_ones @1727 + matrixcf_pdiv @1728 + matrixcf_pivot @1729 + matrixcf_pmul @1730 + matrixcf_print @1731 + matrixcf_proj @1732 + matrixcf_qrdecomp_gramschmidt @1733 + matrixcf_sub @1734 + matrixcf_swaprows @1735 + matrixcf_trans @1736 + matrixcf_transpose_mul @1737 + matrixcf_zeros @1738 + matrixf_add @1739 + matrixf_aug @1740 + matrixf_cgsolve @1741 + matrixf_chol @1742 + matrixf_det @1743 + matrixf_det2x2 @1744 + matrixf_div @1745 + matrixf_eye @1746 + matrixf_gjelim @1747 + matrixf_gramschmidt @1748 + matrixf_hermitian @1749 + matrixf_hermitian_mul @1750 + matrixf_inv @1751 + matrixf_linsolve @1752 + matrixf_ludecomp_crout @1753 + matrixf_ludecomp_doolittle @1754 + matrixf_mul @1755 + matrixf_mul_hermitian @1756 + matrixf_mul_transpose @1757 + matrixf_ones @1758 + matrixf_pdiv @1759 + matrixf_pivot @1760 + matrixf_pmul @1761 + matrixf_print @1762 + matrixf_proj @1763 + matrixf_qrdecomp_gramschmidt @1764 + matrixf_sub @1765 + matrixf_swaprows @1766 + matrixf_trans @1767 + matrixf_transpose_mul @1768 + matrixf_zeros @1769 + modem_arb128opt @1770 DATA + modem_arb16opt @1771 DATA + modem_arb256opt @1772 DATA + modem_arb32opt @1773 DATA + modem_arb64opt @1774 DATA + modem_arb_V29 @1775 DATA + modem_arb_sqam128 @1776 DATA + modem_arb_sqam32 @1777 DATA + modem_arb_vt64 @1778 DATA + modem_create @1779 + modem_create_arbitrary @1780 + modem_demodulate @1781 + modem_demodulate_soft @1782 + modem_destroy @1783 + modem_gen_rand_sym @1784 + modem_get_bps @1785 + modem_get_demodulator_evm @1786 + modem_get_demodulator_phase_error @1787 + modem_get_demodulator_sample @1788 + modem_get_scheme @1789 + modem_modulate @1790 + modem_print @1791 + modem_recreate @1792 + modem_reset @1793 + modemcf_arb_balance_iq @1794 + modemcf_arb_init @1795 + modemcf_arb_init_file @1796 + modemcf_arb_scale @1797 + modemcf_copy @1798 + modemcf_create @1799 + modemcf_create_V29 @1800 + modemcf_create_apsk @1801 + modemcf_create_arb @1802 + modemcf_create_arb128opt @1803 + modemcf_create_arb16opt @1804 + modemcf_create_arb256opt @1805 + modemcf_create_arb32opt @1806 + modemcf_create_arb64opt @1807 + modemcf_create_arb64vt @1808 + modemcf_create_arbitrary @1809 + modemcf_create_ask @1810 + modemcf_create_bpsk @1811 + modemcf_create_dpsk @1812 + modemcf_create_ook @1813 + modemcf_create_pi4dqpsk @1814 + modemcf_create_psk @1815 + modemcf_create_qam @1816 + modemcf_create_qpsk @1817 + modemcf_create_sqam128 @1818 + modemcf_create_sqam32 @1819 + modemcf_demodsoft_gentab @1820 + modemcf_demodulate @1821 + modemcf_demodulate_apsk @1822 + modemcf_demodulate_arb @1823 + modemcf_demodulate_ask @1824 + modemcf_demodulate_bpsk @1825 + modemcf_demodulate_dpsk @1826 + modemcf_demodulate_linear_array @1827 + modemcf_demodulate_linear_array_ref @1828 + modemcf_demodulate_ook @1829 + modemcf_demodulate_pi4dqpsk @1830 + modemcf_demodulate_psk @1831 + modemcf_demodulate_qam @1832 + modemcf_demodulate_qpsk @1833 + modemcf_demodulate_soft @1834 + modemcf_demodulate_soft_arb @1835 + modemcf_demodulate_soft_bpsk @1836 + modemcf_demodulate_soft_pi4dqpsk @1837 + modemcf_demodulate_soft_qpsk @1838 + modemcf_demodulate_soft_table @1839 + modemcf_demodulate_sqam128 @1840 + modemcf_demodulate_sqam32 @1841 + modemcf_destroy @1842 + modemcf_gen_rand_sym @1843 + modemcf_get_bps @1844 + modemcf_get_demodulator_evm @1845 + modemcf_get_demodulator_phase_error @1846 + modemcf_get_demodulator_sample @1847 + modemcf_get_scheme @1848 + modemcf_init @1849 + modemcf_init_map @1850 + modemcf_modulate @1851 + modemcf_modulate_apsk @1852 + modemcf_modulate_arb @1853 + modemcf_modulate_ask @1854 + modemcf_modulate_bpsk @1855 + modemcf_modulate_dpsk @1856 + modemcf_modulate_map @1857 + modemcf_modulate_ook @1858 + modemcf_modulate_pi4dqpsk @1859 + modemcf_modulate_psk @1860 + modemcf_modulate_qam @1861 + modemcf_modulate_qpsk @1862 + modemcf_modulate_sqam128 @1863 + modemcf_modulate_sqam32 @1864 + modemcf_print @1865 + modemcf_recreate @1866 + modemcf_reset @1867 + modulation_types @1868 DATA + msequence_advance @1869 + msequence_create @1870 + msequence_create_default @1871 + msequence_create_genpoly @1872 + msequence_default @1873 DATA + msequence_destroy @1874 + msequence_generate_symbol @1875 + msequence_get_length @1876 + msequence_get_state @1877 + msequence_print @1878 + msequence_reset @1879 + msequence_set_state @1880 + msourcecf_add_chirp @1881 + msourcecf_add_fsk @1882 + msourcecf_add_gmsk @1883 + msourcecf_add_modem @1884 + msourcecf_add_noise @1885 + msourcecf_add_source @1886 + msourcecf_add_tone @1887 + msourcecf_add_user @1888 + msourcecf_copy @1889 + msourcecf_create @1890 + msourcecf_create_default @1891 + msourcecf_destroy @1892 + msourcecf_disable @1893 + msourcecf_enable @1894 + msourcecf_find @1895 + msourcecf_generate @1896 + msourcecf_get_frequency @1897 + msourcecf_get_gain @1898 + msourcecf_get_num_samples @1899 + msourcecf_get_num_samples_source @1900 + msourcecf_get_source @1901 + msourcecf_print @1902 + msourcecf_remove @1903 + msourcecf_reset @1904 + msourcecf_set_frequency @1905 + msourcecf_set_gain @1906 + msourcecf_write_samples @1907 + msresamp2_cccf_copy @1908 + msresamp2_cccf_create @1909 + msresamp2_cccf_decim_execute @1910 + msresamp2_cccf_destroy @1911 + msresamp2_cccf_execute @1912 + msresamp2_cccf_get_delay @1913 + msresamp2_cccf_get_num_stages @1914 + msresamp2_cccf_get_rate @1915 + msresamp2_cccf_get_type @1916 + msresamp2_cccf_interp_execute @1917 + msresamp2_cccf_print @1918 + msresamp2_cccf_reset @1919 + msresamp2_crcf_copy @1920 + msresamp2_crcf_create @1921 + msresamp2_crcf_decim_execute @1922 + msresamp2_crcf_destroy @1923 + msresamp2_crcf_execute @1924 + msresamp2_crcf_get_delay @1925 + msresamp2_crcf_get_num_stages @1926 + msresamp2_crcf_get_rate @1927 + msresamp2_crcf_get_type @1928 + msresamp2_crcf_interp_execute @1929 + msresamp2_crcf_print @1930 + msresamp2_crcf_reset @1931 + msresamp2_rrrf_copy @1932 + msresamp2_rrrf_create @1933 + msresamp2_rrrf_decim_execute @1934 + msresamp2_rrrf_destroy @1935 + msresamp2_rrrf_execute @1936 + msresamp2_rrrf_get_delay @1937 + msresamp2_rrrf_get_num_stages @1938 + msresamp2_rrrf_get_rate @1939 + msresamp2_rrrf_get_type @1940 + msresamp2_rrrf_interp_execute @1941 + msresamp2_rrrf_print @1942 + msresamp2_rrrf_reset @1943 + msresamp_cccf_copy @1944 + msresamp_cccf_create @1945 + msresamp_cccf_decim_execute @1946 + msresamp_cccf_destroy @1947 + msresamp_cccf_execute @1948 + msresamp_cccf_get_delay @1949 + msresamp_cccf_get_num_output @1950 + msresamp_cccf_get_rate @1951 + msresamp_cccf_interp_execute @1952 + msresamp_cccf_print @1953 + msresamp_cccf_reset @1954 + msresamp_crcf_copy @1955 + msresamp_crcf_create @1956 + msresamp_crcf_decim_execute @1957 + msresamp_crcf_destroy @1958 + msresamp_crcf_execute @1959 + msresamp_crcf_get_delay @1960 + msresamp_crcf_get_num_output @1961 + msresamp_crcf_get_rate @1962 + msresamp_crcf_interp_execute @1963 + msresamp_crcf_print @1964 + msresamp_crcf_reset @1965 + msresamp_rrrf_copy @1966 + msresamp_rrrf_create @1967 + msresamp_rrrf_decim_execute @1968 + msresamp_rrrf_destroy @1969 + msresamp_rrrf_execute @1970 + msresamp_rrrf_get_delay @1971 + msresamp_rrrf_get_num_output @1972 + msresamp_rrrf_get_rate @1973 + msresamp_rrrf_interp_execute @1974 + msresamp_rrrf_print @1975 + msresamp_rrrf_reset @1976 + nco_crcf_adjust_frequency @1977 + nco_crcf_adjust_phase @1978 + nco_crcf_cexpf @1979 + nco_crcf_constrain @1980 + nco_crcf_copy @1981 + nco_crcf_cos @1982 + nco_crcf_create @1983 + nco_crcf_destroy @1984 + nco_crcf_get_frequency @1985 + nco_crcf_get_phase @1986 + nco_crcf_index @1987 + nco_crcf_mix_block_down @1988 + nco_crcf_mix_block_up @1989 + nco_crcf_mix_down @1990 + nco_crcf_mix_up @1991 + nco_crcf_pll_reset @1992 + nco_crcf_pll_set_bandwidth @1993 + nco_crcf_pll_step @1994 + nco_crcf_print @1995 + nco_crcf_reset @1996 + nco_crcf_set_frequency @1997 + nco_crcf_set_phase @1998 + nco_crcf_sin @1999 + nco_crcf_sincos @2000 + nco_crcf_step @2001 + ofdmflexframegen_assemble @2002 + ofdmflexframegen_create @2003 + ofdmflexframegen_destroy @2004 + ofdmflexframegen_encode_header @2005 + ofdmflexframegen_gen_S0a @2006 + ofdmflexframegen_gen_S0b @2007 + ofdmflexframegen_gen_S1 @2008 + ofdmflexframegen_gen_header @2009 + ofdmflexframegen_gen_payload @2010 + ofdmflexframegen_gen_symbol @2011 + ofdmflexframegen_gen_tail @2012 + ofdmflexframegen_gen_zeros @2013 + ofdmflexframegen_getframelen @2014 + ofdmflexframegen_getprops @2015 + ofdmflexframegen_is_assembled @2016 + ofdmflexframegen_modulate_header @2017 + ofdmflexframegen_print @2018 + ofdmflexframegen_reconfigure @2019 + ofdmflexframegen_reset @2020 + ofdmflexframegen_set_header_len @2021 + ofdmflexframegen_set_header_props @2022 + ofdmflexframegen_setprops @2023 + ofdmflexframegen_write @2024 + ofdmflexframegenprops_init_default @2025 + ofdmflexframesync_create @2026 + ofdmflexframesync_debug_disable @2027 + ofdmflexframesync_debug_enable @2028 + ofdmflexframesync_debug_print @2029 + ofdmflexframesync_decode_header @2030 + ofdmflexframesync_decode_header_soft @2031 + ofdmflexframesync_decode_payload_soft @2032 + ofdmflexframesync_destroy @2033 + ofdmflexframesync_execute @2034 + ofdmflexframesync_get_cfo @2035 + ofdmflexframesync_get_framedatastats @2036 + ofdmflexframesync_get_rssi @2037 + ofdmflexframesync_internal_callback @2038 + ofdmflexframesync_is_frame_open @2039 + ofdmflexframesync_print @2040 + ofdmflexframesync_reset @2041 + ofdmflexframesync_reset_framedatastats @2042 + ofdmflexframesync_rxheader @2043 + ofdmflexframesync_rxpayload @2044 + ofdmflexframesync_set_callback @2045 + ofdmflexframesync_set_cfo @2046 + ofdmflexframesync_set_header_len @2047 + ofdmflexframesync_set_header_props @2048 + ofdmflexframesync_set_userdata @2049 + ofdmframe_init_S0 @2050 + ofdmframe_init_S1 @2051 + ofdmframe_init_default_sctype @2052 + ofdmframe_init_sctype_range @2053 + ofdmframe_print_sctype @2054 + ofdmframe_validate_sctype @2055 + ofdmframegen_create @2056 + ofdmframegen_destroy @2057 + ofdmframegen_gensymbol @2058 + ofdmframegen_print @2059 + ofdmframegen_reset @2060 + ofdmframegen_write_S0a @2061 + ofdmframegen_write_S0b @2062 + ofdmframegen_write_S1 @2063 + ofdmframegen_writesymbol @2064 + ofdmframegen_writetail @2065 + ofdmframesync_S0_metrics @2066 + ofdmframesync_create @2067 + ofdmframesync_debug_disable @2068 + ofdmframesync_debug_enable @2069 + ofdmframesync_debug_print @2070 + ofdmframesync_destroy @2071 + ofdmframesync_estimate_eqgain @2072 + ofdmframesync_estimate_eqgain_poly @2073 + ofdmframesync_estimate_gain_S0 @2074 + ofdmframesync_estimate_gain_S1 @2075 + ofdmframesync_execute @2076 + ofdmframesync_execute_S0a @2077 + ofdmframesync_execute_S0b @2078 + ofdmframesync_execute_S1 @2079 + ofdmframesync_execute_rxsymbols @2080 + ofdmframesync_execute_seekplcp @2081 + ofdmframesync_get_cfo @2082 + ofdmframesync_get_rssi @2083 + ofdmframesync_is_frame_open @2084 + ofdmframesync_print @2085 + ofdmframesync_reset @2086 + ofdmframesync_rxsymbol @2087 + ofdmframesync_set_cfo @2088 + optim_sort @2089 + optim_threshold_switch @2090 + ordfilt_rrrf_copy @2091 + ordfilt_rrrf_create @2092 + ordfilt_rrrf_create_medfilt @2093 + ordfilt_rrrf_destroy @2094 + ordfilt_rrrf_execute @2095 + ordfilt_rrrf_execute_block @2096 + ordfilt_rrrf_execute_one @2097 + ordfilt_rrrf_print @2098 + ordfilt_rrrf_push @2099 + ordfilt_rrrf_reset @2100 + ordfilt_rrrf_write @2101 + ordfilt_sort_compf @2102 + packetizer_compute_dec_msg_len @2103 + packetizer_compute_enc_msg_len @2104 + packetizer_copy @2105 + packetizer_create @2106 + packetizer_decode @2107 + packetizer_decode_soft @2108 + packetizer_destroy @2109 + packetizer_encode @2110 + packetizer_get_crc @2111 + packetizer_get_dec_msg_len @2112 + packetizer_get_enc_msg_len @2113 + packetizer_get_fec0 @2114 + packetizer_get_fec1 @2115 + packetizer_print @2116 + packetizer_realloc_buffers @2117 + packetizer_recreate @2118 + poly_expandbinomial @2119 + poly_expandbinomial_pm @2120 + poly_expandroots @2121 + poly_expandroots2 @2122 + poly_findroots @2123 + poly_fit @2124 + poly_fit_lagrange @2125 + poly_fit_lagrange_barycentric @2126 + poly_interp_lagrange @2127 + poly_mul @2128 + poly_val @2129 + poly_val_lagrange_barycentric @2130 + polyc_expandbinomial @2131 + polyc_expandbinomial_pm @2132 + polyc_expandroots @2133 + polyc_expandroots2 @2134 + polyc_findroots @2135 + polyc_fit @2136 + polyc_fit_lagrange @2137 + polyc_fit_lagrange_barycentric @2138 + polyc_interp_lagrange @2139 + polyc_mul @2140 + polyc_val @2141 + polyc_val_lagrange_barycentric @2142 + polycf_expandbinomial @2143 + polycf_expandbinomial_pm @2144 + polycf_expandroots @2145 + polycf_expandroots2 @2146 + polycf_findroots @2147 + polycf_fit @2148 + polycf_fit_lagrange @2149 + polycf_fit_lagrange_barycentric @2150 + polycf_interp_lagrange @2151 + polycf_mul @2152 + polycf_val @2153 + polycf_val_lagrange_barycentric @2154 + polyf_expandbinomial @2155 + polyf_expandbinomial_pm @2156 + polyf_expandroots @2157 + polyf_expandroots2 @2158 + polyf_findroots @2159 + polyf_fit @2160 + polyf_fit_lagrange @2161 + polyf_fit_lagrange_barycentric @2162 + polyf_interp_lagrange @2163 + polyf_mul @2164 + polyf_val @2165 + polyf_val_lagrange_barycentric @2166 + presync_cccf_correlate @2167 + presync_cccf_create @2168 + presync_cccf_destroy @2169 + presync_cccf_execute @2170 + presync_cccf_print @2171 + presync_cccf_push @2172 + presync_cccf_reset @2173 + qdetector_cccf_copy @2174 + qdetector_cccf_create @2175 + qdetector_cccf_create_cpfsk @2176 + qdetector_cccf_create_gmsk @2177 + qdetector_cccf_create_linear @2178 + qdetector_cccf_destroy @2179 + qdetector_cccf_execute @2180 + qdetector_cccf_execute_align @2181 + qdetector_cccf_execute_seek @2182 + qdetector_cccf_get_buf_len @2183 + qdetector_cccf_get_dphi @2184 + qdetector_cccf_get_gamma @2185 + qdetector_cccf_get_phi @2186 + qdetector_cccf_get_rxy @2187 + qdetector_cccf_get_seq_len @2188 + qdetector_cccf_get_sequence @2189 + qdetector_cccf_get_tau @2190 + qdetector_cccf_get_threshold @2191 + qdetector_cccf_print @2192 + qdetector_cccf_reset @2193 + qdetector_cccf_set_range @2194 + qdetector_cccf_set_threshold @2195 + qnsearch_compute_Hessian @2196 + qnsearch_compute_gradient @2197 + qnsearch_create @2198 + qnsearch_destroy @2199 + qnsearch_normalize_gradient @2200 + qnsearch_print @2201 + qnsearch_reset @2202 + qnsearch_run @2203 + qnsearch_step @2204 + qpacketmodem_configure @2205 + qpacketmodem_copy @2206 + qpacketmodem_create @2207 + qpacketmodem_decode @2208 + qpacketmodem_decode_bits @2209 + qpacketmodem_decode_soft @2210 + qpacketmodem_decode_soft_payload @2211 + qpacketmodem_decode_soft_sym @2212 + qpacketmodem_decode_syms @2213 + qpacketmodem_destroy @2214 + qpacketmodem_encode @2215 + qpacketmodem_encode_syms @2216 + qpacketmodem_get_crc @2217 + qpacketmodem_get_demodulator_evm @2218 + qpacketmodem_get_demodulator_phase_error @2219 + qpacketmodem_get_fec0 @2220 + qpacketmodem_get_fec1 @2221 + qpacketmodem_get_frame_len @2222 + qpacketmodem_get_modscheme @2223 + qpacketmodem_get_payload_len @2224 + qpacketmodem_print @2225 + qpacketmodem_reset @2226 + qpilot_frame_len @2227 + qpilot_num_pilots @2228 + qpilotgen_copy @2229 + qpilotgen_create @2230 + qpilotgen_destroy @2231 + qpilotgen_execute @2232 + qpilotgen_get_frame_len @2233 + qpilotgen_print @2234 + qpilotgen_recreate @2235 + qpilotgen_reset @2236 + qpilotsync_copy @2237 + qpilotsync_create @2238 + qpilotsync_destroy @2239 + qpilotsync_execute @2240 + qpilotsync_get_dphi @2241 + qpilotsync_get_evm @2242 + qpilotsync_get_frame_len @2243 + qpilotsync_get_gain @2244 + qpilotsync_get_phi @2245 + qpilotsync_print @2246 + qpilotsync_recreate @2247 + qpilotsync_reset @2248 + qs1dsearch_copy @2249 + qs1dsearch_create @2250 + qs1dsearch_destroy @2251 + qs1dsearch_execute @2252 + qs1dsearch_get_num_steps @2253 + qs1dsearch_get_opt_u @2254 + qs1dsearch_get_opt_v @2255 + qs1dsearch_init @2256 + qs1dsearch_init_bounds @2257 + qs1dsearch_init_direction @2258 + qs1dsearch_print @2259 + qs1dsearch_reset @2260 + qs1dsearch_step @2261 + qsourcecf_copy @2262 + qsourcecf_create @2263 + qsourcecf_destroy @2264 + qsourcecf_disable @2265 + qsourcecf_enable @2266 + qsourcecf_generate @2267 + qsourcecf_generate_into @2268 + qsourcecf_get_frequency @2269 + qsourcecf_get_frequency_index @2270 + qsourcecf_get_gain @2271 + qsourcecf_get_id @2272 + qsourcecf_get_num_samples @2273 + qsourcecf_init_chirp @2274 + qsourcecf_init_fsk @2275 + qsourcecf_init_gmsk @2276 + qsourcecf_init_modem @2277 + qsourcecf_init_noise @2278 + qsourcecf_init_tone @2279 + qsourcecf_init_user @2280 + qsourcecf_print @2281 + qsourcecf_reset @2282 + qsourcecf_set_frequency @2283 + qsourcecf_set_gain @2284 + qsourcecf_set_id @2285 + quantize_adc @2286 + quantize_dac @2287 + quantizercf_create @2288 + quantizercf_destroy @2289 + quantizercf_execute_adc @2290 + quantizercf_execute_dac @2291 + quantizercf_print @2292 + quantizerf_create @2293 + quantizerf_destroy @2294 + quantizerf_execute_adc @2295 + quantizerf_execute_dac @2296 + quantizerf_print @2297 + randexpf @2298 + randexpf_cdf @2299 + randexpf_pdf @2300 + randf @2301 + randf_cdf @2302 + randf_pdf @2303 + randgammaf @2304 + randgammaf_cdf @2305 + randgammaf_delta @2306 + randgammaf_pdf @2307 + randnakmf @2308 + randnakmf_cdf @2309 + randnakmf_pdf @2310 + randnf @2311 + randnf_cdf @2312 + randnf_pdf @2313 + randricekf @2314 + randricekf_cdf @2315 + randricekf_pdf @2316 + randuf @2317 + randuf_cdf @2318 + randuf_pdf @2319 + randweibf @2320 + randweibf_cdf @2321 + randweibf_pdf @2322 + resamp2_cccf_analyzer_execute @2323 + resamp2_cccf_copy @2324 + resamp2_cccf_create @2325 + resamp2_cccf_decim_execute @2326 + resamp2_cccf_destroy @2327 + resamp2_cccf_filter_execute @2328 + resamp2_cccf_get_delay @2329 + resamp2_cccf_get_scale @2330 + resamp2_cccf_interp_execute @2331 + resamp2_cccf_print @2332 + resamp2_cccf_recreate @2333 + resamp2_cccf_reset @2334 + resamp2_cccf_set_scale @2335 + resamp2_cccf_synthesizer_execute @2336 + resamp2_crcf_analyzer_execute @2337 + resamp2_crcf_copy @2338 + resamp2_crcf_create @2339 + resamp2_crcf_decim_execute @2340 + resamp2_crcf_destroy @2341 + resamp2_crcf_filter_execute @2342 + resamp2_crcf_get_delay @2343 + resamp2_crcf_get_scale @2344 + resamp2_crcf_interp_execute @2345 + resamp2_crcf_print @2346 + resamp2_crcf_recreate @2347 + resamp2_crcf_reset @2348 + resamp2_crcf_set_scale @2349 + resamp2_crcf_synthesizer_execute @2350 + resamp2_rrrf_analyzer_execute @2351 + resamp2_rrrf_copy @2352 + resamp2_rrrf_create @2353 + resamp2_rrrf_decim_execute @2354 + resamp2_rrrf_destroy @2355 + resamp2_rrrf_filter_execute @2356 + resamp2_rrrf_get_delay @2357 + resamp2_rrrf_get_scale @2358 + resamp2_rrrf_interp_execute @2359 + resamp2_rrrf_print @2360 + resamp2_rrrf_recreate @2361 + resamp2_rrrf_reset @2362 + resamp2_rrrf_set_scale @2363 + resamp2_rrrf_synthesizer_execute @2364 + resamp_cccf_adjust_rate @2365 + resamp_cccf_adjust_timing_phase @2366 + resamp_cccf_copy @2367 + resamp_cccf_create @2368 + resamp_cccf_create_default @2369 + resamp_cccf_destroy @2370 + resamp_cccf_execute @2371 + resamp_cccf_execute_block @2372 + resamp_cccf_get_delay @2373 + resamp_cccf_get_num_output @2374 + resamp_cccf_get_rate @2375 + resamp_cccf_print @2376 + resamp_cccf_reset @2377 + resamp_cccf_set_rate @2378 + resamp_cccf_set_timing_phase @2379 + resamp_crcf_adjust_rate @2380 + resamp_crcf_adjust_timing_phase @2381 + resamp_crcf_copy @2382 + resamp_crcf_create @2383 + resamp_crcf_create_default @2384 + resamp_crcf_destroy @2385 + resamp_crcf_execute @2386 + resamp_crcf_execute_block @2387 + resamp_crcf_get_delay @2388 + resamp_crcf_get_num_output @2389 + resamp_crcf_get_rate @2390 + resamp_crcf_print @2391 + resamp_crcf_reset @2392 + resamp_crcf_set_rate @2393 + resamp_crcf_set_timing_phase @2394 + resamp_rrrf_adjust_rate @2395 + resamp_rrrf_adjust_timing_phase @2396 + resamp_rrrf_copy @2397 + resamp_rrrf_create @2398 + resamp_rrrf_create_default @2399 + resamp_rrrf_destroy @2400 + resamp_rrrf_execute @2401 + resamp_rrrf_execute_block @2402 + resamp_rrrf_get_delay @2403 + resamp_rrrf_get_num_output @2404 + resamp_rrrf_get_rate @2405 + resamp_rrrf_print @2406 + resamp_rrrf_reset @2407 + resamp_rrrf_set_rate @2408 + resamp_rrrf_set_timing_phase @2409 + rkaiser_approximate_rho @2410 + rresamp_cccf_copy @2411 + rresamp_cccf_create @2412 + rresamp_cccf_create_default @2413 + rresamp_cccf_create_kaiser @2414 + rresamp_cccf_create_prototype @2415 + rresamp_cccf_destroy @2416 + rresamp_cccf_execute @2417 + rresamp_cccf_execute_block @2418 + rresamp_cccf_execute_primitive @2419 + rresamp_cccf_get_P @2420 + rresamp_cccf_get_Q @2421 + rresamp_cccf_get_block_len @2422 + rresamp_cccf_get_decim @2423 + rresamp_cccf_get_delay @2424 + rresamp_cccf_get_interp @2425 + rresamp_cccf_get_rate @2426 + rresamp_cccf_get_scale @2427 + rresamp_cccf_print @2428 + rresamp_cccf_reset @2429 + rresamp_cccf_set_scale @2430 + rresamp_cccf_write @2431 + rresamp_crcf_copy @2432 + rresamp_crcf_create @2433 + rresamp_crcf_create_default @2434 + rresamp_crcf_create_kaiser @2435 + rresamp_crcf_create_prototype @2436 + rresamp_crcf_destroy @2437 + rresamp_crcf_execute @2438 + rresamp_crcf_execute_block @2439 + rresamp_crcf_execute_primitive @2440 + rresamp_crcf_get_P @2441 + rresamp_crcf_get_Q @2442 + rresamp_crcf_get_block_len @2443 + rresamp_crcf_get_decim @2444 + rresamp_crcf_get_delay @2445 + rresamp_crcf_get_interp @2446 + rresamp_crcf_get_rate @2447 + rresamp_crcf_get_scale @2448 + rresamp_crcf_print @2449 + rresamp_crcf_reset @2450 + rresamp_crcf_set_scale @2451 + rresamp_crcf_write @2452 + rresamp_rrrf_copy @2453 + rresamp_rrrf_create @2454 + rresamp_rrrf_create_default @2455 + rresamp_rrrf_create_kaiser @2456 + rresamp_rrrf_create_prototype @2457 + rresamp_rrrf_destroy @2458 + rresamp_rrrf_execute @2459 + rresamp_rrrf_execute_block @2460 + rresamp_rrrf_execute_primitive @2461 + rresamp_rrrf_get_P @2462 + rresamp_rrrf_get_Q @2463 + rresamp_rrrf_get_block_len @2464 + rresamp_rrrf_get_decim @2465 + rresamp_rrrf_get_delay @2466 + rresamp_rrrf_get_interp @2467 + rresamp_rrrf_get_rate @2468 + rresamp_rrrf_get_scale @2469 + rresamp_rrrf_print @2470 + rresamp_rrrf_reset @2471 + rresamp_rrrf_set_scale @2472 + rresamp_rrrf_write @2473 + scramble_data @2474 + secded2216_P @2475 DATA + secded2216_syndrome_w1 @2476 DATA + secded3932_P @2477 DATA + secded3932_syndrome_w1 @2478 DATA + secded7264_P @2479 DATA + secded7264_syndrome_w1 @2480 DATA + sincf @2481 + smatrix_indexsearch @2482 + smatrixb_clear @2483 + smatrixb_create @2484 + smatrixb_create_array @2485 + smatrixb_delete @2486 + smatrixb_destroy @2487 + smatrixb_eye @2488 + smatrixb_get @2489 + smatrixb_insert @2490 + smatrixb_isset @2491 + smatrixb_mul @2492 + smatrixb_mulf @2493 + smatrixb_print @2494 + smatrixb_print_expanded @2495 + smatrixb_reset @2496 + smatrixb_reset_max_mlist @2497 + smatrixb_reset_max_nlist @2498 + smatrixb_set @2499 + smatrixb_size @2500 + smatrixb_vmul @2501 + smatrixb_vmulf @2502 + smatrixf_clear @2503 + smatrixf_create @2504 + smatrixf_create_array @2505 + smatrixf_delete @2506 + smatrixf_destroy @2507 + smatrixf_eye @2508 + smatrixf_get @2509 + smatrixf_insert @2510 + smatrixf_isset @2511 + smatrixf_mul @2512 + smatrixf_print @2513 + smatrixf_print_expanded @2514 + smatrixf_reset @2515 + smatrixf_reset_max_mlist @2516 + smatrixf_reset_max_nlist @2517 + smatrixf_set @2518 + smatrixf_size @2519 + smatrixf_vmul @2520 + smatrixi_clear @2521 + smatrixi_create @2522 + smatrixi_create_array @2523 + smatrixi_delete @2524 + smatrixi_destroy @2525 + smatrixi_eye @2526 + smatrixi_get @2527 + smatrixi_insert @2528 + smatrixi_isset @2529 + smatrixi_mul @2530 + smatrixi_print @2531 + smatrixi_print_expanded @2532 + smatrixi_reset @2533 + smatrixi_reset_max_mlist @2534 + smatrixi_reset_max_nlist @2535 + smatrixi_set @2536 + smatrixi_size @2537 + smatrixi_vmul @2538 + spgramcf_clear @2539 + spgramcf_copy @2540 + spgramcf_create @2541 + spgramcf_create_default @2542 + spgramcf_destroy @2543 + spgramcf_estimate_psd @2544 + spgramcf_export_gnuplot @2545 + spgramcf_get_alpha @2546 + spgramcf_get_delay @2547 + spgramcf_get_nfft @2548 + spgramcf_get_num_samples @2549 + spgramcf_get_num_samples_total @2550 + spgramcf_get_num_transforms @2551 + spgramcf_get_num_transforms_total @2552 + spgramcf_get_psd @2553 + spgramcf_get_psd_mag @2554 + spgramcf_get_window_len @2555 + spgramcf_get_wtype @2556 + spgramcf_print @2557 + spgramcf_push @2558 + spgramcf_reset @2559 + spgramcf_set_alpha @2560 + spgramcf_set_freq @2561 + spgramcf_set_rate @2562 + spgramcf_step @2563 + spgramcf_write @2564 + spgramf_clear @2565 + spgramf_copy @2566 + spgramf_create @2567 + spgramf_create_default @2568 + spgramf_destroy @2569 + spgramf_estimate_psd @2570 + spgramf_export_gnuplot @2571 + spgramf_get_alpha @2572 + spgramf_get_delay @2573 + spgramf_get_nfft @2574 + spgramf_get_num_samples @2575 + spgramf_get_num_samples_total @2576 + spgramf_get_num_transforms @2577 + spgramf_get_num_transforms_total @2578 + spgramf_get_psd @2579 + spgramf_get_psd_mag @2580 + spgramf_get_window_len @2581 + spgramf_get_wtype @2582 + spgramf_print @2583 + spgramf_push @2584 + spgramf_reset @2585 + spgramf_set_alpha @2586 + spgramf_set_freq @2587 + spgramf_set_rate @2588 + spgramf_step @2589 + spgramf_write @2590 + spwaterfallcf_clear @2591 + spwaterfallcf_consolidate_buffer @2592 + spwaterfallcf_copy @2593 + spwaterfallcf_create @2594 + spwaterfallcf_create_default @2595 + spwaterfallcf_destroy @2596 + spwaterfallcf_export @2597 + spwaterfallcf_export_bin @2598 + spwaterfallcf_export_gnu @2599 + spwaterfallcf_get_delay @2600 + spwaterfallcf_get_num_freq @2601 + spwaterfallcf_get_num_samples_total @2602 + spwaterfallcf_get_num_time @2603 + spwaterfallcf_get_psd @2604 + spwaterfallcf_get_window_len @2605 + spwaterfallcf_get_wtype @2606 + spwaterfallcf_print @2607 + spwaterfallcf_push @2608 + spwaterfallcf_reset @2609 + spwaterfallcf_set_commands @2610 + spwaterfallcf_set_dims @2611 + spwaterfallcf_set_freq @2612 + spwaterfallcf_set_rate @2613 + spwaterfallcf_step @2614 + spwaterfallcf_write @2615 + spwaterfallf_clear @2616 + spwaterfallf_consolidate_buffer @2617 + spwaterfallf_copy @2618 + spwaterfallf_create @2619 + spwaterfallf_create_default @2620 + spwaterfallf_destroy @2621 + spwaterfallf_export @2622 + spwaterfallf_export_bin @2623 + spwaterfallf_export_gnu @2624 + spwaterfallf_get_delay @2625 + spwaterfallf_get_num_freq @2626 + spwaterfallf_get_num_samples_total @2627 + spwaterfallf_get_num_time @2628 + spwaterfallf_get_psd @2629 + spwaterfallf_get_window_len @2630 + spwaterfallf_get_wtype @2631 + spwaterfallf_print @2632 + spwaterfallf_push @2633 + spwaterfallf_reset @2634 + spwaterfallf_set_commands @2635 + spwaterfallf_set_dims @2636 + spwaterfallf_set_freq @2637 + spwaterfallf_set_rate @2638 + spwaterfallf_step @2639 + spwaterfallf_write @2640 + sumproduct_phi @2641 + symstreamcf_copy @2642 + symstreamcf_create @2643 + symstreamcf_create_linear @2644 + symstreamcf_destroy @2645 + symstreamcf_fill_buffer @2646 + symstreamcf_get_beta @2647 + symstreamcf_get_delay @2648 + symstreamcf_get_ftype @2649 + symstreamcf_get_gain @2650 + symstreamcf_get_k @2651 + symstreamcf_get_m @2652 + symstreamcf_get_scheme @2653 + symstreamcf_print @2654 + symstreamcf_reset @2655 + symstreamcf_set_gain @2656 + symstreamcf_set_scheme @2657 + symstreamcf_write_samples @2658 + symstreamrcf_copy @2659 + symstreamrcf_create @2660 + symstreamrcf_create_linear @2661 + symstreamrcf_destroy @2662 + symstreamrcf_fill_buffer @2663 + symstreamrcf_get_beta @2664 + symstreamrcf_get_bw @2665 + symstreamrcf_get_delay @2666 + symstreamrcf_get_ftype @2667 + symstreamrcf_get_gain @2668 + symstreamrcf_get_m @2669 + symstreamrcf_get_scheme @2670 + symstreamrcf_print @2671 + symstreamrcf_reset @2672 + symstreamrcf_set_gain @2673 + symstreamrcf_set_scheme @2674 + symstreamrcf_write_samples @2675 + symsync_crcf_advance_internal_loop @2676 + symsync_crcf_copy @2677 + symsync_crcf_create @2678 + symsync_crcf_create_kaiser @2679 + symsync_crcf_create_rnyquist @2680 + symsync_crcf_destroy @2681 + symsync_crcf_execute @2682 + symsync_crcf_get_tau @2683 + symsync_crcf_lock @2684 + symsync_crcf_output_debug_file @2685 + symsync_crcf_print @2686 + symsync_crcf_reset @2687 + symsync_crcf_set_lf_bw @2688 + symsync_crcf_set_output_rate @2689 + symsync_crcf_step @2690 + symsync_crcf_unlock @2691 + symsync_rrrf_advance_internal_loop @2692 + symsync_rrrf_copy @2693 + symsync_rrrf_create @2694 + symsync_rrrf_create_kaiser @2695 + symsync_rrrf_create_rnyquist @2696 + symsync_rrrf_destroy @2697 + symsync_rrrf_execute @2698 + symsync_rrrf_get_tau @2699 + symsync_rrrf_lock @2700 + symsync_rrrf_output_debug_file @2701 + symsync_rrrf_print @2702 + symsync_rrrf_reset @2703 + symsync_rrrf_set_lf_bw @2704 + symsync_rrrf_set_output_rate @2705 + symsync_rrrf_step @2706 + symsync_rrrf_unlock @2707 + symtrack_cccf_adjust_frequency @2708 + symtrack_cccf_adjust_phase @2709 + symtrack_cccf_create @2710 + symtrack_cccf_create_default @2711 + symtrack_cccf_destroy @2712 + symtrack_cccf_execute @2713 + symtrack_cccf_execute_block @2714 + symtrack_cccf_get_bandwidth @2715 + symtrack_cccf_get_beta @2716 + symtrack_cccf_get_ftype @2717 + symtrack_cccf_get_k @2718 + symtrack_cccf_get_m @2719 + symtrack_cccf_get_modscheme @2720 + symtrack_cccf_print @2721 + symtrack_cccf_reset @2722 + symtrack_cccf_set_bandwidth @2723 + symtrack_cccf_set_eq_cm @2724 + symtrack_cccf_set_eq_dd @2725 + symtrack_cccf_set_eq_off @2726 + symtrack_cccf_set_modscheme @2727 + synth_crcf_adjust_frequency @2728 + synth_crcf_adjust_phase @2729 + synth_crcf_compute_synth @2730 + synth_crcf_constrain_frequency @2731 + synth_crcf_constrain_phase @2732 + synth_crcf_create @2733 + synth_crcf_despread @2734 + synth_crcf_despread_triple @2735 + synth_crcf_destroy @2736 + synth_crcf_get_current @2737 + synth_crcf_get_frequency @2738 + synth_crcf_get_half_next @2739 + synth_crcf_get_half_previous @2740 + synth_crcf_get_length @2741 + synth_crcf_get_phase @2742 + synth_crcf_mix_block_down @2743 + synth_crcf_mix_block_up @2744 + synth_crcf_mix_down @2745 + synth_crcf_mix_up @2746 + synth_crcf_pll_reset @2747 + synth_crcf_pll_set_bandwidth @2748 + synth_crcf_pll_step @2749 + synth_crcf_reset @2750 + synth_crcf_set_frequency @2751 + synth_crcf_set_phase @2752 + synth_crcf_spread @2753 + synth_crcf_step @2754 + triangular @2755 + tvmpch_cccf_copy @2756 + tvmpch_cccf_create @2757 + tvmpch_cccf_destroy @2758 + tvmpch_cccf_execute @2759 + tvmpch_cccf_execute_block @2760 + tvmpch_cccf_execute_one @2761 + tvmpch_cccf_print @2762 + tvmpch_cccf_push @2763 + tvmpch_cccf_reset @2764 + unscramble_data @2765 + unscramble_data_soft @2766 + wdelaycf_copy @2767 + wdelaycf_create @2768 + wdelaycf_destroy @2769 + wdelaycf_print @2770 + wdelaycf_push @2771 + wdelaycf_read @2772 + wdelaycf_recreate @2773 + wdelaycf_reset @2774 + wdelayf_copy @2775 + wdelayf_create @2776 + wdelayf_destroy @2777 + wdelayf_print @2778 + wdelayf_push @2779 + wdelayf_read @2780 + wdelayf_recreate @2781 + wdelayf_reset @2782 + windowcf_copy @2783 + windowcf_create @2784 + windowcf_debug_print @2785 + windowcf_destroy @2786 + windowcf_index @2787 + windowcf_print @2788 + windowcf_push @2789 + windowcf_read @2790 + windowcf_recreate @2791 + windowcf_reset @2792 + windowcf_write @2793 + windowf_copy @2794 + windowf_create @2795 + windowf_debug_print @2796 + windowf_destroy @2797 + windowf_index @2798 + windowf_print @2799 + windowf_push @2800 + windowf_read @2801 + windowf_recreate @2802 + windowf_reset @2803 + windowf_write @2804 diff --git a/external/liquid-dsp/msvc/64/libliquid.dll b/external/liquid-dsp/msvc/64/libliquid.dll index edcd421..341d7da 100644 Binary files a/external/liquid-dsp/msvc/64/libliquid.dll and b/external/liquid-dsp/msvc/64/libliquid.dll differ diff --git a/external/liquid-dsp/msvc/64/libliquid.lib b/external/liquid-dsp/msvc/64/libliquid.lib index cb166f4..2eac5d3 100644 Binary files a/external/liquid-dsp/msvc/64/libliquid.lib and b/external/liquid-dsp/msvc/64/libliquid.lib differ diff --git a/src/CubicSDR.cpp b/src/CubicSDR.cpp index c93c6e5..6fe9f57 100644 --- a/src/CubicSDR.cpp +++ b/src/CubicSDR.cpp @@ -225,7 +225,7 @@ CubicSDR::CubicSDR() : frequency(0), offset(0), ppm(0), snap(1), sampleRate(DEFA m_glContextAttributes = new wxGLContextAttrs(); wxGLContextAttrs glSettings; - glSettings.PlatformDefaults().EndList(); + glSettings.CompatibilityProfile().EndList(); *m_glContextAttributes = glSettings; } diff --git a/src/process/SpectrumVisualProcessor.cpp b/src/process/SpectrumVisualProcessor.cpp index 94f0e35..81f4a48 100644 --- a/src/process/SpectrumVisualProcessor.cpp +++ b/src/process/SpectrumVisualProcessor.cpp @@ -352,7 +352,7 @@ void SpectrumVisualProcessor::process() { } if (!resampler || resampleBw != lastBandwidth || lastInputBandwidth != iqData->sampleRate) { - float As = 480.0; + float As = 60.0; if (resampler) { msresamp_crcf_destroy(resampler); diff --git a/travis-ci/build_cubicsdr.sh b/travis-ci/build_cubicsdr.sh deleted file mode 100644 index bbdbc2d..0000000 --- a/travis-ci/build_cubicsdr.sh +++ /dev/null @@ -1,7 +0,0 @@ -# CubicSDR -cd $HOME/build -mkdir cjcliffe/CubicSDR-build -cd cjcliffe/CubicSDR-build -cmake ../CubicSDR -DCMAKE_BUILD_TYPE=Release -DwxWidgets_CONFIG_EXECUTABLE=$HOME/build/wxWidgets/staticlib/bin/wx-config -DUSE_HAMLIB=1 -DENABLE_DIGITAL_LAB=1 -make -j2 - diff --git a/travis-ci/build_soapysdr.sh b/travis-ci/build_soapysdr.sh deleted file mode 100644 index 0f8b8a1..0000000 --- a/travis-ci/build_soapysdr.sh +++ /dev/null @@ -1,16 +0,0 @@ -# Soapy SDR -cd $HOME/build - -mkdir pothosware/ -cd pothosware/ -git clone https://github.com/pothosware/SoapySDR.git - -mkdir SoapySDR-build -cd SoapySDR-build - -cmake ../SoapySDR -DCMAKE_BUILD_TYPE=Release - -echo "Building SoapySDR.." -make -j2 > /dev/null - -sudo make install \ No newline at end of file