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 minimal external dependencies, making it easy to integrate into robotics projects using C++ or Python.
    • Dependencies are Eigen, Boost, and nlohmann/json
  • 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 is implemented 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

A Note on Version Numbers

For internal reasons, ZonoOpt's versioning begins at 2.0.0.

Please note that the library is currently in Beta. In this phase, there may be API changes in minor version updates (e.g., 2.1.0 to 2.2.0). There will be no API changes between patch numbers (e.g., 2.2.0 to 2.2.1).

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.3.0.tar.gz (8.9 MB view details)

Uploaded Source

Built Distributions

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

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

Uploaded CPython 3.14tWindows x86-64

zonoopt-2.3.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.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

zonoopt-2.3.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.0 MB view details)

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

zonoopt-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

zonoopt-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.14tmacOS 10.13+ x86-64

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

Uploaded CPython 3.14Windows x86-64

zonoopt-2.3.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.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

zonoopt-2.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.0 MB view details)

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

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.13+ x86-64

zonoopt-2.3.0-cp313-cp313-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.13Windows x86-64

zonoopt-2.3.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.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

zonoopt-2.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.0 MB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

zonoopt-2.3.0-cp312-cp312-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.12Windows x86-64

zonoopt-2.3.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.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

zonoopt-2.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.0 MB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

zonoopt-2.3.0-cp311-cp311-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.11Windows x86-64

zonoopt-2.3.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.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

zonoopt-2.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.0 MB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

zonoopt-2.3.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.3.0.tar.gz.

File metadata

  • Download URL: zonoopt-2.3.0.tar.gz
  • Upload date:
  • Size: 8.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zonoopt-2.3.0.tar.gz
Algorithm Hash digest
SHA256 936d47e36b52292c6373bef87f0c34d8a869f167545c262f5190e47aaf398d24
MD5 3b5d2d6e2dda8b8793c034a5bcc5b674
BLAKE2b-256 82dd96544bd302569abafad1782a737bf8385df01ee91ffd185add36e964f21c

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: zonoopt-2.3.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.12

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 f089ab4df535cdd36c326abcaa006f00a2ff00cb0df167935b51a14da94753f5
MD5 bc9a80ef42fc9cc647aeed6746bca6f5
BLAKE2b-256 6ee1cf3d5ec4bd8b6920c0f695c3eeffa66c62edac2416de704fb824f02ecd5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d6a8b11d8efe34e5f17641dd60152773eb2db5ea2e3a8aa8365b400e7c570889
MD5 31732cda44a6c9d2a8080b9902859ace
BLAKE2b-256 e4fd8b343594c5c4550607b5e58162c0906222097a047ba1c8f31df3b2e34acc

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 69a1878495d8b496a17a67ab57e8d934ae8a2747c5f839f5333f48031f067d40
MD5 0b4169fef406834d7218f9ff682f8693
BLAKE2b-256 8a33948898ed224b80d8b85b60fb4f312cd3dd047124754c17a728308fa67bde

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e367a2ac5e515472d0a181f6f16aaee77cc93a8b381e4f3231d8514bcb767819
MD5 a19b3db331fd4b468164c6415ac4d5ea
BLAKE2b-256 1ae0bfc5508d9228455a3a7e4188f9ff3ce228a67acb06d103f0f3932742c21c

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 695dc5c49e7ef525e52732d2fe8b9ec3c666afe68bf1a8ea682c97c1fea856ae
MD5 43375df0542f512c4e53c1ae0b605ac4
BLAKE2b-256 5e6d837e52cbe74d9c5ff078bd9668a8941159b373930b089512f86298f1d0d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 310d10970395096a26ebad1ac5ab40016f54ddca5e8e9f3d9fa5ebe12c3bbe0f
MD5 4de72109b197222af4440bfe66a71606
BLAKE2b-256 84256c2c53f9ec2ae339b96200b02687b4e2b5788450406a06765a5d40061685

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: zonoopt-2.3.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.12

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4bf67944e468909b81f0891ca72cd15b623ea21f7dd001ec1a235b6eb2ccc79a
MD5 9bd809f3ece686502a99c40b4f1a20ae
BLAKE2b-256 baeddf3185d645e0b03293d1a9ce24b77c43825fe10d93e5252cae525f3e8ecd

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 23e7229b4f27f7d537122fcdfe1a9cca6dc4ce1706dbe71927e0d157e2a6d605
MD5 69bbb393783a6ed374ed19a1d085c5b2
BLAKE2b-256 ae6f20a4e898dd1eb02e0d2446055169da85c9ad1c365432d505766a4df2edae

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 468712b39d2fd1f909a5c89e59aa1ac118ea1972dce2d1216d91c9e5f747163f
MD5 9206d322b57d466ebf5e30199570957a
BLAKE2b-256 3c0a7557ff2dacf17d9f04e460b0bffb98a0749660e2432856a04e49ccfceba2

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4561a9c78f8c721819d9ed7ac35fc12a0b4eba1500835f369395d0b6d19d960f
MD5 c65bfdf732c34a2a4b63a391df7d47df
BLAKE2b-256 6b4afc3b4bd5d9547fb4fcdaeb31b16e2597a8bf96100a2503741fbcbf0c8470

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e1ef8422258e42b70b268fcea674bf03e5af59174cf6ca3b5d4eea3c60ae4c1
MD5 d1d7030edf0233fa5b0c907d8716250e
BLAKE2b-256 6f729f72de1db6345bcdbf76592840eb065898c483e64d0d08aeb6696f90831e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp314-cp314-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9668f5319af6df246ca680ae15f822040f8524b280904a9008b40ce74ad16bf3
MD5 394459d2aadb8dc28ed681880eb93232
BLAKE2b-256 5e845574c8aaf360237249cb8a5042f738776389e119a82b604173c0d610887a

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp313-cp313-win_amd64.whl.

File metadata

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

File hashes

Hashes for zonoopt-2.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 84881f90d99090ac528f8e794c5ec7202873a6468dce78941339092dee94f9fc
MD5 8f0d5e1f596f9dbef24e67cb8b966264
BLAKE2b-256 9ce1de40d9c6cc5481e1cc25c485986d4a0fc64ce6412f3116d134ee0e8e1a7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 34679ce4d759458d670dd8bdb134df4762517b9a8bc54d26a96705560544edb5
MD5 c2da1249e83043e902d0edd5f2dc84bd
BLAKE2b-256 5702c1519750e623e2d0e693a65242ff5be5ec6c997f84b506dc0ec8ad71a7b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8431544a002d206c367a1c62d7bf1e9064836b4f656e0a740b42679f5272e236
MD5 8a8b7938d173c4f26955193edc76b2bc
BLAKE2b-256 1df95dec771e379bd8296f475bec4347b1e92fd9a7fc806a77c6aeee89aa6d11

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb364f295efec385b0cf05551a4f87631f202865d4098e49c32dfdb3a7caf25e
MD5 d931aa31143a4929f469e63cb1abc1a7
BLAKE2b-256 9a9b1c6dcb4e83db01961c1fb35d9fe2093f1253cb2aa1a093fb1551a725e1ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9a36dd8d17ec887d5d001455b5113ab0870913ebef56562e0f77b0ac10240f7
MD5 2a1de832005a046deea57d59f79a9af9
BLAKE2b-256 32d2b2a09a9a28e2c5ea73fc808712e863751efde838d09df9652409952835cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3c1bad1d06ee95c3e40eb91f0e4f9b19b8fb3e75f61d7b8f989f5cc09abf20d5
MD5 f5d67df8aba28abd26a8d78b8ea9e697
BLAKE2b-256 7c03244d384fb5992c98446398b384a8aed4fa93585611891753abaa3dd7812d

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: zonoopt-2.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zonoopt-2.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5d9d5d5e20951ae39aa769b914a4010f2bd0755c67d12e9430658c11d848d44e
MD5 1075967d3991d39e623bcfe1c7ae2906
BLAKE2b-256 1d0e9a8a168cc27f1bea6a1b18af77b632b939109a8d51f0c9ce15cc793d4bc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4644d95d1eaafaefa2f10b6eb49351d1cc8744f0f1b889b0ca21b3b47b84ac21
MD5 3bba7920a22b375ac5ec09ef4fcba2f1
BLAKE2b-256 5354f3a5e944226f4561f0d10f76fce9ac5995afdedd78fcfc62f88cf2119579

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2ce03d8faf1e77da8990a070b0566bf7987e2c8b475b5272c8371a83af7acd38
MD5 ae747e5fb330cf3dea736ee6f0e6bebb
BLAKE2b-256 49ca2aeb7f79e6827865756eae2a1788653d50ef6e68c9c3ff915911ecd5de4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ef198604925131e1f8d600d951f1f96bf3cccfe6071dabaf0e82d4ca0f18b789
MD5 065ef9e5e01096e867b182abb9ee9196
BLAKE2b-256 00439426502b20c7f17ff113b1e3287e08dae73383a9bcccebad6470b42161b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1a172793ed3cc8763a4a6a5c5cfff2ab8834b582de8a0eb4c12aeb34ab7d07a
MD5 f10a5053f0a5a4730b42e9a9f4026dde
BLAKE2b-256 ef32800b916b0a901c16084cdf4c80b3d988b5019f8c473300ca12b637b59fc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 fea06e3485e0ca9a86e372311683920c57ab43aff90ed97b94ff2ef98a3222d1
MD5 9470d36ccb86ba0b716d730ae4498f60
BLAKE2b-256 43b93e24fe9a60479c2cb6799574f041a9badbdcafafd2005ede054c6338c3f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: zonoopt-2.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zonoopt-2.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c2995cd9064b8f968e68ff7b86cc242176d7aad523aed1b80c6c33e6db886f20
MD5 a6cf583a7f197226ce2fb53fc644bc14
BLAKE2b-256 cc1b0792e23c6d9a69c936b9cdd17795e3a61cffaf3178ed9fc178a018ec5756

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3a978ad42412b36787902f4136e7956bb32b843cb4c5739e46dbdc8060c35c89
MD5 e8db7dafdc428ad1e5168fd2c8f1802d
BLAKE2b-256 30161ddd0f91df5de53796b22f50014c5f69709eda9b5bf77e107812e9623cb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16c77cc23066d17e14d47ec6bfc2f46c2e69b8ce4b8d8c35c8e78c618399ee1f
MD5 9e35fe240d7cb0add7d65944fc6e1ace
BLAKE2b-256 2d85c1d00eca6f61adc4bcc7f645144242645de3d69a06ca969b2053c05daf0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 222d0834d83182e5a91eb95fca2a3486a26f4e0ccd94b605d28655a67f635e8d
MD5 358149d7dc2f5bbffd6b49ac9e9ae27a
BLAKE2b-256 e3d70aa0f77bc6adbff302012a2a079400c53f31c42806a5929c0c57f245884f

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d48c4694a60ae3e7d2b06264f261746ebbe767316cd134c88c1efe0c2f61f667
MD5 f780f540a4199ec50b02a8584ad2fa2e
BLAKE2b-256 e785cb2a488a806c78b1fe515e027c66085c720761819c506b3de279aa35a614

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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.3.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zonoopt-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 372d9c8a93b2a7883328a42428a1e12f64268ae51ff4dbb0cdb1cd45b4b2b0ac
MD5 666a258f47680f634741f73521a5bd6f
BLAKE2b-256 204fbf3f71b27050b98d1b5ad66407a5bca860553c46e48f367d82f7351f3a2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for zonoopt-2.3.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