Tags

Tags give the ability to mark specific points in history as being important
  • v3.0.2

    Changes listed below.
    - add `operator=` method to the `module::Socket` class to simplify the binding
    - add an automated `create_reset_task` method in the `module::Module` class
    - add `get_n_input_sockets` and `get_n_output_sockets` methods in `module::Task`
    - add `tools::Interface_is_done` to `tools::Sequence`: enable auto-stop in
      `tools::Pipeline`
    - add `exec_step` method to `tools::Sequence`: enable task by task execution
    - improve `tools::Sequence`: new task is added to graph if all input sockets are
      fed
    - implement `get_info_bits_pos` method in `module::Extractor_RSC` class
    - improve `module::Switcher`: enable different type and number of elements in
      `commute` and `select` tasks
    - plug CWD socket to the RS decoder (to know if the decoder found a codeword)
    - replace reference members by copy in modules (to simplify the binding with
      `py_aff3ct`)
    - add documentation of some tasks
    - fix doc requirements
    - fix the LDPC BP flooding/layered decoder (inter-frame SIMD)
    - fix the `puncture` method prototype of the `module::Puncturer` class
    - fix AZCW simulations
    - unbind adaptors when a `tools::Pipeline` is destroyed (avoid bugs)
    - disable backtrace on Android NDK.
  • v3.0.1

    CI: allow failure for `check-debug-parser` job.
  • v3.0.0

    Changes listed below.
    - add `tools::Sequence` and `tools::Pipeline`
    - add 0-copy `module::Adaptor` for efficient tools::Pipeline implementation
    - add `module::Binaryop`, `module::Unaryop`, `module::Reducer`
    - add `module::Switcher`, `module::Controller` and `module::Iterator` to support
      loops and conditional structures (if, switch, ...)
    - add the `hwloc` dependency for thread pinning in `tools::Sequence` and
      `tools::Pipeline`
    - implement clonable modules (required for automated duplication in
      `tools::Sequence`)
    - add a `status` `module::Socket` for each task automatically
    - add a priority during the binding of a `module::Socket`
    - add an `unbind` method to `module::Socket`
    - add BCH and LDPC decoding status
    - add FRA, BE, FE, BER and FER as output sockets for monitor BFER
    - add Multi-kernel Polar encoders and decoders
    - add `module::Extractor` to extract information bits in a codeword
    - add `module::Initializer`, `module::Incrementer`, `module::Sleeper` and
      `module::Finalizer`
    - add `module::Probe` for very precise feedback
    - add `module::Sink` (write end of a communication system into a file)
    - add `module::Subsequence` to regroup multiple tasks in a single one
    - add `tools::Interface` (clone, reset, set_n_frames, is_done, set_seed, ...)
    - add the C++ API doc in Sphinx (Doxygen + Breathe + Sphinx)
    - add an inter-SIMD implementation of the BCH encoder
    - add new code rates to DVB-RCS2
    - add a `set_n_frames` method in the `module::Module`, `tools::Sequence` and
      `tools::Pipeline`
    - add native support of inter-frames (in the `module::Task`)
    - add a new socket CWD (codeword) to get the decoding status per frame
    - add the `operator[]` method for `string` in `module::Module`
    - add scripts (based on Clang AST) to simplify the automation of AFF3CT wrappers
      (Python, MATLAB)
    - add auto-stop feature in `tools::Sequence` and `tools::Pipeline` (based on the
      `is_done` interface)
    - add `tools::Digraph` (directed graph)
    - add a new `operator=` to `module::Socket`: sockets can be bound in both
      directions (SIN = SOUT or SOUT = SIN)
    
    - replace `tools::Noise` by a channel parameter (CP) socket in `module::Channel`
      and `module::Modem`
    - command Line Interface (CLI) has been externalized
    - split source code (`src/`) in public `include/` and private `src/` folders
    - simplify `tools::Interleaver`: no need to call the `init` method anymore
    - dockerize the CI/CD
    
    - fix a bug in the LDPC Gallager A decoder for irregular matrices
    - fix the bug on the majority vote of the LDPC Gallager B decoder
    - fix bug en the DVB-S2 constants (thx Ben Mathews)
    - fix Galois field segmentation fault
    
    - speedup the LDPC Gallager E (~x2)
    
    - remove SystemC/TLM interfaces
    - remove EXIT chart simulations
    - remove legacy simulation (without `tools::Sequence`)
    - remove SIN_SOUT socket type
  • v2.3.5

    Changes listed below.
    - Fix link issues due to missing 'inline' keywords.
    - Add a custom name to the abstract 'Module' class.
    - Fix SystemC compilation error.
    - Remove the outdated completion script.
  • v2.3.4

    Changes listed below.
    - Rename PPA packages:
      * 'aff3ct' becomes 'aff3ct-bin'.
      * 'aff3ct-dev' has been split in 'libaff3ct' and 'libaff3ct-dev'.
      * 'aff3ct-doc' stays 'aff3ct-doc'.
    - Remove the automatic swap of M, N and K in the alist G and H matrices.
    - Add an exception when the path to the polar best channels is wrong.
    - Move versioning functions from 'aff3ct' to 'aff3ct::tools' namespace.
    - Remove all the code from the '.h' and '.hpp' header files.
    - Replace includes relative paths by absolute paths.
    - Clean includes, remove useless ones and add others:
      * speedup re-compilation time in many cases.
      * allow to easily include specific headers from external project.
  • v2.3.3

    Changes listed below.
    - Add AFF3CT PPA repositories for Debian/Ubuntu OSes:
      * ppa:aff3ct/aff3ct-stable
      * ppa:aff3ct/aff3ct-dev
    - Doc: explain how to use AFF3CT as a library.
  • v2.3.2

    Changes listed below.
    - Extend constructors of 'Galois' and 'BCH_polynomial_generator' to support generic primitive polynomials.
    - Add the possibility to dump the best channels of the polar codes.
    - Add missing ML decoder for BCH codes.
    - Thread safe '--enc-g-save-path' option.
    - Improve the CMake scripts and bug fixes.
    - Fix warnings on MSVC compiler (Visual Studio 2019).
    - Fix noise management in Polar codec when working on 64-bit floats.
    - Remove link dependencies with GSL and MKL libraries.
    - CI: merge 'documentation' and 'parser' stages in 'check'.
    - CI: upload the builds as artifacts in the deploy script.
  • v2.3.1

    748907df · Typos. ·
    Changes listed below.
    - Rewrite the 'CMakeLists.txt' file following the CMake 3.x philosophy with targets.
    - Generate automatically the 'aff3ct-config.cmake' file to link easily with AFF3CT.
    - Add CPack support in the 'CMakeLists.txt' to generate Windows/macOS installers, DEB, RPM, etc.
    - Split the LDPC 'WBF' algorithm in 'WBF' and 'MWBF' algorithms.
    - Rename '--dec-mwbf' in '--dec-mwbf-factor'.
    - Fix an uninitialized attribute in the polar SCF naive decoder.
    - CI: compile the shared library for Windows (DLL).
    - CI: simplify the build and deploy scripts relying on the CMake install feature.
  • v2.3.0

    Changes listed below.
    - Add BEC frozen bits generator for polar codes.
    - Add 5G frozen bits generator for polar codes.
    - Add 5G CRCs.
    - Add a naive implementation of the SC Flip (SCF) decoder for polar codes.
    - Add a new parameter '--ter-sigma' to display the standard deviation of the Gaussian distribution.
    - Enable FAST SC and FAST SCL polar decoding on BEC channels.
    - Fix a possible SCMA bug in the user to resource loop.
    - Fix compilation of incompatibles LDPC files in the library when the compiler does not support C++17 'aligned new' feature.
    - Fix wrong load in the BCJR decoder (RSC DB codes) when using non-buffered encoding.
    - CI: integrate the debug parser script.
    - CI: add RSC, RSC_DB, REP and RA regression tests.
  • v2.2.2

    Changes listed below.
    - Speedup the monitor reduction process.
    - Fix the MPI version of the code and rename the '--sim-mpi-comm' argument in '--mnt-mpi-comm-freq'.
    - Add a lazy monitor reduction process and add two arugments to enable and configure it ('--mnt-red-lazy' and '--mnt-red-lazy-freq').
  • v2.2.1

    Changes listed below.
    - CI: add public CI for the master and development branches.
    - CI: fix wrong display of SNR points in regression tests.
    - CI: add long regression tests (30 minutes max. per SNR).
    - Fix wrong version detection in the CMakeLists.txt file.
    - Add badges to the README file.
    - Update 2018 to 2019... and Happy New Year !
  • v2.2.0

    Changes listed below.
    - Add LDPC Gallager B/E and Probabilistic Parallel Bit-Flipping (PPBF) decoders.
    - Add documentation on AList and QC file formats.
    - Improve the implementation of the PSK, QAM, PAM and USER modems with a generic abstract class.
    - Add a generic implementation of the SCMA for arbitrary codebooks.
    - Externalize the AFF3CT help strings in a dedicated file.
    - Improve the CI: check automatically the documentation coherence between Sphinx and the simulator help.
    - Automatically find the help strings file and the configuration files on a regular AFF3CT installation.
    - Ease the installation of multiple AFF3CT versions on the system.
  • v2.1.1

    Changes listed below.
    - Fix a bug in 'mutual_unique' routine
    - Improve the documentation: add AVX-512 flags
    - Fix an under scope variable bug in the Task class
    - Refresh the AFF3CT headers file
    - Improve the CI
  • v2.1.0

    Many changes listed below.
    - Introduce the first version of the user doc, most of the simulator parameters are detailed.
    - Add a fast intra-frame SIMD implementation of the LDPC BP flooding (SPA) decoder.
    - Change GSL Gaussian distribution generation function from the Box-Muller to the Ziggurat method which is faster.
    - Bug fix: in the fast event generator, when the event probability is null then fill the event vector with non event values to avoid border effects.
    - The channel type is given to the modem directly in the parameters instead of an argument to the build factory function.
    - Add the possibility to display a subset of frames in the debug mode and with an inter frame level higher than 1.
    - Fix the error tracker replay function when using BEC or BSC channels by adding USER_BEC and USER_BSC channels that use events from a given file.
    - In the CLI arguments, shorten the 'debug' word to 'dbg', same for 'frame' to 'fra'.
  • v2.0.0

    Many changes listed below.
    - Add new channels: optical, BEC and BSC
    - Add new noise generators: event generator, from user pdf generator
    - Add new code families: Reed-Solomon, Turbo Product
    - Add new BCH decoder implementations: fast and genius
    - Add LDPC decoders: vertical layered, bit flipping, peeling
    - Add LDPC SIMD inter-frames implementations for LDPC decoders: flooding/layered + SPA/LSPA/MS/NMS/OMS/AMS
    - Add LDPC encoder from IRA
    - Improve LDPC encoder from H
    - Add OOK modulations
    - Add the possibility to get the mutual information in BER/FER simulations
    - Use smart pointers whenever possible
    - Improve the arguments management from the command line and the help display
    - Bug fixes and little improvements
  • v1.3.2

    Introduce generic Maximum Likelihood (ML) decoders and evolved encoders.
  • v1.3.1

    4b661fc7 · Update the refs. ·
    LDPC Approximate Min-Star (AMS) decoder + LDPC Quasi-Cyclic (QC) matrix file reader.
  • v1.3.0

    Introducing the new tasking model and evolved factories.
  • v1.2-beta.0

    d096b7e7 · Fix wrong doc. ·
    Introducing the Turbo double binary codes (DVB-RCS1 and DVB-RCS2).