Skip to content

Tags: Renlor/aff3ct

Tags

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

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').