A fast simulator and a library dedicated to the channel coding.
Changes listed below:
operator=
method to the module::Socket
class to simplify the bindingcreate_reset_task
method in the module::Module
classget_n_input_sockets
and get_n_output_sockets
methods in module::Task
tools::Interface_is_done
to tools::Sequence
: enable auto-stop in tools::Pipeline
exec_step
method to tools::Sequence
: enable task by task executiontools::Sequence
: new task is added to graph if all input sockets are fedget_info_bits_pos
method in module::Extractor_RSC
classmodule::Switcher
: enable different type and number of elements in commute
and select
taskspy_aff3ct
)puncture
method prototype of the module::Puncturer
classtools::Pipeline
is destroyed (avoid bugs)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
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
Changes listed below:
Changes listed below:
Changes listed below:
Changes listed below:
Changes listed below:
Changes listed below:
Changes listed below:
--sim-mpi-comm
argument in --mnt-mpi-comm-freq
.--mnt-red-lazy
and --mnt-red-lazy-freq
).