Skip to main content

VPMR C++ Implementation

DOI codecov PyPI version Docker

gplv3-or-later

Call For Help

  • more performant parallel SVD algorithm: eigen only provides sequential SVD
  • alternative integration: currently only Gauss-Legendre quadrature is available

What Is This?

This is a C++ implementation of the VPMR algorithm to compute the approximation of arbitrary smooth kernel. A Python package is also provided.

Check the reference paper 10.1007/s10915-022-01999-1 and the original MATLAB implementation for more details.

In short, the algorithm tries to find a summation of exponentials to approximate a given kernel function. In mathematical terms, it looks for a set of $m_j$ and $s_j$ such that

$$ \max_{t\in{}I}\left|g(t)-\sum_jm_j\exp(-s_jt)\right|<\epsilon. $$

In the above, $g(t)$ is the given kernel function and $\epsilon$ is the prescribed tolerance.

Dependency

The following libraries are required:

  1. gmp for multiple precision arithmetic
  2. mpfr for multiple-precision floating-point computations
  3. tbb for parallel computing

The following libraries are included:

  1. mpreal mpreal type C++ wrapper, included
  2. Eigen for matrix decomposition, included
  3. exprtk for expression parsing, included
  4. exprtk-custom-types for mpreal support, included

How To

Python Package

[!WARNING] The Python module needs external libraries to be installed.

[!WARNING] Windows users need to have a working MSYS2 environment. See below for more details. For other environments, you need to figure out how to install gmp and mpfr on your own.

On RPM-based Linux distributions (using dnf), if you are:

  1. compiling the application from source (or wheels are not available), sudo dnf install -y gcc-c++ tbb-devel mpfr-devel gmp-devel
  2. using the packaged binary (wheels are available), sudo dnf install -y gmp mpfr tbb

On DEB-based Linux distributions (using apt), you need to sudo apt install -y g++ libtbb-dev libmpfr-dev libgmp-dev.

On macOS, you need to brew install tbb mpfr gmp.

Then install the package with pip.

pip install pyvpmr

If the corresponding wheel is not available, the package will be compiled, which takes a few minutes. The execution of the algorithm always requires available gmp, mpfr and tbb libraries.

Jumpstart

import numpy as np

from pyvpmr import vpmr, plot


def kernel(x):
    return np.exp(-x ** 2 / 4)


if __name__ == '__main__':
    m, s = vpmr(n=50, k='exp(-t^2/4)')
    plot(m, s, kernel)

Usage

All available options are:

Usage: vpmr [options]

Options:

    -n, --max-terms             <int>     number of terms (default: 10)
    -c, --max-exponent          <int>     maximum exponent (default: 4)
    -d, --precision-bits        <int>     number of precision bits (default: 512)
    -q, --quadrature-order      <int>     quadrature order (default: 500)
    -m, --precision-multiplier  <float>   precision multiplier (default: 1.05)
    -e, --tolerance             <float>   tolerance (default: 1E-8)
    -k, --kernel                <string>  file name of kernel function (default uses: exp(-t^2/4))
    -s, --singular-values                 print singular values
    -w, --weights                         print weights
    -h, --help                            print this help message

The minimum required precision can be estimated by the parameter $n$. The algorithm involves the computation of $C(4n,k)$ and $2^{4n}$. The number of precision bits shall be at least $4n+\log_2C(4n,2n)$. In the implementation, this number will be further multiplied by the parameter $m$.

Example

The default kernel is exp(-t^2/4). One can run the application with the following command:

./vpmr -n 30

The output is:

Using the following parameters:
       terms = 30.
    exponent = 4.
   precision = 355.
 quad. order = 500.
  multiplier = 1.0500e+00.
   tolerance = 1.0000e-08.
      kernel = exp(-t*t/4).

[1/6] Computing weights... [60/60]
[2/6] Solving Lyapunov equation...
[3/6] Solving SVD...
[4/6] Transforming (P=+9)...
[5/6] Solving eigen decomposition...
[6/6] Done.

M = 
+1.1745193571738943e+01+6.4196555242161141e-106j
-5.5143304351134397e+00+5.7204056791636839e+00j
-5.5143304351134397e+00-5.7204056791636839e+00j
-1.6161617424833762e-02+2.3459542440459513e+00j
-1.6161617424833762e-02-2.3459542440459513e+00j
+1.6338578576177487e-01+1.9308431539218418e-01j
+1.6338578576177487e-01-1.9308431539218418e-01j
-5.4905134221689715e-03+2.2104939243740062e-03j
-5.4905134221689715e-03-2.2104939243740062e-03j
S = 
+1.8757961592204051e+00-0.0000000000000000e+00j
+1.8700580506914817e+00+6.2013413918954552e-01j
+1.8700580506914817e+00-6.2013413918954552e-01j
+1.8521958553280000e+00-1.2601975249082220e+00j
+1.8521958553280000e+00+1.2601975249082220e+00j
+1.8197653300065935e+00+1.9494562062795735e+00j
+1.8197653300065935e+00-1.9494562062795735e+00j
+1.7655956664692953e+00-2.7555720406099038e+00j
+1.7655956664692953e+00+2.7555720406099038e+00j

Running time: 2044 ms.

exp(-t^2/4)

Arbitrary Kernel

For arbitrary kernel, it is necessary to provide the kernel function in a text file. The file should contain the kernel expressed as a function of variable t.

The exprtk is used to parse the expression and compute the value. The provided kernel function must be valid and supported by exprtk. Check the documentation regarding how to write a valid expression.

For example, to compute the approximation of exp(-t^2/10), one can create a file kernel.txt with the following content:

exp(-t*t/10)

In the following, the kernel function is echoed to a file and then used as an input to the application.

echo "exp(-t*t/10)" > kernel.txt
 ./vpmr -n 60 -k kernel.txt -e 1e-12

exp(-t^2/10)

Performance

The majority of the algorithm is parallelised to extract the maximum performance. The following is a typical performance profile on a i7-10750H platform using the ./vpmr -n 80.

profiling

Compilation

[!WARNING] The application relies on eigen and exprtk, which depend on very heavy usage of templates. The compilation would take minutes and around 2 GB memory. You need to install libraries gmp, mpfr and tbb before compiling.

Docker

To avoid the hassle of installing dependencies, you can use the provided Dockerfile. For example,

wget -q https://raw.githubusercontent.com/TLCFEM/vpmr/master/Dockerfile
docker build -t vpmr -f Dockerfile .

Or you simply pull using the following command.

docker pull tlcfem/vpmr
# or using GitHub Container Registry
docker pull ghcr.io/tlcfem/vmpr

Windows

Use the following instructions based on MSYS2, or follow the Linux instructions below with WSL.

# install necessary packages
pacman -S git mingw-w64-x86_64-cmake mingw-w64-x86_64-tbb mingw-w64-x86_64-gcc mingw-w64-x86_64-ninja mingw-w64-x86_64-gmp mingw-w64-x86_64-mpfr
# clone the repository
git clone --recurse-submodules --depth 1 https://github.com/TLCFEM/vpmr.git
cd vpmr
# apply patch to enable parallel evaluation of some loops in SVD
cd eigen && git apply --ignore-space-change --ignore-whitespace ../patch_size.patch && cd ..
# configure and compile
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .
ninja

Linux

The following is based on Fedora.

sudo dnf install gcc g++ gfortran cmake git -y
sudo dnf install tbb-devel mpfr-devel gmp-devel -y
git clone --recurse-submodules --depth 1 https://github.com/TLCFEM/vpmr.git
cd vpmr
cd eigen && git apply --ignore-space-change --ignore-whitespace ../patch_size.patch && cd ..
cmake -DCMAKE_BUILD_TYPE=Release .
make

Binary

The binary requires available gmp, mpfr and tbb libraries.

❯ ldd vpmr
    linux-vdso.so.1 (0x00007ffec2fa0000)
    libtbb.so.12 => /lib/x86_64-linux-gnu/libtbb.so.12 (0x00007fd1dcb13000)
    libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fd1dca92000)
    libmpfr.so.6 => /lib/x86_64-linux-gnu/libmpfr.so.6 (0x00007fd1dc9d8000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd1dac00000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd1daf20000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd1daf00000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd1daa1f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fd1dcb78000)

The distributed appimage is portable.

Metadata

Release files for pyvpmr 250804

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyvpmr 250804
File Size Uploaded
pyvpmr-250804.tar.gz 2.6 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyvpmr 250804
File
pyvpmr-250804-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
pyvpmr-250804-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pyvpmr-250804-cp314-cp314t-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 14.0+ ARM64 Details
pyvpmr-250804-cp314-cp314t-macosx_13_0_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 13.0+ x86-64 Details
pyvpmr-250804-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
pyvpmr-250804-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pyvpmr-250804-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details
pyvpmr-250804-cp314-cp314-macosx_13_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 13.0+ x86-64 Details
pyvpmr-250804-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
pyvpmr-250804-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyvpmr-250804-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
pyvpmr-250804-cp313-cp313-macosx_13_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 13.0+ x86-64 Details
pyvpmr-250804-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
pyvpmr-250804-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyvpmr-250804-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
pyvpmr-250804-cp312-cp312-macosx_13_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 13.0+ x86-64 Details
pyvpmr-250804-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
pyvpmr-250804-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyvpmr-250804-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
pyvpmr-250804-cp311-cp311-macosx_13_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 13.0+ x86-64 Details
pyvpmr-250804-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
pyvpmr-250804-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pyvpmr-250804-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details
pyvpmr-250804-cp310-cp310-macosx_13_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 13.0+ x86-64 Details
pyvpmr-250804-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
pyvpmr-250804-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pyvpmr-250804-cp39-cp39-macosx_14_0_arm64.whl CPython 3.9 CPython 3.9 macOS 14.0+ ARM64 Details
pyvpmr-250804-cp39-cp39-macosx_13_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 13.0+ x86-64 Details
pyvpmr-250804-cp38-cp38-musllinux_1_2_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ x86-64 Details
pyvpmr-250804-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pyvpmr-250804-cp38-cp38-macosx_14_0_arm64.whl CPython 3.8 CPython 3.8 macOS 14.0+ ARM64 Details
pyvpmr-250804-cp38-cp38-macosx_13_0_x86_64.whl CPython 3.8 CPython 3.8 macOS 13.0+ x86-64 Details

Total release size: 125.2 MB

Release files / pyvpmr-250804.tar.gz

Download URL pyvpmr-250804.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
5921adfeca54f992484a98b9d0e58b122d4e65ada99ece58047f10ac5acb2575
BLAKE2b-256 checksum
How to use checksums
38fc42744f5a68636f33b83f97e5e670637a13af08f7d7174f15b6f1634186e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL pyvpmr-250804-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3b1057bc4e66f18d5649e8a6a360c5f5c8f6899a6a6db398c367bcf324c7ff88
BLAKE2b-256 checksum
How to use checksums
c7369cfe09ac7f34847c0e6a9503f316ea0f4bbf4d96fbab0d70ea4eefb2fb9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyvpmr-250804-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a991e127fa24128af455676126c57120b5677b1745162226bafc365fc5bcb2c5
BLAKE2b-256 checksum
How to use checksums
5571539cb24e653866f89d3dbc1d92ce2038660d9266b65de0d794e69b4c86fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp314-cp314t-macosx_14_0_arm64.whl

Download URL pyvpmr-250804-cp314-cp314t-macosx_14_0_arm64.whl
Size 3.6 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
141f8a08947f2415b0a416d3d4892bb0230a70cdd666f7ea1837411332589d64
BLAKE2b-256 checksum
How to use checksums
58fb862688e2b96b7b4de34f07323576441d5e36ee09ce072ac8ad6e93fd84b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp314-cp314t-macosx_13_0_x86_64.whl

Download URL pyvpmr-250804-cp314-cp314t-macosx_13_0_x86_64.whl
Size 4.0 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
3fa3392c5250011734abe0bc3d84184415ee36352e4d8cb02afc5302aa643923
BLAKE2b-256 checksum
How to use checksums
b5ece92819a1634f724a80697b211f37b26c67d7ba4fc6ae1d9daa604619ee44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL pyvpmr-250804-cp314-cp314-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
54938f8995e76ccdce87016c2a18709909d4cb064e34b50f6a04731856938979
BLAKE2b-256 checksum
How to use checksums
3cf2a07d3e30edc6a87040c0d249c53c4d0f3e12ab47e9e4323b36b2b81df039
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyvpmr-250804-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e3158a5a60097d09c997797c6cd7ab6b710c09764a72d70d7f689e31aa704170
BLAKE2b-256 checksum
How to use checksums
65483cef5f1ccfe22be54470890475b1fd067896828a772e0b3e1f0f9821a72a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp314-cp314-macosx_14_0_arm64.whl

Download URL pyvpmr-250804-cp314-cp314-macosx_14_0_arm64.whl
Size 3.6 MB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
cc8a34da6a903ae0bbed9e405ae854bcbbc9a9735122dc4dea459a7c0a187b9f
BLAKE2b-256 checksum
How to use checksums
c37e69cefc7b9fc0671b1b88485e3413547c36789f7fd7f548cc7e964a277ed7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp314-cp314-macosx_13_0_x86_64.whl

Download URL pyvpmr-250804-cp314-cp314-macosx_13_0_x86_64.whl
Size 4.0 MB
Tags CPython 3.14 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
9127bc943fb5e75f6be37a7cd3c85579dbe55b472152600f0557a4d1eccac983
BLAKE2b-256 checksum
How to use checksums
a9410e78ac803e446893f7c3b40bda10bbe3cc5558704e5cd6292b8251b638f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL pyvpmr-250804-cp313-cp313-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1a0d51695d54298f1abc9b1aceea21d211e2eb15435f1078b671a645c9adcb04
BLAKE2b-256 checksum
How to use checksums
bd2d6816b4cb46842455d33d7c81fd2c80ccd6fec32685d4536fa9027ff11772
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyvpmr-250804-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1aa9eeb9f6db68a72523c7a5fd0c265b434d2710380e139cfd1076190467b00d
BLAKE2b-256 checksum
How to use checksums
9f110df4867954d222ca1b0394bf8fc438433229b2349750b6e2106eb5c01cdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp313-cp313-macosx_14_0_arm64.whl

Download URL pyvpmr-250804-cp313-cp313-macosx_14_0_arm64.whl
Size 3.6 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
c2ff66dacd0b59a149460d9cf6e43db9ec28a3b285f6d9b131d5d20e910b13fd
BLAKE2b-256 checksum
How to use checksums
4047ce421dc4b472fa25f44486713a7420895585d67ce810d1e247793c371cc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp313-cp313-macosx_13_0_x86_64.whl

Download URL pyvpmr-250804-cp313-cp313-macosx_13_0_x86_64.whl
Size 4.0 MB
Tags CPython 3.13 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
3c89320c058c45ef1c51d711f99132c0671f8e3049e0717910b45125bfa94f75
BLAKE2b-256 checksum
How to use checksums
d082abae1209c6c22f45a0d9b4a99564e242d96b5a6bcce0c5f774d9891bc17b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL pyvpmr-250804-cp312-cp312-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0b6999b7fd304952b1d5b2edc64d2c722a4637f8688b5feca1eeec3882ac4244
BLAKE2b-256 checksum
How to use checksums
ec78fdc6273e3214906f78626d7c33f9432d8e2b534b95557e8f39d09c986bc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyvpmr-250804-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ee2e452ff92a335d95f07a9dfb462acf5165dd78a2e9a68d4e73e517227127e9
BLAKE2b-256 checksum
How to use checksums
ce4b3876d81bdc0fa31d7d7cc97007cc0cd87fcb4e02b373ce9d0c52e0aa9e5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp312-cp312-macosx_14_0_arm64.whl

Download URL pyvpmr-250804-cp312-cp312-macosx_14_0_arm64.whl
Size 3.6 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
c2278b93c5ba230d828e091655c810df6c5f423fa80f75875c2feb9c9cdf9065
BLAKE2b-256 checksum
How to use checksums
6ef4d74687a5f78ecb9aaf4404f344ad9deebfef3a664b3b8714426c1ba3f3ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp312-cp312-macosx_13_0_x86_64.whl

Download URL pyvpmr-250804-cp312-cp312-macosx_13_0_x86_64.whl
Size 4.0 MB
Tags CPython 3.12 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
c52bcaf7d241c09a77d4a38d0b0d9c5e2c95014275fc3125dd442ff5ecbeb031
BLAKE2b-256 checksum
How to use checksums
5bd23485326ab7a7f4d97132cc6f4be2dcb922eb9c510d50247a30f5b8276f92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL pyvpmr-250804-cp311-cp311-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f446f23fda625a0fd82a3b64194d9ad000737740a4f7c0bb6472a3c66f48cfaf
BLAKE2b-256 checksum
How to use checksums
3964f9a3a6c8e0036db1fc598f00dee4722f054e422ff01fc93daa02a1bbf65b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyvpmr-250804-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
75d82c750a19c8e52450991e050cb457f02598e89b524f657b9ef0ad1ccf0fa2
BLAKE2b-256 checksum
How to use checksums
355c46e3c0f9186be2316dbfe501fae66c534d28a558576761c92091e4b520de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp311-cp311-macosx_14_0_arm64.whl

Download URL pyvpmr-250804-cp311-cp311-macosx_14_0_arm64.whl
Size 3.6 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
8b0ac319fb98c2c2472a6fe144a23b2bc64af5065ff0e52cdf5bc61216a2ee75
BLAKE2b-256 checksum
How to use checksums
79ebacb6f982d75d83d8227e99629dd1fbe385829ea2097a5e3d3ddcd6b3ab99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp311-cp311-macosx_13_0_x86_64.whl

Download URL pyvpmr-250804-cp311-cp311-macosx_13_0_x86_64.whl
Size 4.0 MB
Tags CPython 3.11 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
3b72385ea9b5e06cdcf45367270d8033d4df9d73c6e90728a0aa0b7dfefe619b
BLAKE2b-256 checksum
How to use checksums
f5494c726e8e4e7ba3835de5287d15313c49beba7292c98fde4885dd55630298
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL pyvpmr-250804-cp310-cp310-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
711db66f20043baf3c1122f3033b7009dd1541dbbc64412de1303feb197bd553
BLAKE2b-256 checksum
How to use checksums
3350fa24d693ce6581d71dd1e057926c34e8bf359ce11249f756df0b9dffbb7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyvpmr-250804-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8d61ae2783e59239527d2654aec16225d6724f2b1e7651623320e57e84923a9d
BLAKE2b-256 checksum
How to use checksums
17294692b3e3e69a8ebf44267ea96d92d5a151ebac31d271542cd8f093ea3b8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp310-cp310-macosx_14_0_arm64.whl

Download URL pyvpmr-250804-cp310-cp310-macosx_14_0_arm64.whl
Size 3.6 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
9bb27ad58a85a5f705d5d7ace3380dc499d4e314a30a5e0462ee9fbf9a7c1263
BLAKE2b-256 checksum
How to use checksums
4f2d657bd4c956c80a5977f84051866ee90133989e6fb106b967b1bc5124db52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp310-cp310-macosx_13_0_x86_64.whl

Download URL pyvpmr-250804-cp310-cp310-macosx_13_0_x86_64.whl
Size 4.0 MB
Tags CPython 3.10 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
b7d7b41c16ad1076a0e27ef4eff700b957844a86b2b1d8b29f515bff1e60bdd9
BLAKE2b-256 checksum
How to use checksums
beeaf107bcd97262a1d3dc29f5375fbcc44f31b08e9861cb131614a064e45292
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL pyvpmr-250804-cp39-cp39-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7ef7f20b5ef603307ef987fb5f79ee3e071e7cf0670b9241316f67eb69aeb608
BLAKE2b-256 checksum
How to use checksums
233986adf0d6080d019efab165689e10174e2ea5e311d631d41308913488cb11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyvpmr-250804-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d3d562d69f8212e993c345de116579d4bf8ff201ca69507da2cd163a9ee34138
BLAKE2b-256 checksum
How to use checksums
b5d187d1c07200f47e323b7e55e9fba0e8227661eb9196ca0dda8bf7319bec5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp39-cp39-macosx_14_0_arm64.whl

Download URL pyvpmr-250804-cp39-cp39-macosx_14_0_arm64.whl
Size 3.6 MB
Tags CPython 3.9 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
9fef56f6ac3de0767d3fb85aab82a478ccbe31805f70a4164cf41eefe0ff3d13
BLAKE2b-256 checksum
How to use checksums
27fea1bb8d096bcc13efffe687695ae21960a62e22b8fe2635c056a609e43c08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp39-cp39-macosx_13_0_x86_64.whl

Download URL pyvpmr-250804-cp39-cp39-macosx_13_0_x86_64.whl
Size 4.0 MB
Tags CPython 3.9 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
c978e748bd487c7b8b4f8592fa70bcc12d327c95c57b6423156d183d3b235116
BLAKE2b-256 checksum
How to use checksums
d6e92dce0757b91428deb9984772f8b78f86100a1bb8f653cc662c89d387f705
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL pyvpmr-250804-cp38-cp38-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ae363938492c978f08b39e136dd190c7b70702ff11d72b28157e7977a5b6503a
BLAKE2b-256 checksum
How to use checksums
4ff7408dd20d283af0a74c47fd256ff47402e2d525527a57c8246fe57fd9be7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyvpmr-250804-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.8 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
216bc1691efd8feca0791e7dcac5956f92c0c09c05ed0d01d416e34f941bf3e6
BLAKE2b-256 checksum
How to use checksums
1d2c6f30becd3a8fd87f9639af0080b79ba98af7962379aa47ab6567fa32c94b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp38-cp38-macosx_14_0_arm64.whl

Download URL pyvpmr-250804-cp38-cp38-macosx_14_0_arm64.whl
Size 3.6 MB
Tags CPython 3.8 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
7ece8906c0890b350c36bfec5baee76092490ec2237d60eb9a9ba3b4ef403897
BLAKE2b-256 checksum
How to use checksums
bb0dc28cfbca549e245735771b5f61010ee1e397acf765552031b416d4a7c2f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyvpmr-250804-cp38-cp38-macosx_13_0_x86_64.whl

Download URL pyvpmr-250804-cp38-cp38-macosx_13_0_x86_64.whl
Size 4.0 MB
Tags CPython 3.8 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
b9723d6702eb3af6a1ba3edf70272efd02a6a2a8d7aa2f2e435bc75f24dd511b
BLAKE2b-256 checksum
How to use checksums
2bcdaca41d4e23a3846817e9236868f16a0deb2ba3c43da63c0ef543a0f4e920
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

250804 This release

33 release files

241011

7 release files

240921

7 release files

240916

7 release files

0

32 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page