Skip to content

Version 1.5.0

Compare
Choose a tag to compare
@jgaeddert jgaeddert released this 20 Nov 21:07
· 446 commits to master since this release
v1.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
  • 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!)
  • 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)
  • 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
  • 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