An efficient CPU implementation of farthest point sampling (FPS) for point clouds.
Project description
fpsample
Python efficient farthest point sampling (FPS) library, 100x faster than numpy
implementation.
fpsample
is coupled with numpy
and built upon Rust pyo3 bindings. This library aims at achieving the best performance for FPS in single-threaded CPU environment.
Library for GPU is under construction. Any issues are welcome.
Installation
Install from PyPI
numpy>=1.16.0
is required. Install fpsample
using pip:
pip install -U fpsample
Build from source
The library is built using maturin. Therefore, rust
and cargo
are required for compiling.
pip install -r requirements.txt
C++ compiler must support C++14. For example, gcc>=8
or clang>=5
.
Build the library and install using:
maturin develop --release
Usage
import fpsample
import numpy as np
# Generate random point cloud
pc = np.random.rand(4096, 3)
## sample 1024 points
# Vanilla FPS
fps_samples_idx = fpsample.fps_sampling(pc, 1024)
# FPS + NPDU
fps_npdu_samples_idx = fpsample.fps_npdu_sampling(pc, 1024)
## or specify the windows size
fps_npdu_samples_idx = fpsample.fps_npdu_sampling(pc, 1024, k=64)
# FPS + NPDU + KDTree
fps_npdu_kdtree_samples_idx = fpsample.fps_npdu_kdtree_sampling(pc, 1024)
## or specify the windows size
fps_npdu_kdtree_samples_idx = fpsample.fps_npdu_kdtree_sampling(pc, 1024, k=64)
# KDTree-based FPS
kdtree_fps_samples_idx = fpsample.bucket_fps_kdtree_sampling(pc, 1024)
# Bucket-based FPS or QuickFPS
kdline_fps_samples_idx = fpsample.bucket_fps_kdline_sampling(pc, 1024, h=7)
FPS
: Vanilla farthest point sampling. Implemented in Rust. Achieve the same performance asnumpy
.FPS + NPDU
: Farthest point sampling with nearest-point-distance-updating (NPDU) heuristic strategy. 5x~10x faster than vanilla FPS. Require dimensional locality and give sub-optimal answers.FPS + NPDU + KDTree
: Farthest point sampling with NPDU heuristic strategy and KDTree. 3x~8x faster than vanilla FPS. Slightly slower thanFPS + NPDU
. But DOES NOT require dimensional locality.KDTree-based FPS
: A farthest point sampling algorithm based on KDTree. About 50x faster than vanilla FPS.Bucket-based FPS
orQuickFPS
: A bucket-based farthest point sampling algorithm. About 100x faster than vanilla FPS. Require an additional hyperparameter for the height of the KDTree. In practice,h=3
is recommended for small data,h=7
is recommended for medium data, andh=9
for extremely large data.
NOTE: In most cases, Bucket-based FPS
is the best choice, with proper hyperparameter setting.
Performance
Setup:
- CPU: Intel(R) Core(TM) i9-10940X CPU @ 3.30GHz
- RAM: 128 GiB
Run benchmark:
pytest bench/ --benchmark-columns=min,mean,stddev
Results:
-------------------------- benchmark '1024 of 4096': 5 tests --------------------------
Name (time in ms) Min Mean StdDev
---------------------------------------------------------------------------------------
test_bucket_fps_kdline_4k_h3 2.0043 (1.0) 2.3166 (1.0) 0.3812 (5.51)
test_fps_npdu_4k 3.5585 (1.78) 3.7348 (1.61) 0.0691 (1.0)
test_bucket_fps_kdtree_4k 6.4947 (3.24) 7.0000 (3.02) 0.4249 (6.15)
test_fps_npdu_kdtree_4k 13.2702 (6.62) 13.9802 (6.03) 0.3151 (4.56)
test_vanilla_fps_4k 14.3000 (7.13) 15.0144 (6.48) 0.3563 (5.15)
---------------------------------------------------------------------------------------
---------------------------- benchmark '4096 of 50000': 5 tests ---------------------------
Name (time in ms) Min Mean StdDev
-------------------------------------------------------------------------------------------
test_bucket_fps_kdline_50k_h7 23.8785 (1.0) 25.8189 (1.0) 1.0348 (1.0)
test_bucket_fps_kdtree_50k 90.6234 (3.80) 99.7299 (3.86) 4.8106 (4.65)
test_fps_npdu_50k 140.5237 (5.88) 146.9772 (5.69) 5.3462 (5.17)
test_fps_npdu_kdtree_50k 315.5046 (13.21) 324.7891 (12.58) 8.2886 (8.01)
test_vanilla_fps_50k 900.7202 (37.72) 916.6968 (35.50) 11.2134 (10.84)
-------------------------------------------------------------------------------------------
------------------------------ benchmark '50000 of 100000': 5 tests ------------------------------
Name (time in ms) Min Mean StdDev
--------------------------------------------------------------------------------------------------
test_bucket_fps_kdline_100k_h7 262.8185 (1.0) 270.1024 (1.0) 7.9086 (1.14)
test_bucket_fps_kdtree_100k 436.0765 (1.66) 441.7569 (1.64) 6.9266 (1.0)
test_fps_npdu_100k 3,325.4431 (12.65) 3,341.8474 (12.37) 16.0163 (2.31)
test_fps_npdu_kdtree_100k 4,698.6172 (17.88) 4,712.4720 (17.45) 12.0861 (1.74)
test_vanilla_fps_100k 23,520.6776 (89.49) 23,542.1331 (87.16) 22.5513 (3.26)
--------------------------------------------------------------------------------------------------
Reference
The nearest-point-distance-updating (NPDU) heuristic strategy is proposed in the following paper:
@INPROCEEDINGS{9919246,
author={Li, Jingtao and Zhou, Jian and Xiong, Yan and Chen, Xing and Chakrabarti, Chaitali},
booktitle={2022 IEEE Workshop on Signal Processing Systems (SiPS)},
title={An Adjustable Farthest Point Sampling Method for Approximately-sorted Point Cloud Data},
year={2022},
volume={},
number={},
pages={1-6},
doi={10.1109/SiPS55645.2022.9919246}
}
Bucket-based farthest point sampling (QuickFPS) is proposed in the following paper. The implementation is based on the author's Repo.
@article{han2023quickfps,
title={QuickFPS: Architecture and Algorithm Co-Design for Farthest Point Sampling in Large-Scale Point Clouds},
author={Han, Meng and Wang, Liang and Xiao, Limin and Zhang, Hao and Zhang, Chenhao and Xu, Xiangrong and Zhu, Jianfeng},
journal={IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems},
year={2023},
publisher={IEEE}
}
Thanks to the authors for their great work.
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
Built Distributions
Hashes for fpsample-0.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ba869946d98514b805e6db191ae1c844f48df0708db540dc4894b39d0211d47 |
|
MD5 | d97e38e2f4b8d4dc7a888c231599afe2 |
|
BLAKE2b-256 | 2e796fb5f0a7228984ab72a36184e13815be8da91971d2adedd59f4b9932993d |
Hashes for fpsample-0.3.0-pp310-pypy310_pp73-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9d11126707b49d34d1bdf85c2e98e7ab9e0b7d0ba7ac1d3e63688bdf78540be |
|
MD5 | 430009ba605d27866f79556b34fc7c19 |
|
BLAKE2b-256 | 7a7a4404197c6ec94a1c771f21280f451b917135a09b4cd7648e8cc416bb5c68 |
Hashes for fpsample-0.3.0-pp310-pypy310_pp73-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae7f0cbdc492b2487b7f4aa7519596cfad256c27e6cc81f52ddba61055e985d3 |
|
MD5 | 12fbe74187e2bf9b3df94aa7ea5c473f |
|
BLAKE2b-256 | 5c4810df3d44e601e3e306bccf448457acd1aa027adf057f358d2a93472fd663 |
Hashes for fpsample-0.3.0-pp310-pypy310_pp73-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b9530cd0c3394741a798841bc2955bde98f50148a2ffc6c015da40274db2e8d |
|
MD5 | 49dc339b669b169b0a593f217caa618e |
|
BLAKE2b-256 | 880122e5fd3ab21a8defe9eb0ecf25562534f1ac84d383bb9c42e0311d30fe43 |
Hashes for fpsample-0.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce0e486a275bf2f5be1be7f96ef2085545969ec7c50c2c0a2f6abab1b4c8ac19 |
|
MD5 | 05dd31c761a5d3ba6b001b2b01a2e4f0 |
|
BLAKE2b-256 | 473406c8707f4706cc639ee023c211c503cd7b92c9426afb2c21d59b6ef8d485 |
Hashes for fpsample-0.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcd624b1a0e82736e091b5ced4e90299821c647b8b4e64f1de50ffb292213f62 |
|
MD5 | 889282abd931843ebcaa70c8817ba1e7 |
|
BLAKE2b-256 | 538daecd68f87f9b1b8074497376648de6efb7e8cf09d7dbb14b7ce03040a1e8 |
Hashes for fpsample-0.3.0-pp39-pypy39_pp73-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f9448fbd77194bb44cb0ccbd07f2b135bd4a521a87d3b165bde3494432681c8 |
|
MD5 | 25a784f6be0b6cb3301ab1c78f2085fa |
|
BLAKE2b-256 | 27c63d17e5ff6c73a0ce5a5b0d1a88625fe87a2ba2de284a665e74a0cff6ef2b |
Hashes for fpsample-0.3.0-pp39-pypy39_pp73-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89a69641b9be17ffde9d153545e24a64983c0a416240056e0985c837518a6d6f |
|
MD5 | c48a4a949ecf2ce75dbf91fdcb0c13f9 |
|
BLAKE2b-256 | 8aa143b0590e78ea21595256d6c1316c6d0d4403be330bb75409a024e4794a04 |
Hashes for fpsample-0.3.0-pp39-pypy39_pp73-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9693e4530071ea5214a86ab29906d6cdd872487e2bae0bb3b6e8e4a36ac62fb |
|
MD5 | 515f51d333e192ea98faa5ffebcf745a |
|
BLAKE2b-256 | 3cd42270e377b857ae2ae859718f78f32b367f952c1358ec6c1f0a78e88e3077 |
Hashes for fpsample-0.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89ea9e010e03d0adeb781f88cf997a1c814c6572cd6b514b6a59379d0e52eb2e |
|
MD5 | 6e081cee5ce4e944aa9da01741778e58 |
|
BLAKE2b-256 | d358e00c95005dea4507cc4ae769d216cfa5cf27445d4cb862fc615719470d51 |
Hashes for fpsample-0.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6965a9c4f4378252e881e2967608d6411b0797d887f410afd4592b32fe07c07a |
|
MD5 | c6b4e712e021147133c4536ce45c8176 |
|
BLAKE2b-256 | e086c7e1a90234afc7c88bce846bfbe7f2ad119bfee8a753d967bd15e4feb9ca |
Hashes for fpsample-0.3.0-pp38-pypy38_pp73-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dfc2f98852007f14b0af87fb5491a7d1e0671f7e3532daa99c89af736ddb6c3 |
|
MD5 | 4678ad9c3d08c04873ac1ec9dbd521e4 |
|
BLAKE2b-256 | e3339efc0e218df5b076e29e021e27082401e1a6628f5dbbefdbfdd49dbc9dc9 |
Hashes for fpsample-0.3.0-pp38-pypy38_pp73-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2ed13ce26ec93d12bb4f5e978cee1f4b1d42e42ec7c6951ef94eadb94975dc1 |
|
MD5 | 90c81b7b8210c625d4a970dc90de20b3 |
|
BLAKE2b-256 | ed1bab701c8846710883c55725ef48c3f30d727633c7d8ed3483e966901fd490 |
Hashes for fpsample-0.3.0-pp38-pypy38_pp73-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccd1d1d92aa016b41bafc81ca473195272608f59c80e2d785784f2157b4241f0 |
|
MD5 | 636fc4c28d24c4b04f3bd5749ee4971e |
|
BLAKE2b-256 | 01290946ac6b30e7db6bd61efdb7be6a8fc80beac51de49a8a9413ebedc35507 |
Hashes for fpsample-0.3.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d2823f0c263ddfc34d4742f25174a63544aa0314c9fa86f18331297771dbb07 |
|
MD5 | e99542a250a1cfd08ed9b9269a75d938 |
|
BLAKE2b-256 | d42718f254aa814be04c347d18818be56349869bc718dc78f1fcfe8f1dd3430d |
Hashes for fpsample-0.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 073b5af6f47c583bc180f0e431d184cb4c49f0ecbd21d1aad8d29f3e0b80ecd4 |
|
MD5 | 4eb3dd058ff6dc3cb3499beece3eb17f |
|
BLAKE2b-256 | b74dd0bf0cbdfaf56cd122e5fef0c681aa4919f153db94f2cb12722f27f11b07 |
Hashes for fpsample-0.3.0-pp37-pypy37_pp73-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c2540cddb86ffa5356b6283bcf3c25c30565a3eb420a0c7db52d4c39492e87f |
|
MD5 | 7c0a75d5ca283d4924f8ab325c25dcdb |
|
BLAKE2b-256 | b92812c7f55ef871365e50cd895476483ff84cbbefd756f4eac6a03b60bc3a40 |
Hashes for fpsample-0.3.0-pp37-pypy37_pp73-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8289976042629ffa3f2e89db7fd0543423446cafbadc0ba75a0e1f2d9a43574d |
|
MD5 | f69e9e6f6ae945e31d7a2e489efb9902 |
|
BLAKE2b-256 | 48fd81ae56990404c904b63dbd84fc744057e31d499e812f88b0958904a0f8ec |
Hashes for fpsample-0.3.0-pp37-pypy37_pp73-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53b6b2e59babfad0a06bba3c224bcc5c78ec932151c596cd6402cf33f67a4abf |
|
MD5 | e7575edc85c38aca8bc8988331720a85 |
|
BLAKE2b-256 | a9ecca5451dcc95045158e92dbde068c4bcefc64b9460f2e1fdd5474aadf5a0f |
Hashes for fpsample-0.3.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4f8919b1c5133cc9f6e001d86def84400c2621273f650425506f822f55a8cba |
|
MD5 | 5522758e936f38ef65c1ce1a643880b9 |
|
BLAKE2b-256 | 33af88924b181915d457bad974365f0662d8af041595eceab296c7d76562cdeb |
Hashes for fpsample-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 165c2538c203a75236336b883f577156b5d6a56e27dfc86c099232e6a2659339 |
|
MD5 | 0c4ad82fcefd2960c248170233df2b68 |
|
BLAKE2b-256 | e70dd35437995a562f2f2837ca5bc7294c97e6d35b56ef5eee00d2249b5ceff5 |
Hashes for fpsample-0.3.0-cp312-cp312-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7103111d20052478c1e572ae32a9f1f3fc5ef8162f6b137a5d5eef69912d2fe7 |
|
MD5 | 8cf5424ffd29553cb7d4478c6ec3207c |
|
BLAKE2b-256 | ca262eb296269c745be3ac55d8875d0bd1e5c2454d40a5320217aa4af9387d80 |
Hashes for fpsample-0.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40d170d5f08b3ef4413eb2058910021696dbb4fcda17b35a9adb18f8ed77e5af |
|
MD5 | e20edab3d36100fb156b056d2808c799 |
|
BLAKE2b-256 | ca540b7fc09e06aa446aa3b4b75e69748def8bb549eba424bffa8b066a1196c3 |
Hashes for fpsample-0.3.0-cp312-cp312-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba6a46c2e7bb875e64eab04dd9f48f293d32ec965d9107cd223e72319bebe3aa |
|
MD5 | ebbcbb11b8d5e070191ea2140fd2a78c |
|
BLAKE2b-256 | 8baade89bfd6bd8cc084a3f41af58fb46fed7bc10a4c1887d9273c4f6818b53e |
Hashes for fpsample-0.3.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b107069362566112b2dd924532b170e2e74e3538879c8a34bec1d3655e6c3fe0 |
|
MD5 | 7da9186792f12f7cef20c079176a6a29 |
|
BLAKE2b-256 | e034c62225ca85f889a0c9bb9766d3dd46c951abe940f13171fea2b58144129f |
Hashes for fpsample-0.3.0-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1c67fb50b4e3255398702d089aed0426a75269eeda77e377d5f7eb7ec1cff7c |
|
MD5 | c92521269bd1b9444b1e4c71ada857e6 |
|
BLAKE2b-256 | 82f97fa8e350c971ea7aee18bffbfa0b3c9f83415f0ecef976c1d70bc9be65cc |
Hashes for fpsample-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e072b0f86d61c39efb9b75cffc1cb2e7f22bb63061a8b660a4a761039ba52640 |
|
MD5 | 87dc38d583ce5d1e59d21beaa05386eb |
|
BLAKE2b-256 | 45c936157365d75c2014621d8c513fff3a34703fecba6285786754438a016642 |
Hashes for fpsample-0.3.0-cp311-cp311-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f264c83081031ed9afe6cacb39e598b0142a8561bdefe50d951ccc7ab6279bd |
|
MD5 | 80ae55092d2b00ec3bbaa9067704cc8b |
|
BLAKE2b-256 | 503ab5a067d2f989e83dbd6ba409b2f6a1e6dfe2a34f12f8f94fef54d2774e1a |
Hashes for fpsample-0.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d05d5bf69d2aee47eda6a5cc317c5018bf024dca54b76d65f0ac56fcd8b7b9fc |
|
MD5 | 13a548c4c02274289fb98d00f32b58a6 |
|
BLAKE2b-256 | 062da6818caec8dddba6c5dbd951e7618148d56913f3d50bb73e61b1b11af70e |
Hashes for fpsample-0.3.0-cp311-cp311-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b29d032d562e62e7bfc9b0357bd1a2a817ba394bbdad9860d88f6fe256814dd5 |
|
MD5 | 308471edf782551107e6b9fff7d42a39 |
|
BLAKE2b-256 | f78369a2e4a5a0afc5bbf33a36aff7bc79eec685d4dfc59bde5aa2d65f61c593 |
Hashes for fpsample-0.3.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 446544612bafd9649517e0c85de48477720c8ca5af8150fcfda3ae82f264253b |
|
MD5 | 09bd1a2a8677377501e74b16e35cf162 |
|
BLAKE2b-256 | 86ea54196155e3df8ea9dd6ebfab197b27e328f12846ebd8421de1c91bcbb88a |
Hashes for fpsample-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 067834f1b19f32d3efba07e49f352e95fc7f81533d9bb7a74b736a8476c05032 |
|
MD5 | 6a0b0a587dc7a45710b1eff49395bd64 |
|
BLAKE2b-256 | 902981e2876c5060cc320e9d9f0a10da6998fb302c836112d64773219fe01ce2 |
Hashes for fpsample-0.3.0-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6484119813cdf1108bddb7f89d9aa31da092750d12f2f8f817f4dd1efcba27b7 |
|
MD5 | 33b6b1c7e756b2577c19d913b2210ed4 |
|
BLAKE2b-256 | 27eb8e5e2375b11d26d79859b44e1c2e7b9d76360aa2cefe1152e4283b33dc36 |
Hashes for fpsample-0.3.0-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01dd3ffa548889a2d3ad9e033db07b5c89b27ce7e2f94355becb94774a181f49 |
|
MD5 | f0fd94da0822e9b652c1a871e1076d24 |
|
BLAKE2b-256 | 5ae1367e614231d9bac3f3e88cfc1e810de9306162a30c2c6d89894867ad7372 |
Hashes for fpsample-0.3.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dea035a397679f35ef8733986730576ebab79e292e112b1af29ffe122e44c5b8 |
|
MD5 | 3f34c46c5d013d8c73ee743c5a01a5ab |
|
BLAKE2b-256 | 0f2f007e9feabc631e553918b715ae747e6530563f718bd78a587c2f0388109d |
Hashes for fpsample-0.3.0-cp310-cp310-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f5701bdc81fee95ef57c687adcd01d1bde62151152ba1bcecfbc58575e44930 |
|
MD5 | 44376c7a4c1cb29c9c5ea1df338f4a4b |
|
BLAKE2b-256 | c2812d5b6fa562963bb0e43467e10143ca197d562c4adcba36a3bcd23d2b1410 |
Hashes for fpsample-0.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5451e8bc6977eed88dfd91611a49a64594768ce5e898b2f1ea55bcb9dc028237 |
|
MD5 | 8a3eb91daa15b38d73465b8385122661 |
|
BLAKE2b-256 | edcbd18fb73db417aebd3f0aaa01c4c6c28aa0a60a3d7786403e5a0ba683526b |
Hashes for fpsample-0.3.0-cp310-cp310-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19a1c3f8ad5c3a471e02ddc01d71c91ae13e2a87d0167717cdb4e3a67cfd273b |
|
MD5 | 9fb3ccc121a6b3e36f1ee4b04eff2304 |
|
BLAKE2b-256 | 5062271af3b60fbcde5ddb8fd14d39c16af06ab6db00fc6523a2b82946867eff |
Hashes for fpsample-0.3.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e216646fe7bb08a1edcaa1d06856c41929a99ef22ac390231743ec5ffb56e88c |
|
MD5 | 16808975d083af9e726c1f01d612ca9f |
|
BLAKE2b-256 | 9b15d01ce23d7e43ed2873b1f14a1725d5baf32a80ce1b7e0e6bde5ed4ea0a71 |
Hashes for fpsample-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cac30c31d52e4e02ebe604f955caa642131e6a785dfc70d081548b9533a3aeea |
|
MD5 | a1ebb1f05b780b944688942d5d0a2586 |
|
BLAKE2b-256 | ede4790096bee14ae5be0f23c47cf765bdb77cd0c9dbd6575031c3ad4fda8aab |
Hashes for fpsample-0.3.0-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be45feb7a0ea3bcf387e77dd572b9185a6a41aba9886bbfe6af204ce97887c3f |
|
MD5 | 81f2666165319063a1582a048cadf655 |
|
BLAKE2b-256 | 9b13d63d11ef7a7b00976677ecaab8ac0e14a020799f75c5dd5e1bd828f9eb8d |
Hashes for fpsample-0.3.0-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6651861452e81729115f0d659000ac5e6a529339f72fa576ef304d73a2acf90b |
|
MD5 | f27761f4ac3fae230b37b92d450c9bb3 |
|
BLAKE2b-256 | 41c881a02a8000bc5300687a40e28345ce0d0a78521e72b53bbb7d2a81f3786e |
Hashes for fpsample-0.3.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 624c361c49e003ddd0d13d8e2c3a09895568d698b3962d14bd22a2dcaeb298d5 |
|
MD5 | 4cd4f6373bbf046edbe42097a78c02e0 |
|
BLAKE2b-256 | a55657686eeee60502db180938eee8bce62efb52a35e0da978a50ad67f5c5fea |
Hashes for fpsample-0.3.0-cp39-cp39-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d5eba433ba1dbba7a009b6c5fb161cc356398c60f583cf216466b40abd91f66 |
|
MD5 | d0ff5639052558c19ee518978f24ebcf |
|
BLAKE2b-256 | ffe3e41c6ae95180090639faf96cb1ff69451aee59be07cb2f06208ae3115943 |
Hashes for fpsample-0.3.0-cp39-cp39-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 523ad8a3d381a07ef5c8fa84226256f6278678078be12f903025e7a2aeed9066 |
|
MD5 | 9eee490d5849319b9c1554bb7b754722 |
|
BLAKE2b-256 | 850de2bef8972016fea005973b401319ccd6da11eb57e665e08203921056f055 |
Hashes for fpsample-0.3.0-cp39-cp39-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b74c795880562a04779818b0e65e54b7fd1eeb3ada9f4ed7cc07479cd8a6e103 |
|
MD5 | 6d3c8f02212ab991db2fe83e387fdaaa |
|
BLAKE2b-256 | d12a30d5338e0e715347bb3d8c4d80681222356a4c0f1b5ac5c16412d7a47a10 |
Hashes for fpsample-0.3.0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a6c4fe04c9eb98bf6e66bc7b1de0d2d82eb55815412061367c363e4719c8d83 |
|
MD5 | 498ae48cf930d596ba515e38a0d41974 |
|
BLAKE2b-256 | e8473645522b61cdaff895ba4a996249d94f87a6411d99143224e245b3170380 |
Hashes for fpsample-0.3.0-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc3023da16a70855f83aa0fb42f092646c776d5b41c597357328cf99cf0abebc |
|
MD5 | 2b3a9e182ae6cb67f1f75db8213e8d02 |
|
BLAKE2b-256 | b718e130ab317546482298fb9c7ce6e1da2880d31c99ee6329bb8ebc1695021f |
Hashes for fpsample-0.3.0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d7d525733f609e325bc3595690a6a55bf1359ec9a943327184e8672920eb978 |
|
MD5 | 7f5a0606ddc2ec9841614200a42a93c3 |
|
BLAKE2b-256 | 48f11214ba6f71d2ee2e32a242ee90bc253531868c60b4b00f22abb52df38b8d |
Hashes for fpsample-0.3.0-cp38-cp38-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f61da78efffbf37afae4e6906244537c8f0fbcdb2038d7e1ccd74ac75571c673 |
|
MD5 | 5f848dac24f048feacd05de1dd2eed7b |
|
BLAKE2b-256 | 34604a2f074aaf5d964490a3c30377094cc95929c3395fb834a2b279dd05ffe2 |
Hashes for fpsample-0.3.0-cp38-cp38-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a125c44a3f9a2bfa08a7377b72ee830506e2dc7212a99078a8f0211e62253a71 |
|
MD5 | 8f2e5122dd4b06fa90e824d673013465 |
|
BLAKE2b-256 | 474ade19f753a4f3a1ea061452901c83bb13f655576b404059893807932ba6de |
Hashes for fpsample-0.3.0-cp38-cp38-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32e2589f2d4862b7cc82e0ad1fef881adcfec44578a2e855b1ddb10722224077 |
|
MD5 | 808fefff124f1c10255427b4c8d3f723 |
|
BLAKE2b-256 | 482342763fb67436945c011bf75d9aa72cc8ea1cec015401742550ff85625a03 |
Hashes for fpsample-0.3.0-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc17d2d282d2eecd85fc6e72ee1293a58f85f13ae6131dd1705f7e305bc4de6f |
|
MD5 | f1ccc668594db2cdb65f073e14c30cd4 |
|
BLAKE2b-256 | d6311418773cba3bb757e3a0537ecc6a7ec7f15af33e4ea016a422c5f40c07f4 |
Hashes for fpsample-0.3.0-cp37-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7939daa34140bb9c7042164eb552e724afcccd99f1e7cc9f48913d20aa21dc8 |
|
MD5 | 8f1a444bd68b3585ad4584c3f7d8a335 |
|
BLAKE2b-256 | cdba26daaee1dd3c01da386b0ba8f3844a7743c19b513004ce56a74f2bbc96e0 |
Hashes for fpsample-0.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3bdad97b4f2b6fc852d1f2bd841f6f206bab3e8bf84629c370ce48f016458e5 |
|
MD5 | 80fedf86ce903ff8ae7c0227b1896e99 |
|
BLAKE2b-256 | e4298773eb650288f13964e2e2baf65c9c338aff8df8f40b9eea697a20496e16 |
Hashes for fpsample-0.3.0-cp37-cp37m-manylinux_2_28_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4addb315f3ed7dedb5cdec7621a6c90296282f1b994ae577be7fc00d70052d3 |
|
MD5 | dc94009e1fc6f9ab15e74a94f5b7f312 |
|
BLAKE2b-256 | 90ba3a29840497f996c146395ddc12bc7bd536795068064b23130baf0fa84c48 |
Hashes for fpsample-0.3.0-cp37-cp37m-manylinux_2_28_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fae3c7226de3406918c95d14732c1634991e52cc14ed1ff376c3efc02b4d58c2 |
|
MD5 | 26c331fd1c8a39164472fdf138c191c7 |
|
BLAKE2b-256 | c76ab5e9b2a2d1fb935fd4e8fa97f1bcd7c9377bc53e2838c677ab7ea3acde24 |
Hashes for fpsample-0.3.0-cp37-cp37m-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29f2a5dba6e798934e8f71b829a8dd676efca189382c0613748abd804cc14c4b |
|
MD5 | dfd4f792d58cb32753a4d005f1d1a9c4 |
|
BLAKE2b-256 | d56455bbd4c0c3db963474123253cfc149d5ab465d21f85bc0a64caec2bcf8ce |
Hashes for fpsample-0.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82ae4550027ef2f5a657f9413842c24e6c51a4d4b85fbe9c5bf02ad0cb10e4df |
|
MD5 | ba20c9ab309665fb42efacdbc162ff49 |
|
BLAKE2b-256 | 18ff62deb4b64b7a0a11081a2f2187b9bcd3994ed083071ab5d24eea766c50a3 |