Skip to main content

A software package for enumerating lattice points in convex polyhedra

Project description

latticepts

Nate MacFadden, Liam McAllister Group, Cornell

DOI

Fast lattice point enumeration for convex polyhedra. A C/Cython implementation of Kannan's algorithm, significantly outperforming Normaliz and OR-Tools CP-SAT in speed for certain problems. As one performance example: latticepts generates ~107M lattice points in the strict interior of an example 7D cone ('Manwe') in ~23s. See the benchmarks for benchmarking plots.

Used by CYTools and (forthcoming) Macaulay2.

Citation

If you use latticepts in your research, please cite it:

@software{latticepts,
  author  = {MacFadden, Nate},
  title   = {latticepts},
  doi     = {10.5281/zenodo.19405318},
  url     = {https://github.com/natemacfadden/latticepts},
  orcid   = {0000-0002-8481-3724},
}

Description

More explicitly, latticepts enumerates lattice points

$$ \{x\in\mathbb{Z}^{\text{dim}}: Hx\geq\text{rhs}\} $$

for $H\in\mathbb{Z}^{N_\text{hyps}\times\text{dim}}$ and $\text{rhs}\in\mathbb{Z}^{N_\text{hyps}}$. Here each row of $H$ is an inward-facing facet normal and the corresponding entry of $\text{rhs}$ is its offset. Cones correspond to $\text{rhs}=0$; 'stretched cones' (e.g., for finding strict interior points) correspond to $\text{rhs} > 0$; polyhedra to general $\text{rhs}$.

Limitations

  • Maximum dimension: 256. For convex cones, latticepts excels at low-dimensions. It can become sluggish in comparison to alternatives at higher-dimensions (well before 256)
  • Windows is not supported: the C kernel uses C99 variable-length arrays, which MSVC does not support

Installation

pip install -e .

Requires a C compiler.

Algorithm Notes

This repo contains a Cython wrapper of a C implementation of Kannan's algorithm. See this webpage for some other relevant work (not by me). The specific implementation in this repo is for lattice point enumeration in square boxes $|x_i|\leq B$ for $B\geq 1$. I.e.,

$$ \{x\in\mathbb{Z}^{\text{dim}}: Hx\geq\text{rhs} \text{ and } |x|_\infty \leq B\}. $$

It is a short, single-file implementation: one self-contained, dependency-free C header (box_enum.h, ~290 lines of code, depending only on the C standard library) - I encourage you to read it. The single-file format was inspired by the stb-style. If Python is easier to follow, reference/kannan_reference.py is a pedagogical numba.njit port of the same algorithm. The Python port is efficient but has less options than box_enum (scalar rhs only, so cones and stretched cones but not general polyhedra) and is not used at runtime.

A helper method to box_enum is provided in case the user wants $N$ points but doesn't care about box size. One such task here is for enumerating some lattice points in convex cones. In this case, boxes of increasing sizes $B$ are studied until $\geq N$ lattice points are found.

Benchmarks

All benchmarks below were measured on an Apple M1 MacBook Pro (macOS) with the default pip install build (Apple Clang, -O3). Each plotted point is the median of several warmed-up runs; error bars are usually smaller than the marker. To recreate: conda env create -f environment-bench.yml, then run the benchmarks/ scripts.

Convex cones: runtime vs requested number of interior lattice points in a cone (i.e., not on the boundary). The cone studied is the 7D 'Manwe' from https://arxiv.org/abs/2406.13751:

Runtime vs N on the Manwe example: latticepts outperforms PyNormaliz and OR-Tools CP-SAT

Polytopes: runtime to enumerate all contained lattice points for various 4D reflexive polytopes. Size of the polytope is measured by h11 with one polytope per h11 value, h11 = 6..491:

Runtime vs h11 for 4D reflexive polytopes

More polytopes: runtime vs dimension of length-2 hypercubes $[0,2]^{dim}$ for dim = 2..14:

Runtime vs dimension for the length-2 hypercube

Usage

There are two primary interfaces. For unbounded polyhedra (e.g., cones), the focus is on efficiently generating a finite collection of lattice points. This can be done via enum_lattice_points which enumerates all lattice points with components bounded by $|x_i|\leq B$ in the polyhedron. The algorithm increases the size of $B$ until a user-requested number of points is found. See the following example of how to use this to get lattice points in the strict (since $rhs=1$) interior of a convex cone:

import numpy as np
from latticepts import enum_lattice_points

# Find at least 1000 lattice points in {x : H @ x >= rhs}
H   = np.array([[1, 2], [3, -1]], dtype=np.int32)
rhs = 1
pts = enum_lattice_points(H=H, rhs=rhs, min_N_pts=1000)

# Optionally restrict to primitive vectors (GCD = 1)
pts = enum_lattice_points(H=H, rhs=rhs, min_N_pts=1000, primitive=True)

box_enum allows direct control over the box size $B$ instead of the number of lattice points. I.e., to enumerate all lattice points in $\{x: Hx \geq \text{rhs},\ |x|_\infty \leq B\}$:

from latticepts import box_enum

pts, status, N_nodes = box_enum(B=5, H=H, rhs=rhs, max_N_out=10_000)
# status: 0 = success, -1 = dim>256, -2 = hit max_N_out, -3 = hit max_N_nodes, -4 = too many constraints
# (statuses are also explained in the docstring)

box_enum is well suited to lattice point enumeration in polytopes (assuming an H-representation is known). For example, if one knows a bounding box of the polytope (if you have a V-representation, this is trivial: $B = \max|v_i|$ over all vertices), then the lattice point enumeration can be done as follows. Here's an example of the $h^{1,1}=491$ 4D reflexive polytope:

import numpy as np
from latticepts.box_enum import box_enum

H   = np.array([[ 1,   0,   0,   0],
                [-15,  8,   6,   1],
                [-15,  8,   6,  -1],
                [ -1,  1,  -1,   0],
                [  0, -1,   0,   0]], dtype=np.int32)
rhs = np.array([-1, -1, -1, -1, -1], dtype=np.int32)
# has bounding box B = max(|vertices|) = 42 (basis-dependent)
B   = 42

# one can then get the lattice points via:
pts, status, N_nodes = box_enum(B=B, H=H, rhs=rhs, max_N_out=10_000)

Organization

latticepts/
├── latticepts/
│   ├── box_enum.h                       # STB-style library for the Kannan enumeration
|   ├── box_enum.pyx                     # Cython wrapper
|   └── latticepts.py                    # the enum_lattice_points wrapper for box_enum
├── tests/
│   ├── conftest.py                      # shared test helpers (pytest)
│   ├── test_box_enum.py                 # tests of box_enum
│   ├── test_manwe.py                    # tests relating to 'Manwe' (arXiv:2406.13751)
│   ├── test_enum_lattice_points.py      # tests of enum_lattice_points
|   └── c/                               # simple C-kernel tests (no Python interface)
├── benchmarks/                          # perf benchmarks; double as usage examples + make the README figures
│   ├── benchmark_box_enum.py            # runtime vs B for the Manwe geometry (h11=491, 7D)
│   ├── benchmark_enum_lattice_points.py # runtime vs requested N for the Manwe cone (h11=491, 7D)
│   ├── benchmark_polytopes.py           # runtime vs h11 for 4D reflexive polytopes; runtime vs dimension for hypercubes
│   └── benchmark_narrowness.py          # runtime vs narrowness for a 4D convex cone
├── reference/
│   └── kannan_reference.py              # readable pure-Python (numba.njit) port of the algorithm; not used at runtime
├── docs/                                # README figures (benchmark_*.png)
├── pyproject.toml
└── setup.py

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

latticepts-0.2.1.tar.gz (184.9 kB view details)

Uploaded Source

Built Distributions

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

latticepts-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl (753.3 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

latticepts-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (721.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

latticepts-0.2.1-cp313-cp313-macosx_11_0_arm64.whl (262.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

latticepts-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl (263.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

latticepts-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl (757.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

latticepts-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (725.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

latticepts-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (262.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

latticepts-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl (264.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

latticepts-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl (759.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

latticepts-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (732.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

latticepts-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (262.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

latticepts-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl (263.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

latticepts-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl (730.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

latticepts-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (701.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

latticepts-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (262.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

latticepts-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl (264.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

latticepts-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl (729.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

latticepts-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (700.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

latticepts-0.2.1-cp39-cp39-macosx_11_0_arm64.whl (263.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

latticepts-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl (264.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file latticepts-0.2.1.tar.gz.

File metadata

  • Download URL: latticepts-0.2.1.tar.gz
  • Upload date:
  • Size: 184.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for latticepts-0.2.1.tar.gz
Algorithm Hash digest
SHA256 56c86172175339b8b110a3beb027777371c45c2a0833f117b51cc38fe882e543
MD5 a054d12417bd439aa5895e86f6dedfe9
BLAKE2b-256 2da3b9d587138e9a0616acacf973ad31bd477c5be626e088d656c46722f6aa85

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1.tar.gz:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5b398d0141f200a3475867640f36733118ddaae4d50f5e9ceeebc558cfb77d70
MD5 c5a51a6da782095628788b93acec2e0b
BLAKE2b-256 ed00c2797129c822789a7447ff5de052bc40bea442c89c5849920d1c5a565847

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8fa822dd375f8c36f986d9283a7b196e4a6344aa799b5f2c5de32bb52bcb1251
MD5 0d895244b604ebe01a3d209863c94946
BLAKE2b-256 4a9e3ffdd7338cc1289055c0ab0cf088081b25cf249b285d8122a0877a1754fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 146559213b12cdf9ffe57e7b03c72fc31b5ac7079105de3af256cb6559fe45f6
MD5 e369fdccea98c081bb9a62b987847de7
BLAKE2b-256 3b84f49da4a96acf15f685255394391c544bf55c022046d353533a0f45ad76e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b3d5115f39ec427b915b2da22d02e6ee34e052482b0b430ecbf33d436213a362
MD5 4d78486e72d3e51c82cb9c8bc98e717a
BLAKE2b-256 694ca66810274b8dda301a7b37b977c1147d86c1716f7196e9ff75d3dd539732

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 01ee7c442837380372be0ba18e8df8c99d11239ec558660d05a3675995449a35
MD5 1fbf5fb817eef05d5893edded6cdadff
BLAKE2b-256 b6c1aff6957ba6f9be8cf468b88ab7cf984fa07e9cb2ff9dbdcf8d326d46a748

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb76aacc08fe893878fc6b42c99125588929bc18aaf30473876ed45e4395b7e2
MD5 5070b2d8d719482916119ee1e78ae19e
BLAKE2b-256 2d911931ad069b194dafa47261c3f8b2541930057d67d45246bb60eec4303c3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b65222e74137f8b0656e35209f2d1c0f8bac42d434f03bb36370d057a0b88b36
MD5 c09e7212ae2ef8cbf32abd20ac80dbf6
BLAKE2b-256 74166ab35754cf1493a3b0609d9f045567b577c0b9abc15cff01c70d7e9205ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a6167364b15ad25fdd1cd30856b1a918a25374ed6d71dfbdc40a28c927e13b8d
MD5 d74e1e6ceb9c7f647fe4f4f07610c686
BLAKE2b-256 f00946e7294873a88171d686047220f33a2d38f4b1a1676b804fea7b85efab8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6006711aa2d9a24d8c78283ce1e9519a07dbe4d9577a5537241b23c5f326dbd5
MD5 13f5dff7f66a530b7491ca5317623811
BLAKE2b-256 17a9c18071a1e91a1307765806455d554cc1974711808d584664e0791a2ab115

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 82a174ed54c8410ce49a6f641ef4afc9088ae8066d7eb9a3f2d7e490cf6dd933
MD5 27b1685c98140172125d1a53fa042d7c
BLAKE2b-256 ede848dc907cbea6b13b016e6f2486dc46b369d4c2d67118d3dceafd76efead5

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 440ac791ed07d79b6fc59c5e92dbfcb5ba352891d7269af92d2d29fe18539915
MD5 3d8f5847b285664a7e6e96cfdcaf755d
BLAKE2b-256 6d42d8dc676d3336f31bd5e616a4f50af4ee216750fc0a7f35346e0d4604f902

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bbca23f10fab0bd29c09c493629f67eea989bc873c0c6dd6138ffe9ef7cf7fbb
MD5 f6e6886fc98b5e07ea019b348b5070a7
BLAKE2b-256 783af6592d7ed80a4a769459940a9e014b68c1783ac9239d27d92a0a0963899f

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0a636007524beafaaf6b1a9aea9a9799d77fcc7fc4cdf4c690ff984206601b6a
MD5 7785d35760cc9fe5d8e7deae011ccc11
BLAKE2b-256 12539acf2899e2fdf873ce285a6122f6cff6a18d54951faa1ddefb7e6cf3d3e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d197bf877bf93a4e6812664eb93771f5d297d36042efdcca1c3ee71e0c29db60
MD5 e86501c41c7915468e79ac032209677b
BLAKE2b-256 e7bd02177a25ff9322266cbeeaa1c0c8a8998d520279245eba6c487643b49971

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21fa367da095b9bba0f2e9c8adc4773d4fef5a7cf1a833b581ded630b2d43406
MD5 eee42c02028ef0bdfaf9b469ac1871d0
BLAKE2b-256 df77943590edcd205336eccdd348873375606de94c4077dd7829f9c0a32907f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f1b56a4ae40e6c8ac3164e39fd7427a328b2986f9b76323422fb4ea288a9544d
MD5 dd8418350bc7bd8e66a3fe482a5831b0
BLAKE2b-256 279d51015f222598e2d78fb198155c03efb6015d4ad8c70edb6c7161ef3d582a

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 89bac2f4ddacbc1a0b65ab1f521e6a5806792d93929e1b2e898edf887e72e694
MD5 df455ed97d7ab5d5ec0771bc47c52dcf
BLAKE2b-256 4c20a8422fb3aee1e0f5201383b6153cccd20bd843d7ecaa1ea8bb990bd69b60

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb6fd45b4d7bf656362e022c43457712b57fd68ec01e7870eade7b901fda0b16
MD5 7330941811346d345b7655b34dcb8f0f
BLAKE2b-256 f1abdfc5adc1aa646073307ad7d5f9250852fb8a8392d285bdf0cb89c891639f

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 563cad560a347030f8d77da9d249ac63d6bbdb561dd3b5cfb02956c568462aeb
MD5 bf3eb36b87b01df564dfadab7d442015
BLAKE2b-256 91a9613a2d576f52782b36c7eff7cd263f9dcd98362702dd0572972a0b2dcb41

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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

File details

Details for the file latticepts-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for latticepts-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7bd7e9b1a91aefdc27fa8ce2dccd40d1392bd712d17545220bf0c26f1e0f8e4f
MD5 918e500a209048a5690dbbc807d5eb98
BLAKE2b-256 b744b0405553ee3e2be7d40a9af6630bfaa74c530586808eb6e5e1cd59fdfb4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for latticepts-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: deploy.yml on natemacfadden/latticepts

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