Version 1.5.0
This release includes substantially improved testing coverage, deep copy()
methods for nearly all objects, improved speed, and resolves a number of issues and pull requests.
- build
- added support for PlatformIO for embeedded
development (thanks, @jcw!) - incorporated recursive
copy()
methods to objects to facilitate c++ copy
constructors for bindings; now all objects can be deep copied to a new
object with their entire memory and state preserved - added convenience method to malloc and copy memory arrays
- improved support for error codes across objects and methods
- cleaned up spelling errors across project (thanks, @nowls!)
- scrubbed function argument variable names to avoid underscore followed
by a capital letter, causing trouble with pre-compiler processing - added basic test to check linking to installed library, incorporating
into CI/CD pipelines - added more example programs
- added support for PlatformIO for embeedded
- autotest
- increased coverage testing (81% across entire project)
- added the ability to "hammer" a particular test by running repeatedly on
incremental seeds to assess specific edge cases (e.g. with random data) - added timer to show execution time for each test and identify areas for
speed improvements - added methods for testing spectral response of various fields
- added special directory for storing output logs:
autotest/logs/
- benchmark
- replacing old C-based benchmark comparison with simpler python version
- dotprod
- added support for AVX SIMD in vector dot products (thanks, @vankxr!)
- fft
- adding macro to allow for aligned memory allocation if FFTW is used
(thanks, @nowls!)
- adding macro to allow for aligned memory allocation if FFTW is used
- filter
- added new halfband filter design using Parks-McClellan algorithm and
qs1dsearch method to provide as exact a specification as possible - added method to retrieve filter response from coefficients array
- dds: adding methods to get/set scale
- firhilb, iirhilb: added block processing method
- msresamp, resamp: adding method to provide the exact number of output
samples with provided input size - msresamp2, resamp2: using better halfband filter design for exact user
specifications - resamp: adding methods to get/set scale, fixing filter bank resolution
(was hard-coded, now respects user configuration)
- added new halfband filter design using Parks-McClellan algorithm and
- framing
- framesync64: added methods to set callback and userdata (context)
fields, adding support for exporting debugging files for post-analysis
as well as python script for processing, adding better estimate of
error vector magnitude - msource: added convenience method to recall number of samples generated
by each source - ofdmflexframesync: added methods to set callback and userdata (context)
fields - qpacketmodem: returning much better estimate of error vector magnitude
- qsource: fixed issue with carrier frequency adjustment
- framesync64: added methods to set callback and userdata (context)
- optim
- added
qs1dsearch
object to perform quad-section 1-dimensional search:
similar to bisection search, but to find potentially non-continuous
minimum/maximum of function
- added