Skip to content

AFF3CT - Release 3.0.0

Compare
Choose a tag to compare
@kouchy kouchy released this 14 Jun 12:39
· 27 commits to master since this release
c68f71c

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