Skip to main content

analog-ecc-heights

Python and C++ methods for computing the height profile of analog error-correcting codes, including Jiang's LP formulations and Roth's LP and combinatorial formulations. The distribution is analog-ecc-heights; the Python import is analog_ecc_heights.

One package provides a NumPy/SciPy implementation by default and optional native backends. Installing native support does not change the default backend.

Install

Requires Python 3.10 or later. Install the published package from PyPI:

python -m pip install analog-ecc-heights

Pip installs NumPy >=1.23 and SciPy >=1.9 automatically. Version 0.1.1 is available as a Python wheel and source archive.

Use an existing Python environment or follow the environment setup guide to create a virtual environment or use Conda. If your Python command is python3 or py, use it in place of python.

The default installation does not invoke CMake or require a compiler, Eigen, GLPK, or a separately installed HiGHS library. Native support is an optional source build of this same distribution; see native installation. To install from a checkout, see source installation.

Use

import numpy as np
from analog_ecc_heights import (
    available_backends,
    h_m_roth_primal_lp,
    h_m_roth_primal_combinatorial,
)

G = np.array([[1.0, 0.0, 1.0], [0.0, 1.0, 1.0]])

print(h_m_roth_primal_lp(G, 1))                         # 2.0
print(h_m_roth_primal_lp(G, 1, early_quit_threshold=1.5)) # 1.5
print(h_m_roth_primal_combinatorial(G))                # [2.0]
print(available_backends())                           # ["python"] in a default install

For a native-enabled installation, select the implementation explicitly:

h_m_roth_primal_lp(G, 1, backend="cpp-glpk")
h_m_roth_primal_lp(G, 1, backend="cpp-highs", num_threads=1)
h_m_roth_primal_combinatorial(G, 1, backend="cpp", num_threads=1)
Backend Methods Separately installed native dependencies
python LP and combinatorial None; LP uses the HiGHS solver included with SciPy
cpp Combinatorial Eigen headers at build time; OpenMP
cpp-glpk LP Eigen headers at build time; GLPK headers and library
cpp-highs LP Eigen headers at build time; HiGHS headers and library; OpenMP

An unavailable backend raises an installation error. Unsupported combinations raise an argument error. Calls never switch to another backend automatically.

Documentation and examples

License

Licensed under the MIT License.

References

All implementations are based on the methods and theorems developed in these papers:

  1. Ron M. Roth, “Analog Error-Correcting Codes,” IEEE Transactions on Information Theory, 66(7), 4075–4088, 2020.
  2. Anxiao Jiang, “Analog Error-Correcting Codes: Designs and Analysis,” IEEE Transactions on Information Theory, 70(11), 7740–7756, 2024.
  3. Ron M. Roth, Ziyuan Zhu, Changcheng Yuan, Paul H. Siegel, and Anxiao Jiang, “On the Height Profile of Analog Error-Correcting Codes,” 2026 IEEE International Symposium on Information Theory (ISIT), also available as arXiv:2602.20366.

Download files

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

Source Distribution

analog_ecc_heights-0.1.1.tar.gz (56.2 kB view details)

Uploaded Source

Built Distribution

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

analog_ecc_heights-0.1.1-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: analog_ecc_heights-0.1.1.tar.gz
  • Upload date:
  • Size: 56.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for analog_ecc_heights-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c662e26a448b363e74d85f211ae323817788cea4bfba8800b76f47042f0702b5
MD5 6391860b45dace007fad648be71f3e2e
BLAKE2b-256 213cb51f2039ee9e14c7960bd008e66ce40f0e58c8146660f347bf4c11d0ec9d

See more details on using hashes here.

File details

Details for the file analog_ecc_heights-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for analog_ecc_heights-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e9fbf38b64aa2177f706aa75b462e222aa5ebc1eaeb39dfac05fe7cc237dee5a
MD5 1321d770ec0e5504c7d43a8a8f029a04
BLAKE2b-256 1b2733d3caaba36bc2ae2fd8be3549e0df0db95c44a2acc8b34b04d4f6379f05

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page