Skip to main content

High-performance sparse matrix RK4 solver for quantum excitation dynamics

Project description

Excitation RK4 Sparse

量子力学的な励起ダイナミクスを計算するための疎行列ベースのRK4ソルバー。

機能

  • CSR形式の疎行列サポート
  • OpenMPによる並列化(動的スケジューリング最適化)
  • 複数の実装バリエーション
    • Python実装: 開発・デバッグ用
    • Numba実装: 小次元での高速化
    • Eigen実装: 標準的なC++実装
    • Eigen_Cached実装: 大次元での最適化
    • Eigen_Direct_CSR実装: 小次元での最高性能
    • SuiteSparse実装: メモリ効率重視
    • SuiteSparse-MKL実装: Intel MKLによる最速実装
  • 包括的なベンチマーク機能
    • 実装間の詳細な性能比較
    • 次元別最適化推奨
    • メモリ使用量・CPU使用率分析
  • メモリ最適化
    • キャッシュライン境界を考慮したアライメント
    • 疎行列パターンの再利用

バージョン情報

  • 現在のバージョン: v0.2.6
  • ステータス: 安定版
  • 最終更新: 2025-07-18
  • 新機能: 複数実装の統合、詳細なベンチマーク分析

必要条件

  • Python 3.10以上
  • C++17対応コンパイラ
  • CMake 3.16以上
  • pybind11
  • Eigen3
  • OpenMP(推奨)
  • オプション: Intel MKL(SuiteSparse-MKL版を使用する場合)

インストール

pip install(推奨)

pip install rk4-sparse-cpp

この場合、rk4_sparseモジュールがsite-packagesにインストールされます。

開発用インストール

git clone https://github.com/1160-hrk/excitation-rk4-sparse.git
cd excitation-rk4-sparse

# Eigen版のビルド(デフォルト)
./tools/build.sh --clean

# SuiteSparse-MKL版のビルド(オプション)
./build_suitesparse.sh

# Pythonパッケージのインストール
pip install -e .

# または、直接パスを追加して使用
# sys.path.append('python')

クイックテスト

# 2準位系のテスト
python examples/python/two_level_excitation.py

# 調和振動子のベンチマーク
python examples/python/benchmark_ho.py

使用例

基本的な使用法

# pip installでインストールした場合
from rk4_sparse import (
    rk4_sparse_py, 
    rk4_sparse_eigen, 
    rk4_sparse_eigen_cached,
    rk4_sparse_eigen_direct_csr,
    rk4_sparse_suitesparse,
    rk4_sparse_suitesparse_mkl,
    benchmark_implementations
)

# 開発用インストールの場合
# import sys
# import os
# sys.path.append(os.path.join(os.path.dirname(__file__), 'python'))
# from rk4_sparse import *

# Python実装(開発・デバッグ用)
result_py = rk4_sparse_py(H0, mux, muy, Ex, Ey, psi0, dt, return_traj, stride, renorm)

# Eigen版(標準的なC++実装)
result_eigen = rk4_sparse_eigen(H0, mux, muy, Ex, Ey, psi0, dt, return_traj, stride, renorm)

# Eigen_Cached版(大次元での最適化)
if rk4_sparse_eigen_cached is not None:
    result_cached = rk4_sparse_eigen_cached(H0, mux, muy, Ex, Ey, psi0, dt, return_traj, stride, renorm)

# Eigen_Direct_CSR版(小次元での最高性能)
if rk4_sparse_eigen_direct_csr is not None:
    result_direct = rk4_sparse_eigen_direct_csr(H0, mux, muy, Ex, Ey, psi0, dt, return_traj, stride, renorm)

# SuiteSparse版(メモリ効率重視)
if rk4_sparse_suitesparse is not None:
    result_suitesparse = rk4_sparse_suitesparse(H0, mux, muy, Ex, Ey, psi0, dt, return_traj, stride, renorm)

# SuiteSparse-MKL版(最速、Intel MKL利用)
if rk4_sparse_suitesparse_mkl is not None:
    result_mkl = rk4_sparse_suitesparse_mkl(H0, mux, muy, Ex, Ey, psi0, dt, return_traj, stride, renorm)

# 実装間のベンチマーク
results = benchmark_implementations(H0, mux, muy, Ex, Ey, psi0, dt, return_traj, stride, renorm, num_runs=5)

# 利用可能な実装の確認
print(f"Eigen available: {rk4_sparse_eigen is not None}")
print(f"Eigen_Cached available: {rk4_sparse_eigen_cached is not None}")
print(f"Eigen_Direct_CSR available: {rk4_sparse_eigen_direct_csr is not None}")
print(f"SuiteSparse available: {rk4_sparse_suitesparse is not None}")
print(f"SuiteSparse-MKL available: {rk4_sparse_suitesparse_mkl is not None}")

### 例題
すべての例は`examples/python/`ディレクトリにあります

1. **基本例**
```bash
python examples/python/two_level_excitation.py  # 2準位励起(Python/C++比較)
  1. ベンチマーク
python examples/python/benchmark_ho.py         # 調和振動子系での全実装比較
  1. 詳細分析
# ベンチマーク結果の詳細分析
python examples/python/analyze_benchmark_results.py

ベンチマーク

最新の性能結果(2025年1月)

実装別性能比較

実装 小次元(<128) 中次元(128-1024) 大次元(>1024) メモリ効率 推奨用途
Eigen_Direct_CSR 最高 良好 劣化 小次元リアルタイム
Eigen_Cached 良好 良好 最高 汎用・大次元
Eigen 良好 良好 良好 標準
SuiteSparse 良好 良好 良好 最高 メモリ制約環境
Numba 良好 劣化 不可 小次元のみ
Python 基準 基準 基準 開発・デバッグ

高速化倍率(Python基準)

  • 小次元(2-64): 100倍以上の高速化
  • 中次元(128-512): 10-50倍の高速化
  • 大次元(1024+): 1-5倍の高速化

ベンチマーク実行

# 全実装の比較
python examples/python/benchmark_ho.py

# 2準位系のテスト
python examples/python/two_level_excitation.py

# 詳細分析
python examples/python/analyze_benchmark_results.py

プログラム内での比較

# 実装間の速度比較
results = benchmark_implementations(H0, mux, muy, Ex, Ey, psi0, dt, True, 1, False, 5)
for result in results:
    print(f"{result.implementation}: {result.total_time:.6f}秒 (Eigen比: {result.speedup_vs_eigen:.3f}x)")

性能

詳細な性能比較(2025年1月)

実行時間比較(ミリ秒)

次元 Python Numba Eigen Eigen_Cached Eigen_Direct_CSR SuiteSparse
2 11.75 0.17 0.075 0.076 0.071 0.081
4 12.18 0.26 0.090 0.089 0.086 0.091
8 12.90 0.44 0.118 0.121 0.132 0.123
16 12.60 1.20 0.179 0.188 0.178 0.180
32 12.65 3.72 0.304 0.308 0.302 0.307
64 13.70 14.28 0.554 0.526 0.549 0.539
128 15.09 59.99 1.104 1.056 1.072 1.052
256 18.80 271.33 2.299 2.622 2.858 2.204
512 28.41 994.41 5.792 5.059 8.504 7.052
1024 38.49 3954.5 14.785 10.704 14.288 14.944
2048 66.62 - 34.796 22.810 - 32.717
4096 103.88 - 86.663 42.129 - 86.115

高速化倍率(Python基準)

次元 Numba Eigen Eigen_Cached Eigen_Direct_CSR SuiteSparse
2 67.4x 155.9x 154.0x 164.8x 145.3x
4 46.5x 134.8x 136.8x 141.7x 133.2x
8 29.2x 109.1x 106.3x 97.9x 105.2x
16 10.5x 70.4x 67.1x 70.7x 70.2x
32 3.4x 41.7x 41.1x 41.9x 41.3x
64 1.0x 24.7x 26.0x 25.0x 25.4x
128 0.3x 13.7x 14.3x 14.1x 14.3x
256 0.07x 8.2x 7.2x 6.6x 8.5x
512 0.03x 4.9x 5.6x 3.3x 4.0x
1024 0.01x 2.6x 3.6x 2.7x 2.6x
2048 - 1.9x 2.9x - 2.0x
4096 - 1.2x 2.5x - 1.2x

最適化の特徴

v0.2.6での主要改善

  1. 複数実装の統合: 6つの異なる実装バリエーション
  2. キャッシュ最適化: 大次元での顕著な性能向上(最大50%改善)
  3. 次元別最適化: 用途に応じた最適実装の自動選択
  4. 詳細なベンチマーク: 包括的な性能分析機能

コア技術

  1. メモリアライメント

    • キャッシュライン境界(64バイト)に合わせたアライメント
    • 作業バッファの効率的な配置
  2. 適応的並列化

    • 閾値ベースの条件分岐(10,000要素以上で並列化)
    • 静的スケジューリング最適化
  3. 疎行列最適化

    • 非ゼロパターンの事前計算とキャッシュ
    • データ構造の再利用
    • 効率的な行列-ベクトル積
  4. 実装別最適化

    • Eigen_Direct_CSR: 小次元での直接CSR操作
    • Eigen_Cached: 大次元でのキャッシュ効果活用
    • SuiteSparse: メモリ効率重視の最適化

ドキュメント

包括的なドキュメントが利用可能です:

ライセンス

MITライセンス

作者

  • Hiroki Tsusaka
  • IIS, UTokyo
  • tsusaka4research "at" gmail.com
pip install -e .

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

rk4_sparse_cpp-0.2.10.dev0.tar.gz (2.8 MB view details)

Uploaded Source

Built Distributions

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

rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-manylinux_2_28_x86_64.whl (356.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-manylinux_2_28_aarch64.whl (310.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-manylinux_2_28_x86_64.whl (356.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-manylinux_2_28_aarch64.whl (310.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-manylinux_2_28_x86_64.whl (352.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-manylinux_2_28_aarch64.whl (308.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-manylinux_2_28_x86_64.whl (351.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-manylinux_2_28_aarch64.whl (308.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-manylinux_2_28_x86_64.whl (350.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-manylinux_2_28_aarch64.whl (308.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0.tar.gz.

File metadata

  • Download URL: rk4_sparse_cpp-0.2.10.dev0.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0.tar.gz
Algorithm Hash digest
SHA256 0d2bca4852cd40cdd7dfbfcd7720531a6c62741e4da3f3c783b143ace98d0241
MD5 1417a3f7627c410d7cec06b6e94c2c36
BLAKE2b-256 56d825d35fc7efa2f16e8f30a61b0a28ef0b84fbdd79d53873a3b71f5ebadbf4

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bcb64b60c39cb67d247487b6056e78face0ee7d83a99c8ad10aabadf33087d8a
MD5 3597dbab32a5e1cba48c16998eeff2d9
BLAKE2b-256 a58b58d5fc209f9fe440fb6f189fe7c946a00bfe363d050bd500533d11bb5802

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c117f19acc34163c19d2168f2b155625bfdbf96086d6dcbdb78ea44829634535
MD5 4dd462f0d5c22f6af6ed840065ce1989
BLAKE2b-256 19580d62b68cbab7f6d16124b1d83de4e0c0696c604f4437e017a204816a4619

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7b9e35ba927e13073a2a342f4efbea89ab4d6c766939a7482a071e143ff75290
MD5 199b02ce35bfb1f4155b92e0c0c4c416
BLAKE2b-256 87d5094689432a8af73740c078654e839fdee5a8abd0ff99d6b2359438b6e5f7

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 badb94dfe38150a57b60ecd684ca5128640d7ed36e16cbc7a581532a9061ac12
MD5 669eb6e0e96b5858baaf84fb8b239b74
BLAKE2b-256 09b7d591430cbc41e4e4c3042f4117b94147f89654dfb460695e1f45c63025c8

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8452a3ea05a256863a39a48db877f6cf4ce5c78330d3d55baf2270d7f02d7ed2
MD5 431f27fce4f02796270174c7d1d5ae5b
BLAKE2b-256 9f809a86f329f4f81878891c3125c34a8b6c85e8c357b718ee5f68c4b41c8d2c

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 279872d397fca2cba051fdea16071b291008f0305c097eed03d9649f6d851d3b
MD5 01713bdd168c64cfedd3b251727ece65
BLAKE2b-256 d839a677e9b1963b7535a2de7c0ed625aa749539a808972c4839b19c20bd9fbc

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ffbf985ddc59fce335d7903e10938b07f369084ce5fce8fea7dccfa284cbdda
MD5 5f8ad582564fd00c27d07ddee9c828af
BLAKE2b-256 9806150e69bce34b440e57a492e73e93a10e82353160de38034f5be18bb237fc

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d6bf83917286e6e3d3f695c33ab457e951263903587862e7e10264c4a55eb3be
MD5 39c784c8a4bedc50237added60cf4bae
BLAKE2b-256 2757986a80d44ce08bd40de9b831ddf3f75bef03eedd6f1c855a2a9ee24959b1

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 056ceba7089161be3d468511fb180443d201ad5dbbb7cc2da010624b94b5575e
MD5 c1dae00eb4adbb7c3648e9a076fb9305
BLAKE2b-256 9a55d46d12f607cade7095683ad66f6afca44077a44877e03ad0bc57db8dcb7a

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c8456c0d72e9087c709f347f2648ea0abd65b3a031251482bf36935cd162a25a
MD5 5f877fb9cbceb32aa5622bd24786afc2
BLAKE2b-256 8e37c4918a23bc88b6f06e15a0ad95747dac5b394338c0615b15b754301236d8

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a42e06b8e94fb527cddde2e21828ddd44fa63713685c8c585c7f67538667bb2
MD5 91839fb9c6d0b08695667e2fcb69bc0b
BLAKE2b-256 6dec373cd6a083e591682ac508b6abd60145041095e973f7c6a175dc7270a510

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 af89707799b4e286614adfb277deb4b1776f1b20599a155e1eebc432a07db2ce
MD5 c4eaae0ce9aedaa489cf42fdfcfd158a
BLAKE2b-256 9e1f8e6269aaca77218fc8240237ece125579d2a11f2d30f3134131ab5222f1e

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 35933309d34482d0276b957830157fd9628a1fe487449abb98b54cd88828f94c
MD5 de7ba70a304c0dc74a7e3eeb1292bf5c
BLAKE2b-256 36e6baa51c241b94320e5f84fc442c1aebc8540f83a06ad29a938e6ec986bdc8

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 51e0f3ff9634b6521cfaeeaba16e248c0d701ce65e0ac7a282d90feb73fa264f
MD5 13d5dd5d4fcbc8d0a7ccadb813cdd446
BLAKE2b-256 a3aed6fe2d903acb93708f73c82d879177531cf1137bed88c0f52db615242e6f

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36808fd5031d24816d376f677bf5cb239b1dea4f8f3bcb56f844e09e13dfdc21
MD5 a3c326269975f36ef90c841ed89c12b7
BLAKE2b-256 561aa8028bde4c084ca357576376fd2000d7b6133c2f144391e56021e3de629b

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ddc5ef4ec8c2f5ccddf6abb35e498ffa1b67c114de603a7cf64f03522028f09e
MD5 fd8f1fca4a89cd660acf7638eb01eda3
BLAKE2b-256 f56478dcf1d0760b054f3130e1d671012de738bf0ed9df5b31067572bb3eb96f

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4b4e0674a8abced2fab4cb95d0e772c17641d5b9727a46242e8ff980cb3910ec
MD5 f3b8359e720ca9cb89df36204637d5be
BLAKE2b-256 124644f227d2fcd113a3317f466f9f14bd53c6f01ce61904c2de1c75a372bd65

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ceceeb641aae317861f09441f9d9c7e1f27c83166bce66418bf7d45c20a36a33
MD5 59dd7e1d677f1fa1c02571ae3a9483c9
BLAKE2b-256 64bcba030ba06722a91995bd897919cb785595bf320ee29e81e8c0235a7f0c3e

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 657ad89eafffb33ea16a40ab50c68882341c5137443cca8e18f4ab29baa00191
MD5 657e546940cce8205761d6f22bb17e26
BLAKE2b-256 4168f09b4316037b0ae690b34cbc04f6aa1197047c18d9f7b2bfc409460fa9b3

See more details on using hashes here.

File details

Details for the file rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rk4_sparse_cpp-0.2.10.dev0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 baf63c583c45ea692feee992f6bfd5bc6ac5cea235d40f3d144464ba1694b88d
MD5 6b2af6388307c3351942eb2683ac101c
BLAKE2b-256 1bdc6bcc2f048831934ebda0aa8f6da14d9c449395bd6d6bf2bd29c541d98cb7

See more details on using hashes here.

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