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. BigInt BigInt arbitrary large integer for combinatorial number, included
  3. Eigen for matrix decomposition, included
  4. exprtk for expression parsing, included
  5. 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.5)
    -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.5000e+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.4089561283054790e-107j
-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: 3112 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 computation of weights, that involves integrals, and SVD are parallelised. A typical profiling would yield something similar to the following.

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 --depth 1 https://github.com/TLCFEM/vpmr.git
# initialise submodules
cd vpmr
git submodule update --init --recursive
# 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 --depth 1 https://github.com/TLCFEM/vpmr.git
cd vpmr
git submodule update --init --recursive
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 (0x00007ffcf3121000)
     libgmp.so.10 => /lib64/libgmp.so.10 (0x00007f72087e8000)
     libmpfr.so.6 => /lib64/libmpfr.so.6 (0x00007f7208736000)
     libtbb.so.2 => /lib64/libtbb.so.2 (0x00007f72086f2000)
     libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f7208400000)
     libm.so.6 => /lib64/libm.so.6 (0x00007f7208320000)
     libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f72086d0000)
     libc.so.6 => /lib64/libc.so.6 (0x00007f7208143000)
     /lib64/ld-linux-x86-64.so.2 (0x00007f72088a1000)

The distributed appimage is portable.

Metadata

Release files for pyvpmr 241217

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 241217
File Size Uploaded
pyvpmr-241217.tar.gz 2.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyvpmr 241217
File
pyvpmr-241217-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
pyvpmr-241217-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
pyvpmr-241217-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
pyvpmr-241217-cp313-cp313-macosx_13_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 13.0+ x86-64 Details
pyvpmr-241217-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
pyvpmr-241217-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
pyvpmr-241217-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
pyvpmr-241217-cp312-cp312-macosx_13_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 13.0+ x86-64 Details
pyvpmr-241217-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
pyvpmr-241217-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
pyvpmr-241217-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
pyvpmr-241217-cp311-cp311-macosx_13_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 13.0+ x86-64 Details
pyvpmr-241217-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
pyvpmr-241217-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
pyvpmr-241217-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details
pyvpmr-241217-cp310-cp310-macosx_13_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 13.0+ x86-64 Details
pyvpmr-241217-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
pyvpmr-241217-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
pyvpmr-241217-cp39-cp39-macosx_14_0_arm64.whl CPython 3.9 CPython 3.9 macOS 14.0+ ARM64 Details
pyvpmr-241217-cp39-cp39-macosx_13_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 13.0+ x86-64 Details
pyvpmr-241217-cp38-cp38-musllinux_1_2_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ x86-64 Details
pyvpmr-241217-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
pyvpmr-241217-cp38-cp38-macosx_14_0_arm64.whl CPython 3.8 CPython 3.8 macOS 14.0+ ARM64 Details
pyvpmr-241217-cp38-cp38-macosx_13_0_x86_64.whl CPython 3.8 CPython 3.8 macOS 13.0+ x86-64 Details

Total release size: 94.3 MB

Release files / pyvpmr-241217.tar.gz

Download URL pyvpmr-241217.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
6f4708b37ae0a18f66b73cbbed011dfead7f2c7ad2f60a10eb4ddd4b9eaa321c
BLAKE2b-256 checksum
How to use checksums
5d6c170bb73055d323712774f34ef47803da7c1465bbf22cfacc1c6dc08848fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
6e4401e168bff7f7228f9c9c386c836a4ca897ad8890a94c15a43ee9b029275f
BLAKE2b-256 checksum
How to use checksums
27fb7e3d23fb5bca0b3089a89a41feba9c0afd1dfc4be044778f2f5ef4bd4c7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / pyvpmr-241217-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyvpmr-241217-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.3 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0a5dab3002a7caa0b1c6c40e23c0ca0859c90f2cb8b5dcfe0eec4b9851965231
BLAKE2b-256 checksum
How to use checksums
e919c4fe77b6971b7946a625b0a4a8593dfbd0cc9573d4ed568c3c89ec64d6ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-cp313-cp313-macosx_14_0_arm64.whl
Size 3.7 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
5c3c150c8e490bb8203e2f61216cfff290eaf55c911dafefa086566b94e830af
BLAKE2b-256 checksum
How to use checksums
96ca388578c1501b9705b9f3db0ebef2dee9ea8cc7f4359bbd397d2d6a70c831
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
bb278f80f239ab614c81ed01ed966ea0f331ff5f0c02ff9942e2034f67903d84
BLAKE2b-256 checksum
How to use checksums
5239243f1cedbebd126e0683fd8cf0c6c037c17371f728ca1931172251ba0851
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
800107ae4bc8b40f4647f0172412192a7b3e438737d29d1e73f94e945c9a559a
BLAKE2b-256 checksum
How to use checksums
5c08d4aebc3e7188ac3e4593f3c796fd66e30ae2a518cd766b0fd60edd0ba01a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / pyvpmr-241217-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyvpmr-241217-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.3 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
aed975b2725743820c6b0596a7a86900bd721fd2f66dc60b70e44fff528bb7af
BLAKE2b-256 checksum
How to use checksums
01ee75b62355b4ad612d26660e845279de0888d22979aff28f953548917e2808
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-cp312-cp312-macosx_14_0_arm64.whl
Size 3.7 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
593d5101bdc42a39e8271d325c44fbb59c12773b36681d1a2e15cc34e0e18eed
BLAKE2b-256 checksum
How to use checksums
81dacb8b7b969c6976d0daa3d809367929344a42e479464701df11fe7ec69f7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
5d9ab59c76b6ad9b777468c43289486648bdbfdbaba4cab58bb0e202989c431a
BLAKE2b-256 checksum
How to use checksums
b77497dc9ca3c1351fe952b08f7849c894cf5ab12db02da9b1fce999bacf4c91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
d64bbf07e872b8205e34c3599ea71a0dfa0ee2338836a2d182cde882a5628a86
BLAKE2b-256 checksum
How to use checksums
f5ccd5b1369146107c63b9710e61313fb3bac0ceb3bbf1f4ddab35cd2c448af8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / pyvpmr-241217-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyvpmr-241217-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
58761b50adad0d34b629e1d67c97db218445bf85b4235a569caaeafa04003691
BLAKE2b-256 checksum
How to use checksums
343f19a7b82593cfe4bda976e4258f2c474787dc855a1ef4efcbfa94de7dc9d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-cp311-cp311-macosx_14_0_arm64.whl
Size 3.7 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
627f2eb2c8044c4961b7712cc56e1bbdbfb4033b881fac58d78a31de3664d318
BLAKE2b-256 checksum
How to use checksums
29d21652e962b1711930760ca186e759c44afe8264b7e334128123b7b0fecf62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
d839686a95db40943267f9385451bbdfcf228a96e960706cca3afe2dc5ffb946
BLAKE2b-256 checksum
How to use checksums
b3ca78b2e30434a4d7d2fcee1131911bec855cfb1ec1d7d40a7d588fc904645c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
e0b4025f4afd8978105302d877778043d456cefe10ee1f7f5aea2ce0dedbfdb7
BLAKE2b-256 checksum
How to use checksums
b22d0590c4e9e7922d1fb156aac3c78f2d31597b8f47b5ba2f666b8cae25f2d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / pyvpmr-241217-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyvpmr-241217-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.3 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
bbe87086bde22ba6a2bae5a9be784e6348c13b25c53f00e61808b3f3bb8dadc7
BLAKE2b-256 checksum
How to use checksums
2fc95d2b84447fe0b70785b993d8e840a8b03d8b8d1aef08f2bbee188d5ae0b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-cp310-cp310-macosx_14_0_arm64.whl
Size 3.7 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
b4a2c06d4a6b80d7353fd2dc5a7ea2ae53a2b6346ae536b5122ae4992a3b4025
BLAKE2b-256 checksum
How to use checksums
e3e6d5020f98611aab8aced38b7e1f31412cbde1149f14940e21943c1473431f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
7c5063e4722f6b1bfa349a5929bbbaddef67f3dde7e2773d09be56ab7821071f
BLAKE2b-256 checksum
How to use checksums
3ca5717fce9f34c5a5afbb131249056c97b98eae7c22557075b6941fcbbc2c35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
68c1d0e1babaeb2b8d5c35e6119aa308af353f35ad58283bf44162f220a6340b
BLAKE2b-256 checksum
How to use checksums
44108b5fe619abfd8470599172b39d4616800e49520a2075c77b4fc8624d6ce1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / pyvpmr-241217-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyvpmr-241217-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.3 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4ac8c10fc175c2b00c7be8df699a25f430a425db363a0b8b40628012e1d58fe9
BLAKE2b-256 checksum
How to use checksums
52873902fa6be56c2e4bdb882f6dd5cf4ac480ec5dc90c0f4d5497377d1e23b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-cp39-cp39-macosx_14_0_arm64.whl
Size 3.7 MB
Tags CPython 3.9 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
269ec4efece732068c9daeb4332e8f3ec84017ff4a032828abc1a8c01f243166
BLAKE2b-256 checksum
How to use checksums
737a9376286e978b778b94c925d76b758a815770ecd5f1a66bf67ab199d31f1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
40c1052d3c10903fe1a3b79997c50f3e15e739b923b69d94cfa8595ef1f14356
BLAKE2b-256 checksum
How to use checksums
73085bb0c403cafb62568646105642b3bdef009f0e195a9d74810f1cad91d645
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
82d6c19571a7819d018f36fe8569f341f53425adb69d06482a8775b8e3a21494
BLAKE2b-256 checksum
How to use checksums
22fb551d41d3181bb07fd35573f8ac43a9ed9992da86923549bd0b868d24596f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / pyvpmr-241217-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyvpmr-241217-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.3 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f17962f2a0a450a60c4187d33d49d92252f7bda38e96b0352593bd8e20c3ccd2
BLAKE2b-256 checksum
How to use checksums
00f763c8ebb0c196448f316f027c1dbc31dbedccf833ec5fddf4c9fcab5b1855
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-cp38-cp38-macosx_14_0_arm64.whl
Size 3.7 MB
Tags CPython 3.8 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
def0bc940c98223aa8b6476bd50379520a8c78a10ceae9a01bebdbe201e98749
BLAKE2b-256 checksum
How to use checksums
8f5fd9dd6df69748dd8d26c6816585a9bdd83969e6fa514645b910fd223be73f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

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

Download URL pyvpmr-241217-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
f792bef38e8234edca4b1cbbc7a51427c4f14848dfd5c08399c49ac0e2c06607
BLAKE2b-256 checksum
How to use checksums
7081b8f19929285f25ba1924e5a522d82e3247aa05699bfc93e65ca23fdf64a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release history Release notifications | RSS feed

This release

241217 This release

25 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