Skip to main content

LempelZiv-76 complexity engine

Project description

lzcomplexity: an entropy measures library

MIT python C++

lzcomplexity

lzcomplexity is a high-performance C++ library developed for complexity analysis using entropic metrics such as entropy density, effective measure complexity, and informational distance. The algorithms used to estimate the metrics employing Lempel-Ziv factorization (LZ76) [1]. The library provides efficient implementations for analyzing time series data, with applications in information theory, signal processing, and neuroscience.

Overview

The Lempel-Ziv complexity is a non-parametric measure of algorithmic complexity that quantifies the rate at which new patterns appear in a sequence. Unlike Shannon entropy, which assumes statistical stationarity and independence, LZ complexity captures the sequential structure and can estimate the entropy rate of ergodic sources asymptotically [2].

Key Features

  • LZ76 Factorization: Efficient computation of Lempel-Ziv complexity using the CaPS (Cache-friendly Parallel Suffix array) algorithm [3]
  • Entropy Density: Normalized entropy rate estimation based on LZ factorization
  • Effective Complexity: Effective measure complexity measures quantifying statistical dependencies between sequence halves
  • Information Distance: Normalized compression-based distance metrics for sequence comparison
  • Parallel Processing: Multi-threaded computation with support for multiple backends (OpenMP, Intel TBB, Cilk, or sequential fallback)

Theoretical Background

The LZ76 complexity c(S) of a sequence S of length n is defined as the minimum number of factors in a factorization where each factor is either:

  1. A symbol not previously seen, or
  2. The longest substring that has appeared earlier in the sequence

For a random sequence over an alphabet of size k, the expected complexity grows as n / log_k(n). The normalized entropy density h is estimated as:

h ≈ c(S) · log_k(n) / n

which converges to the true entropy rate for ergodic sources as $n → \infty$ [2].

Prerequisites

  • CMake version >= 3.5
  • C++20 compatible compiler:
    • apple-clang >= 14
    • clang >= 17
    • GNU >= 9.4
  • At least one parallel backend (optional but recommended):
    • OpenMP (default, widely available)
    • Intel oneTBB (bundled or system installation)
    • OpenCilk or Intel Cilk Plus
    • Falls back to sequential execution if none available

Prepare the Local Workspace

The project uses external submodules:

  • oneTBB: Intel's Threading Building Blocks for parallel computation (optional)
  • nanobind: Small binding library for C++/Python interoperability for the Python bindings
  1. Initialize the submodules:
git submodule init
  1. Clone the submodules into your local directory:
git submodule update --recursive
  1. Apply the oneTBB patch:
patch external/tbb/CMakeLists.txt patches/tbb.patch 

Build and Install

  1. Create a build directory and navigate to it:
mkdir build && cd build
  1. Configure the build process using CMake:
cmake -DCMAKE_BUILD_TYPE=Release ..
  1. Build and install the library:
make install

Documentation

After installation, access the command-line documentation via man pages:

man lzcomplexity
man lzdistance

To disable man page installation, use -DLZ_INSTALL_MAN=OFF during CMake configuration.

CMake Options

Build Configuration

Option Default Description
LZ_SHARE ON Build as shared library (.so/.dylib)
LZ_ONLY_LIBS OFF Build only libraries (lzcore, lzapp, lzdist) without executables
LZ_ONLY_CORE OFF Build only the core library
LZ_APP ON Build the lzcomplexity standalone application
LZ_DISTANCE ON Build the lzdistance standalone application
LZ_INSTALL_MAN ON Install man pages for command-line tools
BUILD_PYTHON OFF Enable Python bindings via nanobind

Parallel Backend Configuration

The library supports multiple parallel computing backends. By default, it auto-detects the best available backend.

Option Default Description
LZ_PARALLEL_BACKEND AUTO Parallel backend selection: AUTO, OPENMP, TBB, CILK, THREADS
LZ_PARALLEL_FORCE OFF Force the selected backend (fail if not found)
BUILTIN_TBB OFF Use bundled oneTBB instead of system installation

Backend Priority (AUTO mode):

  1. OpenMP - Default choice, widely available on most systems
  2. TBB - Intel Threading Building Blocks, excellent for fine-grained parallelism
  3. Cilk - OpenCilk or Intel Cilk Plus, good for divide-and-conquer algorithms
  4. Threads - Sequential fallback using std::thread utilities only

Examples:

# Auto-detect best available backend (default)
cmake -B build

# Force OpenMP backend
cmake -B build -DLZ_PARALLEL_BACKEND=OPENMP

# Force TBB with bundled version
cmake -B build -DLZ_PARALLEL_BACKEND=TBB -DBUILTIN_TBB=ON

# Force Cilk backend (requires OpenCilk compiler)
cmake -B build -DLZ_PARALLEL_BACKEND=CILK

# Sequential only (no parallelism)
cmake -B build -DLZ_PARALLEL_BACKEND=THREADS

macOS Note: For OpenMP on macOS, install libomp via Homebrew:

brew install libomp

Debug and Sanitizer Options

Option Default Description
ASAN OFF Enable sanitizers for debugging (Clang only)
ENABLE_ADDRESS_SANITIZER OFF Detect memory errors (buffer overflows, use-after-free)
ENABLE_MEMORY_SANITIZER OFF Detect uninitialized memory reads
ENABLE_UNDEFINED_SANITIZER OFF Detect undefined behavior

Example Usage

C++ Example

#include <lz/lempelziv.h>
#include <iostream>

int main() {
    // Create a symbolic sequence
    lz::sequence seq = "ABRACADABRA";
    
    // Compute LZ76 complexity (number of factors)
    auto complexity = lz::lz76Factorization(seq);
    
    // Compute normalized entropy density
    auto entropy = lz::lz76EntropyDensity(seq);
    
    // Compute effective complexity (excess entropy)
    auto effective = lz::lz76EffectiveComplexity(seq);
    
    std::cout << "LZ76 Complexity: " << complexity << std::endl;
    std::cout << "Entropy density: " << entropy << std::endl;
    std::cout << "Effective complexity: " << effective << std::endl;
    
    return 0;
}

Python Example

import lzcomplexity as lz

# Analyze a symbolic sequence
seq = "ABRACADABRA"
result = lz.lz76(seq)

print(f"LZ76 Complexity: {result.complexity}")
print(f"Entropy density: {result.entropy}")
print(f"Effective complexity: {result.effective_complexity}")

References

  1. Lempel, A., & Ziv, J. (1976). On the complexity of finite sequences. IEEE Transactions on Information Theory, 22(1), 75-81.

  2. Kontoyiannis, I., Algoet, P. H., Suhov, Y. M., & Wyner, A. J. (1998). Nonparametric entropy estimation for stationary processes and random fields, with applications to English text. IEEE Transactions on Information Theory, 44(3), 1319-1327.

  3. Khan, J., Rubel, T., Dhulipala, L., Molloy, E., & Patro, R. (2023). Fast, Parallel, and Cache-Friendly Suffix Array Construction. arXiv preprint arXiv:2305.07024.

Citation

If you use this library in your research, please cite:

@software{lzcomplexity_2025, 
  title={lzcomplexity: an entropy measurement library},
  author={Efren Aragon-Perez},
  url={https://github.com/efrenaragon96/LempelZiv}, 
  year={2025} 
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

lzcomplexity-0.9.12-cp314-cp314-musllinux_1_2_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

lzcomplexity-0.9.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lzcomplexity-0.9.12-cp314-cp314-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.14macOS 12.0+ ARM64

lzcomplexity-0.9.12-cp313-cp313-musllinux_1_2_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

lzcomplexity-0.9.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lzcomplexity-0.9.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

lzcomplexity-0.9.12-cp313-cp313-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

lzcomplexity-0.9.12-cp312-cp312-musllinux_1_2_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

lzcomplexity-0.9.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lzcomplexity-0.9.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

lzcomplexity-0.9.12-cp312-cp312-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

lzcomplexity-0.9.12-cp311-cp311-musllinux_1_2_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

lzcomplexity-0.9.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lzcomplexity-0.9.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

lzcomplexity-0.9.12-cp311-cp311-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

lzcomplexity-0.9.12-cp310-cp310-musllinux_1_2_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

lzcomplexity-0.9.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lzcomplexity-0.9.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

lzcomplexity-0.9.12-cp310-cp310-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

lzcomplexity-0.9.12-cp39-cp39-musllinux_1_2_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

lzcomplexity-0.9.12-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lzcomplexity-0.9.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

lzcomplexity-0.9.12-cp39-cp39-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

File details

Details for the file lzcomplexity-0.9.12-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 808f59ac1f3632c4f89b20d4f1a53bac7421fe4bfcc40108c434f047cc48d334
MD5 d7dbd092e50a2d3956e7a076f094a6ec
BLAKE2b-256 255c9002ee9d597a562eb7452bf032464d7b6068662dd1f46e79f487e5ade59e

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8802bfe09fe13623a055176c6cd5a78047ac1c74dc5ad14ae96aa0376582a32
MD5 f4f7bec45ea08a5d3e9b0ca219a6f872
BLAKE2b-256 1ba20b6ac8c546772edd80af9f9544c46e66440b72a507b23c7353f8d66b7d69

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp314-cp314-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp314-cp314-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 8c7b8ea147aed06da6ccd74ad969ceadd639aa1ffabf607d04fa29042c593030
MD5 8fb0c0728ca69a953fda99461c7dd284
BLAKE2b-256 d05327005c437a5ffe6cc79cdfa5924ff1f1f006dc6e78148fb4cfa5b52a8565

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fc9adf2d18243615a70a33ee501d7e08f377bfab6fc981f77fd0285d4f28e522
MD5 7c6f752967f5218e0165252ecc96f50d
BLAKE2b-256 10d6b7d2b2cfc5ddddc1a9b11107d6fd33ebb9a34960f8bdb5599872d87b933c

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72abb8382fce697f68c8f625c037848bee08ba0dfd63c9e887914903695214bd
MD5 49a45849505aedf18d7d808e256265a4
BLAKE2b-256 56a5f16c9b764342a4e224dbc23d1148904673ac6e026136f1e448f5744090c5

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03971032820e10309befdc86c534e5bd0030e3771cb00d8fa941e738fe6e0c08
MD5 61bb5bd857abff6df7071e9225e2ccc4
BLAKE2b-256 f9020db4da5e9fca5a1a6f4f1a1660a777c3bff5d2e9e7aaaeb05ab12c0a1066

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp313-cp313-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 5d7061861cb7fc3df9712530643ef7e16c69ab44a26187b1f9f1509c2f2d71da
MD5 80d847c556e0999cde57bb1c4e42d68c
BLAKE2b-256 97cb0f0cb898abaf1af5c552bf170f9a67b0b5e903bb79adb57089d891a0f214

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3cd9927a49bdea6696392daa5ff8ef22edda404c0ae63a32e2e1e6aeb13be766
MD5 b164986945b43b979b8668616db7bbf8
BLAKE2b-256 9b1bae1cb153b4f0fa29b520aee9a4ff8e648cc61824dbfd69dfc95598a2abab

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5daa71fa03dd670fc2477b600351c825f03b596a93d5ea7d107af6281673c56c
MD5 4b3892537af04fed5d25bc3bfcd125ef
BLAKE2b-256 4adef52eb7f3fb4b544e37c4dac6ddc8df34ba4a8986b92619e46605ab2aacc2

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a568d7e0d9d5e083ec63483f7367bf2449b44e7c15e220840e0d1bf187631c89
MD5 58d61f28d456a83fa2f8a45db64c0744
BLAKE2b-256 6f7ad5e2cebaa34b9ee9086b8cf27201732bacec0a12425e287f0d1a2cf2e520

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp312-cp312-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 570ae92ad1b5ebc5da9d32b130b78da9cdf37aef9dca1e852d20c5c77a21c2ec
MD5 77ca2fdb794b69b75184bf8d4ddfda75
BLAKE2b-256 748b20f14b7cd094296327a790eaf1281371ba59beebb2eaec2ede00dd719584

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1080dc7b272210b5a2ac1bc3154f550a876ddc89feba489f93a09aea331c21de
MD5 a7048e9691080f2cb4b0e72853afdc95
BLAKE2b-256 1b76d78fd4e7075e9108422fe831c8f21b2e9b51bdfd830a447705770b812236

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 20e594ee62e0981cacc3ddbe6844e6c52f9f31d69d914505c1d2d080870fb888
MD5 3e5480fe78fdf51c794eb936ee0535b8
BLAKE2b-256 3b03cfa92336b1fcb1ad67692d04e7593ed222b721237dd8a4559b4d240abba2

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 630a9f703a56261a554f42d412ad829f46345514bab3f15335cde19415b1010e
MD5 0978a60d137416244009c5c9673f5615
BLAKE2b-256 2b6fee862dd4897349028c7ebb0a18514ceeec69755ddf4c83b4867755e5aa34

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 cc578008a53a35a7760f7bec3cbbd670305fe623b755f11e71a0705a3e23cd4d
MD5 f005fffa40e33a2f1955fc70059b30ea
BLAKE2b-256 79bb4c1210f141606a2b33e0e8b86dabb0e3721aefdac8b93df9f43485f43b42

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 52c5ff304f8b7d6ddf0bf26358457cf2b80623ef6102fa72f2e969580b4a8c0c
MD5 a56343649b20bd7ae24740f482027a3f
BLAKE2b-256 dbf9bcf6505377d4dac94ace2c050af8423a31c483bb75526c5eed9d883bdfcf

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 960fb57fbde57bbb390ed898b7a266e550be2bc86a4f39ffa9e5be37a6db0cb6
MD5 be47785cbff1e1f4f35bfc9af0142532
BLAKE2b-256 545fe2d403c157833d352bea3602154b1a10083a4c0676d4c4b660d57daa9fee

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 166dd186c7cc2b8e0444f24ec68c037e34883eeb1104ab70fb07398d8e19cbe8
MD5 863e00319bf3777259c806d98d622ede
BLAKE2b-256 e5789b96426496aef2d76cee46fbe7ba82e81078db0c8a523c3934a60a5888b5

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 56c3b4f597e01a1882dfa4a709112dab8f40045b1d9bc13b69b43f64f5c63f43
MD5 a25e8e71a27ce81339ef5f958fb769d9
BLAKE2b-256 ca8c12eb57fba841da4d26eee730322760206dbcd56a1a0b1d72527664d98211

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e140a77f105d7cd0a7f63f1cf26e7d0691f04cb58370a4a2a48761672d6f5200
MD5 e486bd2ae1c479b93f38fc4fe0911972
BLAKE2b-256 d99274620e6539da03ececaca575dd555274d5806d6330a18807a876b01bc9d6

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4eafde19f10e7783a90680e1994f1c8d9ddbe893ccc54f64bfefa8488a7a13fa
MD5 38a18055472989721150fe225cbba0b1
BLAKE2b-256 e3a4a0e632d7af77cd7dd84bcb661f0c65c61bcf46ae539005d277f15c504162

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33154c4e98d5d03d7d9871511f8d44a1c8986959e808d1f0aa6d1874903a1b6a
MD5 b71f3e01fa585ac340b422ff3eb10dab
BLAKE2b-256 c0b08bf1576ac144bbcab97fdda8578a32663193a81ebb2f672b560cd96f1d48

See more details on using hashes here.

File details

Details for the file lzcomplexity-0.9.12-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for lzcomplexity-0.9.12-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 d1217605b194224e7a6a23fc82d842e7496d0a0902b18f6d462026e81b1f2d49
MD5 56889c1572d5af6ef129b6e0d611c1ff
BLAKE2b-256 d6dc407dcd1d500825f8f76e3bb1ea1031bb6648a2a3a9f60fc6fa00ac4b5b1f

See more details on using hashes here.

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