Skip to main content

Python bindings for the ZonoOpt C++ library

Project description

ZonoOpt

This C++ library provides classes and tailored optimization routines for zonotopes, constrained zonotopes, and hybrid zonotopes.

C++ build

Python build

image image

Zonotopes, Constrained Zonotopes, and Hybrid Zonotopes

Zonotopes and their generalizations are set representations widely used for reachability analysis. A major advantage of these set representations when compared to alternatives such as halfspace representation (H-rep) or vertex representation (V-rep) polytopes is that they have efficient identities for many important set operations. This makes them well-suited to contexts where efficient online set computations are required, such as online safety verification and set-valued state estimation.

This library focuses specifically on zonotopes, constrained zonotopes, and hybrid zonotopes. A set $\mathcal{Z}$ is a zonotope if there exist a generator matrix $G$ and center vector $c$ such that

$$ \mathcal{Z} = \left\lbrace G \xi + c \; : \; \xi \in [-1, 1]^{nG} \right\rbrace \;. $$

Zonotopes represent centrally symmetric, convex polytopes.

image

A set $\mathcal{Z}_C$ is a constrained zonotope if there additionally exist a constraint matrix $A$ and constraint vector $b$ such that

$$ \mathcal{Z}_C = \left\lbrace G \xi + c \; : \; \xi \in [-1, 1]^{nG}, A \xi = b \right\rbrace \;. $$

Constrained zonotopes represent convex polytopes.

image

Hybrid zonotopes extend constrained zonotopes by allowing for a subset of the factors $\xi$ to be binary-valued, i.e., $\xi = [\xi_c \quad \xi_b]^T$ where $\xi_c \in [-1, 1]^{nGc}$ and $\xi_b \in \lbrace -1, 1 \rbrace^{nGb}$. A set $\mathcal{Z}_H$ is then a hybrid zonotope if there exist generator matrices $G_c$ and $G_b$, center $c$, constraint matrices $A_c$ and $A_b$, and constraint vector $b$ such that

$$ \mathcal{Z}_H = \left\lbrace \begin{bmatrix} G_c & G_b \end{bmatrix} \begin{bmatrix} \xi_c \\ \xi_b \end{bmatrix} + c \; : \; \begin{matrix} \xi_c \in [-1, 1]^{nGc},\; \xi_b \in \lbrace -1, 1 \rbrace^{nGb}, \\ \begin{bmatrix} A_c & A_b \end{bmatrix} \begin{bmatrix} \xi_c \\ \xi_b \end{bmatrix} = b \end{matrix} \right\rbrace \;. $$

Hybrid zonotopes represent unions of convex polytopes.

image

ZonoOpt Features

The ZonoOpt library provides classes and set operations for zonotopes, constrained zonotopes, and hybrid zonotopes. For cases where numerical optimization is required, e.g., checking if a set is empty or solving an MPC problem where the constraints are represented as a zonotopic set, custom optimization routines are utilized. Some key features of the ZonoOpt library are as follows:

  • All classes and methods are implemented using sparse linear algebra via the Eigen library.
  • ZonoOpt has no external dependencies beyond Eigen and Boost, making it easy to integrate into robotics projects using C++ or Python.
  • Polymorphism is used to provide a common interface for zonotopes, constrained zonotopes, and hybrid zonotopes while allowing for specialized implementations.
    • E.g., support is more efficient for zonotopes than for constrained zonotopes.
  • Factors are flexibly defined as either $[\xi_c \quad \xi_b]^T \in [0,1]^{nGc} \times \lbrace 0,1 \rbrace^{nGb}$ or the more standard form $[\xi_c \quad \xi_b]^T \in [-1,1]^{nGc} \times \lbrace -1,1 \rbrace^{nGb}$ to facilitate certain set operations.
  • Interval arithmetic is provided via the Interval, Box, and IntervalMatrix classes.
    • Boost's interval library is used within Interval for most of the fundamental operations.
  • Operator overloading for commonly-used set operations.

Building and Installing

Python bindings can be installed from PyPI with pip install zonoopt. To build the bindings from source, use pip install .. Note that a C++ compiler is required to build from source.

This library can be used in CMake projects either via add_subdirectory or by installing the library. When building the library for installation, you must set the option ZONOOPT_INSTALL to ON, i.e., cmake -DZONOOPT_INSTALL=ON -S . -B build.

Example CMake usage is as follows:

cmake_minimum_required(VERSION 3.15...3.27)
project(your_project)
add_executable(your_project
        your_project.cpp
)

# Using add_subdirectory
add_subdirectory(ZonoOpt)

# If installed, find the package instead
# find_package(ZonoOpt REQUIRED)

target_link_libraries(your_project PRIVATE ZonoOpt)

Examples

Consider the case that we wish to compute the robust forward reachable set of a discrete time double integrator system and verify that it does not intersect an unsafe set. We may do this in Python using operator overloading as follows:

import zonoopt as zono
import numpy as np
import matplotlib.pyplot as plt

# System dynamics
dt = 0.1
A = np.array([[1., dt],
              [0., 1.]])
B = np.array([[0.5*dt**2],
              [dt]])

# Initial set: box [-1.0, 1.0] x [-0.1, 0.1]
X0 = zono.interval_2_zono(zono.Box([-1., -0.1], [1., 0.1]))

# Input set: box [-0.2, 0.2]
U = zono.interval_2_zono(zono.Box([-0.2], [0.2]))

# Disturbance set: affine map of octagon
W = np.diag([0.01, 0.05]) @ zono.make_regular_zono_2D(radius=1., n_sides=8)

# Compute reachable set over 10 time steps
X = X0
for k in range(10):
    X = A @ X + B @ U + W

# Unsafe set
O = zono.vrep_2_conzono(np.array([[1.3, 0.],
                                  [1.6, 0.8],
                                  [2.0, -0.4],
                                  [2.3, 0.6]]))

# Check for intersection with unsafe set
print(f'10-step reachable set intersects unsafe set: {not (X & O).is_empty()}')

# Plot the final reachable set
fig, ax = plt.subplots(figsize=(4, 3), layout='tight')
h = []
h.append(zono.plot(X, ax=ax, color='b', alpha=0.2)[0])
h.append(zono.plot(O, ax=ax, color='r', alpha=0.2)[0])
ax.legend(h, ['X', 'O'])
plt.show()

image

Equivalently, these calculations can be performed in C++ as follows:

#include "ZonoOpt.hpp"
#include "Eigen/Dense"
#include "Eigen/Sparse"
#include <iostream>

int main()
{
    // System dynamics
    double dt = 0.1;
    Eigen::Matrix<double, 2, 2> A;
    A << 1, dt,
         0, 1;
    Eigen::Matrix<double, 2, 1> B;
    B << 0.5*dt*dt,
         dt;

    // Initial set: box [-1.0, 1.0] x [-0.1, 0.1]
    Eigen::Vector2d x0_min, x0_max;
    x0_min << -1.0, -0.1;
    x0_max <<  1.0,  0.1;
    ZonoOpt::ZonoPtr X0 = ZonoOpt::interval_2_zono(ZonoOpt::Box(x0_min, x0_max));

    // Input set: box [-0.2, 0.2]
    Eigen::Vector<double, 1> u_min, u_max;
    u_min << -0.2;
    u_max <<  0.2;
    ZonoOpt::ZonoPtr U = ZonoOpt::interval_2_zono(ZonoOpt::Box(u_min, u_max));

    // Disturbance set: affine map of octagon
    ZonoOpt::ZonoPtr W = ZonoOpt::make_regular_zono_2D(1.0, 8);
    Eigen::SparseMatrix<double> W_map(2, 2);
    W_map.insert(0, 0) = 0.01;
    W_map.insert(1, 1) = 0.05;
    W = ZonoOpt::affine_map(*W, W_map);

    // Compute reachable set over 10 time steps
    ZonoOpt::ZonoPtr X = std::move(X0);
    for (int k=0; k<10; ++k)
    {
        X = ZonoOpt::affine_map(*X, A.sparseView());
        X = ZonoOpt::minkowski_sum(*X, *ZonoOpt::affine_map(*U, B.sparseView()));
        X = ZonoOpt::minkowski_sum(*X, *W);
    }

    // Unsafe set
    Eigen::Matrix<double, 4, 2> verts;
    verts << 1.3, 0.0,
             1.6, 0.8,
             2.0, -0.4,
             2.3, 0.6;
    ZonoOpt::ZonoPtr O = ZonoOpt::vrep_2_conzono(verts);

    // Check for intersection with unsafe set
    std::cout << "10-step reachable set intersects unsafe set: "
              << (!ZonoOpt::intersection(*X, *O)->is_empty() ? "true" : "false") << std::endl;
    
    return 0;
}

Further Python examples are located in /examples.

Documentation

Auto-generated API documentation is available below.

C++ API

Python API

References

More information about ZonoOpt can be found in the following publications. Please cite one or both of these as appropriate if you use ZonoOpt in your published work:

Robbins, J.A., Siefert, J.A., and Pangborn, H.C., "Sparsity-Promoting Reachability Analysis and Optimization of Constrained Zonotopes," 2025. https://arxiv.org/abs/2504.03885.

Robbins, J.A., Thompson, A.F., Glunt, J.J., and Pangborn, H.C., "Hybrid System Planning using a Mixed-Integer ADMM Heuristic and Hybrid Zonotopes", 2026. https://arxiv.org/abs/2602.17574

See Also

For MATLAB users, zonoLAB provides classes and set operations for zonotopes, constrained zonotopes, and hybrid zonotopes.

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

zonoopt-2.2.0.tar.gz (925.5 kB view details)

Uploaded Source

Built Distributions

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

zonoopt-2.2.0-cp314-cp314t-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.14tWindows x86-64

zonoopt-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

zonoopt-2.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

zonoopt-2.2.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

zonoopt-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

zonoopt-2.2.0-cp314-cp314t-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.14tmacOS 10.13+ x86-64

zonoopt-2.2.0-cp314-cp314-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.14Windows x86-64

zonoopt-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

zonoopt-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

zonoopt-2.2.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

zonoopt-2.2.0-cp314-cp314-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

zonoopt-2.2.0-cp314-cp314-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

zonoopt-2.2.0-cp313-cp313-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.13Windows x86-64

zonoopt-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

zonoopt-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

zonoopt-2.2.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

zonoopt-2.2.0-cp313-cp313-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zonoopt-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

zonoopt-2.2.0-cp312-cp312-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.12Windows x86-64

zonoopt-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

zonoopt-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

zonoopt-2.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

zonoopt-2.2.0-cp312-cp312-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zonoopt-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

zonoopt-2.2.0-cp311-cp311-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.11Windows x86-64

zonoopt-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

zonoopt-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

zonoopt-2.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

zonoopt-2.2.0-cp311-cp311-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zonoopt-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file zonoopt-2.2.0.tar.gz.

File metadata

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

File hashes

Hashes for zonoopt-2.2.0.tar.gz
Algorithm Hash digest
SHA256 cdc0bac3dbd06b404eb799308c39c8f092ae2792e363ce7312f5353c40502650
MD5 cfc320dca284c479d30c7fc96ff53444
BLAKE2b-256 edce05f79f5d3ee37e1028101c9051def7a5c4d66416cea834de1fc12f10195e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0.tar.gz:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: zonoopt-2.2.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 0e5c94afd7dbc3b88539a7bb9d983e772dd84cd842bd6a3a532e4604b85f005a
MD5 1f5da61f1370964ad8e9e06df99e6098
BLAKE2b-256 ed7c801cfe37d9a7e83805036fbeca9d6bf198e7ab70822ce7da4dccb1910c85

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314t-win_amd64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6a3b5d1fd8e4c67bb587ee038702f313ec24d5b3fb8a9887c68a6e2b70a535ca
MD5 b45800c25a5dbd5ed64cca5dac9c109b
BLAKE2b-256 6619905f35e31f6f00ebe71af987c69f2728702cf6fa97e95754566ddd7e8be4

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b68005b5d8cb088e3945eddb3516fd860e1d1b14339ab8c34d32fc8f62e84ee9
MD5 2b8f7117a4aec11051cb5b8bc5845ef5
BLAKE2b-256 ea146c356813d2a6ae0dfcf79757a859605a270f610aeafb70edeacbd75629a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2ad8461e72e92df03ef32906dd1a77dd80c2254aa04144ab5e6572fad363dbda
MD5 efb48f846edd24b302514c5191793b2d
BLAKE2b-256 20574632285b16439d03e6512906eb8a64c249222b646a0dcb8ddc1323dc548e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d42ada3414270460819ee888e1097f03400088914918c5877ec568e2abc1bbc6
MD5 837d471346fce8979dc670c649a64072
BLAKE2b-256 20c048bf8f02101f103bbd7b47712c75dd8fe63865907efe7a5037bd98f366e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 788c1568b45a97c15946454826e7185d91b916cfbdf3e0b95720f377e2ff6426
MD5 d87d6fc5c4fd8da49470341e16754f43
BLAKE2b-256 ea135e33371e1d1a0bedfc9bb9dffab4f3d8c9e2c035f52297094d62cd585d1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314t-macosx_10_13_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: zonoopt-2.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 91327965090e2409b9b9fec89039a16f8cf98eb6337477d71ad7f5d265d976af
MD5 9fa8c4364784293f7a0afe8bae1b5811
BLAKE2b-256 73595b08f0bf37643b51c6c14cb2fdd72ac8cff31c5ef4bcc052d83c5c3df9fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314-win_amd64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7d433ee7ec5e2ba90f26b91899907531ecefb53323662059c757ecf1f2b69f37
MD5 d94d5e90ff042ce7ffd2233c0053b14c
BLAKE2b-256 09fa29706b9ad02c30ffe7ba89eff3e0ba8af046f2cfb2b06f6b441f3a389d09

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b5f0a261bef42882048bac79294502d62898130fa6f13a18c60a9c25b2c35fac
MD5 f5e671f413beb8eb2ceb2fc259c42546
BLAKE2b-256 32bd86b7ad44f7a020202d8047db1af690933ec8352be15f88ec30eb335ee833

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 180836e75ccf7835f7c257a7b07e4158cf0f79fd6dd70f7a5ad1307e61f84e69
MD5 b0480b7527b3fd3e48368ae7710eec64
BLAKE2b-256 abde5d79c205862d43fb051a8d78de2e5783002a55abf5f4418c3cea44a80db9

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d71448455a8433760db30913839ea3cd83268c08b6f1f0fd2976678e1ecda26c
MD5 0feda9e42bcb68c85e9d6c72204df193
BLAKE2b-256 f4ac94c40023295fa3150f1084263bc41862927114fe9f065352bb2e1c8dc08b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp314-cp314-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 5d24ce595d850f1db71128d1d4f0cc5f6ca36e1266b476e138d2893e3e29ee21
MD5 419681b0da85b7c737756a3c6f8fb7ee
BLAKE2b-256 8965d2269144bcacae3f19bea12cea99de3a4a366006027abcc8b0b21af5df2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp314-cp314-macosx_10_13_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: zonoopt-2.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zonoopt-2.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8b54f44e9c884e185ad97c9b196256f9dcac2d93d3f747c50f846743fac4b31d
MD5 cf020f340cf829c74fc9054755c9ef37
BLAKE2b-256 64bd6e5c749f177445c9f8c233026305c329b738ef2f2f6889680ae4facf3f09

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp313-cp313-win_amd64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 138561f496261134739c312b41aa11d2e4c9f7feff3567dfd4343edecb2ecb29
MD5 09b8fe682373a5b4870e6535a4015b24
BLAKE2b-256 d7aba57e9bb07d176bfc743cfab81e24aa9d6120095cc7ac01ecf69662429297

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c0abe94871c1b21ac036ce383f4861d00960f130da64f33d406ab2d63db99be5
MD5 ff63811226415fad8d320d00a2ac2bee
BLAKE2b-256 98b8b9bd75bc92e759682fee96587f7de375c62de205987b083e199a0fae1d30

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 079ff16c0a9514376ecff732486f691285668409ea62e2ebc46c44188560ca93
MD5 ea96ba8d35cdd74d0592e0c4eeedda94
BLAKE2b-256 e3f7d16477d4be43e97cdd3fcf0a112394d1f6c3a1738cd52083f37ff153fb95

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca5f8407e38097976de75ebc549462820e7424ea6a6d72223f2342f9d356afb3
MD5 f9e10d627626cd22434c4bfed09b228c
BLAKE2b-256 a095a3812dffa489f9ecc80cd8c31ca736e2debf930cb0cb359ea131f4468b45

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6b17f0d38869386d1170479bacf7335d13f7aae4ca30ccf5d21db8b808a0b697
MD5 2ce162b43cbd64425a671bbed6c14f96
BLAKE2b-256 59f198fd06971939168b6014699a87a58fd7acd60a1da4647cea18d8d0ac27a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: zonoopt-2.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.7 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 zonoopt-2.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5b6997ec9fdf606432e355c34db225b873bf18a5cd0da56bac77deec3c502862
MD5 47f64c7c3723868ec621e27bc6f620e3
BLAKE2b-256 5d927a634beac56acdd511094511a19653df70f2d5f5631ec7825c2f55c75065

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp312-cp312-win_amd64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d6375f10fe15e6abcf45118267b98a1c1a41fe6343370f745d30e101ff6bbe5
MD5 ac14f83e0710aeb4daa673baa704d7c1
BLAKE2b-256 acc4b1ab126e326fad8301c88e9813070457c38f46520e2abb229cfada0633ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 184db101c219da97d61e99a9b6b9a4c5ebeafef11ab649b00250c43eb5dac615
MD5 425b36dfee12fa5018d7b3fd7d25bdfc
BLAKE2b-256 235590cddcc886201da540804113bca6485de9b1941a0ab37e6a3fce23646ec2

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 de2ad2f7079743c50cbd5c329d6cabe61f2abbc5463ebb3c6f0814f40aedb9ff
MD5 b5d3b0bed2ce9c93672a36dfa2e05618
BLAKE2b-256 fffc1fda8f7076db50faa752571fc1476ab31b80ef147ea4f37ff498307909b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3dd32ebbcfa18574d953d9598e8c0dae755111aba2331f7857cd6e7cc54b237e
MD5 8261a538ca9450ed98a10f28ccf37fd8
BLAKE2b-256 e17d3287472900bdc3188f765ff439e3b808e06fcd032a5ca2dcc83678a4d1ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e49b6943b2de7f5e1bffdca754424ab5448e0f2165ad81f8d509c8ca9fe43764
MD5 44fe813fdac677cecb5c03c629f0cd4a
BLAKE2b-256 b322f59423f9b1a6b2a280b827a3a212766297f68096ee2c2cb5e6b516998e0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: zonoopt-2.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.7 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 zonoopt-2.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 39cca8d852c6aa716e47e6e0bdcf75c491b7a089be0970ddc18a226c3dcedd39
MD5 823b6ba7339893ed0809af15967ac6e9
BLAKE2b-256 36bf973194545f2a12dec5b6435d2be35695db8e7d978ce492bed43f3be41218

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp311-cp311-win_amd64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dce54fe3d600c6d6eea2bb2aff6e2f2fc7f7146396e6762390ad1cd2788d1ccd
MD5 a29ead7e4a37aee823a9742f3cf122a1
BLAKE2b-256 3ab07c068044b51f7e6963b6f837f80aabcb5287d5708fd5122a6dcc8b9e16f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf2ae2351d75bb2dbac01a20256b77029b2758c6446d0b7306344079a26dba16
MD5 70ff13fb573700f7e942c600f8176038
BLAKE2b-256 b1ae4cfe09de6eec91251a6a8a2752743c3e1a0568280dd580ecd8c119b8f2a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f9e514fadfb59c2e2a1879c772f14526c362750180571bcc282c3ee6612af084
MD5 911d32397f23f816e7b20e2d4209f5f8
BLAKE2b-256 858dbfb6f02da506fae45aaefde7efa2815e618639e8025d7a629cf8fcb10d09

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 78b2c08a106009d0583ebf73701ae645cf989f9619452aa1f01099d906816fca
MD5 0110056f95808891ee01d042557e281d
BLAKE2b-256 512e55759ad50ddd4f91b14e74c0fb219ce767cdf1a38f975e40251160ceecc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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

File details

Details for the file zonoopt-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d2bac4557b6d46d04f96b6101e8bd82e7d8b9516972b9ab778464fdfeaf7a7b6
MD5 7e0d5a15327f303d709b51ad0df9e148
BLAKE2b-256 bad7bdbc2ebb9acafc9ae9f0494d93373c39892cf57d468629b58f9598372f76

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: python_build.yml on psu-PAC-Lab/ZonoOpt

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