mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-02-03 09:44:26 -05:00
Updated Windows liquid-dsp binaries to master using GCC 9.30
This commit is contained in:
parent
d2f9333523
commit
60fa038549
BIN
external/liquid-dsp/gcc/32/libliquid.a
vendored
BIN
external/liquid-dsp/gcc/32/libliquid.a
vendored
Binary file not shown.
BIN
external/liquid-dsp/gcc/32/libliquid.dll
vendored
BIN
external/liquid-dsp/gcc/32/libliquid.dll
vendored
Binary file not shown.
BIN
external/liquid-dsp/gcc/64/libliquid.a
vendored
BIN
external/liquid-dsp/gcc/64/libliquid.a
vendored
Binary file not shown.
BIN
external/liquid-dsp/gcc/64/libliquid.dll
vendored
BIN
external/liquid-dsp/gcc/64/libliquid.dll
vendored
Binary file not shown.
266
external/liquid-dsp/include/liquid/liquid.h
vendored
266
external/liquid-dsp/include/liquid/liquid.h
vendored
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007 - 2019 Joseph Gaeddert
|
||||
* Copyright (c) 2007 - 2020 Joseph Gaeddert
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@ -50,7 +50,7 @@ extern "C" {
|
||||
|
||||
//
|
||||
// Compile-time version numbers
|
||||
//
|
||||
//
|
||||
// LIQUID_VERSION = "X.Y.Z"
|
||||
// LIQUID_VERSION_NUMBER = (X*1000000 + Y*1000 + Z)
|
||||
//
|
||||
@ -75,7 +75,7 @@ int liquid_libversion_number(void);
|
||||
#define LIQUID_CONCAT(prefix, name) prefix ## name
|
||||
#define LIQUID_VALIDATE_INPUT
|
||||
|
||||
/*
|
||||
/*
|
||||
* Compile-time complex data type definitions
|
||||
*
|
||||
* Default: use the C99 complex data type, otherwise
|
||||
@ -95,7 +95,7 @@ int liquid_libversion_number(void);
|
||||
LIQUID_DEFINE_COMPLEX(float, liquid_float_complex);
|
||||
LIQUID_DEFINE_COMPLEX(double, liquid_double_complex);
|
||||
|
||||
//
|
||||
//
|
||||
// MODULE : agc (automatic gain control)
|
||||
//
|
||||
|
||||
@ -781,7 +781,7 @@ LIQUID_DOTPROD_DEFINE_API(LIQUID_DOTPROD_MANGLE_CRCF,
|
||||
float,
|
||||
liquid_float_complex)
|
||||
|
||||
//
|
||||
//
|
||||
// sum squared methods
|
||||
//
|
||||
|
||||
@ -1098,7 +1098,7 @@ typedef enum {
|
||||
LIQUID_FEC_HAMMING74, // Hamming (7,4) block code, r1/2 (really 4/7)
|
||||
LIQUID_FEC_HAMMING84, // Hamming (7,4) with extra parity bit, r1/2
|
||||
LIQUID_FEC_HAMMING128, // Hamming (12,8) block code, r2/3
|
||||
|
||||
|
||||
LIQUID_FEC_GOLAY2412, // Golay (24,12) block code, r1/2
|
||||
LIQUID_FEC_SECDED2216, // SEC-DED (22,16) block code, r8/11
|
||||
LIQUID_FEC_SECDED3932, // SEC-DED (39,32) block code
|
||||
@ -1202,7 +1202,7 @@ void fec_decode_soft(fec _q,
|
||||
unsigned char * _msg_enc,
|
||||
unsigned char * _msg_dec);
|
||||
|
||||
//
|
||||
//
|
||||
// Packetizer
|
||||
//
|
||||
|
||||
@ -1362,8 +1362,8 @@ typedef enum {
|
||||
LIQUID_FFT_UNKNOWN = 0, // unknown transform type
|
||||
|
||||
// regular complex one-dimensional transforms
|
||||
LIQUID_FFT_FORWARD = +1, // complex one-dimensional FFT
|
||||
LIQUID_FFT_BACKWARD = -1, // complex one-dimensional inverse FFT
|
||||
LIQUID_FFT_FORWARD = +1, // complex one-dimensional FFT
|
||||
LIQUID_FFT_BACKWARD = -1, // complex one-dimensional inverse FFT
|
||||
|
||||
// discrete cosine transforms
|
||||
LIQUID_FFT_REDFT00 = 10, // real one-dimensional DCT-I
|
||||
@ -1469,7 +1469,7 @@ LIQUID_FFT_DEFINE_API(LIQUID_FFT_MANGLE_FLOAT,float,liquid_float_complex)
|
||||
// int _flags);
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// spectral periodogram
|
||||
//
|
||||
|
||||
@ -1516,8 +1516,8 @@ void SPGRAM(_reset)(SPGRAM() _q); \
|
||||
/* Print internal state of the object to stdout */ \
|
||||
void SPGRAM(_print)(SPGRAM() _q); \
|
||||
\
|
||||
/* Set the forgetting factor (filter bandwidth) for accumulating */ \
|
||||
/* independent transform squared magnitude outputs. */ \
|
||||
/* Set the filter bandwidth for accumulating independent transform */ \
|
||||
/* squared magnitude outputs. */ \
|
||||
/* This is used to compute a running time-average power spectral */ \
|
||||
/* density output. */ \
|
||||
/* The value of _alpha determines how the power spectral estimate is */ \
|
||||
@ -1534,6 +1534,10 @@ void SPGRAM(_print)(SPGRAM() _q); \
|
||||
int SPGRAM(_set_alpha)(SPGRAM() _q, \
|
||||
float _alpha); \
|
||||
\
|
||||
/* Get the filter bandwidth for accumulating independent transform */ \
|
||||
/* squared magnitude outputs. */ \
|
||||
float SPGRAM(_get_alpha)(SPGRAM() _q); \
|
||||
\
|
||||
/* Set the center frequency of the received signal. */ \
|
||||
/* This is for display purposes only when generating the output image. */ \
|
||||
/* _q : spectral periodogram object */ \
|
||||
@ -1569,9 +1573,6 @@ unsigned long long int SPGRAM(_get_num_transforms)(SPGRAM() _q); \
|
||||
/* Get number of transforms processed since object was created */ \
|
||||
unsigned long long int SPGRAM(_get_num_transforms_total)(SPGRAM() _q); \
|
||||
\
|
||||
/* Get forgetting factor (filter bandwidth) */ \
|
||||
float SPGRAM(_get_alpha)(SPGRAM() _q); \
|
||||
\
|
||||
/* Push a single sample into the object, executing internal transform */ \
|
||||
/* as necessary. */ \
|
||||
/* _q : spgram object */ \
|
||||
@ -1623,7 +1624,7 @@ LIQUID_SPGRAM_DEFINE_API(LIQUID_SPGRAM_MANGLE_FLOAT,
|
||||
liquid_float_complex,
|
||||
float)
|
||||
|
||||
//
|
||||
//
|
||||
// asgram : ascii spectral periodogram
|
||||
//
|
||||
|
||||
@ -1709,7 +1710,7 @@ LIQUID_ASGRAM_DEFINE_API(LIQUID_ASGRAM_MANGLE_FLOAT,
|
||||
liquid_float_complex,
|
||||
float)
|
||||
|
||||
//
|
||||
//
|
||||
// spectral periodogram waterfall
|
||||
//
|
||||
|
||||
@ -2495,7 +2496,7 @@ FIRFILT() FIRFILT(_create_kaiser)(unsigned int _n, \
|
||||
float _As, \
|
||||
float _mu); \
|
||||
\
|
||||
/* Create object from square-root Nyquist prototype */ \
|
||||
/* Create object from square-root Nyquist prototype. */ \
|
||||
/* The filter length will be \(2 k m + 1 \) samples long with a delay */ \
|
||||
/* of \( k m + 1 \) samples. */ \
|
||||
/* _type : filter type (e.g. LIQUID_FIRFILT_RRC) */ \
|
||||
@ -2509,6 +2510,14 @@ FIRFILT() FIRFILT(_create_rnyquist)(int _type, \
|
||||
float _beta, \
|
||||
float _mu); \
|
||||
\
|
||||
/* 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 */ \
|
||||
FIRFILT() FIRFILT(_create_firdespm)(unsigned int _h_len, \
|
||||
float _fc, \
|
||||
float _As); \
|
||||
\
|
||||
/* Create rectangular filter prototype; that is */ \
|
||||
/* \( \vec{h} = \{ 1, 1, 1, \ldots 1 \} \) */ \
|
||||
/* _n : length of filter [samples], 0 < _n <= 1024 */ \
|
||||
@ -3183,7 +3192,7 @@ LIQUID_FIRPFB_DEFINE_API(LIQUID_FIRPFB_MANGLE_CCCF,
|
||||
liquid_float_complex,
|
||||
liquid_float_complex)
|
||||
|
||||
//
|
||||
//
|
||||
// Interpolators
|
||||
//
|
||||
|
||||
@ -3231,6 +3240,16 @@ FIRINTERP() FIRINTERP(_create_prototype)(int _type, \
|
||||
float _beta, \
|
||||
float _dt); \
|
||||
\
|
||||
/* Create linear interpolator object */ \
|
||||
/* _M : interpolation factor, _M > 1 */ \
|
||||
FIRINTERP() FIRINTERP(_create_linear)(unsigned int _M); \
|
||||
\
|
||||
/* Create window interpolator object */ \
|
||||
/* _M : interpolation factor, _M > 1 */ \
|
||||
/* _m : filter semi-length, _m > 0 */ \
|
||||
FIRINTERP() FIRINTERP(_create_window)(unsigned int _M, \
|
||||
unsigned int _m); \
|
||||
\
|
||||
/* Destroy firinterp object, freeing all internal memory */ \
|
||||
void FIRINTERP(_destroy)(FIRINTERP() _q); \
|
||||
\
|
||||
@ -3392,7 +3411,7 @@ LIQUID_IIRINTERP_DEFINE_API(LIQUID_IIRINTERP_MANGLE_CCCF,
|
||||
liquid_float_complex,
|
||||
liquid_float_complex)
|
||||
|
||||
//
|
||||
//
|
||||
// Decimators
|
||||
//
|
||||
|
||||
@ -3597,7 +3616,7 @@ LIQUID_IIRDECIM_DEFINE_API(LIQUID_IIRDECIM_MANGLE_CCCF,
|
||||
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// Half-band resampler
|
||||
//
|
||||
#define LIQUID_RESAMP2_MANGLE_RRRF(name) LIQUID_CONCAT(resamp2_rrrf,name)
|
||||
@ -3707,7 +3726,7 @@ LIQUID_RESAMP2_DEFINE_API(LIQUID_RESAMP2_MANGLE_CCCF,
|
||||
liquid_float_complex)
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// Rational resampler
|
||||
//
|
||||
#define LIQUID_RRESAMP_MANGLE_RRRF(name) LIQUID_CONCAT(rresamp_rrrf,name)
|
||||
@ -3856,7 +3875,7 @@ LIQUID_RRESAMP_DEFINE_API(LIQUID_RRESAMP_MANGLE_CCCF,
|
||||
liquid_float_complex)
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// Arbitrary resampler
|
||||
//
|
||||
#define LIQUID_RESAMP_MANGLE_RRRF(name) LIQUID_CONCAT(resamp_rrrf,name)
|
||||
@ -3975,7 +3994,7 @@ LIQUID_RESAMP_DEFINE_API(LIQUID_RESAMP_MANGLE_CCCF,
|
||||
liquid_float_complex)
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// Multi-stage half-band resampler
|
||||
//
|
||||
|
||||
@ -4055,7 +4074,7 @@ LIQUID_MSRESAMP2_DEFINE_API(LIQUID_MSRESAMP2_MANGLE_CCCF,
|
||||
liquid_float_complex)
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// Multi-stage arbitrary resampler
|
||||
//
|
||||
#define LIQUID_MSRESAMP_MANGLE_RRRF(name) LIQUID_CONCAT(msresamp_rrrf,name)
|
||||
@ -4122,7 +4141,7 @@ LIQUID_MSRESAMP_DEFINE_API(LIQUID_MSRESAMP_MANGLE_CCCF,
|
||||
liquid_float_complex)
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// Symbol timing recovery (symbol synchronizer)
|
||||
//
|
||||
#define LIQUID_SYMSYNC_MANGLE_RRRF(name) LIQUID_CONCAT(symsync_rrrf,name)
|
||||
@ -4618,6 +4637,7 @@ void qpilotsync_execute(qpilotsync _q,
|
||||
float qpilotsync_get_dphi(qpilotsync _q);
|
||||
float qpilotsync_get_phi (qpilotsync _q);
|
||||
float qpilotsync_get_gain(qpilotsync _q);
|
||||
float qpilotsync_get_evm (qpilotsync _q);
|
||||
|
||||
|
||||
//
|
||||
@ -4640,8 +4660,8 @@ void framegen64_print(framegen64 _q);
|
||||
|
||||
// generate frame
|
||||
// _q : frame generator object
|
||||
// _header : 8-byte header data
|
||||
// _payload : 64-byte payload data
|
||||
// _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]
|
||||
void framegen64_execute(framegen64 _q,
|
||||
unsigned char * _header,
|
||||
@ -4678,6 +4698,10 @@ void framesync64_debug_enable(framesync64 _q);
|
||||
void framesync64_debug_disable(framesync64 _q);
|
||||
void framesync64_debug_print(framesync64 _q, const char * _filename);
|
||||
|
||||
// frame data statistics
|
||||
void framesync64_reset_framedatastats(framesync64 _q);
|
||||
framedatastats_s framesync64_get_framedatastats (framesync64 _q);
|
||||
|
||||
#if 0
|
||||
// advanced modes
|
||||
void framesync64_set_csma_callbacks(framesync64 _q,
|
||||
@ -4815,7 +4839,7 @@ void flexframesync_debug_print(flexframesync _q,
|
||||
// bpacket : binary packet suitable for data streaming
|
||||
//
|
||||
|
||||
//
|
||||
//
|
||||
// bpacket generator/encoder
|
||||
//
|
||||
typedef struct bpacketgen_s * bpacketgen;
|
||||
@ -4860,7 +4884,7 @@ void bpacketgen_encode(bpacketgen _q,
|
||||
unsigned char * _msg_dec,
|
||||
unsigned char * _packet);
|
||||
|
||||
//
|
||||
//
|
||||
// bpacket synchronizer/decoder
|
||||
//
|
||||
typedef struct bpacketsync_s * bpacketsync;
|
||||
@ -5070,7 +5094,7 @@ void dsssframesync_debug_enable(dsssframesync _q);
|
||||
void dsssframesync_debug_disable(dsssframesync _q);
|
||||
void dsssframesync_debug_print(dsssframesync _q, const char * _filename);
|
||||
|
||||
//
|
||||
//
|
||||
// OFDM flexframe generator
|
||||
//
|
||||
|
||||
@ -5147,7 +5171,7 @@ int ofdmflexframegen_write(ofdmflexframegen _q,
|
||||
liquid_float_complex * _buf,
|
||||
unsigned int _buf_len);
|
||||
|
||||
//
|
||||
//
|
||||
// OFDM flex frame synchronizer
|
||||
//
|
||||
|
||||
@ -5194,6 +5218,10 @@ float ofdmflexframesync_get_rssi(ofdmflexframesync _q);
|
||||
// query the received carrier offset estimate
|
||||
float ofdmflexframesync_get_cfo(ofdmflexframesync _q);
|
||||
|
||||
// frame data statistics
|
||||
void ofdmflexframesync_reset_framedatastats(ofdmflexframesync _q);
|
||||
framedatastats_s ofdmflexframesync_get_framedatastats (ofdmflexframesync _q);
|
||||
|
||||
// set the received carrier offset estimate
|
||||
void ofdmflexframesync_set_cfo(ofdmflexframesync _q, float _cfo);
|
||||
|
||||
@ -5448,7 +5476,7 @@ int detector_cccf_correlate(detector_cccf _q,
|
||||
float * _gamma_hat);
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// symbol streaming for testing (no meaningful data, just symbols)
|
||||
//
|
||||
#define LIQUID_SYMSTREAM_MANGLE_CFLOAT(name) LIQUID_CONCAT(symstreamcf,name)
|
||||
@ -5507,7 +5535,7 @@ float SYMSTREAM(_get_gain)(SYMSTREAM() _q); \
|
||||
void SYMSTREAM(_write_samples)(SYMSTREAM() _q, \
|
||||
TO * _buf, \
|
||||
unsigned int _buf_len); \
|
||||
|
||||
|
||||
LIQUID_SYMSTREAM_DEFINE_API(LIQUID_SYMSTREAM_MANGLE_CFLOAT, liquid_float_complex)
|
||||
|
||||
|
||||
@ -5680,13 +5708,13 @@ int MSOURCE(_get_frequency)(MSOURCE() _q, \
|
||||
void MSOURCE(_write_samples)(MSOURCE() _q, \
|
||||
TO * _buf, \
|
||||
unsigned int _buf_len); \
|
||||
|
||||
|
||||
LIQUID_MSOURCE_DEFINE_API(LIQUID_MSOURCE_MANGLE_CFLOAT, liquid_float_complex)
|
||||
|
||||
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// Symbol tracking: AGC > symsync > EQ > carrier recovery
|
||||
//
|
||||
#define LIQUID_SYMTRACK_MANGLE_RRRF(name) LIQUID_CONCAT(symtrack_rrrf,name)
|
||||
@ -5772,7 +5800,7 @@ void SYMTRACK(_execute_block)(SYMTRACK() _q, \
|
||||
unsigned int _nx, \
|
||||
TO * _y, \
|
||||
unsigned int * _ny); \
|
||||
|
||||
|
||||
LIQUID_SYMTRACK_DEFINE_API(LIQUID_SYMTRACK_MANGLE_RRRF,
|
||||
float,
|
||||
float,
|
||||
@ -5851,11 +5879,11 @@ unsigned int liquid_nextpow2(unsigned int _x);
|
||||
// (n choose k) = n! / ( k! (n-k)! )
|
||||
float liquid_nchoosek(unsigned int _n, unsigned int _k);
|
||||
|
||||
//
|
||||
//
|
||||
// Windowing functions
|
||||
//
|
||||
|
||||
// Modulation schemes available
|
||||
// number of window functions available, including "unknown" type
|
||||
#define LIQUID_WINDOW_NUM_FUNCTIONS (10)
|
||||
|
||||
// prototypes
|
||||
@ -5882,73 +5910,85 @@ void liquid_print_windows();
|
||||
// returns window type based on input string
|
||||
liquid_window_type liquid_getopt_str2window(const char * _str);
|
||||
|
||||
// Kaiser-Bessel derived window (single sample)
|
||||
// _n : index (0 <= _n < _N)
|
||||
// _N : length of filter (must be even)
|
||||
// _beta : Kaiser window parameter (_beta > 0)
|
||||
float liquid_kbd(unsigned int _n, unsigned int _N, float _beta);
|
||||
|
||||
// Kaiser-Bessel derived window (full window)
|
||||
// _n : length of filter (must be even)
|
||||
// _beta : Kaiser window parameter (_beta > 0)
|
||||
// _w : resulting window
|
||||
void liquid_kbd_window(unsigned int _n, float _beta, float * _w);
|
||||
// generic window function given type
|
||||
// _type : window type, e.g. LIQUID_WINDOW_KAISER
|
||||
// _i : window index, _i in [0,_wlen-1]
|
||||
// _wlen : length of window
|
||||
// _arg : window-specific argument, if required
|
||||
float liquid_windowf(liquid_window_type _type,
|
||||
unsigned int _i,
|
||||
unsigned int _wlen,
|
||||
float _arg);
|
||||
|
||||
// Kaiser window
|
||||
// _n : window index
|
||||
// _N : full window length
|
||||
// _i : window index, _i in [0,_wlen-1]
|
||||
// _wlen : full window length
|
||||
// _beta : Kaiser-Bessel window shape parameter
|
||||
// _dt : fractional sample offset
|
||||
float kaiser(unsigned int _n,
|
||||
unsigned int _N,
|
||||
float _beta,
|
||||
float _dt);
|
||||
float liquid_kaiser(unsigned int _i,
|
||||
unsigned int _wlen,
|
||||
float _beta);
|
||||
|
||||
// Hamming window
|
||||
// _n : window index
|
||||
// _N : full window length
|
||||
float hamming(unsigned int _n,
|
||||
unsigned int _N);
|
||||
// _i : window index, _i in [0,_wlen-1]
|
||||
// _wlen : full window length
|
||||
float liquid_hamming(unsigned int _i,
|
||||
unsigned int _wlen);
|
||||
|
||||
// Hann window
|
||||
// _n : window index
|
||||
// _N : full window length
|
||||
float hann(unsigned int _n,
|
||||
unsigned int _N);
|
||||
// _i : window index, _i in [0,_wlen-1]
|
||||
// _wlen : full window length
|
||||
float liquid_hann(unsigned int _i,
|
||||
unsigned int _wlen);
|
||||
|
||||
// Blackman-harris window
|
||||
// _n : window index
|
||||
// _N : full window length
|
||||
float blackmanharris(unsigned int _n,
|
||||
unsigned int _N);
|
||||
// _i : window index, _i in [0,_wlen-1]
|
||||
// _wlen : full window length
|
||||
float liquid_blackmanharris(unsigned int _i,
|
||||
unsigned int _wlen);
|
||||
|
||||
// 7th order Blackman-harris window
|
||||
// _n : window index
|
||||
// _N : full window length
|
||||
float blackmanharris7(unsigned int _n,
|
||||
unsigned int _N);
|
||||
// _i : window index, _i in [0,_wlen-1]
|
||||
// _wlen : full window length
|
||||
float liquid_blackmanharris7(unsigned int _i,
|
||||
unsigned int _wlen);
|
||||
|
||||
// Flat-top window
|
||||
// _n : window index
|
||||
// _N : full window length
|
||||
float flattop(unsigned int _n,
|
||||
unsigned int _N);
|
||||
// _i : window index, _i in [0,_wlen-1]
|
||||
// _wlen : full window length
|
||||
float liquid_flattop(unsigned int _i,
|
||||
unsigned int _wlen);
|
||||
|
||||
// Triangular window
|
||||
// _n : window index
|
||||
// _N : full window length
|
||||
// _L : triangle length, _L in {_N, _N+1, _N-1}
|
||||
float triangular(unsigned int _n,
|
||||
unsigned int _N,
|
||||
unsigned int _L);
|
||||
// _i : window index, _i in [0,_wlen-1]
|
||||
// _wlen : full window length
|
||||
// _L : triangle length, _L in {_wlen-1, _wlen, _wlen+1}
|
||||
float liquid_triangular(unsigned int _i,
|
||||
unsigned int _wlen,
|
||||
unsigned int _L);
|
||||
|
||||
// raised-cosine tapering window
|
||||
// _n : window index
|
||||
// _t : taper length
|
||||
// _N : full window length
|
||||
float liquid_rcostaper_windowf(unsigned int _n,
|
||||
unsigned int _t,
|
||||
unsigned int _N);
|
||||
// _i : window index
|
||||
// _wlen : full window length
|
||||
// _t : taper length, _t in [0,_wlen/2]
|
||||
float liquid_rcostaper_window(unsigned int _i,
|
||||
unsigned int _wlen,
|
||||
unsigned int _t);
|
||||
|
||||
// Kaiser-Bessel derived window (single sample)
|
||||
// _i : window index, _i in [0,_wlen-1]
|
||||
// _wlen : length of filter (must be even)
|
||||
// _beta : Kaiser window parameter (_beta > 0)
|
||||
float liquid_kbd(unsigned int _i,
|
||||
unsigned int _wlen,
|
||||
float _beta);
|
||||
|
||||
// Kaiser-Bessel derived window (full window)
|
||||
// _wlen : full window length (must be even)
|
||||
// _beta : Kaiser window parameter (_beta > 0)
|
||||
// _w : window output buffer, [size: _wlen x 1]
|
||||
void liquid_kbd_window(unsigned int _wlen,
|
||||
float _beta,
|
||||
float * _w);
|
||||
|
||||
|
||||
// polynomials
|
||||
@ -6145,7 +6185,7 @@ void poly_binomial_expand_pm(unsigned int _n,
|
||||
int * _c);
|
||||
#endif
|
||||
|
||||
//
|
||||
//
|
||||
// modular arithmetic, etc.
|
||||
//
|
||||
|
||||
@ -6664,7 +6704,7 @@ LIQUID_SMATRIX_DEFINE_API(LIQUID_SMATRIX_MANGLE_BOOL, unsigned char)
|
||||
LIQUID_SMATRIX_DEFINE_API(LIQUID_SMATRIX_MANGLE_FLOAT, float)
|
||||
LIQUID_SMATRIX_DEFINE_API(LIQUID_SMATRIX_MANGLE_INT, short int)
|
||||
|
||||
//
|
||||
//
|
||||
// smatrix cross methods
|
||||
//
|
||||
|
||||
@ -7132,7 +7172,7 @@ float fskdem_get_symbol_energy(fskdem _q,
|
||||
unsigned int _range);
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// Analog frequency modulator
|
||||
//
|
||||
#define LIQUID_FREQMOD_MANGLE_FLOAT(name) LIQUID_CONCAT(freqmod,name)
|
||||
@ -7181,7 +7221,7 @@ void FREQMOD(_modulate_block)(FREQMOD() _q, \
|
||||
// define freqmod APIs
|
||||
LIQUID_FREQMOD_DEFINE_API(LIQUID_FREQMOD_MANGLE_FLOAT,float,liquid_float_complex)
|
||||
|
||||
//
|
||||
//
|
||||
// Analog frequency demodulator
|
||||
//
|
||||
|
||||
@ -7549,7 +7589,7 @@ void ofdmframe_print_sctype(unsigned char * _p,
|
||||
unsigned int _M);
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// OFDM frame (symbol) generator
|
||||
//
|
||||
typedef struct ofdmframegen_s * ofdmframegen;
|
||||
@ -7591,7 +7631,7 @@ void ofdmframegen_writesymbol(ofdmframegen _q,
|
||||
void ofdmframegen_writetail(ofdmframegen _q,
|
||||
liquid_float_complex * _x);
|
||||
|
||||
//
|
||||
//
|
||||
// OFDM frame (symbol) synchronizer
|
||||
//
|
||||
typedef int (*ofdmframesync_callback)(liquid_float_complex * _y,
|
||||
@ -7634,7 +7674,7 @@ void ofdmframesync_debug_disable(ofdmframesync _q);
|
||||
void ofdmframesync_debug_print(ofdmframesync _q, const char * _filename);
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// MODULE : nco (numerically-controlled oscillator)
|
||||
//
|
||||
|
||||
@ -7972,7 +8012,7 @@ float qnsearch_execute(qnsearch _g,
|
||||
unsigned int _max_iterations,
|
||||
float _target_utility);
|
||||
|
||||
//
|
||||
//
|
||||
// chromosome (for genetic algorithm search)
|
||||
//
|
||||
typedef struct chromosome_s * chromosome;
|
||||
@ -8035,7 +8075,7 @@ unsigned int chromosome_value(chromosome _c,
|
||||
float chromosome_valuef(chromosome _c,
|
||||
unsigned int _index);
|
||||
|
||||
//
|
||||
//
|
||||
// genetic algorithm search
|
||||
//
|
||||
typedef struct gasearch_s * gasearch;
|
||||
@ -8348,7 +8388,7 @@ void bsequence_create_ccodes(bsequence _a,
|
||||
#define LIQUID_MSEQUENCE_GENPOLY_M13 0x201b // 13 8191 20033 10000000011011
|
||||
#define LIQUID_MSEQUENCE_GENPOLY_M14 0x402b // 14 16383 40053 100000000101011
|
||||
#define LIQUID_MSEQUENCE_GENPOLY_M15 0x8003 // 15 32767 100003 1000000000000011
|
||||
|
||||
|
||||
typedef struct msequence_s * msequence;
|
||||
|
||||
// create a maximal-length sequence (m-sequence) object with
|
||||
@ -8402,7 +8442,7 @@ void msequence_set_state(msequence _ms,
|
||||
unsigned int _a);
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// MODULE : utility
|
||||
//
|
||||
|
||||
@ -8469,7 +8509,7 @@ void liquid_repack_bytes(unsigned char * _sym_in,
|
||||
unsigned int _sym_out_bps,
|
||||
unsigned int _sym_out_len,
|
||||
unsigned int * _num_written);
|
||||
|
||||
|
||||
// shift array to the left _b bits, filling in zeros
|
||||
// _src : source address [size: _n x 1]
|
||||
// _n : input data array size
|
||||
@ -8477,7 +8517,7 @@ void liquid_repack_bytes(unsigned char * _sym_in,
|
||||
void liquid_lbshift(unsigned char * _src,
|
||||
unsigned int _n,
|
||||
unsigned int _b);
|
||||
|
||||
|
||||
// shift array to the right _b bits, filling in zeros
|
||||
// _src : source address [size: _n x 1]
|
||||
// _n : input data array size
|
||||
@ -8485,7 +8525,7 @@ void liquid_lbshift(unsigned char * _src,
|
||||
void 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]
|
||||
// _n : input data array size
|
||||
@ -8493,7 +8533,7 @@ void liquid_rbshift(unsigned char * _src,
|
||||
void 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]
|
||||
// _n : input data array size
|
||||
@ -8501,7 +8541,7 @@ void liquid_lbcircshift(unsigned char * _src,
|
||||
void liquid_rbcircshift(unsigned char * _src,
|
||||
unsigned int _n,
|
||||
unsigned int _b);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -8512,7 +8552,7 @@ void liquid_rbcircshift(unsigned char * _src,
|
||||
void liquid_lshift(unsigned char * _src,
|
||||
unsigned int _n,
|
||||
unsigned int _b);
|
||||
|
||||
|
||||
// shift array to the right _b bytes, filling in zeros
|
||||
// _src : source address [size: _n x 1]
|
||||
// _n : input data array size
|
||||
@ -8520,7 +8560,7 @@ void liquid_lshift(unsigned char * _src,
|
||||
void liquid_rshift(unsigned char * _src,
|
||||
unsigned int _n,
|
||||
unsigned int _b);
|
||||
|
||||
|
||||
// circular shift array to the left _b bytes
|
||||
// _src : source address [size: _n x 1]
|
||||
// _n : input data array size
|
||||
@ -8528,7 +8568,7 @@ void liquid_rshift(unsigned char * _src,
|
||||
void liquid_lcircshift(unsigned char * _src,
|
||||
unsigned int _n,
|
||||
unsigned int _b);
|
||||
|
||||
|
||||
// circular shift array to the right _b bytes
|
||||
// _src : source address [size: _n x 1]
|
||||
// _n : input data array size
|
||||
@ -8536,9 +8576,9 @@ void liquid_lcircshift(unsigned char * _src,
|
||||
void liquid_rcircshift(unsigned char * _src,
|
||||
unsigned int _n,
|
||||
unsigned int _b);
|
||||
|
||||
|
||||
// Count the number of ones in an integer
|
||||
unsigned int liquid_count_ones(unsigned int _x);
|
||||
unsigned int liquid_count_ones(unsigned int _x);
|
||||
|
||||
// count number of ones in an integer, modulo 2
|
||||
unsigned int liquid_count_ones_mod2(unsigned int _x);
|
||||
@ -8548,7 +8588,7 @@ unsigned int liquid_bdotprod(unsigned int _x,
|
||||
unsigned int _y);
|
||||
|
||||
// Count leading zeros in an integer
|
||||
unsigned int liquid_count_leading_zeros(unsigned int _x);
|
||||
unsigned int liquid_count_leading_zeros(unsigned int _x);
|
||||
|
||||
// Most-significant bit index
|
||||
unsigned int liquid_msb_index(unsigned int _x);
|
||||
@ -8571,7 +8611,7 @@ void liquid_get_scale(float _val,
|
||||
char * _unit,
|
||||
float * _scale);
|
||||
|
||||
//
|
||||
//
|
||||
// MODULE : vector
|
||||
//
|
||||
|
||||
@ -8649,7 +8689,7 @@ void VECTOR(_normalize)(T * _x, \
|
||||
LIQUID_VECTOR_DEFINE_API(LIQUID_VECTOR_MANGLE_RF, float, float)
|
||||
LIQUID_VECTOR_DEFINE_API(LIQUID_VECTOR_MANGLE_CF, liquid_float_complex, float)
|
||||
|
||||
//
|
||||
//
|
||||
// mixed types
|
||||
//
|
||||
#if 0
|
||||
|
82
external/liquid-dsp/makefile.mingw32
vendored
82
external/liquid-dsp/makefile.mingw32
vendored
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2007 - 2018 Joseph Gaeddert
|
||||
# Copyright (c) 2007 - 2020 Joseph Gaeddert
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
@ -65,6 +65,7 @@ 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
|
||||
CONFIG_CFLAGS = -m32 -O3 -msse4.2 -ffast-math
|
||||
CPPFLAGS = $(INCLUDE_CFLAGS)
|
||||
@ -354,6 +355,7 @@ fft_autotests := \
|
||||
src/fft/tests/fft_prime_autotest.c \
|
||||
src/fft/tests/fft_r2r_autotest.c \
|
||||
src/fft/tests/fft_shift_autotest.c \
|
||||
src/fft/tests/spgram_autotest.c \
|
||||
|
||||
# additional autotest objects
|
||||
autotest_extra_obj += \
|
||||
@ -652,6 +654,7 @@ framing_autotests := \
|
||||
src/framing/tests/detector_autotest.c \
|
||||
src/framing/tests/flexframesync_autotest.c \
|
||||
src/framing/tests/framesync64_autotest.c \
|
||||
src/framing/tests/ofdmflexframe_autotest.c \
|
||||
src/framing/tests/qdetector_cccf_autotest.c \
|
||||
src/framing/tests/qpacketmodem_autotest.c \
|
||||
src/framing/tests/qpilotsync_autotest.c \
|
||||
@ -1124,6 +1127,7 @@ objects := \
|
||||
|
||||
autotest_sources := \
|
||||
autotest/null_autotest.c \
|
||||
autotest/libliquid_autotest.c \
|
||||
$(agc_autotests) \
|
||||
$(audio_autotests) \
|
||||
$(buffer_autotests) \
|
||||
@ -1190,7 +1194,7 @@ libliquid.ar: $(objects)
|
||||
|
||||
# gcc -dynamiclib -install_name libliquid.dylib -o libliquid.dylib libmodem.a libutility.a
|
||||
libliquid.dylib: $(objects)
|
||||
$(CC) -dynamiclib -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS)
|
||||
$(CC) -dynamiclib ${COVERAGE_FLAGS} -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS)
|
||||
|
||||
#
|
||||
# linux, et al
|
||||
@ -1322,6 +1326,43 @@ clean-check:
|
||||
$(RM) $(autotest_extra_obj)
|
||||
$(RM) autotest.json
|
||||
|
||||
##
|
||||
## TARGET : doc-check - build and run basic documentation checks
|
||||
##
|
||||
|
||||
readme.example.c : README.md
|
||||
${SED} -n '22,42p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
|
||||
|
||||
readme.example.o : %.o : %.c ${include_headers}
|
||||
${CC} ${CPPFLAGS} ${CFLAGS} $< -c -o $@
|
||||
|
||||
readme.example : % : %.o ${ARCHIVE_LIB}
|
||||
${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS}
|
||||
|
||||
doc-check : readme.example ; ./readme.example
|
||||
|
||||
clean-doc-check:
|
||||
${RM} readme.example*
|
||||
|
||||
##
|
||||
## TARGET : coverage - run coverage test and produce report
|
||||
##
|
||||
coverage: coverage.out
|
||||
tail -n5 $<
|
||||
|
||||
${autotest_prog}.gcda : %.gcda : %
|
||||
./${autotest_prog}
|
||||
|
||||
coverage.out : ${autotest_prog}.gcda
|
||||
gcovr --root=src --exclude-directories=src/.*/tests --print-summary > $@
|
||||
|
||||
clean-coverage:
|
||||
$(RM) src/*.gcda src/*/src/*.gcda src/*/tests/*.gcda src/*/tests/data/*.gcda autotest/*.gcda scripts/*.gcda
|
||||
$(RM) src/*.gcno src/*/src/*.gcno src/*/tests/*.gcno src/*/tests/data/*.gcno autotest/*.gcno scripts/*.gcno
|
||||
$(RM) autotest/*.gcda bench/*.gcda examples/*.gcda sandbox/*.gcda
|
||||
$(RM) autotest/*.gcno bench/*.gcno examples/*.gcno sandbox/*.gcno
|
||||
$(RM) *.gcda *.gcno coverage.out
|
||||
|
||||
|
||||
##
|
||||
## TARGET : bench - build and run all benchmarks
|
||||
@ -1362,7 +1403,7 @@ $(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) ${ARCHIVE
|
||||
|
||||
# run the benchmark program
|
||||
bench: $(bench_prog)
|
||||
./$(bench_prog)
|
||||
./$(bench_prog) -o benchmark.json
|
||||
|
||||
# benchmark compare script
|
||||
scripts/benchmark_compare : % : %.c
|
||||
@ -1445,12 +1486,15 @@ example_programs := \
|
||||
examples/firpfbchr_crcf_example \
|
||||
examples/firinterp_crcf_example \
|
||||
examples/firinterp_firdecim_crcf_example \
|
||||
examples/firinterp_rrrf_linear_example \
|
||||
examples/firinterp_rrrf_window_example \
|
||||
examples/firpfbch_crcf_example \
|
||||
examples/firpfbch_crcf_analysis_example \
|
||||
examples/firpfbch_crcf_synthesis_example \
|
||||
examples/flexframesync_example \
|
||||
examples/flexframesync_reconfig_example \
|
||||
examples/framesync64_example \
|
||||
examples/framesync64_performance_example \
|
||||
examples/freqmodem_example \
|
||||
examples/fskframesync_example \
|
||||
examples/fskmodem_example \
|
||||
@ -1474,6 +1518,7 @@ example_programs := \
|
||||
examples/iirhilb_example \
|
||||
examples/iirhilb_filter_example \
|
||||
examples/iirinterp_crcf_example \
|
||||
examples/kaiser_window_example \
|
||||
examples/kbd_window_example \
|
||||
examples/lpc_example \
|
||||
examples/libliquid_example \
|
||||
@ -1501,6 +1546,7 @@ example_programs := \
|
||||
examples/packetizer_example \
|
||||
examples/packetizer_soft_example \
|
||||
examples/pll_example \
|
||||
examples/polyfit_comparison_example \
|
||||
examples/polyfit_example \
|
||||
examples/polyfit_lagrange_example \
|
||||
examples/poly_findroots_example \
|
||||
@ -1517,6 +1563,7 @@ example_programs := \
|
||||
examples/rresamp_rrrf_example \
|
||||
examples/resamp_crcf_example \
|
||||
examples/resamp_crcf_noise_example \
|
||||
examples/resamp_crcf_rate_match_example \
|
||||
examples/resamp2_cccf_example \
|
||||
examples/resamp2_crcf_example \
|
||||
examples/resamp2_crcf_decim_example \
|
||||
@ -1535,6 +1582,8 @@ example_programs := \
|
||||
examples/symtrack_cccf_example \
|
||||
examples/wdelayf_example \
|
||||
examples/windowf_example \
|
||||
examples/window_enbw_example \
|
||||
examples/windowing_example \
|
||||
|
||||
# examples/metadata_example
|
||||
# examples/ofdmframegen_example
|
||||
@ -1620,7 +1669,8 @@ sandbox_programs = \
|
||||
sandbox/gmskmodem_coherent_test \
|
||||
sandbox/gmskmodem_equalizer_test \
|
||||
sandbox/householder_test \
|
||||
sandbox/iirdes_example \
|
||||
sandbox/iirdes_test \
|
||||
sandbox/iirdes_gradsearch_test \
|
||||
sandbox/iirfilt_intdiff_test \
|
||||
sandbox/levinson_test \
|
||||
sandbox/matched_filter_test \
|
||||
@ -1703,30 +1753,10 @@ world : all check bench examples sandbox
|
||||
|
||||
clean-modules:
|
||||
@echo "cleaning modules..."
|
||||
$(RM) src/agc/src/*.o src/agc/bench/*.o src/agc/tests/*.o
|
||||
$(RM) src/audio/src/*.o src/audio/bench/*.o src/audio/tests/*.o
|
||||
$(RM) src/buffer/src/*.o src/buffer/bench/*.o src/buffer/tests/*.o
|
||||
$(RM) src/channel/src/*.o src/channel/bench/*.o src/channel/tests/*.o
|
||||
$(RM) src/dotprod/src/*.o src/dotprod/bench/*.o src/dotprod/tests/*.o
|
||||
$(RM) src/equalization/src/*.o src/equalization/bench/*.o src/equalization/tests/*.o
|
||||
$(RM) src/fec/src/*.o src/fec/bench/*.o src/fec/tests/*.o
|
||||
$(RM) src/fft/src/*.o src/fft/bench/*.o src/fft/tests/*.o
|
||||
$(RM) src/filter/src/*.o src/filter/bench/*.o src/filter/tests/*.o
|
||||
$(RM) src/framing/src/*.o src/framing/bench/*.o src/framing/tests/*.o
|
||||
$(RM) src/math/src/*.o src/math/bench/*.o src/math/tests/*.o
|
||||
$(RM) src/matrix/src/*.o src/matrix/bench/*.o src/matrix/tests/*.o
|
||||
$(RM) src/modem/src/*.o src/modem/bench/*.o src/modem/tests/*.o
|
||||
$(RM) src/multichannel/src/*.o src/multichannel/bench/*.o src/multichannel/tests/*.o
|
||||
$(RM) src/nco/src/*.o src/nco/bench/*.o src/nco/tests/*.o
|
||||
$(RM) src/optim/src/*.o src/optim/bench/*.o src/optim/tests/*.o
|
||||
$(RM) src/quantization/src/*.o src/quantization/bench/*.o src/quantization/tests/*.o
|
||||
$(RM) src/random/src/*.o src/random/bench/*.o src/random/tests/*.o
|
||||
$(RM) src/sequence/src/*.o src/sequence/bench/*.o src/sequence/tests/*.o
|
||||
$(RM) src/utility/src/*.o src/utility/bench/*.o src/utility/tests/*.o
|
||||
$(RM) src/vector/src/*.o src/vector/bench/*.o src/vector/tests/*.o
|
||||
$(RM) src/*/src/*.o src/*/bench/*.o src/*/tests/*.o
|
||||
$(RM) src/libliquid.o
|
||||
|
||||
clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox
|
||||
clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench clean-examples clean-sandbox
|
||||
$(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean)
|
||||
|
||||
##
|
||||
|
82
external/liquid-dsp/makefile.mingw64
vendored
82
external/liquid-dsp/makefile.mingw64
vendored
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2007 - 2019 Joseph Gaeddert
|
||||
# Copyright (c) 2007 - 2020 Joseph Gaeddert
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
@ -65,6 +65,7 @@ RANLIB := ranlib
|
||||
|
||||
# flags
|
||||
INCLUDE_CFLAGS = $(addprefix -I,$(include_dirs))
|
||||
COVERAGE_FLAGS = # dynamic library linker needs separate flag
|
||||
#MINGW: optimizations goes here, use SSSE42 for 64bit
|
||||
CONFIG_CFLAGS = -O3 -msse4.2 -ffast-math
|
||||
CPPFLAGS = $(INCLUDE_CFLAGS)
|
||||
@ -354,6 +355,7 @@ fft_autotests := \
|
||||
src/fft/tests/fft_prime_autotest.c \
|
||||
src/fft/tests/fft_r2r_autotest.c \
|
||||
src/fft/tests/fft_shift_autotest.c \
|
||||
src/fft/tests/spgram_autotest.c \
|
||||
|
||||
# additional autotest objects
|
||||
autotest_extra_obj += \
|
||||
@ -652,6 +654,7 @@ framing_autotests := \
|
||||
src/framing/tests/detector_autotest.c \
|
||||
src/framing/tests/flexframesync_autotest.c \
|
||||
src/framing/tests/framesync64_autotest.c \
|
||||
src/framing/tests/ofdmflexframe_autotest.c \
|
||||
src/framing/tests/qdetector_cccf_autotest.c \
|
||||
src/framing/tests/qpacketmodem_autotest.c \
|
||||
src/framing/tests/qpilotsync_autotest.c \
|
||||
@ -1124,6 +1127,7 @@ objects := \
|
||||
|
||||
autotest_sources := \
|
||||
autotest/null_autotest.c \
|
||||
autotest/libliquid_autotest.c \
|
||||
$(agc_autotests) \
|
||||
$(audio_autotests) \
|
||||
$(buffer_autotests) \
|
||||
@ -1190,7 +1194,7 @@ libliquid.ar: $(objects)
|
||||
|
||||
# gcc -dynamiclib -install_name libliquid.dylib -o libliquid.dylib libmodem.a libutility.a
|
||||
libliquid.dylib: $(objects)
|
||||
$(CC) -dynamiclib -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS)
|
||||
$(CC) -dynamiclib ${COVERAGE_FLAGS} -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS)
|
||||
|
||||
#
|
||||
# linux, et al
|
||||
@ -1322,6 +1326,43 @@ clean-check:
|
||||
$(RM) $(autotest_extra_obj)
|
||||
$(RM) autotest.json
|
||||
|
||||
##
|
||||
## TARGET : doc-check - build and run basic documentation checks
|
||||
##
|
||||
|
||||
readme.example.c : README.md
|
||||
${SED} -n '22,42p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
|
||||
|
||||
readme.example.o : %.o : %.c ${include_headers}
|
||||
${CC} ${CPPFLAGS} ${CFLAGS} $< -c -o $@
|
||||
|
||||
readme.example : % : %.o ${ARCHIVE_LIB}
|
||||
${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS}
|
||||
|
||||
doc-check : readme.example ; ./readme.example
|
||||
|
||||
clean-doc-check:
|
||||
${RM} readme.example*
|
||||
|
||||
##
|
||||
## TARGET : coverage - run coverage test and produce report
|
||||
##
|
||||
coverage: coverage.out
|
||||
tail -n5 $<
|
||||
|
||||
${autotest_prog}.gcda : %.gcda : %
|
||||
./${autotest_prog}
|
||||
|
||||
coverage.out : ${autotest_prog}.gcda
|
||||
gcovr --root=src --exclude-directories=src/.*/tests --print-summary > $@
|
||||
|
||||
clean-coverage:
|
||||
$(RM) src/*.gcda src/*/src/*.gcda src/*/tests/*.gcda src/*/tests/data/*.gcda autotest/*.gcda scripts/*.gcda
|
||||
$(RM) src/*.gcno src/*/src/*.gcno src/*/tests/*.gcno src/*/tests/data/*.gcno autotest/*.gcno scripts/*.gcno
|
||||
$(RM) autotest/*.gcda bench/*.gcda examples/*.gcda sandbox/*.gcda
|
||||
$(RM) autotest/*.gcno bench/*.gcno examples/*.gcno sandbox/*.gcno
|
||||
$(RM) *.gcda *.gcno coverage.out
|
||||
|
||||
|
||||
##
|
||||
## TARGET : bench - build and run all benchmarks
|
||||
@ -1362,7 +1403,7 @@ $(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) ${ARCHIVE
|
||||
|
||||
# run the benchmark program
|
||||
bench: $(bench_prog)
|
||||
./$(bench_prog)
|
||||
./$(bench_prog) -o benchmark.json
|
||||
|
||||
# benchmark compare script
|
||||
scripts/benchmark_compare : % : %.c
|
||||
@ -1445,12 +1486,15 @@ example_programs := \
|
||||
examples/firpfbchr_crcf_example \
|
||||
examples/firinterp_crcf_example \
|
||||
examples/firinterp_firdecim_crcf_example \
|
||||
examples/firinterp_rrrf_linear_example \
|
||||
examples/firinterp_rrrf_window_example \
|
||||
examples/firpfbch_crcf_example \
|
||||
examples/firpfbch_crcf_analysis_example \
|
||||
examples/firpfbch_crcf_synthesis_example \
|
||||
examples/flexframesync_example \
|
||||
examples/flexframesync_reconfig_example \
|
||||
examples/framesync64_example \
|
||||
examples/framesync64_performance_example \
|
||||
examples/freqmodem_example \
|
||||
examples/fskframesync_example \
|
||||
examples/fskmodem_example \
|
||||
@ -1474,6 +1518,7 @@ example_programs := \
|
||||
examples/iirhilb_example \
|
||||
examples/iirhilb_filter_example \
|
||||
examples/iirinterp_crcf_example \
|
||||
examples/kaiser_window_example \
|
||||
examples/kbd_window_example \
|
||||
examples/lpc_example \
|
||||
examples/libliquid_example \
|
||||
@ -1501,6 +1546,7 @@ example_programs := \
|
||||
examples/packetizer_example \
|
||||
examples/packetizer_soft_example \
|
||||
examples/pll_example \
|
||||
examples/polyfit_comparison_example \
|
||||
examples/polyfit_example \
|
||||
examples/polyfit_lagrange_example \
|
||||
examples/poly_findroots_example \
|
||||
@ -1517,6 +1563,7 @@ example_programs := \
|
||||
examples/rresamp_rrrf_example \
|
||||
examples/resamp_crcf_example \
|
||||
examples/resamp_crcf_noise_example \
|
||||
examples/resamp_crcf_rate_match_example \
|
||||
examples/resamp2_cccf_example \
|
||||
examples/resamp2_crcf_example \
|
||||
examples/resamp2_crcf_decim_example \
|
||||
@ -1535,6 +1582,8 @@ example_programs := \
|
||||
examples/symtrack_cccf_example \
|
||||
examples/wdelayf_example \
|
||||
examples/windowf_example \
|
||||
examples/window_enbw_example \
|
||||
examples/windowing_example \
|
||||
|
||||
# examples/metadata_example
|
||||
# examples/ofdmframegen_example
|
||||
@ -1620,7 +1669,8 @@ sandbox_programs = \
|
||||
sandbox/gmskmodem_coherent_test \
|
||||
sandbox/gmskmodem_equalizer_test \
|
||||
sandbox/householder_test \
|
||||
sandbox/iirdes_example \
|
||||
sandbox/iirdes_test \
|
||||
sandbox/iirdes_gradsearch_test \
|
||||
sandbox/iirfilt_intdiff_test \
|
||||
sandbox/levinson_test \
|
||||
sandbox/matched_filter_test \
|
||||
@ -1703,30 +1753,10 @@ world : all check bench examples sandbox
|
||||
|
||||
clean-modules:
|
||||
@echo "cleaning modules..."
|
||||
$(RM) src/agc/src/*.o src/agc/bench/*.o src/agc/tests/*.o
|
||||
$(RM) src/audio/src/*.o src/audio/bench/*.o src/audio/tests/*.o
|
||||
$(RM) src/buffer/src/*.o src/buffer/bench/*.o src/buffer/tests/*.o
|
||||
$(RM) src/channel/src/*.o src/channel/bench/*.o src/channel/tests/*.o
|
||||
$(RM) src/dotprod/src/*.o src/dotprod/bench/*.o src/dotprod/tests/*.o
|
||||
$(RM) src/equalization/src/*.o src/equalization/bench/*.o src/equalization/tests/*.o
|
||||
$(RM) src/fec/src/*.o src/fec/bench/*.o src/fec/tests/*.o
|
||||
$(RM) src/fft/src/*.o src/fft/bench/*.o src/fft/tests/*.o
|
||||
$(RM) src/filter/src/*.o src/filter/bench/*.o src/filter/tests/*.o
|
||||
$(RM) src/framing/src/*.o src/framing/bench/*.o src/framing/tests/*.o
|
||||
$(RM) src/math/src/*.o src/math/bench/*.o src/math/tests/*.o
|
||||
$(RM) src/matrix/src/*.o src/matrix/bench/*.o src/matrix/tests/*.o
|
||||
$(RM) src/modem/src/*.o src/modem/bench/*.o src/modem/tests/*.o
|
||||
$(RM) src/multichannel/src/*.o src/multichannel/bench/*.o src/multichannel/tests/*.o
|
||||
$(RM) src/nco/src/*.o src/nco/bench/*.o src/nco/tests/*.o
|
||||
$(RM) src/optim/src/*.o src/optim/bench/*.o src/optim/tests/*.o
|
||||
$(RM) src/quantization/src/*.o src/quantization/bench/*.o src/quantization/tests/*.o
|
||||
$(RM) src/random/src/*.o src/random/bench/*.o src/random/tests/*.o
|
||||
$(RM) src/sequence/src/*.o src/sequence/bench/*.o src/sequence/tests/*.o
|
||||
$(RM) src/utility/src/*.o src/utility/bench/*.o src/utility/tests/*.o
|
||||
$(RM) src/vector/src/*.o src/vector/bench/*.o src/vector/tests/*.o
|
||||
$(RM) src/*/src/*.o src/*/bench/*.o src/*/tests/*.o
|
||||
$(RM) src/libliquid.o
|
||||
|
||||
clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox
|
||||
clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench clean-examples clean-sandbox
|
||||
$(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean)
|
||||
|
||||
##
|
||||
|
4619
external/liquid-dsp/msvc/32/libliquid.def
vendored
4619
external/liquid-dsp/msvc/32/libliquid.def
vendored
File diff suppressed because it is too large
Load Diff
BIN
external/liquid-dsp/msvc/32/libliquid.dll
vendored
BIN
external/liquid-dsp/msvc/32/libliquid.dll
vendored
Binary file not shown.
BIN
external/liquid-dsp/msvc/32/libliquid.lib
vendored
BIN
external/liquid-dsp/msvc/32/libliquid.lib
vendored
Binary file not shown.
4619
external/liquid-dsp/msvc/64/libliquid.def
vendored
4619
external/liquid-dsp/msvc/64/libliquid.def
vendored
File diff suppressed because it is too large
Load Diff
BIN
external/liquid-dsp/msvc/64/libliquid.dll
vendored
BIN
external/liquid-dsp/msvc/64/libliquid.dll
vendored
Binary file not shown.
BIN
external/liquid-dsp/msvc/64/libliquid.lib
vendored
BIN
external/liquid-dsp/msvc/64/libliquid.lib
vendored
Binary file not shown.
BIN
external/msvc/x64/libwinpthread-1.dll
vendored
BIN
external/msvc/x64/libwinpthread-1.dll
vendored
Binary file not shown.
BIN
external/msvc/x86/libwinpthread-1.dll
vendored
BIN
external/msvc/x86/libwinpthread-1.dll
vendored
Binary file not shown.
Loading…
Reference in New Issue
Block a user