cfsem 2.5.0__tar.gz → 2.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cfsem-2.6.0/CHANGELOG.md +32 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/Cargo.lock +133 -22
- {cfsem-2.5.0 → cfsem-2.6.0}/Cargo.toml +5 -5
- {cfsem-2.5.0 → cfsem-2.6.0}/PKG-INFO +2 -2
- {cfsem-2.5.0 → cfsem-2.6.0}/pyproject.toml +2 -2
- {cfsem-2.5.0 → cfsem-2.6.0}/src/lib.rs +1 -1
- {cfsem-2.5.0 → cfsem-2.6.0}/src/math.rs +29 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/src/physics/circular_filament.rs +1 -1
- {cfsem-2.5.0 → cfsem-2.6.0}/src/physics/linear_filament.rs +20 -9
- {cfsem-2.5.0 → cfsem-2.6.0}/uv.lock +19 -110
- {cfsem-2.5.0 → cfsem-2.6.0}/.cargo/config.toml +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/.github/workflows/release_python.yml +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/.github/workflows/release_rust.yml +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/.github/workflows/test_python.yml +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/.github/workflows/test_rust.yml +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/.gitignore +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/.readthedocs.yml +0 -0
- /cfsem-2.5.0/CHANGELOG_PYTHON.md → /cfsem-2.6.0/CHANGELOG_PYTHON_ARCHIVE.md +0 -0
- /cfsem-2.5.0/CHANGELOG_RUST.md → /cfsem-2.6.0/CHANGELOG_RUST_ARCHIVE.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/CONTRIBUTING.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/LICENSE +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/README.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/benches/circular_filament.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/benches/linear_filament.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/build_docs.sh +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/cfsem/__init__.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/cfsem/bindings.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/cfsem/py.typed +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/cfsem/solenoid_stress/__init__.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/cfsem/solenoid_stress/solenoid_1d.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/cfsem/solenoid_stress/solenoid_handcalc.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/cfsem/solenoid_stress/thick_wall_cylinder_handcalc.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/cfsem/types.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/assets/logo.svg +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/index.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/javascripts/mathjax.js +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/example_outputs/.placeholder +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/examples.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/filament.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/flux_density.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/force.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/grad_shafranov.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/inductance.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/math.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/solenoid_stress.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/types.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/python/vector_potential.md +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/requirements.txt +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/docs/stylesheets/extra.css +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/examples/helmholtz.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/examples/inductance.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/katex-header.html +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/mkdocs.yml +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/src/mesh.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/src/physics/biotsavart.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/src/physics/gradshafranov.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/src/physics/mesh_filament.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/src/physics/mod.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/src/physics/point_source.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/src/python.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/src/testing.rs +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/test/__init__.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/test/test_electromagnetics.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/test/test_examples.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/test/test_filaments.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/test/test_funcs.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/test/test_gradshafranov.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/test/test_math.py +0 -0
- {cfsem-2.5.0 → cfsem-2.6.0}/test/test_solenoid_stress.py +0 -0
cfsem-2.6.0/CHANGELOG.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
See archived changelogs for versions prior to 2.6.0.
|
|
4
|
+
|
|
5
|
+
## 2.6.0 2025-10-15
|
|
6
|
+
|
|
7
|
+
Substantial performance improvement for `flux_density_linear_filament` Biot-Savart methods.
|
|
8
|
+
This also improves performance in calculations that use these methods, such as linear filament
|
|
9
|
+
body force density calcs.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
* Rust
|
|
14
|
+
* Add `dot3f` and `cross3f` 32-bit float variants
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
* Rust
|
|
19
|
+
* Use mixed-precision method for `flux_density_linear_filament_scalar`
|
|
20
|
+
* High-dynamic-range part of the calc is still done using 64-bit floats
|
|
21
|
+
* Low-dynamic-range part of the calc is now done using 32-bit floats
|
|
22
|
+
* _All_ addition operations in 32-bit section are done using
|
|
23
|
+
fused multiply-add operations, usually chained to defer
|
|
24
|
+
roundoff to final operation. As a result, total roundoff error
|
|
25
|
+
accumulated in this section is minimal.
|
|
26
|
+
* Return is upcast back to 64-bit float to support precise summation downstream
|
|
27
|
+
* 1.4-2x speedup without any meaningful loss of precision
|
|
28
|
+
* No change to unit test tolerances needed; unlike an all-32-bit implementation,
|
|
29
|
+
this mixed-precision method passes all the same tests as the 64-bit-only method
|
|
30
|
+
* Python
|
|
31
|
+
* Update dep versions
|
|
32
|
+
* Use latest rust backend version, which includes 1.4-2x speedup for flux_density_linear_filament Biot-Savart calcs
|
|
@@ -64,7 +64,7 @@ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
|
|
|
64
64
|
|
|
65
65
|
[[package]]
|
|
66
66
|
name = "cfsem"
|
|
67
|
-
version = "2.
|
|
67
|
+
version = "2.6.0"
|
|
68
68
|
dependencies = [
|
|
69
69
|
"criterion",
|
|
70
70
|
"itertools 0.14.0",
|
|
@@ -201,6 +201,102 @@ version = "1.15.0"
|
|
|
201
201
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
202
202
|
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
|
203
203
|
|
|
204
|
+
[[package]]
|
|
205
|
+
name = "glam"
|
|
206
|
+
version = "0.14.0"
|
|
207
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
208
|
+
checksum = "333928d5eb103c5d4050533cec0384302db6be8ef7d3cebd30ec6a35350353da"
|
|
209
|
+
|
|
210
|
+
[[package]]
|
|
211
|
+
name = "glam"
|
|
212
|
+
version = "0.15.2"
|
|
213
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
214
|
+
checksum = "3abb554f8ee44336b72d522e0a7fe86a29e09f839a36022fa869a7dfe941a54b"
|
|
215
|
+
|
|
216
|
+
[[package]]
|
|
217
|
+
name = "glam"
|
|
218
|
+
version = "0.16.0"
|
|
219
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
220
|
+
checksum = "4126c0479ccf7e8664c36a2d719f5f2c140fbb4f9090008098d2c291fa5b3f16"
|
|
221
|
+
|
|
222
|
+
[[package]]
|
|
223
|
+
name = "glam"
|
|
224
|
+
version = "0.17.3"
|
|
225
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
226
|
+
checksum = "e01732b97afd8508eee3333a541b9f7610f454bb818669e66e90f5f57c93a776"
|
|
227
|
+
|
|
228
|
+
[[package]]
|
|
229
|
+
name = "glam"
|
|
230
|
+
version = "0.18.0"
|
|
231
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
232
|
+
checksum = "525a3e490ba77b8e326fb67d4b44b4bd2f920f44d4cc73ccec50adc68e3bee34"
|
|
233
|
+
|
|
234
|
+
[[package]]
|
|
235
|
+
name = "glam"
|
|
236
|
+
version = "0.19.0"
|
|
237
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
238
|
+
checksum = "2b8509e6791516e81c1a630d0bd7fbac36d2fa8712a9da8662e716b52d5051ca"
|
|
239
|
+
|
|
240
|
+
[[package]]
|
|
241
|
+
name = "glam"
|
|
242
|
+
version = "0.20.5"
|
|
243
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
244
|
+
checksum = "f43e957e744be03f5801a55472f593d43fabdebf25a4585db250f04d86b1675f"
|
|
245
|
+
|
|
246
|
+
[[package]]
|
|
247
|
+
name = "glam"
|
|
248
|
+
version = "0.21.3"
|
|
249
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
250
|
+
checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815"
|
|
251
|
+
|
|
252
|
+
[[package]]
|
|
253
|
+
name = "glam"
|
|
254
|
+
version = "0.22.0"
|
|
255
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
256
|
+
checksum = "12f597d56c1bd55a811a1be189459e8fad2bbc272616375602443bdfb37fa774"
|
|
257
|
+
|
|
258
|
+
[[package]]
|
|
259
|
+
name = "glam"
|
|
260
|
+
version = "0.23.0"
|
|
261
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
262
|
+
checksum = "8e4afd9ad95555081e109fe1d21f2a30c691b5f0919c67dfa690a2e1eb6bd51c"
|
|
263
|
+
|
|
264
|
+
[[package]]
|
|
265
|
+
name = "glam"
|
|
266
|
+
version = "0.24.2"
|
|
267
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
268
|
+
checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
|
|
269
|
+
|
|
270
|
+
[[package]]
|
|
271
|
+
name = "glam"
|
|
272
|
+
version = "0.25.0"
|
|
273
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
274
|
+
checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
|
|
275
|
+
|
|
276
|
+
[[package]]
|
|
277
|
+
name = "glam"
|
|
278
|
+
version = "0.27.0"
|
|
279
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
280
|
+
checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9"
|
|
281
|
+
|
|
282
|
+
[[package]]
|
|
283
|
+
name = "glam"
|
|
284
|
+
version = "0.28.0"
|
|
285
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
286
|
+
checksum = "779ae4bf7e8421cf91c0b3b64e7e8b40b862fba4d393f59150042de7c4965a94"
|
|
287
|
+
|
|
288
|
+
[[package]]
|
|
289
|
+
name = "glam"
|
|
290
|
+
version = "0.29.3"
|
|
291
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
292
|
+
checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee"
|
|
293
|
+
|
|
294
|
+
[[package]]
|
|
295
|
+
name = "glam"
|
|
296
|
+
version = "0.30.8"
|
|
297
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
298
|
+
checksum = "e12d847aeb25f41be4c0ec9587d624e9cd631bc007a8fd7ce3f5851e064c6460"
|
|
299
|
+
|
|
204
300
|
[[package]]
|
|
205
301
|
name = "half"
|
|
206
302
|
version = "2.6.0"
|
|
@@ -319,11 +415,27 @@ dependencies = [
|
|
|
319
415
|
|
|
320
416
|
[[package]]
|
|
321
417
|
name = "nalgebra"
|
|
322
|
-
version = "0.
|
|
418
|
+
version = "0.34.1"
|
|
323
419
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
324
|
-
checksum = "
|
|
420
|
+
checksum = "c4d5b3eff5cd580f93da45e64715e8c20a3996342f1e466599cf7a267a0c2f5f"
|
|
325
421
|
dependencies = [
|
|
326
422
|
"approx",
|
|
423
|
+
"glam 0.14.0",
|
|
424
|
+
"glam 0.15.2",
|
|
425
|
+
"glam 0.16.0",
|
|
426
|
+
"glam 0.17.3",
|
|
427
|
+
"glam 0.18.0",
|
|
428
|
+
"glam 0.19.0",
|
|
429
|
+
"glam 0.20.5",
|
|
430
|
+
"glam 0.21.3",
|
|
431
|
+
"glam 0.22.0",
|
|
432
|
+
"glam 0.23.0",
|
|
433
|
+
"glam 0.24.2",
|
|
434
|
+
"glam 0.25.0",
|
|
435
|
+
"glam 0.27.0",
|
|
436
|
+
"glam 0.28.0",
|
|
437
|
+
"glam 0.29.3",
|
|
438
|
+
"glam 0.30.8",
|
|
327
439
|
"matrixmultiply",
|
|
328
440
|
"nalgebra-macros",
|
|
329
441
|
"num-complex",
|
|
@@ -335,9 +447,9 @@ dependencies = [
|
|
|
335
447
|
|
|
336
448
|
[[package]]
|
|
337
449
|
name = "nalgebra-macros"
|
|
338
|
-
version = "0.
|
|
450
|
+
version = "0.3.0"
|
|
339
451
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
340
|
-
checksum = "
|
|
452
|
+
checksum = "973e7178a678cfd059ccec50887658d482ce16b0aa9da3888ddeab5cd5eb4889"
|
|
341
453
|
dependencies = [
|
|
342
454
|
"proc-macro2",
|
|
343
455
|
"quote",
|
|
@@ -410,9 +522,9 @@ dependencies = [
|
|
|
410
522
|
|
|
411
523
|
[[package]]
|
|
412
524
|
name = "numpy"
|
|
413
|
-
version = "0.
|
|
525
|
+
version = "0.26.0"
|
|
414
526
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
415
|
-
checksum = "
|
|
527
|
+
checksum = "9b2dba356160b54f5371b550575b78130a54718b4c6e46b3f33a6da74a27e78b"
|
|
416
528
|
dependencies = [
|
|
417
529
|
"libc",
|
|
418
530
|
"ndarray",
|
|
@@ -496,9 +608,9 @@ dependencies = [
|
|
|
496
608
|
|
|
497
609
|
[[package]]
|
|
498
610
|
name = "pyo3"
|
|
499
|
-
version = "0.
|
|
611
|
+
version = "0.26.0"
|
|
500
612
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
501
|
-
checksum = "
|
|
613
|
+
checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383"
|
|
502
614
|
dependencies = [
|
|
503
615
|
"indoc",
|
|
504
616
|
"libc",
|
|
@@ -513,19 +625,18 @@ dependencies = [
|
|
|
513
625
|
|
|
514
626
|
[[package]]
|
|
515
627
|
name = "pyo3-build-config"
|
|
516
|
-
version = "0.
|
|
628
|
+
version = "0.26.0"
|
|
517
629
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
518
|
-
checksum = "
|
|
630
|
+
checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f"
|
|
519
631
|
dependencies = [
|
|
520
|
-
"once_cell",
|
|
521
632
|
"target-lexicon",
|
|
522
633
|
]
|
|
523
634
|
|
|
524
635
|
[[package]]
|
|
525
636
|
name = "pyo3-ffi"
|
|
526
|
-
version = "0.
|
|
637
|
+
version = "0.26.0"
|
|
527
638
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
528
|
-
checksum = "
|
|
639
|
+
checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105"
|
|
529
640
|
dependencies = [
|
|
530
641
|
"libc",
|
|
531
642
|
"pyo3-build-config",
|
|
@@ -533,9 +644,9 @@ dependencies = [
|
|
|
533
644
|
|
|
534
645
|
[[package]]
|
|
535
646
|
name = "pyo3-macros"
|
|
536
|
-
version = "0.
|
|
647
|
+
version = "0.26.0"
|
|
537
648
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
538
|
-
checksum = "
|
|
649
|
+
checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded"
|
|
539
650
|
dependencies = [
|
|
540
651
|
"proc-macro2",
|
|
541
652
|
"pyo3-macros-backend",
|
|
@@ -545,9 +656,9 @@ dependencies = [
|
|
|
545
656
|
|
|
546
657
|
[[package]]
|
|
547
658
|
name = "pyo3-macros-backend"
|
|
548
|
-
version = "0.
|
|
659
|
+
version = "0.26.0"
|
|
549
660
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
550
|
-
checksum = "
|
|
661
|
+
checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf"
|
|
551
662
|
dependencies = [
|
|
552
663
|
"heck",
|
|
553
664
|
"proc-macro2",
|
|
@@ -573,9 +684,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
|
|
|
573
684
|
|
|
574
685
|
[[package]]
|
|
575
686
|
name = "rayon"
|
|
576
|
-
version = "1.
|
|
687
|
+
version = "1.11.0"
|
|
577
688
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
578
|
-
checksum = "
|
|
689
|
+
checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f"
|
|
579
690
|
dependencies = [
|
|
580
691
|
"either",
|
|
581
692
|
"rayon-core",
|
|
@@ -583,9 +694,9 @@ dependencies = [
|
|
|
583
694
|
|
|
584
695
|
[[package]]
|
|
585
696
|
name = "rayon-core"
|
|
586
|
-
version = "1.
|
|
697
|
+
version = "1.13.0"
|
|
587
698
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
588
|
-
checksum = "
|
|
699
|
+
checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
|
|
589
700
|
dependencies = [
|
|
590
701
|
"crossbeam-deque",
|
|
591
702
|
"crossbeam-utils",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "cfsem"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.6.0"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
authors = ["Commonwealth Fusion Systems <jlogan@cfs.energy>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -15,11 +15,11 @@ name = "cfsem"
|
|
|
15
15
|
crate-type = ["cdylib", "rlib"]
|
|
16
16
|
|
|
17
17
|
[dependencies]
|
|
18
|
-
pyo3 = { version="0.
|
|
19
|
-
numpy = { version="0.
|
|
18
|
+
pyo3 = { version="0.26.0", features=["extension-module"], optional=true }
|
|
19
|
+
numpy = { version="0.26.0", optional=true } # This must match pyo3 version!
|
|
20
20
|
|
|
21
|
-
nalgebra = "^0.
|
|
22
|
-
rayon = "^1.
|
|
21
|
+
nalgebra = "^0.34.1"
|
|
22
|
+
rayon = "^1.11.0"
|
|
23
23
|
libm = "^0.2"
|
|
24
24
|
num-traits = { version = "0.2.19", features = ["libm"] }
|
|
25
25
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cfsem
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.6.0
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
7
7
|
Requires-Dist: numpy>=2
|
|
8
|
-
Requires-Dist: interpn>=0.
|
|
8
|
+
Requires-Dist: interpn>=0.6.1
|
|
9
9
|
Requires-Dist: findiff>=0.12.1
|
|
10
10
|
Requires-Dist: pydantic>=2
|
|
11
11
|
Requires-Dist: pydantic-numpy>=6
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cfsem"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.6.0"
|
|
8
8
|
description = "Quasi-steady electromagnetics including filamentized approximations, Biot-Savart, and Grad-Shafranov."
|
|
9
9
|
authors = [{name = "Commonwealth Fusion Systems", email = "jlogan@cfs.energy"}]
|
|
10
10
|
requires-python = ">=3.9, <3.14"
|
|
@@ -15,7 +15,7 @@ classifiers = [
|
|
|
15
15
|
]
|
|
16
16
|
dependencies = [
|
|
17
17
|
"numpy >= 2",
|
|
18
|
-
"interpn >= 0.
|
|
18
|
+
"interpn >= 0.6.1",
|
|
19
19
|
"findiff >= 0.12.1",
|
|
20
20
|
"pydantic >= 2",
|
|
21
21
|
"pydantic-numpy >= 6"
|
|
@@ -45,6 +45,9 @@ pub fn ellipk(m: f64) -> f64 {
|
|
|
45
45
|
let mut ellip: f64 = 0.0;
|
|
46
46
|
let c: f64 = 1.0 - m;
|
|
47
47
|
let logterm = c.powi(-1).ln();
|
|
48
|
+
|
|
49
|
+
// NOTE: This loop is unrolled at compile-time automatically,
|
|
50
|
+
// and the repeated calls to `powi` are de-duplicated by the compiler.
|
|
48
51
|
for i in 0..5 {
|
|
49
52
|
ellip = logterm
|
|
50
53
|
.mul_add(ELLIPK_B[i], ELLIPK_A[i])
|
|
@@ -69,6 +72,9 @@ pub fn ellipe(m: f64) -> f64 {
|
|
|
69
72
|
let mut ellip: f64 = 0.0;
|
|
70
73
|
let c: f64 = 1.0 - m;
|
|
71
74
|
let logterm = c.powi(-1).ln();
|
|
75
|
+
|
|
76
|
+
// NOTE: This loop is unrolled at compile-time automatically,
|
|
77
|
+
// and the repeated calls to `powi` are de-duplicated by the compiler.
|
|
72
78
|
for i in 0..5 {
|
|
73
79
|
ellip = logterm
|
|
74
80
|
.mul_add(ELLIPE_B[i], ELLIPE_A[i])
|
|
@@ -99,12 +105,35 @@ pub fn cross3(x0: f64, y0: f64, z0: f64, x1: f64, y1: f64, z1: f64) -> (f64, f64
|
|
|
99
105
|
(cx, cy, cz)
|
|
100
106
|
}
|
|
101
107
|
|
|
108
|
+
/// Evaluate the cross products for each axis component
|
|
109
|
+
/// separately using `mul_add` which would not be assumed usable
|
|
110
|
+
/// in a more general implementation.
|
|
111
|
+
/// 32-bit float variant.
|
|
112
|
+
#[inline]
|
|
113
|
+
pub fn cross3f(x0: f32, y0: f32, z0: f32, x1: f32, y1: f32, z1: f32) -> (f32, f32, f32) {
|
|
114
|
+
let xy = -x1 * y0;
|
|
115
|
+
let yz = -y1 * z0;
|
|
116
|
+
let zx = -z1 * x0;
|
|
117
|
+
let cx = y0.mul_add(z1, yz);
|
|
118
|
+
let cy = z0.mul_add(x1, zx);
|
|
119
|
+
let cz = x0.mul_add(y1, xy);
|
|
120
|
+
|
|
121
|
+
(cx, cy, cz)
|
|
122
|
+
}
|
|
123
|
+
|
|
102
124
|
/// Scalar dot product using `mul_add`.
|
|
103
125
|
#[inline]
|
|
104
126
|
pub fn dot3(x0: f64, y0: f64, z0: f64, x1: f64, y1: f64, z1: f64) -> f64 {
|
|
105
127
|
x0.mul_add(x1, y0.mul_add(y1, z0 * z1))
|
|
106
128
|
}
|
|
107
129
|
|
|
130
|
+
/// Scalar dot product using `mul_add`.
|
|
131
|
+
/// 32-bit float variant.
|
|
132
|
+
#[inline]
|
|
133
|
+
pub fn dot3f(x0: f32, y0: f32, z0: f32, x1: f32, y1: f32, z1: f32) -> f32 {
|
|
134
|
+
x0.mul_add(x1, y0.mul_add(y1, z0 * z1))
|
|
135
|
+
}
|
|
136
|
+
|
|
108
137
|
/// Convert a point from cartesian to cylindrical coordinates.
|
|
109
138
|
#[inline]
|
|
110
139
|
pub fn cartesian_to_cylindrical(x: f64, y: f64, z: f64) -> (f64, f64, f64) {
|
|
@@ -1268,7 +1268,7 @@ mod test {
|
|
|
1268
1268
|
let zfil: Vec<f64> = (0..NFIL)
|
|
1269
1269
|
.map(|i| (i as f64) - (NFIL as f64) / 2.0)
|
|
1270
1270
|
.collect();
|
|
1271
|
-
let ifil: Vec<f64> = (0..NFIL).map(|i|
|
|
1271
|
+
let ifil: Vec<f64> = (0..NFIL).map(|i| i as f64).collect();
|
|
1272
1272
|
|
|
1273
1273
|
// Build a scattering of observation locations
|
|
1274
1274
|
let rprime: Vec<f64> = (0..NOBS).map(|i| 2.0 * (i as f64).sin() + 2.1).collect();
|
|
@@ -7,7 +7,7 @@ use rayon::{
|
|
|
7
7
|
|
|
8
8
|
use crate::{
|
|
9
9
|
chunksize,
|
|
10
|
-
math::{cross3, decompose_filament, dot3, rss3},
|
|
10
|
+
math::{cross3, cross3f, decompose_filament, dot3, dot3f, rss3},
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
use crate::{MU0_OVER_4PI, macros::*};
|
|
@@ -260,28 +260,39 @@ pub fn flux_density_linear_filament_scalar(
|
|
|
260
260
|
let ((xmid, ymid, zmid), dl) = decompose_filament(xyz0, xyz1);
|
|
261
261
|
|
|
262
262
|
// Get distance from middle of the filament segment to the observation point
|
|
263
|
-
let rx = xp - xmid; // [m]
|
|
263
|
+
let rx: f64 = xp - xmid; // [m]
|
|
264
264
|
let ry = yp - ymid; // [m]
|
|
265
265
|
let rz = zp - zmid; // [m]
|
|
266
266
|
|
|
267
|
+
// Now that we've resolved the part of the calculation that involves a wide dynamic range,
|
|
268
|
+
// which drives the need for 64-bit floats to control roundoff error,
|
|
269
|
+
// we can switch to 32-bit floats for the majority of the calculation without incurring
|
|
270
|
+
// excessive error, before converting back to 64-bit float so that we maintain
|
|
271
|
+
// acceptable error during summation downstream.
|
|
272
|
+
let (rx, ry, rz) = (rx as f32, ry as f32, rz as f32);
|
|
273
|
+
let dl = (dl.0 as f32, dl.1 as f32, dl.2 as f32);
|
|
274
|
+
let ifil = ifil as f32;
|
|
275
|
+
|
|
267
276
|
// Do 1/r^3 operation with an ordering that improves float error by eliminating
|
|
268
277
|
// the actual cube operation and using fused multiply-add to reduce roundoff events,
|
|
269
278
|
// then rolling the result into the factor that is constant between all contributions.
|
|
270
|
-
let sumsq =
|
|
279
|
+
let sumsq = dot3f(rx, ry, rz, rx, ry, rz);
|
|
271
280
|
let rnorm3_inv = sumsq.powf(-1.5); // [m^-3]
|
|
272
281
|
|
|
273
282
|
// This factor is constant across all x, y, and z components
|
|
274
|
-
let c = MU0_OVER_4PI * ifil * rnorm3_inv;
|
|
283
|
+
let c = (MU0_OVER_4PI as f32) * ifil * rnorm3_inv;
|
|
275
284
|
|
|
276
285
|
// Evaluate the cross products for each axis component
|
|
277
286
|
// separately using mul_add which would not be assumed usable
|
|
278
287
|
// in a more general implementation.
|
|
279
|
-
let (cx, cy, cz) =
|
|
288
|
+
let (cx, cy, cz) = cross3f(dl.0, dl.1, dl.2, rx, ry, rz);
|
|
280
289
|
|
|
281
290
|
// Assemble final B-field components
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
let
|
|
291
|
+
// and upcast back to 64-bit float so that summation operations
|
|
292
|
+
// downstream do not incur excessive roundoff error.
|
|
293
|
+
let bx = (c * cx) as f64; // [T]
|
|
294
|
+
let by = (c * cy) as f64;
|
|
295
|
+
let bz = (c * cz) as f64;
|
|
285
296
|
|
|
286
297
|
(bx, by, bz)
|
|
287
298
|
}
|
|
@@ -849,7 +860,7 @@ mod test {
|
|
|
849
860
|
let dlzfil: Vec<f64> = (0..=NFIL - 2).map(|i| zfil[i + 1] - zfil[i]).collect();
|
|
850
861
|
let dlxyzfil = (&dlxfil[..], &dlyfil[..], &dlzfil[..]);
|
|
851
862
|
|
|
852
|
-
let ifil: &[f64] = &(0..NFIL - 1).map(|i|
|
|
863
|
+
let ifil: &[f64] = &(0..NFIL - 1).map(|i| i as f64).collect::<Vec<f64>>()[..];
|
|
853
864
|
|
|
854
865
|
// Build a scattering of observation locations
|
|
855
866
|
let xp: Vec<f64> = (0..NOBS).map(|i| 2.0 * (i as f64).sin() + 2.1).collect();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
version = 1
|
|
2
|
-
revision =
|
|
2
|
+
revision = 3
|
|
3
3
|
requires-python = ">=3.9, <3.14"
|
|
4
4
|
resolution-markers = [
|
|
5
5
|
"python_full_version >= '3.11'",
|
|
@@ -49,7 +49,7 @@ wheels = [
|
|
|
49
49
|
|
|
50
50
|
[[package]]
|
|
51
51
|
name = "cfsem"
|
|
52
|
-
version = "2.
|
|
52
|
+
version = "2.6.0"
|
|
53
53
|
source = { editable = "." }
|
|
54
54
|
dependencies = [
|
|
55
55
|
{ name = "findiff" },
|
|
@@ -81,7 +81,7 @@ dev = [
|
|
|
81
81
|
requires-dist = [
|
|
82
82
|
{ name = "coverage", marker = "extra == 'dev'", specifier = ">=6.5.0" },
|
|
83
83
|
{ name = "findiff", specifier = ">=0.12.1" },
|
|
84
|
-
{ name = "interpn", specifier = ">=0.
|
|
84
|
+
{ name = "interpn", specifier = ">=0.6.1" },
|
|
85
85
|
{ name = "matplotlib", marker = "extra == 'dev'", specifier = ">=3.9" },
|
|
86
86
|
{ name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6.0" },
|
|
87
87
|
{ name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5.25" },
|
|
@@ -603,7 +603,7 @@ wheels = [
|
|
|
603
603
|
|
|
604
604
|
[[package]]
|
|
605
605
|
name = "interpn"
|
|
606
|
-
version = "0.
|
|
606
|
+
version = "0.6.1"
|
|
607
607
|
source = { registry = "https://pypi.org/simple" }
|
|
608
608
|
dependencies = [
|
|
609
609
|
{ name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
|
@@ -611,112 +611,21 @@ dependencies = [
|
|
|
611
611
|
{ name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
|
|
612
612
|
{ name = "pydantic" },
|
|
613
613
|
]
|
|
614
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
615
|
-
wheels = [
|
|
616
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
617
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
618
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
619
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
620
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
621
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
622
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
623
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
624
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
625
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
626
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
627
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
628
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
629
|
-
{ url = "https://files.pythonhosted.org/packages/6f/0b/1a8a11d069b96b4e36c634464e395386479d9e89dc5e58a5d84c5e395cc3/interpn-0.2.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4faf5ddb781e781496f6f7b0882ec28e0b4ce8e9622d75eca528527cf88f28a", size = 282106, upload-time = "2025-03-15T20:14:51.272Z" },
|
|
630
|
-
{ url = "https://files.pythonhosted.org/packages/5c/37/fb9d88ac4c552729dde43237d22b2c104c3d8ddfd7e51133f2653d9af1eb/interpn-0.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5074317e4d2237327444da917fc2c8f35fc2773255de879f1988b3de0fa1d06", size = 296178, upload-time = "2025-03-15T20:13:04.027Z" },
|
|
631
|
-
{ url = "https://files.pythonhosted.org/packages/8f/d6/dec47fabad73c45371c986680099f1fedd47be835e4f76efab7b4b9b4e22/interpn-0.2.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:55784cef0b776fe4d218f6f27612545a79835ce3804ede66b5c23cb5143d8a8d", size = 310590, upload-time = "2025-03-15T20:13:25.739Z" },
|
|
632
|
-
{ url = "https://files.pythonhosted.org/packages/da/e7/afbcc9d0fb3c5d8c88eee4f8b4869f06218d18f7ff1b94956e3aa3e3c459/interpn-0.2.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10fb4a4b6703d2bf243dab0a8f85b70481e6e220570fffc162c13825cbd1f958", size = 330959, upload-time = "2025-03-15T20:13:44.811Z" },
|
|
633
|
-
{ url = "https://files.pythonhosted.org/packages/28/94/e8e22382fc805c4de8acd17fbaebdef9e0f2c5303f69df1f02be013096ca/interpn-0.2.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4a6961e1e0888d2e93b891f9ab34a56c1445cf778902620bc8cf16477d4cb79", size = 401244, upload-time = "2025-03-15T20:14:03.11Z" },
|
|
634
|
-
{ url = "https://files.pythonhosted.org/packages/a9/0b/706ffd35f383eaf623d9c98aeaabfc56c80acba7962526ec04c3c56caee8/interpn-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7574fbbe02a13aca97e8b5b689fbb2189d2e41a995ee802c50e584e7d430b966", size = 316005, upload-time = "2025-03-15T20:14:36.994Z" },
|
|
635
|
-
{ url = "https://files.pythonhosted.org/packages/26/07/6eb57eed473398645734f07fdc845aa4a887987da8a6e7d97f0934212bb7/interpn-0.2.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f4c9250724e7f80e9e61f6d76cce1ba6be91023f906abdb4fe90405e1e97095", size = 330686, upload-time = "2025-03-15T20:14:22.039Z" },
|
|
636
|
-
{ url = "https://files.pythonhosted.org/packages/89/1b/e5fe816df7a18b3cf71ca95b4d9defa48b70dcd9bfe4dd8219c13c7fe6bf/interpn-0.2.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1c6518a44fbf47892340d61dcfb1bc621a45aab25e220205f253d89c535b5391", size = 476294, upload-time = "2025-03-15T20:15:09.306Z" },
|
|
637
|
-
{ url = "https://files.pythonhosted.org/packages/48/a7/a0c4e5ec3ff8a61c669e6f93b4e0542c31a813429adf1d690693013c6417/interpn-0.2.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:ec2d1d4258b38e353649eed884e4f99da728cadd3421a90e9ae08ab167aef688", size = 574039, upload-time = "2025-03-15T20:15:29.388Z" },
|
|
638
|
-
{ url = "https://files.pythonhosted.org/packages/09/71/b35d4284005833424f2aa267665a71964b11905fefcc932a978b5fd0a882/interpn-0.2.5-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f7df655a421f58111f8decf4aec364c75a8806f082ecb1f1a1cecd259cf8589c", size = 509023, upload-time = "2025-03-15T20:15:50.925Z" },
|
|
639
|
-
{ url = "https://files.pythonhosted.org/packages/96/dd/7a73b8b99d6e699cee7c26f2d7be8f1a131450263babb503be599032580a/interpn-0.2.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8f127d05da2a65ac60e5a1aeb0be3f7c14367877415f0ceae6c8015306db8d21", size = 487764, upload-time = "2025-03-15T20:16:11.687Z" },
|
|
640
|
-
{ url = "https://files.pythonhosted.org/packages/ed/13/ae6457e9298cc988fe0308006be60bb831964342462858a383863578e68a/interpn-0.2.5-cp311-cp311-win32.whl", hash = "sha256:fdd6191275e3cba89803b9a74d48bcc784913d44a2be164031e48fa0c112ec9e", size = 219355, upload-time = "2025-03-15T20:16:42.506Z" },
|
|
641
|
-
{ url = "https://files.pythonhosted.org/packages/c3/1a/255bb34e6640f39789c8a480d871a43daadc820e1720c91e8e40fb59350a/interpn-0.2.5-cp311-cp311-win_amd64.whl", hash = "sha256:28b92d524cef4744c47cee626df4b89cb07ac6194dc5d24cd9215c71b990a2dd", size = 227094, upload-time = "2025-03-15T20:16:31.901Z" },
|
|
642
|
-
{ url = "https://files.pythonhosted.org/packages/2f/42/ee7a52284bbd7421960ab64fa8e19eb200cfa4f48828a9546a0b8fc76e31/interpn-0.2.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:59a88bbcaf299de42d38faa1d4ed0af1a8bbd4ec7ac028a584186661611015af", size = 294293, upload-time = "2025-03-15T20:14:58.875Z" },
|
|
643
|
-
{ url = "https://files.pythonhosted.org/packages/5e/66/a80a1da8543d9ba4c9d2d6ae6686f659ae596fcbae37ca790efceba09e84/interpn-0.2.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:184996a637885df3a525e106c437f7a2b53fd823c964a5490998c2d9e7842b20", size = 278447, upload-time = "2025-03-15T20:14:52.502Z" },
|
|
644
|
-
{ url = "https://files.pythonhosted.org/packages/41/2b/f742336fa48866c891b5acc47d1506e558dd18d1b4800965f06796a97f0b/interpn-0.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93ccbb8c75c9b0bb4acc4bbde46b130544f9eb85569fc647c1f3ae90f13a546e", size = 292808, upload-time = "2025-03-15T20:13:05.449Z" },
|
|
645
|
-
{ url = "https://files.pythonhosted.org/packages/db/72/aaead82c1b0a08c63f82bef1ca380d8c8be4d792b2490382c0f21ea9bc23/interpn-0.2.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:12a2217d0f8ae53d8a8ecc1aac2f1553dca7daf555a13ec40fe752f2fd6cd255", size = 308966, upload-time = "2025-03-15T20:13:26.928Z" },
|
|
646
|
-
{ url = "https://files.pythonhosted.org/packages/f9/c0/9b0b38b535cd1c6e93f40e1ed7ce2025963c94ca4823465f51502a41bff3/interpn-0.2.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c0c2a6deb79404d2ef5178180ad532ce18eb1030788822b20108d5b5d523607", size = 328342, upload-time = "2025-03-15T20:13:46.108Z" },
|
|
647
|
-
{ url = "https://files.pythonhosted.org/packages/4d/2c/73b086f58f2b99b565c1cbdee970ca27f6fcafc10872589ec0195cb5f695/interpn-0.2.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cad154fe635eb447ab9329493b73054ee276c30313d2e09ab694ede7a8bf19a0", size = 399622, upload-time = "2025-03-15T20:14:04.194Z" },
|
|
648
|
-
{ url = "https://files.pythonhosted.org/packages/8b/a7/6f2939f29d82d47d2b39ed1930dd6313d3a964c015b358488662204e8f31/interpn-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31a8ba3e209459c61348e20fdc18f2c9aaca191474cacf76014dcb2005ddeb00", size = 313112, upload-time = "2025-03-15T20:14:38.398Z" },
|
|
649
|
-
{ url = "https://files.pythonhosted.org/packages/33/82/b66d485144d19de20ae3fd856fa1efd3ccdea3c00a2deb4687222409524f/interpn-0.2.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5c28dbe71e4b68f68d61123e141ac279b1f7e3b245f9a17145e5c2fe5ad23bb7", size = 328251, upload-time = "2025-03-15T20:14:23.067Z" },
|
|
650
|
-
{ url = "https://files.pythonhosted.org/packages/ca/09/508c9f1dc09cb6f64d2a09c8bb0a3aae9e2b6f8c06e448bc192281d7daff/interpn-0.2.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ad9ace41be8db58d4f1c988b3ef3ccfe8d1af36492e70e81175cded7c4688eee", size = 472744, upload-time = "2025-03-15T20:15:10.771Z" },
|
|
651
|
-
{ url = "https://files.pythonhosted.org/packages/f6/32/e375fe5eabccfc3096e44f6f1b83ddb4d25a4e0371952e9248eb0eadfe0c/interpn-0.2.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:576808bd5183ce1a274e5466cff39935c7cab5642d2c79676fc8a78170c9831c", size = 572362, upload-time = "2025-03-15T20:15:30.692Z" },
|
|
652
|
-
{ url = "https://files.pythonhosted.org/packages/29/26/5cad7d7d8b33c293b1ffbcad8924b002ccc110cb3b65a5682f1d80e302bb/interpn-0.2.5-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b425f496f811a033301541ffd44a505760782b41ca7742198525580a1947c7b4", size = 507410, upload-time = "2025-03-15T20:15:52.252Z" },
|
|
653
|
-
{ url = "https://files.pythonhosted.org/packages/3a/28/8e0c7927695a274156f4a3cdfa8546f05e6098f5e901783b325cba06b7cf/interpn-0.2.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:403c44258eb3fd560d099e76aa0f79190eb65cd84e97fb9f43aafc4d6980b422", size = 484749, upload-time = "2025-03-15T20:16:12.804Z" },
|
|
654
|
-
{ url = "https://files.pythonhosted.org/packages/a9/e4/128daa6924c912b2e16bb6062db1d3e114c7a94966547eeb1d0694cb5d5e/interpn-0.2.5-cp312-cp312-win32.whl", hash = "sha256:845e6bd823b89e6742e56c7ee2b455cf34778699ac4deef00c6f0d28af2e307b", size = 219369, upload-time = "2025-03-15T20:16:43.559Z" },
|
|
655
|
-
{ url = "https://files.pythonhosted.org/packages/a4/a7/82f199716e52dbc1c3a1fce4544e89f3b4080518a67a59ee1525ceb0e11e/interpn-0.2.5-cp312-cp312-win_amd64.whl", hash = "sha256:0c0d7475621bfcbb2a53eb1427b43a4b71f58a7a545dc5f6d95e764a37fb04a8", size = 226577, upload-time = "2025-03-15T20:16:33.238Z" },
|
|
656
|
-
{ url = "https://files.pythonhosted.org/packages/cf/af/531981c5e91a194a606142aa107ac322c7f07eff47d10f007976d3028538/interpn-0.2.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ab272f3a5c0dc665b4efe20636060e7be93c0e6e25e8d2621733d7b7a3fc7a37", size = 293849, upload-time = "2025-03-15T20:15:00.125Z" },
|
|
657
|
-
{ url = "https://files.pythonhosted.org/packages/d1/66/e5f796bdf15c965301d385da61c6b5a2eeb902b7efe24bbbdd7a6c5dfa18/interpn-0.2.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9836b44ba0a37c52bacbaa1e6b7600b99c07ee863a6dec0b6575daf73b737993", size = 278191, upload-time = "2025-03-15T20:14:53.739Z" },
|
|
658
|
-
{ url = "https://files.pythonhosted.org/packages/6c/b8/b14b681be0a52e11f5bdf619bbd2cedf5a49081bf51804b723db2b7e37dd/interpn-0.2.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5b20359b3c34370fd163c67ecd8bfe21d8d6fec088b95157c5c9841d7e79521", size = 292605, upload-time = "2025-03-15T20:13:06.515Z" },
|
|
659
|
-
{ url = "https://files.pythonhosted.org/packages/14/b5/8ef468751197ecd52485bfc2031506eae20cc0aa2cdbca95081bb0d9541e/interpn-0.2.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:40ec560b37e448656884b3c4c7d4e8973e88f1c7072e90b1ab7765312151ca47", size = 308249, upload-time = "2025-03-15T20:13:27.914Z" },
|
|
660
|
-
{ url = "https://files.pythonhosted.org/packages/d0/15/353089f6a92e3e94a782e259ea4a885631420ae6394ab60440631fafc540/interpn-0.2.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:19b64aae4221a683a5c70482867e689e053e2cda873c621be3e43ef18e755cd8", size = 327946, upload-time = "2025-03-15T20:13:47.461Z" },
|
|
661
|
-
{ url = "https://files.pythonhosted.org/packages/bd/0d/ef4e1da319bddb708d4a2ec21af39c9662d69356e4783ee5e8df247e8f98/interpn-0.2.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b12e6a44c419e889c2506042c75aa910513b9a3ebce33ff8d17106cc0817a7cb", size = 399314, upload-time = "2025-03-15T20:14:05.36Z" },
|
|
662
|
-
{ url = "https://files.pythonhosted.org/packages/a4/de/8f2df21c5aec1dd155ad1e21719ee0c44e09304ef2fb75b16846a13ba2f2/interpn-0.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3e7c596be4b0c73d4bae815bca20412c33fba509cf707d63ba4a6914322e132", size = 312596, upload-time = "2025-03-15T20:14:39.435Z" },
|
|
663
|
-
{ url = "https://files.pythonhosted.org/packages/8f/bd/ae9c36e9d4acc671210d96306d558a5f5617f463bb520e4502d38633ae88/interpn-0.2.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7b0d8c149f07d956037484aef8b97d7645458c6c16456795e0a526b8b87bac78", size = 327700, upload-time = "2025-03-15T20:14:24.136Z" },
|
|
664
|
-
{ url = "https://files.pythonhosted.org/packages/10/a0/8f1b31a3ae5de8c1512a7418d98b27e07d5b0cc186f339ec67b0276bc3b9/interpn-0.2.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8c25c42620d384c4b8b0ae6f0728716014086dffe2215c9d26406ab0c207cc6f", size = 472375, upload-time = "2025-03-15T20:15:11.837Z" },
|
|
665
|
-
{ url = "https://files.pythonhosted.org/packages/ae/cd/569fdf5be9c267989df47b8724aa35be63cde446da72dad66f15fad11fa8/interpn-0.2.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:e5bc7cf19bb84f47f7d800fd51352f2edfe75f7d5eba7a28d673730d550a8c03", size = 571829, upload-time = "2025-03-15T20:15:31.895Z" },
|
|
666
|
-
{ url = "https://files.pythonhosted.org/packages/76/2b/6124d801a6fc52f8b25b4f6c71f3f153bae55694e92d34ef285ca76b3b93/interpn-0.2.5-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de4c33418d6ddf8a49b569abf778f3dfe8eeb79692b5d2e3a441e13dbf24449b", size = 506861, upload-time = "2025-03-15T20:15:54.429Z" },
|
|
667
|
-
{ url = "https://files.pythonhosted.org/packages/d0/24/674118a204c0990b46f5e6bfadfa83b10553acd40d5afe3f3acfe0d3dcd7/interpn-0.2.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:95f4b3c21ba2a6231529e05f6dddc2398f1f3cb8219dfede6164c8385628594a", size = 484251, upload-time = "2025-03-15T20:16:13.96Z" },
|
|
668
|
-
{ url = "https://files.pythonhosted.org/packages/09/ea/3247412be7646ee32453953eab96c671d1494937535c705bd50d7573a5cb/interpn-0.2.5-cp313-cp313-win32.whl", hash = "sha256:2a06420dad23f8de9d1e73f2b5c3cf5663da7f6ac0ddd99fc1ac5eb364e0a0e9", size = 218895, upload-time = "2025-03-15T20:16:44.838Z" },
|
|
669
|
-
{ url = "https://files.pythonhosted.org/packages/5a/9d/d515c70ca9b22d6cc8b213567e467553db977de66922f6ef023a9399f194/interpn-0.2.5-cp313-cp313-win_amd64.whl", hash = "sha256:398808233723aa8e2de99f3084e962d936e9f57fc228f5b47325a683480be01d", size = 226254, upload-time = "2025-03-15T20:16:34.51Z" },
|
|
670
|
-
{ url = "https://files.pythonhosted.org/packages/21/01/0566d5802c88420f611db5954947d7fd0741298ad270a673dc31479c9944/interpn-0.2.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ef9b4067e3c7bc48b49e3574eafdf56bd0efae1243d41badc43127973c32e26", size = 289083, upload-time = "2025-03-15T20:13:07.541Z" },
|
|
671
|
-
{ url = "https://files.pythonhosted.org/packages/9b/72/1b71f34800e1b00d3b2b6b6f07e5a38d2d2ee658b1cff86db5b157f1ae09/interpn-0.2.5-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:73df3179aa5ed384dca499e6e1566c23e7c89fe18524a9d25f771e36866d7f3e", size = 301151, upload-time = "2025-03-15T20:13:29.24Z" },
|
|
672
|
-
{ url = "https://files.pythonhosted.org/packages/ed/2b/2871f7b0933de2cdf81bd1e35de608015e43c3e5df1f6ac71c334c7f240c/interpn-0.2.5-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1caa261cdb7134a797b037650853af7e10b1a35e8e73fb4a6421f309838412e9", size = 320178, upload-time = "2025-03-15T20:13:48.462Z" },
|
|
673
|
-
{ url = "https://files.pythonhosted.org/packages/fd/78/d5d00524349bfad839937a4fed3c40f55973833fbe69f36c6acdbe3d0110/interpn-0.2.5-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e7a711b18c7a5f64e0e60c47a6d4bd5f5b715f98bd9bdcdae472f57379e9de3a", size = 396541, upload-time = "2025-03-15T20:14:06.375Z" },
|
|
674
|
-
{ url = "https://files.pythonhosted.org/packages/9e/7e/d0cfaea8126759c3b637ef18db673b982a5c3c8a503bd0aa42fa0e8a92be/interpn-0.2.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:decbc4d4dbc163d4494e031b8cb253faae617b14b9c2f667eed6c431bd6bfcb7", size = 468927, upload-time = "2025-03-15T20:15:12.928Z" },
|
|
675
|
-
{ url = "https://files.pythonhosted.org/packages/28/da/1cd169e8e717738c59e525c3983f302a02d059d2f59eb07fc92da8f6863f/interpn-0.2.5-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:819ba478fb4c229becb796fc5d40e94016981cd362ac889092a1581d8b213908", size = 564556, upload-time = "2025-03-15T20:15:33.491Z" },
|
|
676
|
-
{ url = "https://files.pythonhosted.org/packages/ce/49/50b86c2921093e3038d36824f5f4fdfc2316c2853045d1c9f65f106c4ca0/interpn-0.2.5-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:41a42da4dfb36f807c2836e487cee7e23647fc7f4c3a186b90c8ec60690eada9", size = 502096, upload-time = "2025-03-15T20:15:55.537Z" },
|
|
677
|
-
{ url = "https://files.pythonhosted.org/packages/c3/8c/e99d20d4f5f990c9b27bff6359681ef85816f110d80c0e0d4222ebb76158/interpn-0.2.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f366e15c0dc1e98f9eaeecb83fcbc4f37b0a068d76e9e590e1b347afbc8b2338", size = 476889, upload-time = "2025-03-15T20:16:15.188Z" },
|
|
678
|
-
{ url = "https://files.pythonhosted.org/packages/20/66/5984a3e847811e00a82df70a44ab4e0a5aa47f928b554acaf6c5053d4be1/interpn-0.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e57e26964170405d79a0c5d1323a566d4834b34c7f146e64246500958c6cd4", size = 296365, upload-time = "2025-03-15T20:13:08.646Z" },
|
|
679
|
-
{ url = "https://files.pythonhosted.org/packages/6c/f6/93329f678e855d9a518507c8fb8eef9b819a5a6fb20b062677be99656254/interpn-0.2.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8022cee135d1ae80986d8a890d3001c10d1fc0662e517b2dcb924f257a57564e", size = 310976, upload-time = "2025-03-15T20:13:30.509Z" },
|
|
680
|
-
{ url = "https://files.pythonhosted.org/packages/c8/5b/d0704551de26fd4ee3c454cdedde62eeed261a6fc3396c3144e9a4e84769/interpn-0.2.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8148c422d8219a58407208800487ebcd85baeb0613c68e77d61386a5fad9c66", size = 331053, upload-time = "2025-03-15T20:13:49.69Z" },
|
|
681
|
-
{ url = "https://files.pythonhosted.org/packages/79/c4/9d834be9be0ad05e26ea887dcd29a544874d9c38c90a1c7e17fab1a67c7c/interpn-0.2.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cac53be82d53a97099ca238c95c7f13748ce2d6402ae96f38621618260a3d78e", size = 401969, upload-time = "2025-03-15T20:14:07.469Z" },
|
|
682
|
-
{ url = "https://files.pythonhosted.org/packages/d4/aa/119176d365e6e25062a331ebff079a9a8c82b2b8f141bbb164a9a508df68/interpn-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21647a0f26fe2c17148125093c93c667354e7578f1c09e812baea39e3d123379", size = 316282, upload-time = "2025-03-15T20:14:40.845Z" },
|
|
683
|
-
{ url = "https://files.pythonhosted.org/packages/ab/d2/a7dec1e10f17bc27a1471454b947ad3d02d046a7e16de2998f9fcdd4fd4e/interpn-0.2.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:96dd5ca5f1d8ae1923419c0c2b89df0c93103b2bbf4e4dc369781a6767c4ee1e", size = 330949, upload-time = "2025-03-15T20:14:25.484Z" },
|
|
684
|
-
{ url = "https://files.pythonhosted.org/packages/7d/0b/ea5bafa7a94dbb49419e21db329927eb79b2f55be84f37e511535b308d6f/interpn-0.2.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4ba65a3b7f5f586274c374c6570fa64344922c73f7c2185de1df88bed44cfce9", size = 476460, upload-time = "2025-03-15T20:15:14.505Z" },
|
|
685
|
-
{ url = "https://files.pythonhosted.org/packages/3e/76/33243e1af9b4ea27d53d0ab5e63b6ea288a88a1b58024927cf3917928bda/interpn-0.2.5-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:aeacfc24db65a20126953a3a0827165ef990f2351b5417c5a61bea96f7421df0", size = 574416, upload-time = "2025-03-15T20:15:34.849Z" },
|
|
686
|
-
{ url = "https://files.pythonhosted.org/packages/99/3d/a0696fa6cb74da44276752d61297ed0dfd87c2e1ea554de057e953cc8c47/interpn-0.2.5-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0a50cea873deb64dbfdb00ea0ceaac3b844aab04c3934d001044ae0fe9d7ade2", size = 509231, upload-time = "2025-03-15T20:15:56.686Z" },
|
|
687
|
-
{ url = "https://files.pythonhosted.org/packages/48/14/0b45ff7262ea09f0f3bb3ad6b51404ab4947b55180f2edc31e8c5ad1e14c/interpn-0.2.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:48d80adee516547dbcb1678174a158ab63276eb678d4d9e166e69ad42849f210", size = 488015, upload-time = "2025-03-15T20:16:16.643Z" },
|
|
688
|
-
{ url = "https://files.pythonhosted.org/packages/38/4f/210be6a14f9002ac6ebea5f7b0f022b93a0b8d5df8b83036093c4181e3a6/interpn-0.2.5-cp39-cp39-win32.whl", hash = "sha256:cc062d6c0d946294aed2778cf3c4742c6f6d926b70e1fc1b3fae41c7a8eb34df", size = 219807, upload-time = "2025-03-15T20:16:46.079Z" },
|
|
689
|
-
{ url = "https://files.pythonhosted.org/packages/f2/dd/056e4c39ebf43ac01527c2a4d2251d6cf8051c17cde0c47e6318716e1f52/interpn-0.2.5-cp39-cp39-win_amd64.whl", hash = "sha256:1357f5d9f8c4e31832d5254375631870fe9b4441af55281212e15bc37106dd81", size = 227458, upload-time = "2025-03-15T20:16:35.662Z" },
|
|
690
|
-
{ url = "https://files.pythonhosted.org/packages/bc/4e/e113d0403e35cd380c78f9b3680011f594d860da61c91516d5729e817696/interpn-0.2.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f366c9cd7cd353eaf6c633f6edb37842743121a6d162c72c888138b8f5bb6e54", size = 298793, upload-time = "2025-03-15T20:15:01.438Z" },
|
|
691
|
-
{ url = "https://files.pythonhosted.org/packages/23/da/4179ab27d62a7e3b79b4cfe6c97b8f9554a65bf06ce3895f803b5e89de17/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efa80c0a8b4f9f9d42ca58d2c09ee77d07a425a8a80169c08d78dd1c26c77395", size = 297204, upload-time = "2025-03-15T20:13:10.306Z" },
|
|
692
|
-
{ url = "https://files.pythonhosted.org/packages/e0/07/f530f545922cdfc98dd3299686062ee6cc1904996b65a48cd847968c5772/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ad9cbb8f89e47edf609342dda40fd8638c75a93709e18f6e0dfe1bb9e93d85a", size = 311973, upload-time = "2025-03-15T20:13:31.903Z" },
|
|
693
|
-
{ url = "https://files.pythonhosted.org/packages/5b/87/d2aec9ad6c402dfc41cdb08d5715c5ad8830dde6d05f4ee809c5ee2ac0dc/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa4acb96a239819eb39818ffe7d82d313306485a75a07e6249752c7e366f87af", size = 331829, upload-time = "2025-03-15T20:13:50.759Z" },
|
|
694
|
-
{ url = "https://files.pythonhosted.org/packages/08/1b/2ddd4f4aa1403b489b2c0b7f92b7ed68aefff3f91248d98de9d46ba1065f/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4074bd754aaf1e7714267ac1fc129daa171ed296554ea4cd7104fdb14f451770", size = 402681, upload-time = "2025-03-15T20:14:08.6Z" },
|
|
695
|
-
{ url = "https://files.pythonhosted.org/packages/48/b5/c4db8a1c2c3be7a052eb732109e964ceb45ed143bc131d07e915a884e79e/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc66f157ecdc778c6a6b7377becbed55f7391da7ca44899c878ec3d1d2c4ccb2", size = 317149, upload-time = "2025-03-15T20:14:42.008Z" },
|
|
696
|
-
{ url = "https://files.pythonhosted.org/packages/71/d9/da5a2bf88225905dfb12757c41d014b54e9fb18d71b4fd3953678750b317/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e6c14c706d6ad2e3ad2ef6cb20f52fab9506a042df9c1b8e2eb7e97a2ab59165", size = 331646, upload-time = "2025-03-15T20:14:26.947Z" },
|
|
697
|
-
{ url = "https://files.pythonhosted.org/packages/93/25/f45e72cae13bfefcf351716bb4f9bbc8af0ec1d541240a25aae5815480ed/interpn-0.2.5-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b19afc8131d0d076a5e61570def4003b1e99d84bfa816c0eeb37a2493f9232da", size = 477238, upload-time = "2025-03-15T20:15:15.875Z" },
|
|
698
|
-
{ url = "https://files.pythonhosted.org/packages/67/5a/11231a1dff52ecc555bcde40b3e0e1b78b2596b126fa04b3737dc26f2efb/interpn-0.2.5-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:00661beee381f518b3f6ff53a5dbf33317c5a4da73bbc85a05fca02a3580021a", size = 575445, upload-time = "2025-03-15T20:15:35.976Z" },
|
|
699
|
-
{ url = "https://files.pythonhosted.org/packages/a4/f2/316dfb94e7f411b5745add23d1cf2240bcf2cd91bedb14a6983f8a853dd7/interpn-0.2.5-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:868b6259b737cf0ccfb2d4e5ebc4b1f06fd15731586450359ea693ce830bf99b", size = 510046, upload-time = "2025-03-15T20:15:57.836Z" },
|
|
700
|
-
{ url = "https://files.pythonhosted.org/packages/ef/1e/7689759ad6f870d993c7c0154a0fbbd7a401ad96fc4a9538bc9d21fc226e/interpn-0.2.5-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:21bf77a6ba27313ca436b15b3f420901fa85a22c105c58b6bad6b219ab235a26", size = 488971, upload-time = "2025-03-15T20:16:17.847Z" },
|
|
701
|
-
{ url = "https://files.pythonhosted.org/packages/14/5e/8e2e50e8662af4ce24cf5b651f65d348ce47d1ab4bb2fbaf758da4865224/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80c15b4d79b9f5f789355d10656b88aaa93659269385e92c481bb95a15294ad5", size = 297019, upload-time = "2025-03-15T20:13:11.909Z" },
|
|
702
|
-
{ url = "https://files.pythonhosted.org/packages/61/04/cdfd7fdb865fd17f88e766cb19bd989fe866923ddc36bad2c883ce337834/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b61915f7dd5350e6d6bb6d875519753acd3bca9c4df50ea93c2d7912f58227", size = 311997, upload-time = "2025-03-15T20:13:32.889Z" },
|
|
703
|
-
{ url = "https://files.pythonhosted.org/packages/3c/c0/0b023f22a773794e574e1fce45d34476ed61a01d6c4b713784e91ba7d5ed/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6072633c19580d206966cdfc864ad7f915bd14b10861f98bdc2cef211f0772a", size = 331792, upload-time = "2025-03-15T20:13:51.793Z" },
|
|
704
|
-
{ url = "https://files.pythonhosted.org/packages/c9/b1/60ccae13ef89e30fd82eb4c0be3429e2697c78d7e31c7477d4ae157bee5d/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8cd3e2ad62dda365f1e9a9f9427f611a9f8cc47ce94adba57260e38db7269823", size = 402369, upload-time = "2025-03-15T20:14:09.814Z" },
|
|
705
|
-
{ url = "https://files.pythonhosted.org/packages/d0/29/59d2f2682d1cf7a4158de9018427e27b03569527709504e9aedc7b450231/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac56d3d7d6bbf64103a446e617c172df57a8ee818c919711a00af77a64ae4194", size = 316947, upload-time = "2025-03-15T20:14:43.051Z" },
|
|
706
|
-
{ url = "https://files.pythonhosted.org/packages/0f/cf/3a050d8bd0b98e1463709a42c8f53451a30d489e4ff6db8aed3d12206a8a/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6dc8a4fc4bf7fce2718f093745821e81c983d1596bd051d80479fdaf60b00026", size = 331731, upload-time = "2025-03-15T20:14:28.001Z" },
|
|
707
|
-
{ url = "https://files.pythonhosted.org/packages/79/d7/bbf08dcce8c46c33dfb7ad0664304b9f8a072e36928a66710924a579f3e0/interpn-0.2.5-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1c8b226405d129daf9c69c2476cc8c3baedcccb1e045b15f28e298ca5267a9d3", size = 477113, upload-time = "2025-03-15T20:15:16.939Z" },
|
|
708
|
-
{ url = "https://files.pythonhosted.org/packages/22/ff/9700d72748ab0d8216b695fe312d9d7843cc517e9cd25a3137e0df19fb8e/interpn-0.2.5-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:2acd17ea0a2b2761ba79d0519a9bc43b241259a338bebfc9ae267232e1c691d6", size = 575417, upload-time = "2025-03-15T20:15:37.107Z" },
|
|
709
|
-
{ url = "https://files.pythonhosted.org/packages/cb/f7/05d8ff645041d8b1e255cec937e0492046ecae097bfa8c353d68e5389c5b/interpn-0.2.5-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:dbefb8d4c20e2821b89b987ed98ee29b536f2c467cb8347e1a0cf0a7d6d807c2", size = 509959, upload-time = "2025-03-15T20:15:58.958Z" },
|
|
710
|
-
{ url = "https://files.pythonhosted.org/packages/92/80/ae23ab2f09b8af4afef3542c85f2284114a6f2dde6b0aff44716d4c601aa/interpn-0.2.5-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:44153189517d3d9d8d9dfc76c5e413350157b5bf54d5c4bdfd3c4bb4d1593cb7", size = 488692, upload-time = "2025-03-15T20:16:18.97Z" },
|
|
711
|
-
{ url = "https://files.pythonhosted.org/packages/8c/89/6c03eb2edc99078bbcdb70674786672b9ea37a2ddda86ea9df0f66db3fe1/interpn-0.2.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b4551ae49394d8e0f64e352389ef5fa4a8e131e8c87c9d92c4280f9374ffa489", size = 299007, upload-time = "2025-03-15T20:15:02.719Z" },
|
|
712
|
-
{ url = "https://files.pythonhosted.org/packages/41/b3/25f2f30ddadf3bb3cf261ed4bc17e563b4b08d38400296bf8859799d9e5a/interpn-0.2.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:927c9017871e68f548206c3408db3bbb49ed9227fadc7893382a715e9163d4ae", size = 297265, upload-time = "2025-03-15T20:13:12.949Z" },
|
|
713
|
-
{ url = "https://files.pythonhosted.org/packages/0a/b5/f6c78fdb90314849d1054f8165a12fb5795da119007a5ca424e51292349a/interpn-0.2.5-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e9f2d73ad48d282a918ee012d1706e30117011315a56f45e09487fa09f8a3baa", size = 312240, upload-time = "2025-03-15T20:13:34.12Z" },
|
|
714
|
-
{ url = "https://files.pythonhosted.org/packages/f2/d5/7990c58b9e2e616f998c2f125fa43fd401bedf8819ef37edd1c75b6a95be/interpn-0.2.5-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1fb4acbfd75c811639da792437630d6b2bc0e52c1fc61bf1ceff7782dbc1af59", size = 331858, upload-time = "2025-03-15T20:13:52.796Z" },
|
|
715
|
-
{ url = "https://files.pythonhosted.org/packages/06/90/8dc7dfc82ba55505566ae86ce15f9926de104b8cc443da855f86e18aeec7/interpn-0.2.5-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:66940619faeebfe2bc797e94733ce657db171d3d3688f8343faca12ee36e4d52", size = 403018, upload-time = "2025-03-15T20:14:10.94Z" },
|
|
716
|
-
{ url = "https://files.pythonhosted.org/packages/09/51/4badf7f6ef14c0440e1291693b7e8158128b37a30ec9cf454e0a592d49d7/interpn-0.2.5-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:c469ef6b62da860dd52b3906fff2540bc8a7607d95f74bfda811d56ba5ef1a60", size = 477319, upload-time = "2025-03-15T20:15:18.05Z" },
|
|
717
|
-
{ url = "https://files.pythonhosted.org/packages/cd/d2/a6e87a64d7f0cea3eebd972bd118d03633d3dd85b45ab062e485196e8187/interpn-0.2.5-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:1195aa4a7f7e46ef998f55755a4a002a7cc515a3648e4ad4ba0240c3f9f7fc3c", size = 575699, upload-time = "2025-03-15T20:15:38.676Z" },
|
|
718
|
-
{ url = "https://files.pythonhosted.org/packages/9f/ba/e8e0d454898a1110cb9702d9efb6854d72511e8f06af0b1c612517cebfa6/interpn-0.2.5-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:83b846b635113822adda5ea62edc0e7f08167e05d5857cc1a4d913cbb4c8a957", size = 510217, upload-time = "2025-03-15T20:16:00.493Z" },
|
|
719
|
-
{ url = "https://files.pythonhosted.org/packages/a2/59/fd7fe1e0cba677d3312813c564c62df54785a94a4131e71b8c09b8b620f8/interpn-0.2.5-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:bbe0d1fd5037ac678dc5acd1fa3311f3a64663ad1fdaf161275c24e68079e6e4", size = 488993, upload-time = "2025-03-15T20:16:20.077Z" },
|
|
614
|
+
sdist = { url = "https://files.pythonhosted.org/packages/13/1a/bd5359bef76e20b5157d8b5292606513f7237451ffb91b9d1cdf6bd06804/interpn-0.6.1.tar.gz", hash = "sha256:747ce648e8bb158ea14771c5e8499944e98a29f2c3d5c45385c9a03747f28cfe", size = 428165, upload-time = "2025-10-11T15:51:04.669Z" }
|
|
615
|
+
wheels = [
|
|
616
|
+
{ url = "https://files.pythonhosted.org/packages/7e/d5/cec7f100e900309550427889720e40a2119c58f18c26fb0afd427376a0c9/interpn-0.6.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7953b51307c9fdf32f9adaf2ae34a1e9b6ef2c22b64dccf2cecefcd8a8c6bf3", size = 374273, upload-time = "2025-10-11T15:50:57.696Z" },
|
|
617
|
+
{ url = "https://files.pythonhosted.org/packages/1e/bd/43714c3fc939ab74e9e745a1a49114f33c77e32c52b665b23b17e77334ab/interpn-0.6.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:8d6054ca2c01922af06b49c9e0a670aa0bffcc49ddc956dc4b18aa932c29af8a", size = 346901, upload-time = "2025-10-11T15:50:56.387Z" },
|
|
618
|
+
{ url = "https://files.pythonhosted.org/packages/c5/a0/918666bc675ab3333a46fcf116933c906f211384e2509364c88ec13c1346/interpn-0.6.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d4208297ee027b152f11d86f8ea70d07772df04ac9dcbaf986f513775d66d0", size = 378879, upload-time = "2025-10-11T15:50:49.189Z" },
|
|
619
|
+
{ url = "https://files.pythonhosted.org/packages/93/e7/e79f9ab9928f6fe5071d50aa58b8906d29c8227c62878d62535dd3315f49/interpn-0.6.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32bd689fb850fa0af2539010158dc4af87b96fe8d1a70cfdec1eb853d6b0f553", size = 407780, upload-time = "2025-10-11T15:50:50.779Z" },
|
|
620
|
+
{ url = "https://files.pythonhosted.org/packages/8c/d4/e02454020b92b0858327e1f1d96c35b44a84722d310f6e5805c53e68288a/interpn-0.6.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cccebb5bf66da1e02b2aaf931326d0fb1844aabf78306934ba42a36eb1db271", size = 411581, upload-time = "2025-10-11T15:50:52.055Z" },
|
|
621
|
+
{ url = "https://files.pythonhosted.org/packages/b3/8d/a4ab406aec6e9011acf4c6f8cfbef54f92fc1da6ba9b6b19df8ffa50f377/interpn-0.6.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2478be0a66f2b4dcb385dec2b047d6755cc066e8a4ec229f02f4e47bd1e9efe2", size = 483271, upload-time = "2025-10-11T15:50:53.832Z" },
|
|
622
|
+
{ url = "https://files.pythonhosted.org/packages/4d/a4/55dd625ed7ae7c6d18290489a29288b137e6a3f4be6225e26b5582fac501/interpn-0.6.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7e115473971ed4a4134ebafd5d4604954ebbb5b9b545bc6e8ff9b0830ea1b79", size = 402498, upload-time = "2025-10-11T15:50:55.111Z" },
|
|
623
|
+
{ url = "https://files.pythonhosted.org/packages/10/e2/77df3764b0eaa11bee2a50c3fce14311bff490d29fa3200cc0bd2913dc95/interpn-0.6.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5cf134d2ccce701c31be8e0fd4df4ddf53bfb41878fcd7c8414c61a1381a81ac", size = 560577, upload-time = "2025-10-11T15:50:59.152Z" },
|
|
624
|
+
{ url = "https://files.pythonhosted.org/packages/63/c0/d1e45a06838cc3c92871536e5dcd6eedcd0050270c5234356d0837735e3e/interpn-0.6.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:75d8a8e9c741753523459f045d39fcc723c6dce61d69d5cc74eedaac49b852f1", size = 671732, upload-time = "2025-10-11T15:51:00.507Z" },
|
|
625
|
+
{ url = "https://files.pythonhosted.org/packages/fa/14/4e4d799b244c5a146d69fb743d3d9a5066fbea7dea58ab282212b574065e/interpn-0.6.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:196b48d9b6e91d82e247c065767b1566435ca319b58e6a0116516f93ea8e77bd", size = 628905, upload-time = "2025-10-11T15:51:01.912Z" },
|
|
626
|
+
{ url = "https://files.pythonhosted.org/packages/ca/f9/d51be2d4bc071566fa8e855077dac4ead8026fcc9df5ce3df276d6708089/interpn-0.6.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:768b0a70d09b41a65f9b358760fca88e44b082b2366774b032fc0347147e6334", size = 574557, upload-time = "2025-10-11T15:51:03.365Z" },
|
|
627
|
+
{ url = "https://files.pythonhosted.org/packages/9a/ae/bf2b6aaff08fd8a60bd2e74d8b2fffc05542c71faf9a69ac582744e24cd5/interpn-0.6.1-cp39-abi3-win32.whl", hash = "sha256:a47d34e115bfb0a2061e2bd381036e887129900739b9bddfb8156d584bcfb165", size = 322824, upload-time = "2025-10-11T15:51:07.679Z" },
|
|
628
|
+
{ url = "https://files.pythonhosted.org/packages/eb/54/c9e66b17638fa6999df1833371586903b7cf26c656d25b19b41f75d9cd44/interpn-0.6.1-cp39-abi3-win_amd64.whl", hash = "sha256:f607e19094a15676f1687bb8aef5d7761e6323e243099c6245634bf04a9dc27b", size = 287256, upload-time = "2025-10-11T15:51:05.965Z" },
|
|
720
629
|
]
|
|
721
630
|
|
|
722
631
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|