Skip to main content

A cython based library for fast, low-level operaitions on stochastic matrices.

Project description

StochMat

Coverage Status

Overview

stochmat is a Cython-based library for fast, low-level operations on stochastic matrices. It provides memory-efficient sparse representations (SparseStochMat, SparseAutocovMat) and optimized matrix operations, with optional Intel MKL acceleration for high-performance computing workflows.

Quickstart

import numpy as np
from scipy.sparse import csr_matrix
from stochmat import SparseStochMat

# Create from scipy sparse matrix
A = csr_matrix(np.random.rand(1000, 1000))
ssm = SparseStochMat.from_full_csr_matrix(A)

# Efficient operations
ssm.inplace_row_normalize()  # Normalize rows in-place
full = ssm.to_full_mat()     # Convert back to scipy CSR

Installation

Supported Python versions:

Python 3.14 Python 3.13 Python 3.12 Python 3.11 Python 3.10

Setting up a virtual environment

We recommend installing stochmat in a virtual environment to avoid dependency conflicts.

On macOS and Linux:

$ python -m venv .venv
$ source .venv/bin/activate

On Windows:

PS> python -m venv .venv
PS> .venv\Scripts\activate

Installing stochmat

stochmat can be installed directly from GitHub into your virtual environment. Simply run:

pip install git+https://github.com/bovet-research-group/stochmat.git
Alternative: Using `uv`

If you have uv installed, you can use it as an alternative:

uv pip install git+https://github.com/bovet-research-group/stochmat.git

Optional: Intel MKL for better performance

For optimal performance with large sparse matrices, install Intel MKL:

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install intel-mkl

macOS (via Homebrew):

brew install intel-mkl

After installing MKL, install stochmat with MKL support:

pip install "stochmat[mkl] @ git+https://github.com/bovet-research-group/stochmat.git"

Or with uv:

uv pip install "stochmat[mkl] @ git+https://github.com/bovet-research-group/stochmat.git"

Important — [mkl] is a hard runtime dependency. Installing stochmat[mkl] pulls in sparse-dot-mkl, which in turn requires Intel MKL shared libraries (e.g. libmkl_rt.so) to be loadable at runtime. stochmat will refuse to import (raising ImportError with an actionable message) if sparse_dot_mkl is installed but the MKL libraries are missing.

If you build stochmat from source with [mkl], ensure MKL is installed on the build/host machine before running pip install. If you do not need MKL acceleration, install plain stochmat (no extra) and SciPy will be used as a transparent fallback for sparse matrix products.

Runtime backend flags

stochmat ships two compiled Cython extensions (stochmat._cython_sparse_stoch and stochmat.fast) and integrates the optional sparse_dot_mkl backend. Each has a transparent pure-Python fallback. The stochmat.backends submodule exposes three boolean attributes that report which backend is active in the current process:

Attribute True when… Fallback when False
stochmat.backends.cython_sparse_stoch the compiled _cython_sparse_stoch extension loaded successfully pure-Python _cython_subst (functionally complete, slower)
stochmat.backends.fast the compiled fast extension loaded successfully pure-Python fast_subst — note that nvi_parallel, nvi_vectors, and nvi_mat raise NotImplementedError in the fallback
stochmat.backends.mkl the [mkl] extra is installed and MKL native libraries are loadable SciPy's native sparse matmul (A @ B)

Quick check:

import stochmat
print(stochmat.backends.summary())
# {'cython_sparse_stoch': True, 'fast': True, 'mkl': False}

When a compiled extension cannot be loaded, a warning is emitted via the stochmat.backends logger. See the MKL section above for the fail-fast behavior specific to [mkl].

Development installation

You can also clone the repository and install the package from your local copy. This is the recommended strategy if you intend to work on the source code, allowing you to modify the files in-place.

Using pip

  1. Clone this repository
  2. cd into the repository
  3. Install in editable mode with all optional dependencies:
python -m pip install -e ".[mkl]" --config-settings=editable.mode=redirect

To include testing and documentation dependencies:

python -m pip install -e ".[mkl]" --config-settings=editable.mode=redirect
pip install pytest pytest-cov ruff sphinx sphinx-autoapi

Using uv (fallback)

  1. Clone this repository
  2. cd into the repository
  3. Sync all dependencies including extras and development groups:
uv sync --all-extras --all-groups

This installs the package in editable mode with MKL support, testing tools, and documentation dependencies.

Note: Building from source requires a C++ compiler and Python development headers. On Ubuntu/Debian: sudo apt-get install build-essential python3-dev

Running tests with Cython coverage

To measure coverage including Cython code (adds ~10-20% test runtime overhead):

CYTHON_COVERAGE=1 uv sync --all-extras --all-groups
uv run pytest --cov=stochmat --cov-report=html

Open htmlcov/index.html to view the coverage report.

Using stochmat as a dependency in another package

If you build a downstream package (call it downpkg) on top of stochmat and want to give your users the same opt-in MKL story (pip install downpkg → SciPy fallback; pip install downpkg[mkl] → MKL-accelerated end-to-end), the layout below is the recommended template.

The constraint that drives the layout

stochmat[mkl] is a fail-fast hard runtime dependency (see the MKL section above): if sparse_dot_mkl is importable in the environment but the Intel MKL shared libraries cannot be loaded, import stochmat (and therefore import downpkg) raises ImportError immediately. Two consequences:

  1. Never pull sparse-dot-mkl (or stochmat[mkl]) into a dependency set that runs on machines without MKL system libs — including testing / dev groups installed in pure-Python CI jobs. Same trap stochmat's own pyproject.toml documents.
  2. Your downstream [mkl] extra must pull stochmat[mkl], not just sparse-dot-mkl. Going through stochmat's extra is what activates the MKL probe code path and avoids double-declaring the dependency.

pyproject.toml (PEP 621)

[project]
name = "downpkg"
requires-python = ">=3.10"
dependencies = [
    "stochmat>=X.Y",   # base: SciPy/numpy fallback path
    # ...other base deps
]

[project.optional-dependencies]
# Mirror stochmat's extra name 1:1 so users learn one convention.
# This is the ONLY place sparse_dot_mkl enters downpkg's dep graph.
mkl = [
    "stochmat[mkl]>=X.Y",
]

[dependency-groups]
testing = [
    # IMPORTANT: do NOT include "stochmat[mkl]" or "sparse-dot-mkl" here.
    # The pure-Python CI job installs this group on a runner without MKL
    # libs; pulling sparse_dot_mkl would crash `import stochmat` at
    # collection time (stochmat's MKL probe is fail-fast).
    "pytest>=8",
    # ...
]

testing-mkl = [
    { include-group = "testing" },
    "stochmat[mkl]>=X.Y",     # opt-in MKL test job
]

dev = [
    { include-group = "testing" },
    # NOT testing-mkl by default — let developers opt in explicitly so a
    # fresh `uv sync` on a machine without MKL libs doesn't fail.
]

The version requirement is repeated in dependencies and in the mkl extra on purpose — the extra is purely additive (it just turns the bare requirement into one carrying [mkl]); pip / uv intersect them and pick a single resolution. Pinning the version only inside the extra silently weakens the base requirement when users install without [mkl].

Runtime usage (Pattern A, recommended)

For the common case where downpkg is a thin wrapper that delegates to stochmat.sparse_matmul, stochmat.sparse_gram_matrix, etc., no downstream code is required to make MKL work. Those entry points read stochmat.backends.mkl at call time, so users get acceleration purely by installing downpkg[mkl]:

import downpkg
import stochmat
print(stochmat.backends.summary())
# {'cython_sparse_stoch': True, 'fast': True, 'mkl': True}
Pattern B: re-export / aggregate the backend report

If downpkg adds its own optional accelerators (e.g. a Numba code path) and wants a single diagnostic surface, expose a downpkg.backends submodule that defers to stochmat.backends:

# downpkg/backends.py
"""Active backend report for downpkg."""
import stochmat


def summary() -> dict[str, bool]:
    return {
        "stochmat_cython_sparse_stoch": stochmat.backends.cython_sparse_stoch,
        "stochmat_fast": stochmat.backends.fast,
        "stochmat_mkl": stochmat.backends.mkl,
        # downpkg-specific accelerators here, e.g.:
        # "downpkg_numba": _numba_loaded,
    }


__all__ = ["summary"]

Avoid binding mkl = stochmat.backends.mkl at module top-level — that captures a snapshot at import time and breaks if downstream tests monkey-patch the flag. Always look it up dynamically (as in summary() above) so the source of truth (stochmat.backends.mkl) stays authoritative.

Note on the Cython extensions (no equivalent extra)

The MKL story is install-time and declarative (an extra in pyproject.toml); the Cython story is build-time and imperative (an environment variable in the shell). They are not symmetric, and downstream pyproject.toml has nothing to declare for the Cython side.

  • Wheels first. When stochmat publishes pre-built wheels for the user's platform/Python version, no C++ toolchain is required and pip install downpkg just works. The discussion below only matters for sdist installs (unsupported platforms, --no-binary, dev installs from git). For build-from-source prerequisites, see the "Note" at the end of the Development installation block above (build-essential python3-dev on Ubuntu/Debian).

  • The pure-Python escape hatch is an env var, not an extra. End users who want to skip the C++ build set STOCHMAT_BUILD_EXTENSIONS=0 before pip install; this flows directly into stochmat's scikit-build-core / CMake build regardless of whether the install was triggered transitively by downpkg. Build-time env vars cannot be encoded in [project.optional-dependencies], so downstream cannot offer this as a downpkg[no-ext] extra — your README can only forward the knob to your users with a one-liner.

  • Caveat for downstream code that uses nvi_*. The pure-Python fallback stochmat.fast_subst raises NotImplementedError for nvi_parallel, nvi_vectors, and nvi_mat. If downpkg calls any of those, a no-extensions install will work for everything except those code paths; either skip them under not stochmat.backends.fast or implement your own fallback.

  • CI mirroring. Add a third row to the CI table to validate the fallback path:

    Job Install Purpose
    test-no-ext STOCHMAT_BUILD_EXTENSIONS=0 pip install -e ".[testing]" Validates downstream code under stochmat's pure-Python fallback (_cython_subst / fast_subst). Tests touching nvi_* must skip when not stochmat.backends.fast.

Downstream README — copy-down warning

Because the fail-fast behavior propagates through import stochmat into every downstream import, downpkg's own README should carry the same caveat:

downpkg[mkl] is a hard runtime dependency. It pulls stochmat[mkl], which requires Intel MKL shared libraries to be loadable at runtime. import downpkg will raise ImportError if sparse_dot_mkl is installed but MKL libs are missing. If you do not need MKL, install plain downpkg and SciPy will be used as a transparent fallback.

Mirroring CI

Two parallel jobs, same shape as stochmat's own workflow:

Job Install Purpose
test-cpu uv sync (no extras) or pip install -e ".[testing]" Validates the SciPy-fallback path; no MKL libs on the runner.
test-mkl apt-get install intel-mkl then uv sync --group testing-mkl or pip install -e ".[mkl]" -e ".[testing]" Validates the MKL-accelerated path; system libs installed before pip.

The test-cpu job must not have sparse-dot-mkl in its lockfile or install set, for the same reason stochmat's own pure-Python CI job does not.

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

stochmat-1.0.0.tar.gz (91.4 kB view details)

Uploaded Source

Built Distributions

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

stochmat-1.0.0-cp313-cp313-win_amd64.whl (288.9 kB view details)

Uploaded CPython 3.13Windows x86-64

stochmat-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl (448.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

stochmat-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl (423.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

stochmat-1.0.0-cp313-cp313-macosx_14_0_x86_64.whl (573.2 kB view details)

Uploaded CPython 3.13macOS 14.0+ x86-64

stochmat-1.0.0-cp313-cp313-macosx_14_0_arm64.whl (523.2 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

stochmat-1.0.0-cp312-cp312-win_amd64.whl (289.6 kB view details)

Uploaded CPython 3.12Windows x86-64

stochmat-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl (449.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

stochmat-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl (421.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

stochmat-1.0.0-cp312-cp312-macosx_14_0_x86_64.whl (574.4 kB view details)

Uploaded CPython 3.12macOS 14.0+ x86-64

stochmat-1.0.0-cp312-cp312-macosx_14_0_arm64.whl (524.4 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

stochmat-1.0.0-cp311-cp311-win_amd64.whl (299.7 kB view details)

Uploaded CPython 3.11Windows x86-64

stochmat-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (460.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

stochmat-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl (434.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

stochmat-1.0.0-cp311-cp311-macosx_14_0_x86_64.whl (571.9 kB view details)

Uploaded CPython 3.11macOS 14.0+ x86-64

stochmat-1.0.0-cp311-cp311-macosx_14_0_arm64.whl (524.6 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

stochmat-1.0.0-cp310-cp310-win_amd64.whl (299.7 kB view details)

Uploaded CPython 3.10Windows x86-64

stochmat-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (461.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

stochmat-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl (436.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

stochmat-1.0.0-cp310-cp310-macosx_14_0_x86_64.whl (575.4 kB view details)

Uploaded CPython 3.10macOS 14.0+ x86-64

stochmat-1.0.0-cp310-cp310-macosx_14_0_arm64.whl (527.8 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file stochmat-1.0.0.tar.gz.

File metadata

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

File hashes

Hashes for stochmat-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d3fd2bd2fd6adef69e3a7167ff2566a054451dbd40c545376f9d33d2972b97db
MD5 8e75086aa7b01b664331b0b70555ffa7
BLAKE2b-256 88a1e7503aafb0b424fdd0e667f6e979df604d084fe2af2f21b7fa50eb266c57

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0.tar.gz:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: stochmat-1.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 288.9 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 stochmat-1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ab605d4452f585c6c142efa9c085c2f7f1eeb631bb6e5887693a60aef283a463
MD5 fe495955760960f8f462a560be72209c
BLAKE2b-256 ab757dc49a21004f77ea06606cdf9e1440027f3a9be15c2cec3e8b6f97d30b74

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8ea699f61c4b07dea5b2a692d44d2f9569e5889436df7465bf7ead5849ae6f4f
MD5 860a378741521199771a2384756bebc7
BLAKE2b-256 8c8792b74dae287d793640842ded877df500785ce62ec03eff23eaf73a75ca9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f602f249014486f3b4664ff4dfe3be6f1dec7ddcc02a605588aa870fa0000b38
MD5 0c4f7fbe9422345609e47bc96ab32aaa
BLAKE2b-256 5868899ff564406b773252bcde8fd278b8d962efe9d1ae04414cee3f9ef74a50

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp313-cp313-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 76c9cd41f00048a55f08bb52a235bbd0acb883f43a18fbcb8c4aa7df864f12df
MD5 0fac4cd28aa4e2ae51150be618220be0
BLAKE2b-256 9d90dd0c8f3ee8c115c0c6e73562e74966f8dd9a9177522b0eafc329b38d6aad

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp313-cp313-macosx_14_0_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a9b80aae42902fbedef6c924707f985d8519f0c7c3ac03106c9de7e220e04d0a
MD5 7f92e42e2335c063043f43ee7cd09329
BLAKE2b-256 a7689602a0f9382507a4385aa01097d309c30921c18bd4a82b9b91b113ff31a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: stochmat-1.0.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 289.6 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 stochmat-1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 155032e8bb552a0b952c245a7fba536b0cc20ee61c50b42a6455a09376209ec3
MD5 b7570a695533edf34fcb947aa2ee380e
BLAKE2b-256 2593f501ef89721c4ea7986eee00f6fce9574d92f3d1ad8a9f95195967dfd92c

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fc1c996910bbdac431d4248a9cf8b32f007d013f7d53b8787b003961174eb73b
MD5 05a60803031357fda328f3ee72efcebe
BLAKE2b-256 b813f77002c6a5236d42f669a59175bc6cdc3816e45063071281ebf206a557dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 273dca9aa2c6752238b82f1fdecb058613f6c76fd8be3672a29fc8303c03415f
MD5 58a79e0d9e0ef259bac3e86f1e49ffee
BLAKE2b-256 7547d43349e78eca183b3b879f357f43db34e58c26f0e91a6531a2ba92175fcf

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp312-cp312-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 24bbdccf059d5ad5486fbddd4bde57d4f8a15738501078589b8d1f5dd3cd4981
MD5 5add6b2e35225375716fc99d62689448
BLAKE2b-256 db28d3c6cbe0b66128f8ee80b1634ae30fd397b751af9540b721e99304344c66

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp312-cp312-macosx_14_0_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 910e1341eb58af3eb38504b5f68ff8888f29b23aaa282855e2aaa7ca8e8b663c
MD5 8e8f6226f31f6ebc98a92b26be06e778
BLAKE2b-256 29d63b539cab6daa7be1c7f3f9b90c90ce5d4dde61642992c4884dcbb8833fc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: stochmat-1.0.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 299.7 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 stochmat-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d4b99983a676c41700426788ec6013d4ac069218ab3aef30b14025948779a953
MD5 4ad62577a829d660128797832467266b
BLAKE2b-256 fdd8bbf80cbd6b5f751fe3a99bb16c1a2f4fe7f4fc99bbf334807f0a201414ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 29c6e7c4961bf24f3732f11f74d5b984ca1bf44349e50ebd5ad1f2f2a690bb6c
MD5 7dade1687de01c1eece58a5f8a52bc08
BLAKE2b-256 3f0def207d28115010af0244a6fc6a9e3298dcb5602c2ef32970da8a480114d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a443ae979c16e940ae66bdcaaeb47e240a028f8081b1378960d6c98a087fb5a6
MD5 0777058911874ecc1a1485f0487d7a53
BLAKE2b-256 5d71db0e1709a2621f8ac13941f97e3259b3f5602c8d1d1d3147fbfb882f9bc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp311-cp311-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 922ea3c2e26422d2ac03c9ae0f989c7cf6bdf8e62f797297d483e92b100cbe96
MD5 1a6cc13bcf10dc8e1563758536789755
BLAKE2b-256 90b7f16fbb818bdac4323f4e24e319447d0db5d6f81f41fc818ddbbf38c06807

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp311-cp311-macosx_14_0_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8c041679401d15312da099bb9b1c193b534069fdb3d3df1fbed7248b3fd5e5e7
MD5 2e8c30111c9c2a6d2159f8b5df02a9b1
BLAKE2b-256 68f0f2998e5243c394d4d367c87194290de95f6e32737a11ac13ddfd39933c74

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: stochmat-1.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 299.7 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 stochmat-1.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3d72258cda4c83e23ff80369e4cfe003657f161b209c85ea547083dc52709bfe
MD5 409cec0c2726b23b94c0b3faffed75fd
BLAKE2b-256 2951fc3b77ef8ad9bad9ac31390cb407573959413c907009f22a299a2b5fcf9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 26f8bd58e2f7afb0158d44855541a53eb82bd837f2f3e2146d7585fc02c339c9
MD5 761970ab6ec3ade0fe533dfd9507b369
BLAKE2b-256 0447e112ce2fedb0645c361f3c31d63d0333d18a12c46dcccfba15ae6fa0cb45

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bea7c8e5cfe54d721d313732e67bdcb52e7357e3721149afeab0add3475d2cb2
MD5 b036213378386ebf65e074ea51724f22
BLAKE2b-256 3cae8f88610e72b7913ef85e0feabe83dd85652b42bb7947bdc639bf0fa124c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp310-cp310-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp310-cp310-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 6f51bf3a76f8f72a61a1258e08f5714211341ac5167fe99147ca4dca7ccfbdce
MD5 71d4466b29f05d760458f6c64a2da556
BLAKE2b-256 cc262054c441f989b95701e25d59324602bf3dc930053f25431e4b56fed8650c

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp310-cp310-macosx_14_0_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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

File details

Details for the file stochmat-1.0.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c21eb4d6cf0032ecb3e7f00cf2adf9cafc7ffa5e96eb036ef446885e83c74c31
MD5 1e972bac51f12744a0a4ec4967e0e79d
BLAKE2b-256 d3cb820f8654cad5941bfe809d3a1fb3afd5bd9aaf32f6aedfafe27f9dcddbe0

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: release.yml on bovet-research-group/stochmat

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