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.

[1]: https://arxiv.org/pdf/2512.16808.

[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.post1.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.post1-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.post1-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.post1-cp314-cp314-macosx_11_0_arm64.whl (379.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyadess-0.1.1.post1-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.post1-cp313-cp313-macosx_11_0_arm64.whl (379.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pyadess-0.1.1.post1-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.post1-cp312-cp312-macosx_11_0_arm64.whl (379.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pyadess-0.1.1.post1-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.post1-cp311-cp311-macosx_11_0_arm64.whl (379.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pyadess-0.1.1.post1-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.post1-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.post1-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.post1.tar.gz.

File metadata

  • Download URL: pyadess-0.1.1.post1.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.post1.tar.gz
Algorithm Hash digest
SHA256 0bd201937c24c0cbf0ba2c7c15c699fc9d725ba2ffb1745328b853b87591eee2
MD5 e018bc6ff06a161359de36519d361071
BLAKE2b-256 e09badb78b3ff3cfe2129820a41bb20f93c1cbfdb449dad175141898347c6672

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1.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.post1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f7a6400ca76e1602438bd336f75fd3127c5950a7041dbbc2ad5dbe59493497ec
MD5 e55a44f358dd3b1ec34356718550fb79
BLAKE2b-256 b58505d4ec44c9665f99833f9133126e3b53891bf0d323579da6779916defb03

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 20a5a926a1d0436260220be82126aba43aca5ae3466865b38dd8a95fd94a8a62
MD5 b1a07ccaac386e0fc7984c62371e80eb
BLAKE2b-256 53f6961aa4fba008b31e0565df7c95e0a279d1322f4544814e4dfccc9b674632

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b418c277e18d3aa6313402632868f1f894084e3abfad10ae64118435938c6668
MD5 b6051bfc11e8bc8bb51c777f2df3531c
BLAKE2b-256 af5f6d2c5a09755efd57f66a6980cb22a6cad78167cc995a8e2969d40872abb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a13b58537dce52d1088983e1d7fd1a6b915eb6d7dba15d066f3b034c5d5b1e3a
MD5 ccde4663fc108f33aad9818b427ded80
BLAKE2b-256 791146e6b534f85db81f6b996807a4420526b35796474f693ecaa989cf99d6ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5676fcc3373641028e4e3db96ec9481e18d1fba91ed6a1e76154134478f8e085
MD5 52b7dbc115b89ad42bb9da5616de9562
BLAKE2b-256 3ca794e0613843e7e58d45b4bf2cff4d1e2e0b5aa490939f54517bbfc362dbfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e1ca08e2dc75159dff06966a08d7b04ecdef8e1c9d04749817d45d89e8c8a8ed
MD5 8106540067f29bdcb34f44516806699d
BLAKE2b-256 1f13814edd85f1d1716a2011baca758eb172f8297620acf06a537621363ac708

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f7f6a6a9ddcae169b714d215faab416bb5dfb867e2d599eb37eccf238ea48c8
MD5 d9924b8503263e0aa50744aa6fe90531
BLAKE2b-256 efed6d91d5239981893797824d9fbd2f3af1e0528bdd7a702f3c869601188acc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2cd476d61d91ca010ad24a83c03cad3e980438f04ca21a559b547f36081544b7
MD5 75e6bafec158324db2dcd2999def5872
BLAKE2b-256 748762aa1fadbe3b82525bc4ab6ec9d8818355871e6c513db1daa10623c1794c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 69bbfa102f8dc03fdcf1d51f36395d57066225cef54994ed7d9d25ff9904d1e2
MD5 566689975954953cdade940d96c83c14
BLAKE2b-256 60f939ea3d2095a59170351eee49201c5e677f6f11332a588503c9fab0519649

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a8b74eb21400164d604a413a5ff051d1f33d97e34cdd8c2efce75d2d22e7ebd6
MD5 e142ef175f388fe7303012f03a3f49eb
BLAKE2b-256 9ebaa575f9f512cb5de3db9648288998afae22a112755adca88cf0dd824ee807

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0b4ea9c2f64b1d4832112db6b2740515de272ad7eacb3e418f9ac7a3b3bf11d
MD5 ee89583d2475af0d3a5c8c5ddbd82447
BLAKE2b-256 91677d24223c7025acacf6ef2bb624febc4e9a45b5e7b70311a9d26ef0dfcf73

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 620ece34aa70a1dba715972e650a3d71c66d10926706d80ed6f0cbcd22ba6899
MD5 7d2ec0922b24ad9db4a234f12d322bb8
BLAKE2b-256 d6157417c8520e2e91ce45d9d717df7511be0aa3b156437cb44a6ca31c40612b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1194a099e6687857b1fba1fe7e76c3eea23368a48ecdc11e44fb0a158ff1c756
MD5 0bd7a2f0dcebc30abb3f243d2915b9be
BLAKE2b-256 d04c4529284ddeb90d2afef60f28879c80d5e4f7622bf98a7f87cdd7ffbe20e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6fe70e9fa99e18a3552ca2782f536d9bbada58f9db67814ce8ae9d7dd5852bf0
MD5 f358096159709ce1acc5048fa458d526
BLAKE2b-256 60f77b10a2af505dcb75d01c8537f1abaa737bbd3082a9e7209499e2df9bf531

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyadess-0.1.1.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6bf82be8e4543e04d45f9f6449d7cbbedd956c2dc957987d8073c0fee985c669
MD5 50efd800fd38265b3b7b52eede7fc399
BLAKE2b-256 817e163a51d5ec8e226f3f42248231a69181379d13b7f69cdbece058781f7935

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyadess-0.1.1.post1-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