Crates.io | rsess |
lib.rs | rsess |
version | 0.1.0 |
source | src |
created_at | 2023-08-30 09:03:00.635202 |
updated_at | 2023-08-30 09:03:00.635202 |
description | Implementation of the enumerative sphere shaping algorithm for probabilistic constellation shaping. |
homepage | |
repository | https://github.com/kit-cel/rsess |
max_upload_size | |
id | 958810 |
size | 102,387 |
This project implements the enumerative sphere shaping (ESS) (implementation follows this paper) and optimum ESS (OESS) algorithms in Rust.
For ease of use it also contains the subproject pyrsess
which provides Python bindings for the Rust code.
The Rust code can be compiled and run with cargo run
.
To use the Python bindings refer to the README in the pyrsess
subfolder.
An optimized build can be created using cargo build --release
.
The documentation can be compiled with cargo doc
.
It can then be found as .html
files in ./target/doc/ess/
.
The entry point is ./target/doc/rsess/index.html
.
By default the documentation focuses on the public interface of rsess
.
If the reader is interested in the inner workings of rsess
, running cargo doc --document-private-items
may yield additional insights.
Some test are located in src/tests.rs
, these can be run with cargo test
.
src/lib.rs
DistributionMatcher
ESS
and OESS
ESS
and OESS
which implement DistributionMatcher
encode
/ decode
functionsASK
src/trellis.rs
Trellis
encode
/ decode
src/iterators.rs
Amplitudes
Energies
src/tests.rs