Skip to main content

Implementation of Generalized Enumerative Sphere Shaping in Rust called Arbitrary Distribution Enumerative Sphere Shaping (AD-ESS)

Project description

Python bindings for AD-ESS

An implementation of arbitrary-distribution enumerative sphere shaping (AD-ESS)1. AD-ESS is am extension of the enumerative sphere shaping (ESS)[2] algorithm that maps uniformly distributed bits to amplitudes with a distribution tailored to the additive white Gaussian noise (AWGN) channel. In AD-ESS the output distribution of the amplitudes is adaptable, making the algorithm suitable for a wide range of channels. The algorithm is implemented in Rust, but this package contains Python bindings for the Rust library.

A second algorithm named reverse trellis shaping (RTS) is also implemented. Unlike AD-ESS it uses energy based ordering of the sequences and thus always has minimal rate loss. Its complexity is the same as Laroias 1st algorithm[3].

For examples see the example script. For documentation see here.

[2]: F. M. J. Willems and J. J. Wuijts, "A pragmatic approach to shaped coded modulation," in Proc. IEEE Symp. on Commun. and Veh. Technol. in the Benelux, 1993.

[3]: R. Laroia, N. Farvardin and S. A. Tretter, "On optimal shaping of multidimensional constellations," in IEEE Trans. Inf. Theory, vol. 40, no. 4, pp. 1044-1056, July 1994, doi: 10.1109/18.335969.

Installation

There may currently be some issues installing PyAD-ESS on Windows as AD-ESS uses GMP which can not easily be built on Windows. Thanks to pre-built binary wheels, installation with pip should work on Windows for Python {3.10, 3.11, 3.12.

Using PIP

Type pip install pyadess into your favourite command line.

From Source

  1. Make sure that Rust and its package manager cargo are installed
  2. Clone this repository
  3. Create a virtual python environment in a folder of your choice (e.g. python -m venv $VENV_NAME)
  4. Activate the virtual environment (e.g. cd $VENV_NAME; source bin/activate if you are using Bash)
  5. Install the pyadess package with pip: pip install $YOUR_PATH_TO/adess/python
    • If this fails, your pip may be to old. Try pip install --upgrade pip

Development

Building can be done according to: https://pyo3.rs/v0.17.3/getting_started.html

TLDR: pip install maturin; maturin develop

Documentation

Documentation can be built using (a sufficiently recent version of) pdoc. First run maturin develop or pip install . next build the docs with pdoc --math pyadess. A scrip automating this process is located in mk_doc.sh. This script additionally replaces some ugly numpy type hints with nice ones.

Project content

  • src/lib.rs: PyO3 Rust to python bindings
  • pyadess.pyi: Python function type hints

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyadess-0.1.1.tar.gz (24.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyadess-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pyadess-0.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pyadess-0.1.1-cp314-cp314-macosx_11_0_arm64.whl (379.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyadess-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyadess-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (379.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyadess-0.1.1-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

pyadess-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pyadess-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (379.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyadess-0.1.1-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

pyadess-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyadess-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (379.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyadess-0.1.1-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86-64

pyadess-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyadess-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pyadess-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file pyadess-0.1.1.tar.gz.

File metadata

  • Download URL: pyadess-0.1.1.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyadess-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f9b5e03af122420e9cf1251c5ef02d23b5632734f6cf4ba42de44111009c08fc
MD5 9f78448e6b8d8f108ae81ef9cb7b661f
BLAKE2b-256 ef9993de8ab80efa928a512a73301f353d322d9b6d5ab62c2f6d643a1dfeb068

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.tar.gz:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 acca807663e95b8871dc452005aa1412fa93391abf6990ef39d8f33a2ccd51dc
MD5 c73f6227b1249c9daf29c7b99047464f
BLAKE2b-256 aacba27a4552b3ef0b0e5cabc934342e012448fd75149083d9caa0ccc103c7ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d9139508753319bef41c4000c84be16ff8d2799e4d91f48164d31e413cf52ff
MD5 225d230e00157a5c58ddd5e39b462735
BLAKE2b-256 54b28222cda2a341f11c22b7c387efa5cd07a093e49cb9449d3987b28af0469f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c5fb659d9b982d96a0f181bff6ccdea7d61379bd82a36454c56a409c74c642b8
MD5 feb33e5ac2a818bfc47417a25f9b1ab1
BLAKE2b-256 c6519e08748006d721ed4b6f506fb8de0b63cd5bd913772ea4cc8e74cd582911

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 989f05469cd31a93e78719947c63ade08626009a8a384bbd113778b94b20affb
MD5 9c570afccae0ba5e66d9a709af6666a3
BLAKE2b-256 dbe5a3b4a8efe1361fc345e8baf3d01b2f3714126e577b69e271bb7a3abdc494

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37c73bbaf8ba938d8d97ce3093a26b9bac4b5d911949470f9bdd9d4b46410e67
MD5 c0b47e697bfa4ae2427b141f93ca5475
BLAKE2b-256 9a9a3d06c6d036eaacf7ea0d02afe4833ca8d680857dd55b0e68d5a61030fc9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyadess-0.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyadess-0.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 88eb0a6344bdd2e66a1a1bfa41db80df8358b57f873933f6fe7c3e4aa43f1195
MD5 5ca31c88c5190e07d39e03146117c82c
BLAKE2b-256 9c7b084d923dd4dd2a0b5411ccb3c0620a01d46d2554c580dffa556e2b556202

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp312-cp312-win_amd64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d5dff293e60810cf8fa4036bd8a8517acdf8a4a2f1592c203bcd0b562a0d4cf8
MD5 059bf240a89167a26cba91cdb445bb78
BLAKE2b-256 b2ac7dbd0d17fcb475f5693a7d55a7f63d4b1c0e4c33d3329b2d93adb1c9c536

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef37326f84449d751c5597c9bb805233df71512698144e12e55a68dc5e1c0eab
MD5 f0285f238566b859da2864ecec59538e
BLAKE2b-256 cc0aae246c46f5a3f4165b824749f309efc22ed7c9ced962976de076d3841e30

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyadess-0.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyadess-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fc316f37467a677970660310904291c98879c985cce0522785d7e4266ce4dc45
MD5 a21c65b5aed2345322f348fb69a56f6e
BLAKE2b-256 62c5db82dc6e79bfa81ac65f208718b65bc35f6fbedb60c31f2de53ca024a7b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp311-cp311-win_amd64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6cce9a40526ea75da2d6befc24332100e037852b7ee6f0fd16e3309d714f79e5
MD5 f391dd28b56e4e99359b9c97d8ffc8ea
BLAKE2b-256 69b79559c0e89f5b97cbf53b95a87c96d5bd811244252cbb84b597be85bbde94

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3288ee2e447694fb8c22bc06a414f46e6348a1e0fc89585605afff1356f1e955
MD5 2e7899d524facdc77557b16d9ec49ddc
BLAKE2b-256 7b70665314419f50e55a5830c661db944e63ede0f9d46df99de4e56317e1e0f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyadess-0.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyadess-0.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0154802e6893008781054ea5170c5d4aaefefab1f59dafa54a0aa6fea3a78ba4
MD5 4f0eeaafc763aad0b9eeb5f65327f0ca
BLAKE2b-256 3140667b94ea3be394609d66605e12cd2c97ef78f4695a44d2fcf29f21c6dd31

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp310-cp310-win_amd64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 217d63ab5870cda41f6b89be0e73638c275c0ede688988cb631c8c1b185c5dfb
MD5 20e252a5bb714b51ca68d26ddbd89570
BLAKE2b-256 f8db8bcce915b27c361aefa3b3aeaef7acc1fead390546d7648f420f7d2563b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e7d5d3b9b40ab962e0c42a24f260df9c44ce96e9ebeb5ee56961ad03f32c4c9a
MD5 69169f0d3a73ee89022308972ea438de
BLAKE2b-256 20e2f5cd354c80e847adfbdc02593a7726818f644a7cbb87919713fd815dc82c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyadess-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aefbe879e9a6f31e9cbcd0b5ce232ae19cf62eb7b35f26a3b65a3b5c60d87519
MD5 74bc8835048d6fb69ed373522e904dcf
BLAKE2b-256 2030953d9aed8207f79aeb28ff8269c05dcc580b9a17921e86877880729cbc78

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yml on kit-cel/ad-ess

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page