Skip to main content

A spiking neural network solver for constrained convex optimization (QP/LP).

Project description

snn_opt

A spiking neural network solver for constrained convex optimization.

License: Apache 2.0 Python 3.9+ Version Cite Docs


Abstract

snn_opt is a Python implementation of the spiking neural network (SNN) → convex optimization equivalence, developed as part of an ongoing research program on neuromorphic computation for classical machine-learning problems. It solves quadratic and linear programs of the form

$$ \min_{x \in \mathbb{R}^n}\ \tfrac{1}{2}, x^\top A x + b^\top x \quad\text{subject to}\quad C x + d \le 0, $$

by alternating gradient descent — playing the role of leaky-integrate membrane drift — with discrete projection events that clamp the trajectory to the constraint boundary, the optimization analogue of an integrate-and-fire spike. The construction follows Mancoo, Boerlin and Machens (NeurIPS 2020) and is the canonical solver underlying the SNN-X publication series (PCA, Ridge, TDSVM, Norm, SVM, CF, KRR, Procrustes — see Applications).

This repository is intended both as a research artifact — every published SNN-X paper can be reproduced from the code here — and as a teaching resource for students entering the area: it ships with annotated examples, a self-contained mathematical writeup, and a benchmark suite that visualizes convergence and projection dynamics.

The problem

Given a positive semi-definite Hessian $A \in \mathbb{R}^{n\times n}$, a linear cost $b \in \mathbb{R}^n$, and $m$ linear inequality constraints stacked into $C \in \mathbb{R}^{m \times n}$ and $d \in \mathbb{R}^m$, we seek

$$ x^\star ;=; \arg\min_{x}\ \tfrac{1}{2}, x^\top A x + b^\top x \quad\text{s.t.}\quad c_i^\top x + d_i \le 0,\ i = 1,\dots,m. $$

The class subsumes box-constrained QPs (set $C = [I; -I]$), linear programs ($A = 0$), kernel-ridge subproblems, support-vector machine duals, projected-gradient flows on polytopes, and the bulk of the inner solves that arise in receding-horizon control.

The spiking idea, in one picture

The continuous-time dynamics

$$ \dot x ;=; -\nabla f(x) ;-; C^\top s(t) $$

models a population of $n$ leaky integrators driven by the gradient $\nabla f(x) = Ax + b$, with a corrective spike train $s(t)$ that fires whenever an inequality $c_i^\top x + d_i$ would otherwise become positive. Each spike applies a minimal projection that re-enters the feasible set; spike inter-arrival times encode constraint traffic. Discretized with forward Euler and an adaptive step that reaches the boundary exactly, this becomes a fast projected-gradient solver with diagnostics that double as a neural raster plot.

See docs/theory.md for the full derivation, including the eigenvalue-based step-size choice that eliminates k0 as a hyperparameter and the box-clipping shortcut for problems like SVM.

Convergence and projection dynamics

Three diagnostic figures, regenerated from benchmarks/, give a quick visual sense of what the solver actually does:

Convergence on a random 50-D QP with 30 inequalities. The objective gap drops geometrically over a few thousand iterations; the iterate stability ‖x_{t+1}−x_t‖ mirrors it; constraint violation stays at machine-precision floor throughout. convergence
Projection-spike raster on a 4-D box-constrained problem whose unconstrained optimum lies outside the box. Each row is one inequality, each marker a spike (sized by displacement); only the four "active" faces of the box fire. The bottom panel is the corresponding objective gap. This is the literal sense in which the solver is spiking. spike raster
Warm-start speedup on a sequence of 30 drifting QPs (a stylized MPC workload). Cold-started solves take ~260 iterations each; warm-started solves drop to ~140 from the second problem onward — an essentially-free 1.8× speedup, the property that makes this dynamic well-suited to receding-horizon problems. warm start

Reproduce these from a checkout with python benchmarks/run_all.py.

A closer look: trajectory and raw-vs-optimized modes

Two figures generated by the example scripts give a more concrete sense of what the dynamics look like in 2-D, where everything is easy to visualize:

2-D trajectory and projection spikes

State evolution and 2-D trajectory for examples/example1_basic_2d.py — a constrained QP whose unconstrained minimum lies outside the feasible polytope. Left: per-component value over time, with orange spike markers at projection events. Right: the trajectory in state space superimposed on objective contours; the trajectory glides down the gradient, hits the active facet, and slides along it to the constrained optimum.

raw vs optimized solver mode

Output of examples/example_raw_mode.py. Left two panels: the trajectory under "raw" (no auto step size, no adaptive projection) and "optimized" defaults — both reach the optimum, but the optimized run does so in 201 iterations with a single projection event versus 300 / 5. Right: convergence on a log-objective scale; the optimized run gains roughly 30 orders of magnitude per 100 iterations once it leaves the boundary.

Installation

snn_opt requires Python 3.9+, NumPy, and SciPy. The fastest path is PyPI:

pip install snn-opt                # core, prebuilt wheel (no compiler needed)
pip install "snn-opt[examples]"    # also installs matplotlib for examples
pip install "snn-opt[dev]"         # examples + cvxpy + pytest + ruff

The PyPI distribution name is snn-opt (hyphenated, lowercase, per PEP 503); the Python import name is snn_opt. So you pip install snn-opt and then import snn_opt.

For an editable install from a checkout (development workflow):

git clone https://github.com/ahkhan03/SNN_opt.git
cd SNN_opt
pip install -e .                   # core
pip install -e ".[examples]"       # also installs matplotlib for examples
pip install -e ".[dev]"            # examples + cvxpy + pytest + ruff

For a specific commit (reproducibility for papers/collaborators):

pip install "git+https://github.com/ahkhan03/SNN_opt.git@<commit-sha>"

The package can also be run without installation — every example and test sits next to a small sys.path bootstrap that points at src/. Smoke test:

python tests/test_installation.py

Compiled C++ backend

The PyPI wheels ship a precompiled C++ kernel (snn_opt._kernel) that accelerates the inner adaptive-projection loop by roughly an order of magnitude over the pure-Python path. Opt in via the backend keyword:

result = solve_qp(A, b, C, d, x0, backend='c')   # compiled kernel
result = solve_qp(A, b, C, d, x0, backend='python')  # reference (default)

Both backends are kept in lockstep by the parity test suite (tests/test_c_backend_parity.py). The C kernel supports dense problems with projection_method='adaptive'; sparse and non-adaptive paths transparently use Python. The same kernel source is HLS-compatible and is the basis for the planned FPGA deployment track. When the precompiled kernel is unavailable on your platform (rare), backend='c' raises a clear error and the Python backend continues to work.

Quick start

import numpy as np
from snn_opt import solve_qp

# Minimize ||x||^2 subject to  x_1 + 2 x_2 <= 1  (and that's it).
A  = np.eye(2)
b  = np.zeros(2)
C  = np.array([[1.0, 2.0]])
d  = np.array([-1.0])
x0 = np.array([1.0, 1.0])

result = solve_qp(A, b, C, d, x0, max_iterations=1000)

print(result.summary())             # converged?  iterations?  spikes?
print("x* =", result.final_x)
print("f* =", result.final_objective)

For repeated solves (warm-started receding-horizon problems), construct an SNNSolver once and call .solve(x0) per problem instance — see examples/example4_warm_start.py.

Examples

All scripts live under examples/ and are runnable as plain python examples/example_name.py.

# Script Problem Highlights
1 example1_simple_2d.py 2D quadratic with two linear cuts Smallest possible runnable demo
1b example1_basic_2d.py Same problem, with trajectory plot See examples/example1_basic_2d.png
1c example1_advanced_2d.py Shifted feasible region, infeasible start Spike raster + violation plot
2 example2_3d_polytope.py 3D QP with 4 hyperplanes Multiple active constraints, vertex solution
3 example3_linear_program.py Box-constrained LP ($A=0$) LP via the same machinery
4 example4_warm_start.py Sequence of related QPs Receding-horizon / MPC pattern; spikes drop $30 \to 0$
5 example5_infeasible_recovery.py Infeasible initializations Automatic projection to feasibility
6 example6_equality_constraint.py Equality via a sandwiched band $x_1 = a$ as a tight $\pm \varepsilon$ inequality pair
7 example7_svm_dual.py SVM dual with kernel Box clipping + auto step size on a real ML task
example_raw_mode.py Bypass auto-config Compares raw vs. optimized solver settings

Run them all in sequence:

python examples/run_all_examples.py

Documentation

  • docs/theory.md — derivation of the SNN/convex-optimization equivalence, step-size analysis, projection geometry, convergence criteria.
  • docs/applications.md — one-page summary of each SNN-X paper with links to PDFs.
  • docs/api.md — hand-curated API reference.
  • https://snn.ahkhan.me — companion site, designed for a broader audience (students, curious researchers).

Applications

The framework is currently demonstrated in:

  • Khan, Mohammed & Li (2025)Portfolio Optimization: A Neurodynamic Approach Based on Spiking Neural Networks, Biomimetics, 10(12):808. doi:10.3390/biomimetics10120808. Portfolio selection cast as a constrained QP and solved by the spiking dynamics implemented here.

Additional applications are in preparation. As they reach publication they will be added to docs/applications.md.

Citing this work

If snn_opt plays a role in your research or teaching, please cite both the software and the framework paper:

@software{khan2026snnopt,
  author  = {Khan, Ameer Hamza and Li, Shuai},
  title   = {snn\_opt: A Spiking Neural Network Solver for Constrained Convex Optimization},
  year    = {2026},
  version = {0.1.0},
  url     = {https://github.com/ahkhan03/SNN_opt},
  license = {Apache-2.0},
}

@inproceedings{mancoo2020understanding,
  author    = {Mancoo, Allan and Boerlin, Martin and Machens, Christian K.},
  title     = {Understanding Spiking Networks Through Convex Optimization},
  booktitle = {Advances in Neural Information Processing Systems (NeurIPS)},
  year      = {2020},
}

The full per-paper bibliography of the SNN-X series is maintained at docs/applications.md.

License

Apache-2.0 — see LICENSE. Permissive, with an explicit patent grant; suitable for both academic and commercial reuse.

Acknowledgments

Developed at the School of Artificial Intelligence, Taizhou University.

This codebase implements the SNN-QP research program led by Prof. Shuai Li (IEEE Fellow; Faculty of Information Technology and Electrical Engineering, University of Oulu, Finland), who originated the line of work and co-authors the application papers in the SNN-X series. The mathematical framework follows Mancoo, Boerlin and Machens (NeurIPS 2020) and the broader projection-neural-network lineage (Hopfield–Tank, Kennedy–Chua, Xia–Wang, Liu–Wang). Pull requests, bug reports, and citations of the SNN-X papers in your own work are all warmly welcomed.

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

snn_opt-0.1.0.tar.gz (47.8 kB view details)

Uploaded Source

Built Distributions

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

snn_opt-0.1.0-cp313-cp313-win_amd64.whl (118.7 kB view details)

Uploaded CPython 3.13Windows x86-64

snn_opt-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (160.4 kB view details)

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

snn_opt-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (153.0 kB view details)

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

snn_opt-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (120.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

snn_opt-0.1.0-cp312-cp312-win_amd64.whl (118.7 kB view details)

Uploaded CPython 3.12Windows x86-64

snn_opt-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (160.3 kB view details)

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

snn_opt-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (153.4 kB view details)

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

snn_opt-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (119.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

snn_opt-0.1.0-cp311-cp311-win_amd64.whl (117.1 kB view details)

Uploaded CPython 3.11Windows x86-64

snn_opt-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (157.9 kB view details)

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

snn_opt-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (151.0 kB view details)

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

snn_opt-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (117.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

snn_opt-0.1.0-cp310-cp310-win_amd64.whl (116.6 kB view details)

Uploaded CPython 3.10Windows x86-64

snn_opt-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (156.7 kB view details)

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

snn_opt-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (150.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

snn_opt-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (116.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

snn_opt-0.1.0-cp39-cp39-win_amd64.whl (116.9 kB view details)

Uploaded CPython 3.9Windows x86-64

snn_opt-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (156.9 kB view details)

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

snn_opt-0.1.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (150.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

snn_opt-0.1.0-cp39-cp39-macosx_11_0_arm64.whl (116.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file snn_opt-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for snn_opt-0.1.0.tar.gz
Algorithm Hash digest
SHA256 972955c2cacafb84a6fad22cb353b724ba305c2f9595d3c9a70f58ad20e1fad8
MD5 75c1f91d17f3259658cd38246784f4a2
BLAKE2b-256 783537ba4467f029b47e4a1e944965c98f85f6bfeebbed580a13878242dfd695

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0.tar.gz:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: snn_opt-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 118.7 kB
  • 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 snn_opt-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c76ed5557a29e3aa77dac4cb84622135fb3473c2faac253792f6ec86843500be
MD5 fc43f1e8408f885e691b82e1235dd9cf
BLAKE2b-256 28638aace15f61f454a4af622ace4d0a74246e6721a5ffc39c6da06337fa97c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 813a0b32251a188103938ea0fb04e5813791d52504ff4bb1dbb464b22b182a63
MD5 b7234ee617c6f09ade54d885ab8afdc6
BLAKE2b-256 f264e802da5ad4eb81533e1a15d1c0b303a94975af90d2f37f822ffcf9a36498

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3a6618fc148bbafebf45247b8238ddc277502792d1ac9c782edcf6195c7ea898
MD5 aac1b11d0a6bcc0ab1d33a1d2214ea7f
BLAKE2b-256 1bc39456bba07a6c2c6c5cea4a87982e9bf8d39d7abb0c9415435ada7f0ca74e

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a24cd2e1cd4dd6a11ed9074fa51ec4acae690e74cf44eb58e09d46af2e1d657
MD5 dbe98e110c7f90ffc8dac419bc1f9e90
BLAKE2b-256 f584a7f5df797778cfee9fa75c2b1176908f5614e539b2359d5e52698943acd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: snn_opt-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 118.7 kB
  • 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 snn_opt-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 886ee147b228dbfd003f32e3e6dc4d52c2d1cb7cdf6f18d5465c270352b5934c
MD5 6d19d63a5989892ced9e82233edbae44
BLAKE2b-256 84417a8dfc15a9a999998f3601a3c301ed38570df8f24ff50212694713c20d8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 13ad11a201ec573a7c84ad128863c01a768b76b9d29daecb2aede16704faaf7d
MD5 d37689a2cc323eb41cb4b103242abcf5
BLAKE2b-256 f6f82d97ba7d34a56c941778de144a252ca79001779c7ecfce15a2ef31cfed0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5238b1f69bd3fef7dc87b85de037acc60d3dd88be07b68da340ec7aa27338f06
MD5 af9713208b4b2e33cad0e6d3dd6a9cf3
BLAKE2b-256 b6491f9460101cc3639b2ec5a041f7ff57bc9b04e23e57fc1bb3185ecdfe097f

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a2890a9f1fe3a9bc55495df937f4363830dc603d779383fb92aac39a2724ffc3
MD5 f5ec87417e7e2416bc677e02b7498d07
BLAKE2b-256 e4f9d4725604dae7ddb22eee21a580d107cbe2248393c0cac2bd962070b279a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: snn_opt-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 117.1 kB
  • 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 snn_opt-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 616744331516defb37b300249298ebfbc83d1f3c8b8241349335686c3fd5ac10
MD5 12051acc293f5dc2e22bd4ebcbc12671
BLAKE2b-256 38bdcec71ca45746d45430c22e3dbe168238e49445eddd0361f047c4134cd128

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b35d1cd28815271e61db6b15c2a7d8d6d06c189d48f3ecc25ce11c7071b16094
MD5 4a9a487875abb18fa398013f6b532e44
BLAKE2b-256 71da00b5cb798b062ff17b7ac2f48c151a33e411f443d5e433bebf7604add280

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 29667811c7e688edd17e906294152b24ab59a19d6a7a5361a5b533f70e440366
MD5 9bead63d16dcae01fa31e5e4cb28ce4e
BLAKE2b-256 726caef3831f99326d25fefcb3c6386e3eee73a1bb7b72ecad3c464d4f7c5556

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a04f3cb4e4400fe5491a10ab3f42886965a08a80208d2870125aa880ce5d8092
MD5 e2bd414bb82541ef43a036c8bdf3d739
BLAKE2b-256 92e757dd75fc1a7aeb6b109e96dd1db3e84130ccf477d2b71ef9246866c8668f

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: snn_opt-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 116.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snn_opt-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b25869dcd4806ec31dd78a5ff580fedddb919f33f55a62e59e60f2654c4b3f6f
MD5 cc2596405df2a5feffe3133016fd01f4
BLAKE2b-256 9ecc0605f04ceb87c65e831653aa4d0c8c2b6b91f426d67d13fe840b278bc430

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a25fa171d395310e391342d11f6636fc0d5cb83a493600b20e3a5f532f7c39f7
MD5 966bb458f9c2237a2b086d5c46d1e689
BLAKE2b-256 4501b6457b41fb1665bcbdd81c94d975cc166e39cce7a04f21de989d620a395a

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 225cd85a602eadef17dd766256118552271417947db7e594195a0f3ee9fa1a37
MD5 9e019438b364811290ed5d42de7e44ad
BLAKE2b-256 ee09c3f2a1bc1cab17cd06dae6ee480de624bb2aed192812ce6dd9d5aeb0f175

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26f6be752a4e1728e4332972e2b3c719fd84f9ad29440e9b29442c5306b5eaf0
MD5 50b684109f60bd5c94d99e9787752776
BLAKE2b-256 c0abc77f9f4969211900269776d6a1b9647cdfee7f0d5183e12622e72e53b4dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: snn_opt-0.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 116.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snn_opt-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e18f08ef31ffc6fdf0c0a7d923e771d591213c613a761d4fb7b7794b6f3d4c13
MD5 34552610f0afa5bf432c97dc038cab59
BLAKE2b-256 ddb7de0630c6f5385f20aeb3a40e41ef981afa2914feb5293d9df680da3e370a

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp39-cp39-win_amd64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55c181c8ce52bc497370133d37ce5bdd373ce5ad11ad5911b321ded8a38afdb6
MD5 7341f3c989db7d07fa16d9634816b280
BLAKE2b-256 d0a2ef333638036e56293cecb3f22d1dd9da650c022c7ad5323cf5e80d0315d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5e1b921e91bc6f19ce3ab2319c3430be6967bb906dd7d94ae7b9e6c84785bc58
MD5 b21cfb6d312879db771c071cef5736b1
BLAKE2b-256 ea6bf9fd4d1d8ca9712295466f8be5df1bab7880490e8d724c1b861a9521f0b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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

File details

Details for the file snn_opt-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snn_opt-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f2553cfbc3c1f99903d839452ffd349c5e2a35c4b7dd0f61e3e81a8d5dec813
MD5 44483d6a42a44aeda81b3ddfbed2c522
BLAKE2b-256 781cefbb70a7acc11ca9affd11050bd958a1d14ad912a6cfcebff27247c3886c

See more details on using hashes here.

Provenance

The following attestation bundles were made for snn_opt-0.1.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: wheels.yml on ahkhan03/SNN_opt

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