pynerve 1.0.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.
Files changed (1290) hide show
  1. pynerve-1.0.0/CMakeLists.txt +309 -0
  2. pynerve-1.0.0/LICENSE +21 -0
  3. pynerve-1.0.0/PKG-INFO +399 -0
  4. pynerve-1.0.0/README.md +352 -0
  5. pynerve-1.0.0/bindings/detail/nerve_torch_bindings_classes.inl +230 -0
  6. pynerve-1.0.0/bindings/detail/nerve_torch_bindings_exceptions.inl +90 -0
  7. pynerve-1.0.0/bindings/detail/nerve_torch_bindings_functional_api.inl +272 -0
  8. pynerve-1.0.0/bindings/detail/nerve_torch_bindings_persistence_core.inl +302 -0
  9. pynerve-1.0.0/bindings/detail/nerve_torch_bindings_persistence_runtime.inl +221 -0
  10. pynerve-1.0.0/bindings/detail/numpy_arrays.hpp +52 -0
  11. pynerve-1.0.0/bindings/nerve_algorithms_bindings.cpp +366 -0
  12. pynerve-1.0.0/bindings/nerve_api_bindings.cpp +433 -0
  13. pynerve-1.0.0/bindings/nerve_extras_bindings.cpp +2153 -0
  14. pynerve-1.0.0/bindings/nerve_torch_bindings.cpp +67 -0
  15. pynerve-1.0.0/dist/pynerve-1.0.0-cp311-cp311-linux_x86_64.whl +0 -0
  16. pynerve-1.0.0/pynerve/__init__.py +292 -0
  17. pynerve-1.0.0/pynerve/__main__.py +145 -0
  18. pynerve-1.0.0/pynerve/_async_compute.py +93 -0
  19. pynerve-1.0.0/pynerve/_async_facade.py +160 -0
  20. pynerve-1.0.0/pynerve/_async_gpu.py +73 -0
  21. pynerve-1.0.0/pynerve/_async_loader.py +151 -0
  22. pynerve-1.0.0/pynerve/_compute_api.py +406 -0
  23. pynerve-1.0.0/pynerve/_compute_backend.py +213 -0
  24. pynerve-1.0.0/pynerve/_compute_core.py +49 -0
  25. pynerve-1.0.0/pynerve/_compute_engine.py +89 -0
  26. pynerve-1.0.0/pynerve/_compute_pipeline.py +198 -0
  27. pynerve-1.0.0/pynerve/_constants.py +15 -0
  28. pynerve-1.0.0/pynerve/_cupy_api.py +131 -0
  29. pynerve-1.0.0/pynerve/_cupy_compat.py +36 -0
  30. pynerve-1.0.0/pynerve/_cupy_convert.py +173 -0
  31. pynerve-1.0.0/pynerve/_cupy_memory.py +185 -0
  32. pynerve-1.0.0/pynerve/_cupy_persistence.py +242 -0
  33. pynerve-1.0.0/pynerve/_diagnostics_data.py +122 -0
  34. pynerve-1.0.0/pynerve/_diagnostics_failure.py +238 -0
  35. pynerve-1.0.0/pynerve/_diagnostics_system.py +179 -0
  36. pynerve-1.0.0/pynerve/_error_codes.py +129 -0
  37. pynerve-1.0.0/pynerve/_error_translation.py +119 -0
  38. pynerve-1.0.0/pynerve/_fallback_classes.py +165 -0
  39. pynerve-1.0.0/pynerve/_fast_boundary.py +76 -0
  40. pynerve-1.0.0/pynerve/_fast_distance.py +85 -0
  41. pynerve-1.0.0/pynerve/_fast_filtration.py +58 -0
  42. pynerve-1.0.0/pynerve/_fast_graph.py +99 -0
  43. pynerve-1.0.0/pynerve/_fast_representations.py +154 -0
  44. pynerve-1.0.0/pynerve/_fast_simplices.py +105 -0
  45. pynerve-1.0.0/pynerve/_formats_auto.py +93 -0
  46. pynerve-1.0.0/pynerve/_formats_files.py +392 -0
  47. pynerve-1.0.0/pynerve/_formats_interop.py +243 -0
  48. pynerve-1.0.0/pynerve/_image_utils.py +118 -0
  49. pynerve-1.0.0/pynerve/_numba_compat.py +36 -0
  50. pynerve-1.0.0/pynerve/_numba_dispatch.py +92 -0
  51. pynerve-1.0.0/pynerve/_numba_distance.py +58 -0
  52. pynerve-1.0.0/pynerve/_numba_graph.py +82 -0
  53. pynerve-1.0.0/pynerve/_numba_reduction.py +79 -0
  54. pynerve-1.0.0/pynerve/_numba_representations.py +77 -0
  55. pynerve-1.0.0/pynerve/_numba_simplices.py +79 -0
  56. pynerve-1.0.0/pynerve/_parallel_api.py +94 -0
  57. pynerve-1.0.0/pynerve/_parallel_patterns.py +137 -0
  58. pynerve-1.0.0/pynerve/_parallel_pool.py +218 -0
  59. pynerve-1.0.0/pynerve/_persistence_result.py +183 -0
  60. pynerve-1.0.0/pynerve/_pipeline_advanced.py +200 -0
  61. pynerve-1.0.0/pynerve/_pipeline_core.py +222 -0
  62. pynerve-1.0.0/pynerve/_pipeline_topology.py +157 -0
  63. pynerve-1.0.0/pynerve/_shared_memory.py +172 -0
  64. pynerve-1.0.0/pynerve/_streaming_persistence.py +201 -0
  65. pynerve-1.0.0/pynerve/_torch_diagrams.py +64 -0
  66. pynerve-1.0.0/pynerve/_types.py +176 -0
  67. pynerve-1.0.0/pynerve/_utils.py +258 -0
  68. pynerve-1.0.0/pynerve/_validation/__init__.py +63 -0
  69. pynerve-1.0.0/pynerve/_validation/_geometric.py +307 -0
  70. pynerve-1.0.0/pynerve/_validation/_helpers.py +23 -0
  71. pynerve-1.0.0/pynerve/_validation/_scalars.py +281 -0
  72. pynerve-1.0.0/pynerve/_validation.py +70 -0
  73. pynerve-1.0.0/pynerve/_version.py +6 -0
  74. pynerve-1.0.0/pynerve/algorithms/__init__.py +271 -0
  75. pynerve-1.0.0/pynerve/async_api.py +38 -0
  76. pynerve-1.0.0/pynerve/benchmark/__init__.py +37 -0
  77. pynerve-1.0.0/pynerve/benchmark/_common.py +41 -0
  78. pynerve-1.0.0/pynerve/benchmark/_compare_external.py +317 -0
  79. pynerve-1.0.0/pynerve/benchmark/_compare_internal.py +203 -0
  80. pynerve-1.0.0/pynerve/benchmark/_comparison_types.py +79 -0
  81. pynerve-1.0.0/pynerve/benchmark/_comparisons.py +30 -0
  82. pynerve-1.0.0/pynerve/benchmark/_scalability.py +125 -0
  83. pynerve-1.0.0/pynerve/benchmark/_suite.py +182 -0
  84. pynerve-1.0.0/pynerve/benchmark/_timer.py +124 -0
  85. pynerve-1.0.0/pynerve/cache/__init__.py +22 -0
  86. pynerve-1.0.0/pynerve/cache/_engine.py +338 -0
  87. pynerve-1.0.0/pynerve/cache/_memoize.py +137 -0
  88. pynerve-1.0.0/pynerve/cache/_smart.py +171 -0
  89. pynerve-1.0.0/pynerve/cupy_ops.py +62 -0
  90. pynerve-1.0.0/pynerve/datasets.py +191 -0
  91. pynerve-1.0.0/pynerve/diagnostics.py +263 -0
  92. pynerve-1.0.0/pynerve/diff/__init__.py +68 -0
  93. pynerve-1.0.0/pynerve/diff/_composite_loss.py +99 -0
  94. pynerve-1.0.0/pynerve/diff/_diagram_distances.py +155 -0
  95. pynerve-1.0.0/pynerve/diff/_loss_helpers.py +62 -0
  96. pynerve-1.0.0/pynerve/diff/_loss_modules.py +260 -0
  97. pynerve-1.0.0/pynerve/diff/_ph_representations.py +94 -0
  98. pynerve-1.0.0/pynerve/diff/ph_layer.py +452 -0
  99. pynerve-1.0.0/pynerve/diff/ph_layer_module.py +265 -0
  100. pynerve-1.0.0/pynerve/diff/topology_loss.py +31 -0
  101. pynerve-1.0.0/pynerve/exceptions/__init__.py +77 -0
  102. pynerve-1.0.0/pynerve/exceptions/_base.py +77 -0
  103. pynerve-1.0.0/pynerve/exceptions/_cpp.py +151 -0
  104. pynerve-1.0.0/pynerve/exceptions/_gpu.py +29 -0
  105. pynerve-1.0.0/pynerve/exceptions/_memory.py +28 -0
  106. pynerve-1.0.0/pynerve/exceptions/_numerical.py +39 -0
  107. pynerve-1.0.0/pynerve/exceptions/_validation.py +195 -0
  108. pynerve-1.0.0/pynerve/fast_ops.py +337 -0
  109. pynerve-1.0.0/pynerve/formats.py +135 -0
  110. pynerve-1.0.0/pynerve/jit/__init__.py +175 -0
  111. pynerve-1.0.0/pynerve/jit/_cache.py +70 -0
  112. pynerve-1.0.0/pynerve/jit/_cpu_kernels.py +145 -0
  113. pynerve-1.0.0/pynerve/jit/_device.py +18 -0
  114. pynerve-1.0.0/pynerve/jit/_gpu_kernels.py +107 -0
  115. pynerve-1.0.0/pynerve/jit/_setup.py +47 -0
  116. pynerve-1.0.0/pynerve/jit/_validate.py +53 -0
  117. pynerve-1.0.0/pynerve/mapper/__init__.py +46 -0
  118. pynerve-1.0.0/pynerve/mapper/_gnn_classifier.py +148 -0
  119. pynerve-1.0.0/pynerve/mapper/_gnn_conv.py +208 -0
  120. pynerve-1.0.0/pynerve/mapper/_gnn_pooling.py +170 -0
  121. pynerve-1.0.0/pynerve/mapper/_gnn_readout.py +87 -0
  122. pynerve-1.0.0/pynerve/mapper/_gnn_validation.py +37 -0
  123. pynerve-1.0.0/pynerve/mapper/_learnable_mapper_components.py +267 -0
  124. pynerve-1.0.0/pynerve/mapper/_learnable_mapper_graph.py +95 -0
  125. pynerve-1.0.0/pynerve/mapper/_learnable_mapper_models.py +319 -0
  126. pynerve-1.0.0/pynerve/mapper/learnable_mapper.py +20 -0
  127. pynerve-1.0.0/pynerve/mapper/mapper_gnn.py +15 -0
  128. pynerve-1.0.0/pynerve/merge.py +90 -0
  129. pynerve-1.0.0/pynerve/mp_shared.py +15 -0
  130. pynerve-1.0.0/pynerve/nn/__init__.py +71 -0
  131. pynerve-1.0.0/pynerve/nn/_building_blocks_diagram.py +40 -0
  132. pynerve-1.0.0/pynerve/nn/_building_blocks_distance.py +102 -0
  133. pynerve-1.0.0/pynerve/nn/_building_blocks_persistence.py +380 -0
  134. pynerve-1.0.0/pynerve/nn/_diagram_attention.py +189 -0
  135. pynerve-1.0.0/pynerve/nn/_diagram_conv_layers.py +197 -0
  136. pynerve-1.0.0/pynerve/nn/_diagram_conv_net.py +83 -0
  137. pynerve-1.0.0/pynerve/nn/_diagram_pooling.py +110 -0
  138. pynerve-1.0.0/pynerve/nn/_ph_autograd.py +148 -0
  139. pynerve-1.0.0/pynerve/nn/_ph_module.py +378 -0
  140. pynerve-1.0.0/pynerve/nn/building_blocks.py +19 -0
  141. pynerve-1.0.0/pynerve/nn/diagram_conv.py +17 -0
  142. pynerve-1.0.0/pynerve/nn/persistent_homology.py +41 -0
  143. pynerve-1.0.0/pynerve/nn/sparse_ph.py +468 -0
  144. pynerve-1.0.0/pynerve/nn/topo_regularization.py +447 -0
  145. pynerve-1.0.0/pynerve/numba_kernels.py +68 -0
  146. pynerve-1.0.0/pynerve/pipeline.py +13 -0
  147. pynerve-1.0.0/pynerve/py.typed +1 -0
  148. pynerve-1.0.0/pynerve/random.py +403 -0
  149. pynerve-1.0.0/pynerve/regularization/__init__.py +48 -0
  150. pynerve-1.0.0/pynerve/regularization/_persistent_batch_norm.py +83 -0
  151. pynerve-1.0.0/pynerve/regularization/_topology_dropout.py +130 -0
  152. pynerve-1.0.0/pynerve/regularization/_topology_regularizers.py +255 -0
  153. pynerve-1.0.0/pynerve/regularization/persistent_dropout.py +483 -0
  154. pynerve-1.0.0/pynerve/regularization/topology_constraints.py +22 -0
  155. pynerve-1.0.0/pynerve/ssl/__init__.py +37 -0
  156. pynerve-1.0.0/pynerve/ssl/_augmentation.py +196 -0
  157. pynerve-1.0.0/pynerve/ssl/_betti.py +75 -0
  158. pynerve-1.0.0/pynerve/ssl/_byol.py +145 -0
  159. pynerve-1.0.0/pynerve/ssl/_completion.py +108 -0
  160. pynerve-1.0.0/pynerve/ssl/_denoising.py +107 -0
  161. pynerve-1.0.0/pynerve/ssl/_filtration.py +114 -0
  162. pynerve-1.0.0/pynerve/ssl/_multitask.py +173 -0
  163. pynerve-1.0.0/pynerve/ssl/_persistence_prediction.py +82 -0
  164. pynerve-1.0.0/pynerve/ssl/_simclr.py +101 -0
  165. pynerve-1.0.0/pynerve/ssl/_validation.py +17 -0
  166. pynerve-1.0.0/pynerve/ssl/contrastive_learning.py +15 -0
  167. pynerve-1.0.0/pynerve/ssl/topology_completion.py +17 -0
  168. pynerve-1.0.0/pynerve/torch/__init__.py +168 -0
  169. pynerve-1.0.0/pynerve/torch/_backend.py +279 -0
  170. pynerve-1.0.0/pynerve/torch/_diagram.py +271 -0
  171. pynerve-1.0.0/pynerve/torch/_distance_core.py +17 -0
  172. pynerve-1.0.0/pynerve/torch/_distance_core_impl.py +395 -0
  173. pynerve-1.0.0/pynerve/torch/_kernels_pairwise.py +213 -0
  174. pynerve-1.0.0/pynerve/torch/_mapper_impl.py +472 -0
  175. pynerve-1.0.0/pynerve/torch/_persistence_api.py +184 -0
  176. pynerve-1.0.0/pynerve/torch/_persistence_core.py +23 -0
  177. pynerve-1.0.0/pynerve/torch/_persistence_core_impl.py +373 -0
  178. pynerve-1.0.0/pynerve/torch/_persistence_helpers.py +137 -0
  179. pynerve-1.0.0/pynerve/torch/_persistence_image.py +129 -0
  180. pynerve-1.0.0/pynerve/torch/_persistence_python.py +124 -0
  181. pynerve-1.0.0/pynerve/torch/_persistence_validators.py +105 -0
  182. pynerve-1.0.0/pynerve/torch/_persistence_vr.py +182 -0
  183. pynerve-1.0.0/pynerve/torch/_sklearn_batched.py +104 -0
  184. pynerve-1.0.0/pynerve/torch/_sklearn_compat.py +51 -0
  185. pynerve-1.0.0/pynerve/torch/_sklearn_pipeline.py +196 -0
  186. pynerve-1.0.0/pynerve/torch/_statistics_core.py +293 -0
  187. pynerve-1.0.0/pynerve/torch/_training_callbacks.py +168 -0
  188. pynerve-1.0.0/pynerve/torch/_training_helpers.py +83 -0
  189. pynerve-1.0.0/pynerve/torch/_training_metrics.py +150 -0
  190. pynerve-1.0.0/pynerve/torch/_vectorization_basis.py +326 -0
  191. pynerve-1.0.0/pynerve/torch/_vectorization_spectral.py +126 -0
  192. pynerve-1.0.0/pynerve/torch/_viz_data.py +317 -0
  193. pynerve-1.0.0/pynerve/torch/data.py +313 -0
  194. pynerve-1.0.0/pynerve/torch/kernels.py +25 -0
  195. pynerve-1.0.0/pynerve/torch/kernels_impl.py +100 -0
  196. pynerve-1.0.0/pynerve/torch/mapper.py +435 -0
  197. pynerve-1.0.0/pynerve/torch/nn_layers.py +21 -0
  198. pynerve-1.0.0/pynerve/torch/nn_layers_impl.py +385 -0
  199. pynerve-1.0.0/pynerve/torch/preprocessing.py +471 -0
  200. pynerve-1.0.0/pynerve/torch/sklearn_transformers.py +428 -0
  201. pynerve-1.0.0/pynerve/torch/statistics.py +28 -0
  202. pynerve-1.0.0/pynerve/torch/statistics_impl.py +67 -0
  203. pynerve-1.0.0/pynerve/torch/tensorboard.py +202 -0
  204. pynerve-1.0.0/pynerve/torch/training_utils.py +22 -0
  205. pynerve-1.0.0/pynerve/torch/training_utils_impl.py +198 -0
  206. pynerve-1.0.0/pynerve/torch/vectorization.py +20 -0
  207. pynerve-1.0.0/pynerve/torch/vectorization_impl.py +48 -0
  208. pynerve-1.0.0/pynerve/torch/viz.py +21 -0
  209. pynerve-1.0.0/pynerve/torch/viz_impl.py +63 -0
  210. pynerve-1.0.0/pynerve/training/__init__.py +55 -0
  211. pynerve-1.0.0/pynerve/training/_adaptive.py +79 -0
  212. pynerve-1.0.0/pynerve/training/_betti.py +114 -0
  213. pynerve-1.0.0/pynerve/training/_curriculum_specialized.py +125 -0
  214. pynerve-1.0.0/pynerve/training/_curriculum_trainer.py +212 -0
  215. pynerve-1.0.0/pynerve/training/_importance.py +130 -0
  216. pynerve-1.0.0/pynerve/training/_multiscale.py +103 -0
  217. pynerve-1.0.0/pynerve/training/_sampler_utils.py +29 -0
  218. pynerve-1.0.0/pynerve/training/_stability_regularizer.py +274 -0
  219. pynerve-1.0.0/pynerve/training/_stability_training.py +387 -0
  220. pynerve-1.0.0/pynerve/training/_stratified.py +122 -0
  221. pynerve-1.0.0/pynerve/training/curriculum.py +326 -0
  222. pynerve-1.0.0/pynerve/training/stability_reg.py +19 -0
  223. pynerve-1.0.0/pynerve/training/topology_sampler.py +17 -0
  224. pynerve-1.0.0/pynerve/triton/__init__.py +49 -0
  225. pynerve-1.0.0/pynerve/triton/_distance.py +163 -0
  226. pynerve-1.0.0/pynerve/triton/_laplacian.py +101 -0
  227. pynerve-1.0.0/pynerve/triton/_mapper.py +420 -0
  228. pynerve-1.0.0/pynerve/triton/_nn_ops.py +256 -0
  229. pynerve-1.0.0/pynerve/triton/_persistence.py +260 -0
  230. pynerve-1.0.0/pynerve/triton/_wasserstein.py +177 -0
  231. pynerve-1.0.0/pyproject.toml +93 -0
  232. pynerve-1.0.0/src/CMakeLists.txt +389 -0
  233. pynerve-1.0.0/src/acceleration/algebra_acceleration.cpp +69 -0
  234. pynerve-1.0.0/src/acceleration/algorithms_acceleration.cpp +154 -0
  235. pynerve-1.0.0/src/acceleration/autodiff_acceleration.cpp +90 -0
  236. pynerve-1.0.0/src/acceleration/compression_acceleration.cpp +46 -0
  237. pynerve-1.0.0/src/acceleration/core_acceleration.cpp +91 -0
  238. pynerve-1.0.0/src/acceleration/dmt_acceleration.cpp +82 -0
  239. pynerve-1.0.0/src/acceleration/encoders_acceleration.cpp +84 -0
  240. pynerve-1.0.0/src/acceleration/filtration_acceleration.cpp +104 -0
  241. pynerve-1.0.0/src/acceleration/graphs_acceleration.cpp +63 -0
  242. pynerve-1.0.0/src/acceleration/metrics_acceleration.cpp +114 -0
  243. pynerve-1.0.0/src/acceleration/ml_acceleration.cpp +82 -0
  244. pynerve-1.0.0/src/acceleration/nn_acceleration.cpp +93 -0
  245. pynerve-1.0.0/src/acceleration/optimization_acceleration.cpp +92 -0
  246. pynerve-1.0.0/src/acceleration/persistence_acceleration.cpp +110 -0
  247. pynerve-1.0.0/src/acceleration/probabilistic_acceleration.cpp +91 -0
  248. pynerve-1.0.0/src/acceleration/runtime_acceleration.cpp +26 -0
  249. pynerve-1.0.0/src/acceleration/sheaf_acceleration.cpp +83 -0
  250. pynerve-1.0.0/src/acceleration/spectral_acceleration.cpp +82 -0
  251. pynerve-1.0.0/src/acceleration/streaming_acceleration.cpp +76 -0
  252. pynerve-1.0.0/src/algebra/boundary/boundary_matrix_access_ops.cpp +428 -0
  253. pynerve-1.0.0/src/algebra/boundary/boundary_matrix_build_ops.cpp +303 -0
  254. pynerve-1.0.0/src/algebra/boundary/boundary_matrix_reduction_ops.cpp +337 -0
  255. pynerve-1.0.0/src/algebra/complex/cellular_cw_ops.cpp +172 -0
  256. pynerve-1.0.0/src/algebra/complex/cellular_ops.cpp +486 -0
  257. pynerve-1.0.0/src/algebra/complex/chain_complex_ops.cpp +288 -0
  258. pynerve-1.0.0/src/algebra/complex/complex_ops.cpp +226 -0
  259. pynerve-1.0.0/src/algebra/complex/simplex_set_ops.cpp +150 -0
  260. pynerve-1.0.0/src/algebra/detail/algebra_detail.hpp +176 -0
  261. pynerve-1.0.0/src/algebra/geometry/distance_simd_avx_ops.cpp +210 -0
  262. pynerve-1.0.0/src/algebra/geometry/distance_simd_ops.cpp +169 -0
  263. pynerve-1.0.0/src/algebra/geometry/distance_sse_ops.cpp +101 -0
  264. pynerve-1.0.0/src/algebra/geometry/geometry_analytic_ops.cpp +491 -0
  265. pynerve-1.0.0/src/algebra/geometry/geometry_volume_ops.cpp +244 -0
  266. pynerve-1.0.0/src/algebra/gpu/cech_complex_cuda.cu +519 -0
  267. pynerve-1.0.0/src/algebra/gpu/cech_gpu_impl.cpp +465 -0
  268. pynerve-1.0.0/src/algebra/gpu/detail/vr_gpu_cuda_launchers.inl +62 -0
  269. pynerve-1.0.0/src/algebra/gpu/detail/vr_gpu_helpers.inl +78 -0
  270. pynerve-1.0.0/src/algebra/gpu/vr_complex_cuda.cu +456 -0
  271. pynerve-1.0.0/src/algebra/gpu/vr_gpu_clique_cpu.cpp +88 -0
  272. pynerve-1.0.0/src/algebra/gpu/vr_gpu_clique_expand.cpp +172 -0
  273. pynerve-1.0.0/src/algebra/gpu/vr_gpu_impl.cpp +255 -0
  274. pynerve-1.0.0/src/algebra/mpi/distance_mpi_ops.cpp +97 -0
  275. pynerve-1.0.0/src/algebra/operations/detail/simplex_ops_impl.inl +358 -0
  276. pynerve-1.0.0/src/algebra/operations/simplex_ops.cpp +1 -0
  277. pynerve-1.0.0/src/algorithms/detail/distance_c_api_instantiations.inl +112 -0
  278. pynerve-1.0.0/src/algorithms/detail/distance_matrix_knn_sparse.inl +366 -0
  279. pynerve-1.0.0/src/algorithms/detail/distance_metric_dispatch.inl +166 -0
  280. pynerve-1.0.0/src/algorithms/detail/kernel_methods_impl.inl +510 -0
  281. pynerve-1.0.0/src/algorithms/detail/mapper_safe_arithmetic.hpp +69 -0
  282. pynerve-1.0.0/src/algorithms/distance.cpp +584 -0
  283. pynerve-1.0.0/src/algorithms/distance_ops.cpp +99 -0
  284. pynerve-1.0.0/src/algorithms/gpu/distance_gpu_kernels.cu +54 -0
  285. pynerve-1.0.0/src/algorithms/kernel_methods.cpp +1 -0
  286. pynerve-1.0.0/src/algorithms/mapper/mapper_statistics_ops.cpp +231 -0
  287. pynerve-1.0.0/src/algorithms/mapper/mapper_visualization_ops.cpp +245 -0
  288. pynerve-1.0.0/src/algorithms/mapper_clustering.cpp +200 -0
  289. pynerve-1.0.0/src/algorithms/mapper_core.cpp +474 -0
  290. pynerve-1.0.0/src/algorithms/mapper_cover.cpp +254 -0
  291. pynerve-1.0.0/src/algorithms/mapper_filters.cpp +255 -0
  292. pynerve-1.0.0/src/algorithms/persistence_vectorization.cpp +301 -0
  293. pynerve-1.0.0/src/anomaly/topology_drift_ops.cpp +595 -0
  294. pynerve-1.0.0/src/approximation/distance_approximation_ops.cpp +586 -0
  295. pynerve-1.0.0/src/autodiff/autodiff_gpu_kernels.cu +475 -0
  296. pynerve-1.0.0/src/autodiff/autodiff_gradients.cpp +331 -0
  297. pynerve-1.0.0/src/autodiff/autodiff_graph.cpp +220 -0
  298. pynerve-1.0.0/src/autodiff/autodiff_graph_optimizer.cpp +476 -0
  299. pynerve-1.0.0/src/autodiff/autodiff_tensor.cpp +503 -0
  300. pynerve-1.0.0/src/autodiff/autodiff_variable.cpp +102 -0
  301. pynerve-1.0.0/src/autodiff/detail/autodiff_detail.hpp +81 -0
  302. pynerve-1.0.0/src/autodiff/simd/autodiff_simd_ops.cpp +29 -0
  303. pynerve-1.0.0/src/batching/micro_batching_ops.cpp +82 -0
  304. pynerve-1.0.0/src/cache/feature_cache_ops.cpp +419 -0
  305. pynerve-1.0.0/src/cmake/simd.cmake +264 -0
  306. pynerve-1.0.0/src/cmake/source_groups.cmake +579 -0
  307. pynerve-1.0.0/src/cmake/targets.cmake +155 -0
  308. pynerve-1.0.0/src/compression/autoencoder_gpu.cu +33 -0
  309. pynerve-1.0.0/src/compression/autoencoder_gpu_api.inl +376 -0
  310. pynerve-1.0.0/src/compression/autoencoder_gpu_benchmark.inl +102 -0
  311. pynerve-1.0.0/src/compression/autoencoder_gpu_kernels.inl +39 -0
  312. pynerve-1.0.0/src/compression/decoder_cudnn.cpp +153 -0
  313. pynerve-1.0.0/src/compression/decoder_cudnn_benchmark.cpp +69 -0
  314. pynerve-1.0.0/src/compression/decoder_cudnn_layer.cpp +363 -0
  315. pynerve-1.0.0/src/compression/decoder_cudnn_model.cpp +165 -0
  316. pynerve-1.0.0/src/compression/encoder_cudnn.cpp +153 -0
  317. pynerve-1.0.0/src/compression/encoder_cudnn_benchmark.cpp +144 -0
  318. pynerve-1.0.0/src/compression/encoder_cudnn_layer.cpp +364 -0
  319. pynerve-1.0.0/src/compression/encoder_cudnn_model.cpp +154 -0
  320. pynerve-1.0.0/src/compression/simd/compression_simd_ops.cpp +20 -0
  321. pynerve-1.0.0/src/core/CMakeLists.txt +78 -0
  322. pynerve-1.0.0/src/core/compact_summary/compact_summary_extensions.cpp +314 -0
  323. pynerve-1.0.0/src/core/core_simd_ops.cpp +42 -0
  324. pynerve-1.0.0/src/core/detail/core_detail.hpp +72 -0
  325. pynerve-1.0.0/src/core/error/error_event_extensions.cpp +375 -0
  326. pynerve-1.0.0/src/core/error/error_highdim_ops.cpp +443 -0
  327. pynerve-1.0.0/src/core/gpu/gpu_kernels.cu +153 -0
  328. pynerve-1.0.0/src/core/gpu/gpu_kernels.cuh +26 -0
  329. pynerve-1.0.0/src/core/memory/detail/numa_aware_pool_impl.inl +484 -0
  330. pynerve-1.0.0/src/core/memory/memory_numa_allocator_ops.cpp +158 -0
  331. pynerve-1.0.0/src/core/memory/memory_pool_deterministic_ops.cpp +199 -0
  332. pynerve-1.0.0/src/core/memory/memory_pool_ops.cpp +441 -0
  333. pynerve-1.0.0/src/core/memory/numa_aware_pool.cpp +1 -0
  334. pynerve-1.0.0/src/core/rng/rng_determinism_metadata_ops.cpp +205 -0
  335. pynerve-1.0.0/src/core/rng/rng_determinism_ops.cpp +449 -0
  336. pynerve-1.0.0/src/core/rng/rng_factory_ops.cpp +72 -0
  337. pynerve-1.0.0/src/core/rng/rng_ops.cpp +487 -0
  338. pynerve-1.0.0/src/core/rng/rng_random_ops.cpp +438 -0
  339. pynerve-1.0.0/src/core/rng/rng_sequence_state_ops.cpp +190 -0
  340. pynerve-1.0.0/src/core/rng/rng_wire_format.hpp +63 -0
  341. pynerve-1.0.0/src/core/thread_affinity_ops.cpp +332 -0
  342. pynerve-1.0.0/src/cpu/avx512_ph_ops.cpp +334 -0
  343. pynerve-1.0.0/src/cuda/kernels/bottleneck_distance.cu +376 -0
  344. pynerve-1.0.0/src/cuda/kernels/distance_fasted.cu +235 -0
  345. pynerve-1.0.0/src/cuda/kernels/distance_kernels.cu +310 -0
  346. pynerve-1.0.0/src/cuda/kernels/distance_kernels_ext.cu +500 -0
  347. pynerve-1.0.0/src/cuda/kernels/distance_kernels_tensorcore.cuh +102 -0
  348. pynerve-1.0.0/src/cuda/kernels/distance_tedjoin.cu +243 -0
  349. pynerve-1.0.0/src/cuda/kernels/gpu_persistence_launcher.cu +771 -0
  350. pynerve-1.0.0/src/cuda/kernels/gpu_persistence_reduction.cu +599 -0
  351. pynerve-1.0.0/src/cuda/kernels/mapper_gpu.cu +708 -0
  352. pynerve-1.0.0/src/cuda/kernels/persistence_image.cu +440 -0
  353. pynerve-1.0.0/src/cuda/kernels/reduction_kernels.cu +227 -0
  354. pynerve-1.0.0/src/cuda/kernels/reduction_kernels_launcher.cpp +141 -0
  355. pynerve-1.0.0/src/cuda/kernels/specseq_reduction.cu +942 -0
  356. pynerve-1.0.0/src/cuda/kernels/wasserstein_distance.cu +563 -0
  357. pynerve-1.0.0/src/determinism/gpu.cu +38 -0
  358. pynerve-1.0.0/src/determinism/mpi_ops.cpp +172 -0
  359. pynerve-1.0.0/src/determinism/ops.cpp +17 -0
  360. pynerve-1.0.0/src/differentiable/autodiff_persistence.cpp +423 -0
  361. pynerve-1.0.0/src/distributed/distributed_persistence.cpp +405 -0
  362. pynerve-1.0.0/src/distributed/distributed_wire_format.hpp +189 -0
  363. pynerve-1.0.0/src/distributed/mpi_communicator.cpp +698 -0
  364. pynerve-1.0.0/src/distributed/mpi_cuda_ops.cpp +227 -0
  365. pynerve-1.0.0/src/distributed/nvshmem_bridge.cpp +72 -0
  366. pynerve-1.0.0/src/distributed/sharded_boundary_matrix.cpp +504 -0
  367. pynerve-1.0.0/src/distributed/work_stealing_scheduler.cpp +95 -0
  368. pynerve-1.0.0/src/dmt/discrete_gradient_parallel.cpp +400 -0
  369. pynerve-1.0.0/src/dmt/gpu/dmt_gpu.cuh +23 -0
  370. pynerve-1.0.0/src/dmt/gpu/dmt_kernels.cu +98 -0
  371. pynerve-1.0.0/src/encoders/cnn_encoder.cpp +496 -0
  372. pynerve-1.0.0/src/encoders/detail/encoders_detail.hpp +63 -0
  373. pynerve-1.0.0/src/encoders/encoder_factory.cpp +384 -0
  374. pynerve-1.0.0/src/encoders/encoder_fusion.cpp +338 -0
  375. pynerve-1.0.0/src/encoders/encoder_fusion_helpers.cpp +289 -0
  376. pynerve-1.0.0/src/encoders/encoder_gpu_kernels.cu +153 -0
  377. pynerve-1.0.0/src/encoders/encoder_gpu_kernels_api.inl +237 -0
  378. pynerve-1.0.0/src/encoders/encoder_gpu_kernels_benchmark.inl +142 -0
  379. pynerve-1.0.0/src/encoders/encoder_gpu_kernels_device.inl +280 -0
  380. pynerve-1.0.0/src/encoders/encoder_tensor_cores.cpp +451 -0
  381. pynerve-1.0.0/src/encoders/encoder_tensor_cores_benchmark.cpp +92 -0
  382. pynerve-1.0.0/src/encoders/encoder_utils.cpp +440 -0
  383. pynerve-1.0.0/src/encoders/encoder_utils_reporting.cpp +153 -0
  384. pynerve-1.0.0/src/encoders/graph_encoder.cpp +436 -0
  385. pynerve-1.0.0/src/encoders/graph_encoder_helpers.cpp +209 -0
  386. pynerve-1.0.0/src/encoders/graph_encoder_layers.cpp +228 -0
  387. pynerve-1.0.0/src/encoders/hybrid_encoder.cpp +322 -0
  388. pynerve-1.0.0/src/encoders/mlp_encoder.cpp +434 -0
  389. pynerve-1.0.0/src/encoders/persistence_encoder.cpp +478 -0
  390. pynerve-1.0.0/src/encoders/simd_encoder.cpp +44 -0
  391. pynerve-1.0.0/src/encoders/topological_encoder.cpp +399 -0
  392. pynerve-1.0.0/src/error/error_handling_ops.cpp +774 -0
  393. pynerve-1.0.0/src/error/error_registry.cpp +7 -0
  394. pynerve-1.0.0/src/errors/configurable_error_system_base.cpp +11 -0
  395. pynerve-1.0.0/src/errors/configurable_error_system_core.cpp +150 -0
  396. pynerve-1.0.0/src/errors/configurable_error_system_tda.cpp +18 -0
  397. pynerve-1.0.0/src/errors/errors.cpp +356 -0
  398. pynerve-1.0.0/src/feature_access/feature_flags.cpp +409 -0
  399. pynerve-1.0.0/src/feature_access/feature_flags_config.cpp +177 -0
  400. pynerve-1.0.0/src/feature_access/feature_flags_validation.cpp +291 -0
  401. pynerve-1.0.0/src/features/feature_flags.cpp +424 -0
  402. pynerve-1.0.0/src/filtration/detail/filtration_detail.hpp +27 -0
  403. pynerve-1.0.0/src/filtration/gpu/level_set_cuda.cu +494 -0
  404. pynerve-1.0.0/src/filtration/gpu/vr_sparse_cuda.cu +571 -0
  405. pynerve-1.0.0/src/filtration/level_set/level_set_analysis_ops.cpp +270 -0
  406. pynerve-1.0.0/src/filtration/level_set/level_set_base_ops.cpp +328 -0
  407. pynerve-1.0.0/src/filtration/level_set/level_set_connectivity_ops.cpp +338 -0
  408. pynerve-1.0.0/src/filtration/mpi/filtration_mpi_ops.cpp +187 -0
  409. pynerve-1.0.0/src/filtration/simd_filtration_ops.cpp +29 -0
  410. pynerve-1.0.0/src/filtration/vr/detail/vr_construction_helpers.inl +59 -0
  411. pynerve-1.0.0/src/filtration/vr/detail/vr_parallel_construction_ops_impl.inl +425 -0
  412. pynerve-1.0.0/src/filtration/vr/vr_ann_search_ops.cpp +187 -0
  413. pynerve-1.0.0/src/filtration/vr/vr_api_ops.cpp +382 -0
  414. pynerve-1.0.0/src/filtration/vr/vr_builder_ops.cpp +190 -0
  415. pynerve-1.0.0/src/filtration/vr/vr_construction_custom_radii.cpp +141 -0
  416. pynerve-1.0.0/src/filtration/vr/vr_construction_ksimplices.cpp +143 -0
  417. pynerve-1.0.0/src/filtration/vr/vr_construction_ops.cpp +112 -0
  418. pynerve-1.0.0/src/filtration/vr/vr_construction_simplices.cpp +114 -0
  419. pynerve-1.0.0/src/filtration/vr/vr_distance_ops.cpp +110 -0
  420. pynerve-1.0.0/src/filtration/vr/vr_parallel_construction_ops.cpp +1 -0
  421. pynerve-1.0.0/src/filtration/vr/vr_sparse_ops.cpp +258 -0
  422. pynerve-1.0.0/src/filtration/vr/vr_weighted_ops.cpp +275 -0
  423. pynerve-1.0.0/src/formats/gpu_mpi_overlap.cpp +324 -0
  424. pynerve-1.0.0/src/formats/packed_boundary_matrix.cpp +374 -0
  425. pynerve-1.0.0/src/formats/packed_gpu_scan.cu +365 -0
  426. pynerve-1.0.0/src/formats/persistence_pipeline.cpp +302 -0
  427. pynerve-1.0.0/src/gpu/context/detail/manager_context_tenant_ops.inl +240 -0
  428. pynerve-1.0.0/src/gpu/context/manager_context_gpu.cpp +472 -0
  429. pynerve-1.0.0/src/gpu/context/manager_multi_gpu.cpp +447 -0
  430. pynerve-1.0.0/src/gpu/detail/gpu_detail.hpp +152 -0
  431. pynerve-1.0.0/src/gpu/dispatch/dispatch_cuda.cpp +483 -0
  432. pynerve-1.0.0/src/gpu/dispatch/distance_matrix_optimizer_cuda.cpp +221 -0
  433. pynerve-1.0.0/src/gpu/error_handling_cuda_ops.cpp +191 -0
  434. pynerve-1.0.0/src/gpu/executor_async_ops.cpp +411 -0
  435. pynerve-1.0.0/src/gpu/hybrid_tuning.cpp +351 -0
  436. pynerve-1.0.0/src/gpu/hybrid_tuning_runtime.cpp +164 -0
  437. pynerve-1.0.0/src/gpu/kernels/kernel_ada_lovelace_cuda.cu +358 -0
  438. pynerve-1.0.0/src/gpu/manager_compute.cpp +342 -0
  439. pynerve-1.0.0/src/gpu/manager_compute_init.cpp +61 -0
  440. pynerve-1.0.0/src/gpu/manager_compute_ops.cpp +370 -0
  441. pynerve-1.0.0/src/gpu/manager_compute_ops_filtration.cpp +231 -0
  442. pynerve-1.0.0/src/gpu/manager_compute_ops_geometry.cpp +124 -0
  443. pynerve-1.0.0/src/gpu/manager_compute_ops_hungarian.cpp +212 -0
  444. pynerve-1.0.0/src/gpu/matrix_diagram_cost_ops.cpp +202 -0
  445. pynerve-1.0.0/src/gpu/matrix_distance_ops.cpp +139 -0
  446. pynerve-1.0.0/src/gpu/memory/manager_batch_memory.cpp +294 -0
  447. pynerve-1.0.0/src/gpu/ops_column.cpp +291 -0
  448. pynerve-1.0.0/src/gpu/ops_streaming.cpp +387 -0
  449. pynerve-1.0.0/src/gpu/tuner_nvidia_auto.cpp +458 -0
  450. pynerve-1.0.0/src/gpu/tuner_nvidia_auto_reporting.cpp +59 -0
  451. pynerve-1.0.0/src/gpu/tuning/detail/tuning_distributed_coordinator_core.inl +437 -0
  452. pynerve-1.0.0/src/gpu/tuning/detail/tuning_distributed_coordinator_mpi.inl +363 -0
  453. pynerve-1.0.0/src/gpu/tuning/detail/tuning_distributed_multigpu.inl +332 -0
  454. pynerve-1.0.0/src/gpu/tuning/tuning_cache_ops.cpp +444 -0
  455. pynerve-1.0.0/src/gpu/tuning/tuning_distributed_ops.cpp +23 -0
  456. pynerve-1.0.0/src/graphs/attention_gpu.cu +568 -0
  457. pynerve-1.0.0/src/graphs/detail/graphs_detail.hpp +33 -0
  458. pynerve-1.0.0/src/graphs/gnn_gpu.cu +578 -0
  459. pynerve-1.0.0/src/graphs/graph.cpp +317 -0
  460. pynerve-1.0.0/src/graphs/graph_algorithms_detail.hpp +203 -0
  461. pynerve-1.0.0/src/graphs/graph_algorithms_gpu.cu +492 -0
  462. pynerve-1.0.0/src/graphs/graph_engine_gpu.cu +450 -0
  463. pynerve-1.0.0/src/graphs/graph_homology.cpp +161 -0
  464. pynerve-1.0.0/src/graphs/graph_multi_gpu_ops.cpp +237 -0
  465. pynerve-1.0.0/src/graphs/graph_neural_layer.cpp +250 -0
  466. pynerve-1.0.0/src/graphs/graph_persistent.cpp +95 -0
  467. pynerve-1.0.0/src/graphs/graph_persistent_homology.cpp +4 -0
  468. pynerve-1.0.0/src/graphs/graph_persistent_homology_detail.hpp +121 -0
  469. pynerve-1.0.0/src/graphs/graph_sheaf.cpp +172 -0
  470. pynerve-1.0.0/src/graphs/graph_topology.cpp +149 -0
  471. pynerve-1.0.0/src/graphs/graph_weighted.cpp +414 -0
  472. pynerve-1.0.0/src/graphs/graph_weighted_simplicial.cpp +161 -0
  473. pynerve-1.0.0/src/graphs/graph_zigzag_gpu.cu +260 -0
  474. pynerve-1.0.0/src/graphs/message_passing_gpu.cu +554 -0
  475. pynerve-1.0.0/src/graphs/mpi/graph_mpi_ops.cpp +162 -0
  476. pynerve-1.0.0/src/include/cuda/CMakeLists.txt +58 -0
  477. pynerve-1.0.0/src/include/cuda/cuda_error.hpp +49 -0
  478. pynerve-1.0.0/src/include/cuda/error/cuda_error.hpp +261 -0
  479. pynerve-1.0.0/src/include/cuda/heterogeneous_engine.hpp +250 -0
  480. pynerve-1.0.0/src/include/cuda_fp16.h +19 -0
  481. pynerve-1.0.0/src/include/cuda_runtime.h +454 -0
  482. pynerve-1.0.0/src/include/cuda_runtime_api.h +18 -0
  483. pynerve-1.0.0/src/include/determinism/CMakeLists.txt +25 -0
  484. pynerve-1.0.0/src/include/determinism/determinism_contract.hpp +306 -0
  485. pynerve-1.0.0/src/include/distance/CMakeLists.txt +22 -0
  486. pynerve-1.0.0/src/include/distance/simd_distance.hpp +324 -0
  487. pynerve-1.0.0/src/include/gpu/gpu_error.hpp +55 -0
  488. pynerve-1.0.0/src/include/gpu/gpu_memory.hpp +221 -0
  489. pynerve-1.0.0/src/include/math/CMakeLists.txt +22 -0
  490. pynerve-1.0.0/src/include/math/field_matrix.hpp +484 -0
  491. pynerve-1.0.0/src/include/math/finite_field.hpp +380 -0
  492. pynerve-1.0.0/src/include/math/matrix_reduction.hpp +469 -0
  493. pynerve-1.0.0/src/include/math/persistence_metrics/algorithms.hpp +453 -0
  494. pynerve-1.0.0/src/include/math/persistence_metrics/hungarian_solver.hpp +213 -0
  495. pynerve-1.0.0/src/include/math/persistence_metrics/point2d.hpp +48 -0
  496. pynerve-1.0.0/src/include/math/persistence_metrics.hpp +42 -0
  497. pynerve-1.0.0/src/include/math/precision.hpp +315 -0
  498. pynerve-1.0.0/src/include/math/precision_manager.hpp +468 -0
  499. pynerve-1.0.0/src/include/math/precision_policy.hpp +205 -0
  500. pynerve-1.0.0/src/include/math/tolerance.hpp +177 -0
  501. pynerve-1.0.0/src/include/memory/safe_memory_pool.hpp +530 -0
  502. pynerve-1.0.0/src/include/metrics/CMakeLists.txt +21 -0
  503. pynerve-1.0.0/src/include/metrics/bottleneck_exact.hpp +573 -0
  504. pynerve-1.0.0/src/include/nerve/acceleration_fwd.hpp +215 -0
  505. pynerve-1.0.0/src/include/nerve/algebra/bit_packed.hpp +348 -0
  506. pynerve-1.0.0/src/include/nerve/algebra/boundary.hpp +153 -0
  507. pynerve-1.0.0/src/include/nerve/algebra/cellular.hpp +114 -0
  508. pynerve-1.0.0/src/include/nerve/algebra/complex.hpp +57 -0
  509. pynerve-1.0.0/src/include/nerve/algebra/detail/algebra_detail.hpp +205 -0
  510. pynerve-1.0.0/src/include/nerve/algebra/simd_distance.hpp +37 -0
  511. pynerve-1.0.0/src/include/nerve/algebra/simd_distance_avx.hpp +31 -0
  512. pynerve-1.0.0/src/include/nerve/algebra/simplex.hpp +145 -0
  513. pynerve-1.0.0/src/include/nerve/algorithms/distance.hpp +415 -0
  514. pynerve-1.0.0/src/include/nerve/algorithms/distance_c.h +38 -0
  515. pynerve-1.0.0/src/include/nerve/algorithms/knn_hnsw.hpp +474 -0
  516. pynerve-1.0.0/src/include/nerve/algorithms/mapper.hpp +347 -0
  517. pynerve-1.0.0/src/include/nerve/algorithms/persistence_vectorization.hpp +43 -0
  518. pynerve-1.0.0/src/include/nerve/anomaly/topology_drift.hpp +320 -0
  519. pynerve-1.0.0/src/include/nerve/approximate/streaming_ph.hpp +243 -0
  520. pynerve-1.0.0/src/include/nerve/approximation/distance_approximation.hpp +240 -0
  521. pynerve-1.0.0/src/include/nerve/autodiff/autodiff.hpp +199 -0
  522. pynerve-1.0.0/src/include/nerve/autodiff/detail/autodiff_detail.hpp +25 -0
  523. pynerve-1.0.0/src/include/nerve/batching/micro_batching.hpp +292 -0
  524. pynerve-1.0.0/src/include/nerve/cache/feature_cache.hpp +135 -0
  525. pynerve-1.0.0/src/include/nerve/common/accelerated_types.hpp +368 -0
  526. pynerve-1.0.0/src/include/nerve/common.hpp +18 -0
  527. pynerve-1.0.0/src/include/nerve/compat/default_compare.hpp +39 -0
  528. pynerve-1.0.0/src/include/nerve/compression/gpu_autoencoder.hpp +58 -0
  529. pynerve-1.0.0/src/include/nerve/compression/model_aware_compression.hpp +66 -0
  530. pynerve-1.0.0/src/include/nerve/compression/simd_compression.hpp +13 -0
  531. pynerve-1.0.0/src/include/nerve/config.hpp.in +99 -0
  532. pynerve-1.0.0/src/include/nerve/core/budget.hpp +16 -0
  533. pynerve-1.0.0/src/include/nerve/core/buffer.hpp +5 -0
  534. pynerve-1.0.0/src/include/nerve/core/buffer_view.hpp +13 -0
  535. pynerve-1.0.0/src/include/nerve/core/compact_summary/compact_summary.hpp +28 -0
  536. pynerve-1.0.0/src/include/nerve/core/detail/compact_summary_extensions.hpp +216 -0
  537. pynerve-1.0.0/src/include/nerve/core/detail/core_detail.hpp +58 -0
  538. pynerve-1.0.0/src/include/nerve/core/detail/error_event_extensions.hpp +288 -0
  539. pynerve-1.0.0/src/include/nerve/core/error/error_event.hpp +44 -0
  540. pynerve-1.0.0/src/include/nerve/core/memory/memory_pool.hpp +90 -0
  541. pynerve-1.0.0/src/include/nerve/core/memory/numa_aware_pool.hpp +218 -0
  542. pynerve-1.0.0/src/include/nerve/core/memory/thread_safe_memory_pool.hpp +460 -0
  543. pynerve-1.0.0/src/include/nerve/core/persistence.hpp +178 -0
  544. pynerve-1.0.0/src/include/nerve/core/policy/owned_buffer.hpp +139 -0
  545. pynerve-1.0.0/src/include/nerve/core/policy/ownership_checks.hpp +56 -0
  546. pynerve-1.0.0/src/include/nerve/core/policy/ownership_policy.hpp +285 -0
  547. pynerve-1.0.0/src/include/nerve/core/rng/determinism_contract.hpp +140 -0
  548. pynerve-1.0.0/src/include/nerve/core/rng/random.hpp +233 -0
  549. pynerve-1.0.0/src/include/nerve/core/rng/rng.hpp +94 -0
  550. pynerve-1.0.0/src/include/nerve/core/sha256.hpp +168 -0
  551. pynerve-1.0.0/src/include/nerve/core/spectral.hpp +9 -0
  552. pynerve-1.0.0/src/include/nerve/core/stability_certificate.hpp +39 -0
  553. pynerve-1.0.0/src/include/nerve/core/thread_affinity.hpp +70 -0
  554. pynerve-1.0.0/src/include/nerve/core.hpp +7 -0
  555. pynerve-1.0.0/src/include/nerve/core_types.hpp +129 -0
  556. pynerve-1.0.0/src/include/nerve/cpu/arm_simd.hpp +2183 -0
  557. pynerve-1.0.0/src/include/nerve/cpu/simd.hpp +65 -0
  558. pynerve-1.0.0/src/include/nerve/cpu/x86_intrinsics.hpp +6 -0
  559. pynerve-1.0.0/src/include/nerve/determinism.hpp +92 -0
  560. pynerve-1.0.0/src/include/nerve/differentiable/autodiff_persistence.hpp +409 -0
  561. pynerve-1.0.0/src/include/nerve/distributed/cuda_aware_mpi.hpp +178 -0
  562. pynerve-1.0.0/src/include/nerve/distributed/cuda_ipc_shared.hpp +148 -0
  563. pynerve-1.0.0/src/include/nerve/distributed/detail/distributed_detail.hpp +64 -0
  564. pynerve-1.0.0/src/include/nerve/distributed/mpi_persistence.hpp +366 -0
  565. pynerve-1.0.0/src/include/nerve/distributed/nccl_mpi_bridge.hpp +294 -0
  566. pynerve-1.0.0/src/include/nerve/distributed/nvshmem_bridge.hpp +104 -0
  567. pynerve-1.0.0/src/include/nerve/dmt/gpu_dmt.hpp +224 -0
  568. pynerve-1.0.0/src/include/nerve/encoders/detail/encoders_detail.hpp +61 -0
  569. pynerve-1.0.0/src/include/nerve/encoders/encoders.hpp +404 -0
  570. pynerve-1.0.0/src/include/nerve/encoders/gpu_encoders.hpp +168 -0
  571. pynerve-1.0.0/src/include/nerve/encoders/simd_encoder.hpp +12 -0
  572. pynerve-1.0.0/src/include/nerve/error/error_handling.hpp +295 -0
  573. pynerve-1.0.0/src/include/nerve/error/error_registry.hpp +341 -0
  574. pynerve-1.0.0/src/include/nerve/errors/configurable_error_system.hpp +148 -0
  575. pynerve-1.0.0/src/include/nerve/errors/detail/base.hpp +213 -0
  576. pynerve-1.0.0/src/include/nerve/errors/detail/error_result.hpp +361 -0
  577. pynerve-1.0.0/src/include/nerve/errors/detail/macros.hpp +249 -0
  578. pynerve-1.0.0/src/include/nerve/errors/detail/public_reexports.hpp +42 -0
  579. pynerve-1.0.0/src/include/nerve/errors/errors.hpp +432 -0
  580. pynerve-1.0.0/src/include/nerve/errors/types/runtime.hpp +361 -0
  581. pynerve-1.0.0/src/include/nerve/errors/types/type.hpp +293 -0
  582. pynerve-1.0.0/src/include/nerve/errors/types/value.hpp +282 -0
  583. pynerve-1.0.0/src/include/nerve/feature_access/feature_flags.hpp +230 -0
  584. pynerve-1.0.0/src/include/nerve/features/feature_flags.hpp +116 -0
  585. pynerve-1.0.0/src/include/nerve/filtration/detail/filtration_detail.hpp +27 -0
  586. pynerve-1.0.0/src/include/nerve/filtration/level_set.hpp +204 -0
  587. pynerve-1.0.0/src/include/nerve/filtration/simd_filtration.hpp +12 -0
  588. pynerve-1.0.0/src/include/nerve/filtration/vietoris_rips.hpp +123 -0
  589. pynerve-1.0.0/src/include/nerve/filtration/vr/ann/ann.hpp +41 -0
  590. pynerve-1.0.0/src/include/nerve/filtration/vr_runtime.hpp +68 -0
  591. pynerve-1.0.0/src/include/nerve/formats/gpu_mpi_overlap.hpp +97 -0
  592. pynerve-1.0.0/src/include/nerve/formats/packed_boundary_matrix.hpp +132 -0
  593. pynerve-1.0.0/src/include/nerve/formats/packed_gpu_scan.hpp +15 -0
  594. pynerve-1.0.0/src/include/nerve/formats/persistence_pipeline.hpp +65 -0
  595. pynerve-1.0.0/src/include/nerve/gpu/batch_manager.hpp +116 -0
  596. pynerve-1.0.0/src/include/nerve/gpu/bottleneck_distance.cuh +15 -0
  597. pynerve-1.0.0/src/include/nerve/gpu/compute_manager.hpp +191 -0
  598. pynerve-1.0.0/src/include/nerve/gpu/consumer_config.hpp +99 -0
  599. pynerve-1.0.0/src/include/nerve/gpu/cuda_dispatch.hpp +207 -0
  600. pynerve-1.0.0/src/include/nerve/gpu/cuda_error_check.hpp +67 -0
  601. pynerve-1.0.0/src/include/nerve/gpu/cuda_tile_api.hpp +364 -0
  602. pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_buffer_impl.hpp +308 -0
  603. pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_cluster_impl.hpp +166 -0
  604. pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_config_impl.hpp +69 -0
  605. pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_detail_impl.hpp +275 -0
  606. pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_launcher_impl.hpp +189 -0
  607. pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_tuner_impl.hpp +159 -0
  608. pynerve-1.0.0/src/include/nerve/gpu/detail/gpu_detail.hpp +151 -0
  609. pynerve-1.0.0/src/include/nerve/gpu/detail/gpu_primitives_impl.inc +1 -0
  610. pynerve-1.0.0/src/include/nerve/gpu/detail/gpu_primitives_impl_part1.inc +339 -0
  611. pynerve-1.0.0/src/include/nerve/gpu/device_array.hpp +105 -0
  612. pynerve-1.0.0/src/include/nerve/gpu/distance_fasted.cuh +28 -0
  613. pynerve-1.0.0/src/include/nerve/gpu/distance_gemm.cuh +365 -0
  614. pynerve-1.0.0/src/include/nerve/gpu/distance_kernels.hpp +25 -0
  615. pynerve-1.0.0/src/include/nerve/gpu/distance_tedjoin.cuh +10 -0
  616. pynerve-1.0.0/src/include/nerve/gpu/distributed_tuning.hpp +160 -0
  617. pynerve-1.0.0/src/include/nerve/gpu/gpu_capability.hpp +28 -0
  618. pynerve-1.0.0/src/include/nerve/gpu/gpu_capability_core.hpp +124 -0
  619. pynerve-1.0.0/src/include/nerve/gpu/gpu_compute.hpp +543 -0
  620. pynerve-1.0.0/src/include/nerve/gpu/gpu_context.hpp +314 -0
  621. pynerve-1.0.0/src/include/nerve/gpu/gpu_error.hpp +57 -0
  622. pynerve-1.0.0/src/include/nerve/gpu/gpu_launch.hpp +280 -0
  623. pynerve-1.0.0/src/include/nerve/gpu/gpu_ptx.hpp +62 -0
  624. pynerve-1.0.0/src/include/nerve/gpu/gpu_ptx_ops.cuh +849 -0
  625. pynerve-1.0.0/src/include/nerve/gpu/gpu_tuning.hpp +166 -0
  626. pynerve-1.0.0/src/include/nerve/gpu/hybrid_tuning.hpp +146 -0
  627. pynerve-1.0.0/src/include/nerve/gpu/kernel_launcher.hpp +321 -0
  628. pynerve-1.0.0/src/include/nerve/gpu/manager_compute_ops_filtration.hpp +26 -0
  629. pynerve-1.0.0/src/include/nerve/gpu/manager_compute_ops_geometry.hpp +15 -0
  630. pynerve-1.0.0/src/include/nerve/gpu/manager_compute_ops_hungarian.hpp +25 -0
  631. pynerve-1.0.0/src/include/nerve/gpu/mapper_gpu.cuh +23 -0
  632. pynerve-1.0.0/src/include/nerve/gpu/nvidia_auto_tuner.hpp +22 -0
  633. pynerve-1.0.0/src/include/nerve/gpu/packed_column_primitives.cuh +516 -0
  634. pynerve-1.0.0/src/include/nerve/gpu/persistence_image.cuh +13 -0
  635. pynerve-1.0.0/src/include/nerve/gpu/persistence_kernels.cuh +465 -0
  636. pynerve-1.0.0/src/include/nerve/gpu/persistence_reducer.hpp +43 -0
  637. pynerve-1.0.0/src/include/nerve/gpu/tensor_core_kernels.cuh +290 -0
  638. pynerve-1.0.0/src/include/nerve/gpu/tuning_cache.hpp +156 -0
  639. pynerve-1.0.0/src/include/nerve/gpu/wasserstein_distance.cuh +20 -0
  640. pynerve-1.0.0/src/include/nerve/graphs/detail/graphs_detail.hpp +33 -0
  641. pynerve-1.0.0/src/include/nerve/graphs/gpu_gnn.hpp +38 -0
  642. pynerve-1.0.0/src/include/nerve/graphs/gpu_graphs.hpp +207 -0
  643. pynerve-1.0.0/src/include/nerve/graphs/graph.hpp +211 -0
  644. pynerve-1.0.0/src/include/nerve/instrumentation/error_events.hpp +130 -0
  645. pynerve-1.0.0/src/include/nerve/instrumentation/instrumentation.hpp +214 -0
  646. pynerve-1.0.0/src/include/nerve/instrumentation/metrics.hpp +104 -0
  647. pynerve-1.0.0/src/include/nerve/instrumentation/stability_certificates.hpp +197 -0
  648. pynerve-1.0.0/src/include/nerve/instrumentation/topological_delta.hpp +164 -0
  649. pynerve-1.0.0/src/include/nerve/interaction/interaction_homology.hpp +223 -0
  650. pynerve-1.0.0/src/include/nerve/io/async_io.hpp +138 -0
  651. pynerve-1.0.0/src/include/nerve/io/diagram_io.hpp +39 -0
  652. pynerve-1.0.0/src/include/nerve/io/mmap_io.hpp +40 -0
  653. pynerve-1.0.0/src/include/nerve/io/npy_io.hpp +90 -0
  654. pynerve-1.0.0/src/include/nerve/math/constants.hpp +158 -0
  655. pynerve-1.0.0/src/include/nerve/math/finite_field.hpp +173 -0
  656. pynerve-1.0.0/src/include/nerve/math/math +1 -0
  657. pynerve-1.0.0/src/include/nerve/math/persistence_metrics/algorithms.hpp +453 -0
  658. pynerve-1.0.0/src/include/nerve/math/persistence_metrics/hungarian_solver.hpp +213 -0
  659. pynerve-1.0.0/src/include/nerve/math/persistence_metrics/point2d.hpp +48 -0
  660. pynerve-1.0.0/src/include/nerve/metrics/bottleneck/bottleneck.hpp +76 -0
  661. pynerve-1.0.0/src/include/nerve/metrics/detail/metrics_detail.hpp +75 -0
  662. pynerve-1.0.0/src/include/nerve/metrics/distances.hpp +255 -0
  663. pynerve-1.0.0/src/include/nerve/metrics/gpu_distances.hpp +76 -0
  664. pynerve-1.0.0/src/include/nerve/metrics/lazy_distance.hpp +114 -0
  665. pynerve-1.0.0/src/include/nerve/metrics/sinkhorn/sinkhorn.hpp +134 -0
  666. pynerve-1.0.0/src/include/nerve/nn/diagram_conv.hpp +227 -0
  667. pynerve-1.0.0/src/include/nerve/nn/simd_nn.hpp +15 -0
  668. pynerve-1.0.0/src/include/nerve/optimization/component_optimizations.hpp +389 -0
  669. pynerve-1.0.0/src/include/nerve/optimization/detail/optimization_detail.hpp +43 -0
  670. pynerve-1.0.0/src/include/nerve/optimization/gpu_primitives_helpers.hpp +42 -0
  671. pynerve-1.0.0/src/include/nerve/optimization/hardware_optimizations.hpp +248 -0
  672. pynerve-1.0.0/src/include/nerve/optimization/parameter_sweep.hpp +257 -0
  673. pynerve-1.0.0/src/include/nerve/persistence/accelerated/accelerated_api.hpp +171 -0
  674. pynerve-1.0.0/src/include/nerve/persistence/accelerated/accelerated_interface.hpp +232 -0
  675. pynerve-1.0.0/src/include/nerve/persistence/accelerated/detail/accelerated_detail.hpp +107 -0
  676. pynerve-1.0.0/src/include/nerve/persistence/accelerated/gpu_apparent_pairs.hpp +351 -0
  677. pynerve-1.0.0/src/include/nerve/persistence/accelerated/heterogeneous_fast_vr.hpp +139 -0
  678. pynerve-1.0.0/src/include/nerve/persistence/accelerated/nerve_data_wrapper.hpp +48 -0
  679. pynerve-1.0.0/src/include/nerve/persistence/accelerated/nerve_interface.hpp +115 -0
  680. pynerve-1.0.0/src/include/nerve/persistence/accelerated/thread_safe_allocator.hpp +425 -0
  681. pynerve-1.0.0/src/include/nerve/persistence/accelerated/work_distributor.hpp +184 -0
  682. pynerve-1.0.0/src/include/nerve/persistence/acceleration_runtime/acceleration_runtime_capabilities.hpp +14 -0
  683. pynerve-1.0.0/src/include/nerve/persistence/acceleration_runtime/acceleration_runtime_engine.hpp +162 -0
  684. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_acceleration_engine.hpp +157 -0
  685. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_acceleration_problem_analysis.hpp +74 -0
  686. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_acceleration_system_capabilities.hpp +107 -0
  687. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_algorithm_selector.hpp +144 -0
  688. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_selector_calibration.hpp +24 -0
  689. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/lockfree_multicore.hpp +106 -0
  690. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/matrix_multiplication_framework.hpp +86 -0
  691. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/sparse_matrix.hpp +254 -0
  692. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/sparsification_engine.hpp +138 -0
  693. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/streaming/approximate_processor.hpp +181 -0
  694. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/streaming/representative_cycles.hpp +223 -0
  695. pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/streaming/streaming_processor.hpp +215 -0
  696. pynerve-1.0.0/src/include/nerve/persistence/approximate/approximate_nearest_neighbor.hpp +121 -0
  697. pynerve-1.0.0/src/include/nerve/persistence/approximate/bloom_filter.hpp +106 -0
  698. pynerve-1.0.0/src/include/nerve/persistence/approximate/distilled_vr_filtration.hpp +95 -0
  699. pynerve-1.0.0/src/include/nerve/persistence/approximate/perfect_hash.hpp +167 -0
  700. pynerve-1.0.0/src/include/nerve/persistence/approximate/sketching_approximation.hpp +149 -0
  701. pynerve-1.0.0/src/include/nerve/persistence/bloom_filter.hpp +53 -0
  702. pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology.hpp +43 -0
  703. pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology_involuted_ops.hpp +105 -0
  704. pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology_ops.hpp +125 -0
  705. pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology_persistent_ops.hpp +87 -0
  706. pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology_rref.hpp +58 -0
  707. pynerve-1.0.0/src/include/nerve/persistence/cohomology/gpu_cohomology.hpp +87 -0
  708. pynerve-1.0.0/src/include/nerve/persistence/cohomology/involuted_homology.hpp +32 -0
  709. pynerve-1.0.0/src/include/nerve/persistence/cohomology/persistent_cohomology.hpp +85 -0
  710. pynerve-1.0.0/src/include/nerve/persistence/core/core_types.hpp +63 -0
  711. pynerve-1.0.0/src/include/nerve/persistence/core/detail/core_detail.hpp +122 -0
  712. pynerve-1.0.0/src/include/nerve/persistence/core/flood_complex.hpp +151 -0
  713. pynerve-1.0.0/src/include/nerve/persistence/core/high_dimensional_exact.hpp +160 -0
  714. pynerve-1.0.0/src/include/nerve/persistence/core/per_dimension_exact.hpp +247 -0
  715. pynerve-1.0.0/src/include/nerve/persistence/core/ph_gradient.hpp +128 -0
  716. pynerve-1.0.0/src/include/nerve/persistence/core/ph_gradient_basic.hpp +169 -0
  717. pynerve-1.0.0/src/include/nerve/persistence/core/roaring_bitmap.hpp +221 -0
  718. pynerve-1.0.0/src/include/nerve/persistence/core/roaring_bitmap_internal.hpp +69 -0
  719. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_blackwell_tma.hpp +94 -0
  720. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_distance_matrix.hpp +305 -0
  721. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_edge_extraction.hpp +333 -0
  722. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_edge_types.hpp +44 -0
  723. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_error_handling.hpp +353 -0
  724. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_matrix_reduction.hpp +479 -0
  725. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_multi_gpu.hpp +152 -0
  726. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_safe_arithmetic.hpp +112 -0
  727. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_tensor_core.hpp +113 -0
  728. pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_warp_specialized_kernels.hpp +173 -0
  729. pynerve-1.0.0/src/include/nerve/persistence/cuda/detail/cuda_detail.hpp +73 -0
  730. pynerve-1.0.0/src/include/nerve/persistence/cuda/gpu_adaptive_selector.hpp +78 -0
  731. pynerve-1.0.0/src/include/nerve/persistence/cuda/gpu_distance_matrix.hpp +153 -0
  732. pynerve-1.0.0/src/include/nerve/persistence/cuda/gpu_reduction_engine.hpp +7 -0
  733. pynerve-1.0.0/src/include/nerve/persistence/cuda/thread_block_cluster.hpp +98 -0
  734. pynerve-1.0.0/src/include/nerve/persistence/cuda_matrix_reduction_private.cuh +4 -0
  735. pynerve-1.0.0/src/include/nerve/persistence/detail/cohomology_internal.hpp +28 -0
  736. pynerve-1.0.0/src/include/nerve/persistence/detail/differentiable_persistence_internal.hpp +81 -0
  737. pynerve-1.0.0/src/include/nerve/persistence/detail/fast_vr_accelerated_detail.hpp +64 -0
  738. pynerve-1.0.0/src/include/nerve/persistence/differentiable/differentiable_persistence.hpp +278 -0
  739. pynerve-1.0.0/src/include/nerve/persistence/distributed/mpi_distributed_ph.hpp +151 -0
  740. pynerve-1.0.0/src/include/nerve/persistence/hybrid_reduction_engine.hpp +14 -0
  741. pynerve-1.0.0/src/include/nerve/persistence/kernels/detail/kernels_detail.hpp +21 -0
  742. pynerve-1.0.0/src/include/nerve/persistence/kernels/dimension_specialized_kernels.hpp +611 -0
  743. pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_dimension_specialized_ops.hpp +63 -0
  744. pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h1_ops.hpp +69 -0
  745. pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h2_alpha_ops.hpp +76 -0
  746. pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h3_tetrahedra_ops.hpp +55 -0
  747. pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h4_chunked_ops.hpp +44 -0
  748. pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h5_prefetch_ops.hpp +53 -0
  749. pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h6_streaming_ops.hpp +43 -0
  750. pynerve-1.0.0/src/include/nerve/persistence/kernels/ph4_certificate.hpp +60 -0
  751. pynerve-1.0.0/src/include/nerve/persistence/kernels/ph4_ops.hpp +211 -0
  752. pynerve-1.0.0/src/include/nerve/persistence/kernels/ph5_high_dim_ops.hpp +83 -0
  753. pynerve-1.0.0/src/include/nerve/persistence/kernels/ph5_ph6_methods_impl.hpp +370 -0
  754. pynerve-1.0.0/src/include/nerve/persistence/kernels/ph5_ph6_ops.hpp +149 -0
  755. pynerve-1.0.0/src/include/nerve/persistence/kernels/ph5_ph6_runtime_impl.hpp +154 -0
  756. pynerve-1.0.0/src/include/nerve/persistence/kernels/simplex_reduction_utils.hpp +189 -0
  757. pynerve-1.0.0/src/include/nerve/persistence/memory/clear_and_compress.hpp +180 -0
  758. pynerve-1.0.0/src/include/nerve/persistence/memory/memory_pool.hpp +264 -0
  759. pynerve-1.0.0/src/include/nerve/persistence/memory/numa_memory_optimizer.hpp +260 -0
  760. pynerve-1.0.0/src/include/nerve/persistence/memory/vram_algorithms.hpp +94 -0
  761. pynerve-1.0.0/src/include/nerve/persistence/perfect_hash.hpp +60 -0
  762. pynerve-1.0.0/src/include/nerve/persistence/reduction/bit_tree_pivot_column.hpp +146 -0
  763. pynerve-1.0.0/src/include/nerve/persistence/reduction/column_types.hpp +15 -0
  764. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_clearing_ops.hpp +100 -0
  765. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_distributed_ops.hpp +145 -0
  766. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_edge_collapse_ops.hpp +83 -0
  767. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_hypha_ops.hpp +63 -0
  768. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_lock_free_structures.hpp +299 -0
  769. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_lockfree_ops.hpp +106 -0
  770. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_mpi_ops.hpp +53 -0
  771. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_ops.hpp +181 -0
  772. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_sparsity_aware.hpp +323 -0
  773. pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_union_find_ops.hpp +118 -0
  774. pynerve-1.0.0/src/include/nerve/persistence/reduction/union_find_ph.hpp +75 -0
  775. pynerve-1.0.0/src/include/nerve/persistence/sketching_approximation.hpp +155 -0
  776. pynerve-1.0.0/src/include/nerve/persistence/streaming/streaming_reducer.hpp +124 -0
  777. pynerve-1.0.0/src/include/nerve/persistence/streaming/streaming_vr.hpp +52 -0
  778. pynerve-1.0.0/src/include/nerve/persistence/streaming/tile_streaming_ph.hpp +128 -0
  779. pynerve-1.0.0/src/include/nerve/persistence/utils/adaptive_selector.hpp +91 -0
  780. pynerve-1.0.0/src/include/nerve/persistence/utils/api.hpp +93 -0
  781. pynerve-1.0.0/src/include/nerve/persistence/utils/avx512_optimizer.hpp +248 -0
  782. pynerve-1.0.0/src/include/nerve/persistence/utils/backend_selector.hpp +20 -0
  783. pynerve-1.0.0/src/include/nerve/persistence/utils/bit_parallel_z2.hpp +193 -0
  784. pynerve-1.0.0/src/include/nerve/persistence/utils/cpp20_parallel_ph.hpp +328 -0
  785. pynerve-1.0.0/src/include/nerve/persistence/utils/diagram_statistics.hpp +17 -0
  786. pynerve-1.0.0/src/include/nerve/persistence/utils/early_exit_optimizer.hpp +345 -0
  787. pynerve-1.0.0/src/include/nerve/persistence/utils/exact_engine.hpp +68 -0
  788. pynerve-1.0.0/src/include/nerve/persistence/utils/exact_engine_fast.hpp +17 -0
  789. pynerve-1.0.0/src/include/nerve/persistence/utils/incremental_updates.hpp +113 -0
  790. pynerve-1.0.0/src/include/nerve/persistence/utils/incremental_updates_internal.hpp +16 -0
  791. pynerve-1.0.0/src/include/nerve/persistence/vr/detail/vr_detail.hpp +25 -0
  792. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_algorithm_selector_ops.hpp +163 -0
  793. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_cohomology_ops.hpp +15 -0
  794. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_dispatch_ops.hpp +108 -0
  795. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_distance_tiled_ops.hpp +66 -0
  796. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_fast_ops.hpp +129 -0
  797. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_fast_simd_ops.hpp +51 -0
  798. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_h1_reduction_ops.hpp +216 -0
  799. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_landmark_ops.hpp +40 -0
  800. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_large_witness_ops.hpp +92 -0
  801. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_lazy_witness_ops.hpp +57 -0
  802. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_medium_hybrid_ops.hpp +55 -0
  803. pynerve-1.0.0/src/include/nerve/persistence/vr/vr_sparse_rips_ops.hpp +127 -0
  804. pynerve-1.0.0/src/include/nerve/persistence_homology/persistence_homology_optimization.hpp +457 -0
  805. pynerve-1.0.0/src/include/nerve/platform.hpp +704 -0
  806. pynerve-1.0.0/src/include/nerve/precision/precision_policy.hpp +134 -0
  807. pynerve-1.0.0/src/include/nerve/probabilistic/detail/probabilistic_detail.hpp +47 -0
  808. pynerve-1.0.0/src/include/nerve/probabilistic/gpu_probabilistic.hpp +26 -0
  809. pynerve-1.0.0/src/include/nerve/probabilistic/probabilistic.hpp +208 -0
  810. pynerve-1.0.0/src/include/nerve/regularization/gpu_regularization.hpp +49 -0
  811. pynerve-1.0.0/src/include/nerve/runtime/calibration_model.hpp +70 -0
  812. pynerve-1.0.0/src/include/nerve/runtime/gpu_calibration.hpp +29 -0
  813. pynerve-1.0.0/src/include/nerve/runtime/hardware_probe.hpp +74 -0
  814. pynerve-1.0.0/src/include/nerve/serialization/detail/serialization_detail.hpp +24 -0
  815. pynerve-1.0.0/src/include/nerve/serialization/ph5_ph6_schema_serializer.hpp +133 -0
  816. pynerve-1.0.0/src/include/nerve/serialization/serialization_manager.hpp +276 -0
  817. pynerve-1.0.0/src/include/nerve/sheaf/detail/sheaf_detail.hpp +21 -0
  818. pynerve-1.0.0/src/include/nerve/sheaf/gpu_sheaf.hpp +251 -0
  819. pynerve-1.0.0/src/include/nerve/sheaf/sheaf.hpp +12 -0
  820. pynerve-1.0.0/src/include/nerve/sheaf/sheaf_laplacian.hpp +207 -0
  821. pynerve-1.0.0/src/include/nerve/sheaf/sheaf_learning.hpp +162 -0
  822. pynerve-1.0.0/src/include/nerve/sheaf/tensorcore_sheaf.hpp +182 -0
  823. pynerve-1.0.0/src/include/nerve/simd/simd_arithmetic.hpp +6 -0
  824. pynerve-1.0.0/src/include/nerve/simd/simd_base.hpp +446 -0
  825. pynerve-1.0.0/src/include/nerve/simd/simd_blas.hpp +4 -0
  826. pynerve-1.0.0/src/include/nerve/simd/simd_compare.hpp +4 -0
  827. pynerve-1.0.0/src/include/nerve/simd/simd_distance.hpp +107 -0
  828. pynerve-1.0.0/src/include/nerve/simd/simd_elementwise.hpp +5 -0
  829. pynerve-1.0.0/src/include/nerve/simd/simd_memory.hpp +17 -0
  830. pynerve-1.0.0/src/include/nerve/simd/simd_nn.hpp +47 -0
  831. pynerve-1.0.0/src/include/nerve/simd/simd_quantize.hpp +27 -0
  832. pynerve-1.0.0/src/include/nerve/simd/simd_reduce.hpp +5 -0
  833. pynerve-1.0.0/src/include/nerve/spectral/detail/spectral_detail.hpp +28 -0
  834. pynerve-1.0.0/src/include/nerve/spectral/laplacian.hpp +184 -0
  835. pynerve-1.0.0/src/include/nerve/spectral/persistent_laplacian.hpp +308 -0
  836. pynerve-1.0.0/src/include/nerve/spectral/symmetric_eigendecomposition.hpp +145 -0
  837. pynerve-1.0.0/src/include/nerve/streaming/detail/streaming_detail.hpp +88 -0
  838. pynerve-1.0.0/src/include/nerve/streaming/diagram_sorting.hpp +18 -0
  839. pynerve-1.0.0/src/include/nerve/streaming/gpu_streaming.hpp +17 -0
  840. pynerve-1.0.0/src/include/nerve/streaming/incremental.hpp +266 -0
  841. pynerve-1.0.0/src/include/nerve/streaming/lock_free_streaming.hpp +319 -0
  842. pynerve-1.0.0/src/include/nerve/streaming/streaming_laplacian.hpp +113 -0
  843. pynerve-1.0.0/src/include/nerve/streaming/streaming_tda.hpp +126 -0
  844. pynerve-1.0.0/src/include/nerve/streaming/windowed_ph.hpp +223 -0
  845. pynerve-1.0.0/src/include/nerve/streaming/zigzag_filters.hpp +22 -0
  846. pynerve-1.0.0/src/include/nerve/summary/compact_summary.hpp +164 -0
  847. pynerve-1.0.0/src/include/nerve/torch/boundary_matrix.hpp +163 -0
  848. pynerve-1.0.0/src/include/nerve/torch/boundary_matrix_sparse_utils.hpp +195 -0
  849. pynerve-1.0.0/src/include/nerve/torch/detail/torch_detail.hpp +52 -0
  850. pynerve-1.0.0/src/include/nerve/torch/filtration.hpp +180 -0
  851. pynerve-1.0.0/src/include/nerve/torch/mapper.hpp +126 -0
  852. pynerve-1.0.0/src/include/nerve/torch/ml_operations.hpp +90 -0
  853. pynerve-1.0.0/src/include/nerve/torch/persistence_diagram.hpp +206 -0
  854. pynerve-1.0.0/src/include/nerve/torch/simplex_tree.hpp +154 -0
  855. pynerve-1.0.0/src/include/nerve/torch/torch_wrapper.hpp +8 -0
  856. pynerve-1.0.0/src/include/nerve/types.hpp +128 -0
  857. pynerve-1.0.0/src/include/nerve/validation/microbenchmarks.hpp +284 -0
  858. pynerve-1.0.0/src/include/nerve/validation/ph5_ph6_microbenchmarks.hpp +115 -0
  859. pynerve-1.0.0/src/include/persistence/CMakeLists.txt +35 -0
  860. pynerve-1.0.0/src/include/persistence/field_aware_vietoris_rips.hpp +557 -0
  861. pynerve-1.0.0/src/include/persistence/mathematically_correct_reduction.hpp +428 -0
  862. pynerve-1.0.0/src/include/threading/concurrent_vector.hpp +553 -0
  863. pynerve-1.0.0/src/include/threading/thread_pool.hpp +369 -0
  864. pynerve-1.0.0/src/include/threading/work_stealing_queue.hpp +206 -0
  865. pynerve-1.0.0/src/instrumentation/high_dim_error_sink.cpp +49 -0
  866. pynerve-1.0.0/src/instrumentation/scale_tests.cpp +225 -0
  867. pynerve-1.0.0/src/instrumentation/stability_certificates.cpp +370 -0
  868. pynerve-1.0.0/src/io/async_io_ops.cpp +309 -0
  869. pynerve-1.0.0/src/io/diagram_io_ops.cpp +227 -0
  870. pynerve-1.0.0/src/io/mmap_io_ops.cpp +167 -0
  871. pynerve-1.0.0/src/io/npy_io_ops.cpp +205 -0
  872. pynerve-1.0.0/src/memory/memory_pool_ops.cpp +451 -0
  873. pynerve-1.0.0/src/metrics/bottleneck/distance_bottleneck_ops.cpp +471 -0
  874. pynerve-1.0.0/src/metrics/cuda/diagram_distance_gpu.cuh +15 -0
  875. pynerve-1.0.0/src/metrics/cuda/diagram_distance_gpu_kernels.cu +78 -0
  876. pynerve-1.0.0/src/metrics/detail/metrics_detail.hpp +61 -0
  877. pynerve-1.0.0/src/metrics/diagram/diagram_distance_bottleneck.cpp +205 -0
  878. pynerve-1.0.0/src/metrics/diagram/diagram_distance_cuda.cu +223 -0
  879. pynerve-1.0.0/src/metrics/diagram/diagram_distance_cuda_impl.cpp +408 -0
  880. pynerve-1.0.0/src/metrics/diagram/diagram_distance_hungarian.cpp +93 -0
  881. pynerve-1.0.0/src/metrics/diagram/diagram_distance_ops.cpp +145 -0
  882. pynerve-1.0.0/src/metrics/diagram/diagram_distance_wasserstein.cpp +181 -0
  883. pynerve-1.0.0/src/metrics/frechet/distance_frechet_ops.cpp +278 -0
  884. pynerve-1.0.0/src/metrics/general/distance_complex_point_ops.cpp +194 -0
  885. pynerve-1.0.0/src/metrics/general/distance_factory_ops.cpp +408 -0
  886. pynerve-1.0.0/src/metrics/general/distance_general_ops.cpp +344 -0
  887. pynerve-1.0.0/src/metrics/general/distance_transport_ops.cpp +450 -0
  888. pynerve-1.0.0/src/metrics/general/distance_transport_ops_detail.cpp +152 -0
  889. pynerve-1.0.0/src/metrics/hungarian/assignment_hungarian_cuda.cu +406 -0
  890. pynerve-1.0.0/src/metrics/hungarian/assignment_hungarian_gpu_impl.cpp +472 -0
  891. pynerve-1.0.0/src/metrics/hungarian/assignment_hungarian_tiled_cuda.cu +386 -0
  892. pynerve-1.0.0/src/metrics/matrix/matrix_distance_avx512_ops.cpp +251 -0
  893. pynerve-1.0.0/src/metrics/matrix/matrix_distance_ops.cpp +132 -0
  894. pynerve-1.0.0/src/metrics/matrix/matrix_lazy_distance_ops.cpp +344 -0
  895. pynerve-1.0.0/src/metrics/matrix/matrix_sparse_distance_ops.cpp +216 -0
  896. pynerve-1.0.0/src/metrics/vr/vr_lazy_build_ops.cpp +220 -0
  897. pynerve-1.0.0/src/metrics/wasserstein/distance_sinkhorn_ops.cpp +448 -0
  898. pynerve-1.0.0/src/ml/diff/persistence_gradient.cpp +436 -0
  899. pynerve-1.0.0/src/ml/diff/simplex_autodiff.cu +504 -0
  900. pynerve-1.0.0/src/ml/nn/diagram_message_passing.cu +134 -0
  901. pynerve-1.0.0/src/ml/nn/diagram_message_passing_benchmark.inl +106 -0
  902. pynerve-1.0.0/src/ml/nn/diagram_message_passing_kernels.inl +306 -0
  903. pynerve-1.0.0/src/ml/nn/diagram_message_passing_layers.inl +332 -0
  904. pynerve-1.0.0/src/nn/cuda/nn_kernels.cu +500 -0
  905. pynerve-1.0.0/src/nn/diagram_conv.cpp +446 -0
  906. pynerve-1.0.0/src/nn/diagram_conv_image_ops.cpp +552 -0
  907. pynerve-1.0.0/src/nn/diagram_conv_kernels.inl +166 -0
  908. pynerve-1.0.0/src/nn/simd_nn_ops.cpp +43 -0
  909. pynerve-1.0.0/src/optimization/compact_summaries.cpp +401 -0
  910. pynerve-1.0.0/src/optimization/compact_summaries_detail.hpp +123 -0
  911. pynerve-1.0.0/src/optimization/compact_summaries_memory.cpp +73 -0
  912. pynerve-1.0.0/src/optimization/gpu/opt_kernels.cu +71 -0
  913. pynerve-1.0.0/src/optimization/gpu/opt_kernels.cuh +18 -0
  914. pynerve-1.0.0/src/optimization/gpu_primitives.cpp +507 -0
  915. pynerve-1.0.0/src/optimization/gpu_primitives_helpers.cpp +239 -0
  916. pynerve-1.0.0/src/optimization/gpu_primitives_kernels.cu +117 -0
  917. pynerve-1.0.0/src/optimization/parameter_sweep.cpp +419 -0
  918. pynerve-1.0.0/src/optimization/simd/optimizer_simd_ops.cpp +18 -0
  919. pynerve-1.0.0/src/optimization/streaming_ph.cpp +440 -0
  920. pynerve-1.0.0/src/persistence/accelerated/cuda_edge_extraction.cpp +328 -0
  921. pynerve-1.0.0/src/persistence/accelerated/determinism.cpp +290 -0
  922. pynerve-1.0.0/src/persistence/accelerated/determinism_validation.cpp +237 -0
  923. pynerve-1.0.0/src/persistence/accelerated/error_code_registry.cpp +227 -0
  924. pynerve-1.0.0/src/persistence/accelerated/error_handling.cpp +89 -0
  925. pynerve-1.0.0/src/persistence/accelerated/exception_safety.cpp +122 -0
  926. pynerve-1.0.0/src/persistence/accelerated/fast_vr_gpu_integration.cpp +21 -0
  927. pynerve-1.0.0/src/persistence/accelerated/gpu_apparent_pairs.cu +178 -0
  928. pynerve-1.0.0/src/persistence/accelerated/gpu_memory_monitor.cpp +71 -0
  929. pynerve-1.0.0/src/persistence/accelerated/gpu_reduction_engine.cpp +14 -0
  930. pynerve-1.0.0/src/persistence/accelerated/heterogeneous_fast_vr.cpp +52 -0
  931. pynerve-1.0.0/src/persistence/accelerated/hybrid_reduction_engine.cpp +21 -0
  932. pynerve-1.0.0/src/persistence/accelerated/nerve_interface.cpp +23 -0
  933. pynerve-1.0.0/src/persistence/accelerated/optimization_advice.cpp +54 -0
  934. pynerve-1.0.0/src/persistence/accelerated/performance.cpp +33 -0
  935. pynerve-1.0.0/src/persistence/accelerated/performance_impact.cpp +38 -0
  936. pynerve-1.0.0/src/persistence/accelerated/thread_safe_allocator.cpp +5 -0
  937. pynerve-1.0.0/src/persistence/accelerated/validation.cpp +308 -0
  938. pynerve-1.0.0/src/persistence/acceleration_runtime/acceleration_runtime_engine.cpp +187 -0
  939. pynerve-1.0.0/src/persistence/adaptive_acceleration/CMakeLists.txt +332 -0
  940. pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_acceleration_engine.cpp +201 -0
  941. pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_acceleration_problem_analysis.cpp +396 -0
  942. pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_acceleration_system_capabilities.cpp +281 -0
  943. pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_algorithm_selector.cpp +442 -0
  944. pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_algorithm_selector_exec.cpp +91 -0
  945. pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_selector_calibration.cpp +98 -0
  946. pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/distance_kernels.cu +350 -0
  947. pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/distance_kernels_inst.cu +10 -0
  948. pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/distance_reduction_kernels.cu +100 -0
  949. pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/hybrid_algorithms.cpp +197 -0
  950. pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/reduction_kernels.cu +377 -0
  951. pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/tensor_core_optimizer.cpp +243 -0
  952. pynerve-1.0.0/src/persistence/adaptive_acceleration/lockfree_multicore.cpp +416 -0
  953. pynerve-1.0.0/src/persistence/adaptive_acceleration/matrix_multiplication_framework.cpp +259 -0
  954. pynerve-1.0.0/src/persistence/adaptive_acceleration/representative_cycles.cpp +8 -0
  955. pynerve-1.0.0/src/persistence/adaptive_acceleration/sparse_matrix.cpp +483 -0
  956. pynerve-1.0.0/src/persistence/adaptive_acceleration/sparsification_engine.cpp +423 -0
  957. pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/approximate_processor.cpp +369 -0
  958. pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/approximate_processor_adaptive.cpp +107 -0
  959. pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/approximate_processor_ops.cpp +259 -0
  960. pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/representative_cycles.cpp +359 -0
  961. pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/representative_cycles_conversion.cpp +279 -0
  962. pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/representative_cycles_visualization.cpp +142 -0
  963. pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/streaming_processor.cpp +493 -0
  964. pynerve-1.0.0/src/persistence/approximate/approximate_bloom_filter_ops.cpp +297 -0
  965. pynerve-1.0.0/src/persistence/approximate/approximate_distilled_vr_ops.cpp +1 -0
  966. pynerve-1.0.0/src/persistence/approximate/approximate_nearest_neighbor_ops.cpp +215 -0
  967. pynerve-1.0.0/src/persistence/approximate/approximate_perfect_hash_benchmark.cpp +156 -0
  968. pynerve-1.0.0/src/persistence/approximate/approximate_perfect_hash_io.cpp +139 -0
  969. pynerve-1.0.0/src/persistence/approximate/approximate_perfect_hash_ops.cpp +338 -0
  970. pynerve-1.0.0/src/persistence/approximate/approximate_sketching_ops.cpp +292 -0
  971. pynerve-1.0.0/src/persistence/approximate/detail/approximate_distilled_vr_ops_impl.inl +498 -0
  972. pynerve-1.0.0/src/persistence/cohomology/cohomology_dual.cpp +151 -0
  973. pynerve-1.0.0/src/persistence/cohomology/cohomology_involuted_ops.cpp +428 -0
  974. pynerve-1.0.0/src/persistence/cohomology/cohomology_ops.cpp +270 -0
  975. pynerve-1.0.0/src/persistence/cohomology/cohomology_persistent_ops.cpp +672 -0
  976. pynerve-1.0.0/src/persistence/cohomology/cohomology_ring.cpp +176 -0
  977. pynerve-1.0.0/src/persistence/cohomology/cohomology_rref.cpp +107 -0
  978. pynerve-1.0.0/src/persistence/cohomology/cohomology_rref_ops.cpp +198 -0
  979. pynerve-1.0.0/src/persistence/cohomology/cohomology_sheaf.cpp +212 -0
  980. pynerve-1.0.0/src/persistence/cohomology/cohomology_structures.cpp +104 -0
  981. pynerve-1.0.0/src/persistence/core/delaunay3d.cpp +332 -0
  982. pynerve-1.0.0/src/persistence/core/detail/extreme_memory_reduction_impl.inl +89 -0
  983. pynerve-1.0.0/src/persistence/core/detail/persistence_gradient_algorithm_helpers.inl +55 -0
  984. pynerve-1.0.0/src/persistence/core/detail/persistence_gradient_api_ops.inl +314 -0
  985. pynerve-1.0.0/src/persistence/core/detail/persistence_gradient_core_ops.inl +272 -0
  986. pynerve-1.0.0/src/persistence/core/detail/persistence_gradient_matrix_helpers.inl +47 -0
  987. pynerve-1.0.0/src/persistence/core/extreme_memory_reduction.cpp +50 -0
  988. pynerve-1.0.0/src/persistence/core/flood_complex.cpp +419 -0
  989. pynerve-1.0.0/src/persistence/core/flood_complex_utils.cpp +254 -0
  990. pynerve-1.0.0/src/persistence/core/high_dimensional_exact.cpp +432 -0
  991. pynerve-1.0.0/src/persistence/core/per_dimension_exact.cpp +411 -0
  992. pynerve-1.0.0/src/persistence/core/per_dimension_h0.cpp +189 -0
  993. pynerve-1.0.0/src/persistence/core/per_dimension_h1.cpp +38 -0
  994. pynerve-1.0.0/src/persistence/core/per_dimension_h2.cpp +38 -0
  995. pynerve-1.0.0/src/persistence/core/persistence_gradient.cpp +398 -0
  996. pynerve-1.0.0/src/persistence/core/persistence_gradient_basic.cpp +22 -0
  997. pynerve-1.0.0/src/persistence/core/roaring_bitmap.cpp +216 -0
  998. pynerve-1.0.0/src/persistence/core/roaring_bitmap_column.cpp +325 -0
  999. pynerve-1.0.0/src/persistence/core/roaring_bitmap_container.cpp +148 -0
  1000. pynerve-1.0.0/src/persistence/core/roaring_bitmap_hybrid.cpp +156 -0
  1001. pynerve-1.0.0/src/persistence/core/roaring_bitmap_ops.cpp +196 -0
  1002. pynerve-1.0.0/src/persistence/core/topology_optimizer.cpp +142 -0
  1003. pynerve-1.0.0/src/persistence/core/vram_efficient_algorithms.cpp +41 -0
  1004. pynerve-1.0.0/src/persistence/cuda/adaptive_selector_gpu.cu +647 -0
  1005. pynerve-1.0.0/src/persistence/cuda/cluster_16_block.cu +167 -0
  1006. pynerve-1.0.0/src/persistence/cuda/cluster_distributed_l2.cu +229 -0
  1007. pynerve-1.0.0/src/persistence/cuda/cluster_tma_multicast.cu +169 -0
  1008. pynerve-1.0.0/src/persistence/cuda/cohomology_clearing_cuda.cu +554 -0
  1009. pynerve-1.0.0/src/persistence/cuda/cuda_blackwell_benchmark.cu +141 -0
  1010. pynerve-1.0.0/src/persistence/cuda/cuda_blackwell_tma.cu +401 -0
  1011. pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_apparent_pairs.cu +243 -0
  1012. pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_compute.cu +185 -0
  1013. pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_diagram.cu +52 -0
  1014. pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_kernels.cu +660 -0
  1015. pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_private.cuh +44 -0
  1016. pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_warp.cu +437 -0
  1017. pynerve-1.0.0/src/persistence/cuda/detail/adaptive_selector_benchmark.inl +50 -0
  1018. pynerve-1.0.0/src/persistence/cuda/detail/gpu_cohomology_boundary_matrix.inl +146 -0
  1019. pynerve-1.0.0/src/persistence/cuda/detail/gpu_cohomology_engine_methods.inl +304 -0
  1020. pynerve-1.0.0/src/persistence/cuda/distance_filtration_cuda.cu +454 -0
  1021. pynerve-1.0.0/src/persistence/cuda/distance_filtration_wrappers_cuda.cu +45 -0
  1022. pynerve-1.0.0/src/persistence/cuda/error_handling_cuda.cpp +293 -0
  1023. pynerve-1.0.0/src/persistence/cuda/error_mapping_cuda.cpp +454 -0
  1024. pynerve-1.0.0/src/persistence/cuda/gpu_clearing_impl.cpp +408 -0
  1025. pynerve-1.0.0/src/persistence/cuda/gpu_cohomology_impl.cpp +225 -0
  1026. pynerve-1.0.0/src/persistence/cuda/gpu_reduction_impl.cpp +477 -0
  1027. pynerve-1.0.0/src/persistence/cuda/kernel_apparent_pairs_cuda.cu +272 -0
  1028. pynerve-1.0.0/src/persistence/cuda/kernel_clearing_cuda.cu +196 -0
  1029. pynerve-1.0.0/src/persistence/cuda/kernel_edge_extraction_cuda.cu +286 -0
  1030. pynerve-1.0.0/src/persistence/cuda/kernel_ptx_micro_ops_cuda.cu +263 -0
  1031. pynerve-1.0.0/src/persistence/cuda/kernel_tile_cuda.cu +316 -0
  1032. pynerve-1.0.0/src/persistence/cuda/kernel_tma_cuda.cu +224 -0
  1033. pynerve-1.0.0/src/persistence/cuda/kernel_warp_specialized_cuda.cu +517 -0
  1034. pynerve-1.0.0/src/persistence/cuda/matrix_distance_api_cuda.cu +453 -0
  1035. pynerve-1.0.0/src/persistence/cuda/matrix_distance_api_entrypoints.cu +63 -0
  1036. pynerve-1.0.0/src/persistence/cuda/matrix_distance_config_cuda.cu +69 -0
  1037. pynerve-1.0.0/src/persistence/cuda/matrix_distance_cuda.cu +437 -0
  1038. pynerve-1.0.0/src/persistence/cuda/matrix_distance_tiled_cuda.cu +431 -0
  1039. pynerve-1.0.0/src/persistence/cuda/matrix_reduction_launch_cuda.cu +107 -0
  1040. pynerve-1.0.0/src/persistence/cuda/multi_gpu_cuda.cu +443 -0
  1041. pynerve-1.0.0/src/persistence/cuda/multi_gpu_reduction_ops.cpp +107 -0
  1042. pynerve-1.0.0/src/persistence/cuda/tensor_core_benchmark.cu +266 -0
  1043. pynerve-1.0.0/src/persistence/cuda/tensor_core_cuda.cu +451 -0
  1044. pynerve-1.0.0/src/persistence/cuda/tensor_core_wrappers_cuda.cu +17 -0
  1045. pynerve-1.0.0/src/persistence/cuda/tuning_tma_cuda.cu +215 -0
  1046. pynerve-1.0.0/src/persistence/detail/persistence_reduction_impl.inl +145 -0
  1047. pynerve-1.0.0/src/persistence/detail/persistence_utility_impl.inl +134 -0
  1048. pynerve-1.0.0/src/persistence/differentiable/differentiable_finite_diff_ops.cpp +173 -0
  1049. pynerve-1.0.0/src/persistence/differentiable/differentiable_manager.cpp +210 -0
  1050. pynerve-1.0.0/src/persistence/differentiable/differentiable_ops.cpp +29 -0
  1051. pynerve-1.0.0/src/persistence/differentiable/differentiable_ph5_ops.cpp +272 -0
  1052. pynerve-1.0.0/src/persistence/differentiable/differentiable_ph6_ops.cpp +223 -0
  1053. pynerve-1.0.0/src/persistence/distributed/detail/mpi_distributed_helpers.inl +62 -0
  1054. pynerve-1.0.0/src/persistence/distributed/mpi_distributed_ph.cpp +559 -0
  1055. pynerve-1.0.0/src/persistence/kernels/detail/kernel_dimension_specialized_tuning.inl +93 -0
  1056. pynerve-1.0.0/src/persistence/kernels/kernel_dimension_specialized_ops.cpp +350 -0
  1057. pynerve-1.0.0/src/persistence/kernels/kernel_h1_ops.cpp +284 -0
  1058. pynerve-1.0.0/src/persistence/kernels/kernel_h2_alpha_ops.cpp +395 -0
  1059. pynerve-1.0.0/src/persistence/kernels/kernel_h3_tetrahedra_ops.cpp +68 -0
  1060. pynerve-1.0.0/src/persistence/kernels/kernel_h4_chunked_ops.cpp +58 -0
  1061. pynerve-1.0.0/src/persistence/kernels/kernel_h5_prefetch_ops.cpp +80 -0
  1062. pynerve-1.0.0/src/persistence/kernels/kernel_h6_streaming_ops.cpp +56 -0
  1063. pynerve-1.0.0/src/persistence/kernels/ph4_ops.cpp +465 -0
  1064. pynerve-1.0.0/src/persistence/kernels/ph4_summary_ops.cpp +82 -0
  1065. pynerve-1.0.0/src/persistence/kernels/ph5_high_dim_ops.cpp +307 -0
  1066. pynerve-1.0.0/src/persistence/kernels/ph6_high_dim_ops.cpp +388 -0
  1067. pynerve-1.0.0/src/persistence/kernels/thread_block_cluster.cpp +300 -0
  1068. pynerve-1.0.0/src/persistence/memory/memory_clear_compress_ops.cpp +444 -0
  1069. pynerve-1.0.0/src/persistence/memory/memory_numa_optimizer.cpp +438 -0
  1070. pynerve-1.0.0/src/persistence/memory/memory_pool_ops.cpp +477 -0
  1071. pynerve-1.0.0/src/persistence/reduction/reduction_clearing_ops.cpp +248 -0
  1072. pynerve-1.0.0/src/persistence/reduction/reduction_cohomology_ops.cpp +212 -0
  1073. pynerve-1.0.0/src/persistence/reduction/reduction_control_ops.cpp +186 -0
  1074. pynerve-1.0.0/src/persistence/reduction/reduction_distributed_ops.cpp +375 -0
  1075. pynerve-1.0.0/src/persistence/reduction/reduction_edge_collapse_ops.cpp +268 -0
  1076. pynerve-1.0.0/src/persistence/reduction/reduction_hypha_ops.cpp +475 -0
  1077. pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures.cpp +77 -0
  1078. pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_benchmark.cpp +173 -0
  1079. pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_coordinator.cpp +66 -0
  1080. pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_pivot.cpp +123 -0
  1081. pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_pivot_announce.cpp +56 -0
  1082. pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_work_queue.cpp +169 -0
  1083. pynerve-1.0.0/src/persistence/reduction/reduction_lockfree_ops.cpp +702 -0
  1084. pynerve-1.0.0/src/persistence/reduction/reduction_mpi_ops.cpp +365 -0
  1085. pynerve-1.0.0/src/persistence/reduction/reduction_ops.cpp +527 -0
  1086. pynerve-1.0.0/src/persistence/reduction/reduction_union_find_ops.cpp +390 -0
  1087. pynerve-1.0.0/src/persistence/streaming/bron_kerbosch.cpp +108 -0
  1088. pynerve-1.0.0/src/persistence/streaming/detail/tile_streaming_runtime.inl +403 -0
  1089. pynerve-1.0.0/src/persistence/streaming/simplex_hash.cpp +72 -0
  1090. pynerve-1.0.0/src/persistence/streaming/streaming_column_generator.cpp +224 -0
  1091. pynerve-1.0.0/src/persistence/streaming/streaming_reducer_impl.cpp +164 -0
  1092. pynerve-1.0.0/src/persistence/streaming/streaming_vr.cpp +183 -0
  1093. pynerve-1.0.0/src/persistence/streaming/tile_streaming_ph.cpp +334 -0
  1094. pynerve-1.0.0/src/persistence/utils/adaptive_selector.cpp +459 -0
  1095. pynerve-1.0.0/src/persistence/utils/api.cpp +279 -0
  1096. pynerve-1.0.0/src/persistence/utils/avx512_optimizer.cpp +287 -0
  1097. pynerve-1.0.0/src/persistence/utils/avx512_optimizer_kernels.cpp +238 -0
  1098. pynerve-1.0.0/src/persistence/utils/bit_parallel_z2.cpp +443 -0
  1099. pynerve-1.0.0/src/persistence/utils/cpp20_parallel_ph.cpp +397 -0
  1100. pynerve-1.0.0/src/persistence/utils/diagram_statistics.cpp +60 -0
  1101. pynerve-1.0.0/src/persistence/utils/exact_engine.cpp +331 -0
  1102. pynerve-1.0.0/src/persistence/utils/exact_engine_cohomology.cpp +155 -0
  1103. pynerve-1.0.0/src/persistence/utils/exact_engine_cohomology_graph.cpp +181 -0
  1104. pynerve-1.0.0/src/persistence/utils/exact_engine_fast.cpp +910 -0
  1105. pynerve-1.0.0/src/persistence/utils/exact_engine_internal.hpp +23 -0
  1106. pynerve-1.0.0/src/persistence/utils/filtration_simplifier.cpp +339 -0
  1107. pynerve-1.0.0/src/persistence/utils/incremental_updates.cpp +484 -0
  1108. pynerve-1.0.0/src/persistence/utils/incremental_updates_complex_builder.cpp +312 -0
  1109. pynerve-1.0.0/src/persistence/utils/persistence_diagram.cpp +168 -0
  1110. pynerve-1.0.0/src/persistence/vr/detail/vr_h1_reduction_config.inl +48 -0
  1111. pynerve-1.0.0/src/persistence/vr/detail/vr_h1_reduction_helpers.inl +104 -0
  1112. pynerve-1.0.0/src/persistence/vr/detail/vr_medium_hybrid_helpers.inl +126 -0
  1113. pynerve-1.0.0/src/persistence/vr/vr_algorithm_selector_ops.cpp +430 -0
  1114. pynerve-1.0.0/src/persistence/vr/vr_cohomology_ops.cpp +82 -0
  1115. pynerve-1.0.0/src/persistence/vr/vr_dispatch_ops.cpp +242 -0
  1116. pynerve-1.0.0/src/persistence/vr/vr_distance_tiled_ops.cpp +485 -0
  1117. pynerve-1.0.0/src/persistence/vr/vr_fast_api.cpp +137 -0
  1118. pynerve-1.0.0/src/persistence/vr/vr_fast_engine.cpp +453 -0
  1119. pynerve-1.0.0/src/persistence/vr/vr_fast_factory.cpp +80 -0
  1120. pynerve-1.0.0/src/persistence/vr/vr_fast_impl.cpp +330 -0
  1121. pynerve-1.0.0/src/persistence/vr/vr_fast_ops.cpp +373 -0
  1122. pynerve-1.0.0/src/persistence/vr/vr_fast_ops_detail.cpp +399 -0
  1123. pynerve-1.0.0/src/persistence/vr/vr_fast_runtime.cpp +331 -0
  1124. pynerve-1.0.0/src/persistence/vr/vr_fast_runtime_support.cpp +115 -0
  1125. pynerve-1.0.0/src/persistence/vr/vr_fast_simd_ops.cpp +470 -0
  1126. pynerve-1.0.0/src/persistence/vr/vr_h1_reduction_ops.cpp +355 -0
  1127. pynerve-1.0.0/src/persistence/vr/vr_landmark_ops.cpp +320 -0
  1128. pynerve-1.0.0/src/persistence/vr/vr_large_witness_ops.cpp +187 -0
  1129. pynerve-1.0.0/src/persistence/vr/vr_lazy_witness_ops.cpp +249 -0
  1130. pynerve-1.0.0/src/persistence/vr/vr_medium_hybrid_expander.cpp +63 -0
  1131. pynerve-1.0.0/src/persistence/vr/vr_medium_hybrid_expander.hpp +103 -0
  1132. pynerve-1.0.0/src/persistence/vr/vr_medium_hybrid_gpu_distance.cpp +91 -0
  1133. pynerve-1.0.0/src/persistence/vr/vr_medium_hybrid_ops.cpp +273 -0
  1134. pynerve-1.0.0/src/persistence/vr/vr_sparse_rips_ops.cpp +498 -0
  1135. pynerve-1.0.0/src/precision/precision_policy.cpp +296 -0
  1136. pynerve-1.0.0/src/probabilistic/probabilistic.cpp +446 -0
  1137. pynerve-1.0.0/src/probabilistic/probabilistic_detail.hpp +290 -0
  1138. pynerve-1.0.0/src/probabilistic/probabilistic_gpu.cu +655 -0
  1139. pynerve-1.0.0/src/probabilistic/probabilistic_models.cpp +278 -0
  1140. pynerve-1.0.0/src/probabilistic/probabilistic_sampling.cpp +474 -0
  1141. pynerve-1.0.0/src/probabilistic/probabilistic_statistics.cpp +469 -0
  1142. pynerve-1.0.0/src/regularization/augmentation_gpu.cu +33 -0
  1143. pynerve-1.0.0/src/regularization/augmentation_gpu_benchmark.inl +75 -0
  1144. pynerve-1.0.0/src/regularization/augmentation_gpu_engine.inl +305 -0
  1145. pynerve-1.0.0/src/regularization/augmentation_gpu_kernels.inl +131 -0
  1146. pynerve-1.0.0/src/regularization/loss_kernels.cu +34 -0
  1147. pynerve-1.0.0/src/regularization/loss_kernels_api.inl +346 -0
  1148. pynerve-1.0.0/src/regularization/loss_kernels_benchmark.inl +58 -0
  1149. pynerve-1.0.0/src/regularization/loss_kernels_device.inl +259 -0
  1150. pynerve-1.0.0/src/regularization/regularizer_gpu.cu +682 -0
  1151. pynerve-1.0.0/src/runtime/calibration_gpu.cu +33 -0
  1152. pynerve-1.0.0/src/runtime/calibration_gpu_benchmark.inl +149 -0
  1153. pynerve-1.0.0/src/runtime/calibration_gpu_kernels.inl +103 -0
  1154. pynerve-1.0.0/src/runtime/calibration_gpu_model.inl +406 -0
  1155. pynerve-1.0.0/src/runtime/calibration_model.cpp +303 -0
  1156. pynerve-1.0.0/src/runtime/calibration_model_detail.cpp +244 -0
  1157. pynerve-1.0.0/src/runtime/calibration_model_detail.hpp +18 -0
  1158. pynerve-1.0.0/src/runtime/hardware_probe.cpp +553 -0
  1159. pynerve-1.0.0/src/serialization/detail/serialization_detail.hpp +62 -0
  1160. pynerve-1.0.0/src/serialization/ph5_ph6_schema_registry.cpp +428 -0
  1161. pynerve-1.0.0/src/serialization/ph5_ph6_schema_serializer.cpp +524 -0
  1162. pynerve-1.0.0/src/serialization/serialization_arrow.cpp +168 -0
  1163. pynerve-1.0.0/src/serialization/serialization_flatbuffers.cpp +192 -0
  1164. pynerve-1.0.0/src/serialization/serialization_manager_base.cpp +265 -0
  1165. pynerve-1.0.0/src/serialization/serialization_schema.cpp +122 -0
  1166. pynerve-1.0.0/src/serialization/serialization_utilities.cpp +140 -0
  1167. pynerve-1.0.0/src/serialization/serialization_version_negotiator.cpp +194 -0
  1168. pynerve-1.0.0/src/serialization/serialization_wire.hpp +255 -0
  1169. pynerve-1.0.0/src/sheaf/sheaf_construction_parallel.cpp +425 -0
  1170. pynerve-1.0.0/src/sheaf/sheaf_engine.cpp +225 -0
  1171. pynerve-1.0.0/src/sheaf/sheaf_laplacian.cpp +488 -0
  1172. pynerve-1.0.0/src/sheaf/sheaf_laplacian_detail.hpp +152 -0
  1173. pynerve-1.0.0/src/sheaf/sheaf_laplacian_factory.cpp +296 -0
  1174. pynerve-1.0.0/src/sheaf/sheaf_laplacian_gpu.cu +186 -0
  1175. pynerve-1.0.0/src/sheaf/sheaf_laplacian_gpu_kernels.inl +197 -0
  1176. pynerve-1.0.0/src/sheaf/sheaf_laplacian_gpu_multi.inl +50 -0
  1177. pynerve-1.0.0/src/sheaf/sheaf_laplacian_gpu_solver.inl +240 -0
  1178. pynerve-1.0.0/src/sheaf/sheaf_laplacian_matrices.cpp +198 -0
  1179. pynerve-1.0.0/src/sheaf/sheaf_laplacian_tensorcore.cu +394 -0
  1180. pynerve-1.0.0/src/sheaf/sheaf_learning.cpp +432 -0
  1181. pynerve-1.0.0/src/sheaf/sheaf_learning_ops.cpp +163 -0
  1182. pynerve-1.0.0/src/sheaf/sheaf_morphism_async.cpp +160 -0
  1183. pynerve-1.0.0/src/sheaf/sheaf_morphism_optimizer.cpp +497 -0
  1184. pynerve-1.0.0/src/sheaf/sheaf_simd_ops.cpp +70 -0
  1185. pynerve-1.0.0/src/simd/CMakeLists.txt +36 -0
  1186. pynerve-1.0.0/src/simd/simd_avx2.cpp +1279 -0
  1187. pynerve-1.0.0/src/simd/simd_avx512.cpp +1198 -0
  1188. pynerve-1.0.0/src/simd/simd_base.cpp +180 -0
  1189. pynerve-1.0.0/src/simd/simd_neon.cpp +610 -0
  1190. pynerve-1.0.0/src/simd/simd_scalar.cpp +704 -0
  1191. pynerve-1.0.0/src/simd/simd_sse.cpp +1232 -0
  1192. pynerve-1.0.0/src/simd/simd_sve.cpp +921 -0
  1193. pynerve-1.0.0/src/specialized/cup_product.cu +117 -0
  1194. pynerve-1.0.0/src/specialized/cup_product_benchmark.inl +104 -0
  1195. pynerve-1.0.0/src/specialized/cup_product_computer.inl +248 -0
  1196. pynerve-1.0.0/src/specialized/cup_product_kernels.inl +110 -0
  1197. pynerve-1.0.0/src/specialized/reeb_graph.cu +592 -0
  1198. pynerve-1.0.0/src/specialized/zigzag_persistence.cu +124 -0
  1199. pynerve-1.0.0/src/specialized/zigzag_persistence_benchmark.inl +101 -0
  1200. pynerve-1.0.0/src/specialized/zigzag_persistence_computer.inl +306 -0
  1201. pynerve-1.0.0/src/specialized/zigzag_persistence_kernels.inl +81 -0
  1202. pynerve-1.0.0/src/spectral/cuda_laplacian.cu +602 -0
  1203. pynerve-1.0.0/src/spectral/dirac_clifford_product_gpu.cu +46 -0
  1204. pynerve-1.0.0/src/spectral/dirac_operator.cpp +295 -0
  1205. pynerve-1.0.0/src/spectral/dirac_operator_gpu.cu +643 -0
  1206. pynerve-1.0.0/src/spectral/eigensolver_gpu.cu +46 -0
  1207. pynerve-1.0.0/src/spectral/eigensolver_gpu_benchmark.inl +97 -0
  1208. pynerve-1.0.0/src/spectral/eigensolver_gpu_core.inl +377 -0
  1209. pynerve-1.0.0/src/spectral/eigensolver_gpu_extensions.inl +280 -0
  1210. pynerve-1.0.0/src/spectral/laplacian.cpp +528 -0
  1211. pynerve-1.0.0/src/spectral/laplacian_gpu_impl.cpp +398 -0
  1212. pynerve-1.0.0/src/spectral/persistent_laplacian.cpp +408 -0
  1213. pynerve-1.0.0/src/spectral/persistent_laplacian_gpu.cpp +460 -0
  1214. pynerve-1.0.0/src/spectral/persistent_laplacian_gpu_internal.hpp +49 -0
  1215. pynerve-1.0.0/src/spectral/persistent_laplacian_gpu_kernels.cu +47 -0
  1216. pynerve-1.0.0/src/spectral/persistent_laplacian_gpu_solver_helpers.cu +174 -0
  1217. pynerve-1.0.0/src/spectral/persistent_laplacian_support.cpp +252 -0
  1218. pynerve-1.0.0/src/spectral/spectral_anomaly_detector.cpp +276 -0
  1219. pynerve-1.0.0/src/spectral/spectral_feature_extractor.cpp +298 -0
  1220. pynerve-1.0.0/src/spectral/spectral_simd_ops.cpp +48 -0
  1221. pynerve-1.0.0/src/spectral/spectral_stack_manager.cpp +252 -0
  1222. pynerve-1.0.0/src/streaming/core/approximate_streaming_ph.cpp +87 -0
  1223. pynerve-1.0.0/src/streaming/core/streaming_diagram_sort_ops.cpp +69 -0
  1224. pynerve-1.0.0/src/streaming/core/streaming_distributed_realtime_ops.cpp +408 -0
  1225. pynerve-1.0.0/src/streaming/core/streaming_incremental_ops.cpp +316 -0
  1226. pynerve-1.0.0/src/streaming/core/streaming_windowed_ops.cpp +153 -0
  1227. pynerve-1.0.0/src/streaming/core/streaming_zigzag_filters_ops.cpp +253 -0
  1228. pynerve-1.0.0/src/streaming/core/streaming_zigzag_ops.cpp +371 -0
  1229. pynerve-1.0.0/src/streaming/detail/streaming_detail.hpp +64 -0
  1230. pynerve-1.0.0/src/streaming/gpu/gpu_multi_stream_ops.cpp +136 -0
  1231. pynerve-1.0.0/src/streaming/gpu/streaming_gpu_impl.cpp +406 -0
  1232. pynerve-1.0.0/src/streaming/gpu/streaming_persistence_cuda.cu +289 -0
  1233. pynerve-1.0.0/src/streaming/gpu/streaming_simd_ops.cpp +23 -0
  1234. pynerve-1.0.0/src/streaming/gpu/windowed_ph_cuda.cu +473 -0
  1235. pynerve-1.0.0/src/streaming/laplacian/incremental_graph_laplacian.cpp +304 -0
  1236. pynerve-1.0.0/src/streaming/laplacian/streaming_laplacian_ops.cpp +123 -0
  1237. pynerve-1.0.0/src/streaming/laplacian/streaming_laplacian_processor.cpp +123 -0
  1238. pynerve-1.0.0/src/streaming/lockfree/detail/streaming_lockfree_windows.inl +218 -0
  1239. pynerve-1.0.0/src/streaming/lockfree/streaming_lockfree_ops.cpp +412 -0
  1240. pynerve-1.0.0/src/streaming/lockfree/streaming_lockfree_runtime_ops.cpp +379 -0
  1241. pynerve-1.0.0/src/streaming/lockfree/streaming_mpi_ops.cpp +250 -0
  1242. pynerve-1.0.0/src/streaming/windowed/windowed_ph_benchmark_ops.cpp +157 -0
  1243. pynerve-1.0.0/src/streaming/windowed/windowed_ph_core_ops.cpp +337 -0
  1244. pynerve-1.0.0/src/streaming/windowed/windowed_ph_ops.cpp +375 -0
  1245. pynerve-1.0.0/src/streaming/windowed/windowed_ph_runtime_ops.cpp +254 -0
  1246. pynerve-1.0.0/src/summary/compact_summary.cpp +479 -0
  1247. pynerve-1.0.0/src/summary/compact_summary_factory_validator.cpp +78 -0
  1248. pynerve-1.0.0/src/summary/compact_summary_serialization.cpp +478 -0
  1249. pynerve-1.0.0/src/torch/autograd_torch.cpp +389 -0
  1250. pynerve-1.0.0/src/torch/boundary_matrix.cpp +445 -0
  1251. pynerve-1.0.0/src/torch/detail/filtration_factory_ops.inl +189 -0
  1252. pynerve-1.0.0/src/torch/detail/mapper_impl.inl +753 -0
  1253. pynerve-1.0.0/src/torch/detail/ml_vectorization_public_api.inl +53 -0
  1254. pynerve-1.0.0/src/torch/detail/persistence_diagram_ops.inl +444 -0
  1255. pynerve-1.0.0/src/torch/diagram_operations_torch.cpp +449 -0
  1256. pynerve-1.0.0/src/torch/filtration.cpp +407 -0
  1257. pynerve-1.0.0/src/torch/mapper.cpp +1 -0
  1258. pynerve-1.0.0/src/torch/ml_kernels.cpp +424 -0
  1259. pynerve-1.0.0/src/torch/ml_statistics.cpp +429 -0
  1260. pynerve-1.0.0/src/torch/ml_vectorization.cpp +408 -0
  1261. pynerve-1.0.0/src/torch/ml_vectorization_ops.cpp +127 -0
  1262. pynerve-1.0.0/src/torch/persistence_diagram.cpp +337 -0
  1263. pynerve-1.0.0/src/torch/simplex_tree.cpp +352 -0
  1264. pynerve-1.0.0/src/torch/simplex_tree_ops.cpp +232 -0
  1265. pynerve-1.0.0/src/torch/simplex_tree_queries.cpp +244 -0
  1266. pynerve-1.0.0/src/torch/torch_library.cpp +330 -0
  1267. pynerve-1.0.0/src/torch/vietoris_rips_torch.cpp +294 -0
  1268. pynerve-1.0.0/src/validation/microbenchmarks.cpp +106 -0
  1269. pynerve-1.0.0/src/validation/microbenchmarks_gpu_compact.inl +191 -0
  1270. pynerve-1.0.0/src/validation/microbenchmarks_streaming_laplacian.inl +193 -0
  1271. pynerve-1.0.0/src/validation/ph5_ph6_benchmark_ci.cpp +123 -0
  1272. pynerve-1.0.0/src/validation/ph5_ph6_benchmark_metrics.cpp +247 -0
  1273. pynerve-1.0.0/src/validation/ph5_ph6_microbenchmarks.cpp +451 -0
  1274. pynerve-1.0.0/src/validation/ph5_ph6_microbenchmarks_spectral.cpp +236 -0
  1275. pynerve-1.0.0/tools/backend_checks.py +155 -0
  1276. pynerve-1.0.0/tools/binding_smoke.py +248 -0
  1277. pynerve-1.0.0/tools/cpp_install_smoke.py +210 -0
  1278. pynerve-1.0.0/tools/generate_pyi.py +199 -0
  1279. pynerve-1.0.0/tools/install_smoke.py +104 -0
  1280. pynerve-1.0.0/tools/operator_schema.py +584 -0
  1281. pynerve-1.0.0/tools/performance_guards.py +140 -0
  1282. pynerve-1.0.0/tools/quality_checks/__init__.py +1 -0
  1283. pynerve-1.0.0/tools/quality_checks/binding_contracts.py +117 -0
  1284. pynerve-1.0.0/tools/quality_checks/build_contracts.py +715 -0
  1285. pynerve-1.0.0/tools/quality_checks/common.py +547 -0
  1286. pynerve-1.0.0/tools/quality_checks/import_api.py +143 -0
  1287. pynerve-1.0.0/tools/run_tests.py +177 -0
  1288. pynerve-1.0.0/tools/static_analysis.py +281 -0
  1289. pynerve-1.0.0/tools/test_matrix.py +265 -0
  1290. pynerve-1.0.0/tools/torch_binding_smoke.py +995 -0
@@ -0,0 +1,309 @@
1
+ # Python bindings CMake configuration
2
+
3
+ cmake_minimum_required(VERSION 3.20)
4
+
5
+ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
6
+ project(NervePython VERSION 1.0.0 LANGUAGES CXX)
7
+ option(BUILD_PYTHON "Build Python bindings" ON)
8
+ if(NOT BUILD_PYTHON)
9
+ message(FATAL_ERROR "The standalone Nerve Python package build requires BUILD_PYTHON=ON")
10
+ endif()
11
+ endif()
12
+
13
+ set(NERVE_SOURCE_ROOT "")
14
+ foreach(NERVE_SOURCE_ROOT_CANDIDATE
15
+ "${CMAKE_CURRENT_SOURCE_DIR}/.."
16
+ "${CMAKE_CURRENT_SOURCE_DIR}")
17
+ if(EXISTS "${NERVE_SOURCE_ROOT_CANDIDATE}/src/CMakeLists.txt")
18
+ get_filename_component(NERVE_SOURCE_ROOT "${NERVE_SOURCE_ROOT_CANDIDATE}" REALPATH)
19
+ break()
20
+ endif()
21
+ endforeach()
22
+ if(NOT NERVE_SOURCE_ROOT)
23
+ message(FATAL_ERROR "Nerve Python bindings require the Nerve src tree")
24
+ endif()
25
+ set(NERVE_SRC_ROOT "${NERVE_SOURCE_ROOT}/src")
26
+ set(NERVE_TOOLS_ROOT "${NERVE_SOURCE_ROOT}/tools")
27
+ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
28
+ set(NERVE_PYTHON_BUILD_ROOT "${CMAKE_CURRENT_BINARY_DIR}/python")
29
+ else()
30
+ set(NERVE_PYTHON_BUILD_ROOT "${CMAKE_CURRENT_BINARY_DIR}")
31
+ endif()
32
+
33
+ if(NOT TARGET nerve_core)
34
+ if(NOT DEFINED ENABLE_CUDA)
35
+ option(ENABLE_CUDA "Enable CUDA-accelerated features (GPU memory, kernels)" OFF)
36
+ endif()
37
+ if(NOT DEFINED BUILD_TESTS)
38
+ option(BUILD_TESTS "Build tests" OFF)
39
+ endif()
40
+ if(NOT DEFINED BUILD_BENCHMARKS)
41
+ option(BUILD_BENCHMARKS "Build benchmarks" OFF)
42
+ endif()
43
+ if(NOT DEFINED ENABLE_PYTORCH)
44
+ option(ENABLE_PYTORCH "Enable PyTorch differentiable operations" ON)
45
+ endif()
46
+ if(NOT DEFINED ENABLE_MPI)
47
+ option(ENABLE_MPI "Enable distributed/MPI reduction features" OFF)
48
+ endif()
49
+ if(NOT DEFINED ENABLE_EIGEN)
50
+ option(ENABLE_EIGEN "Enable Eigen3-backed gradient and sheaf Laplacian components" OFF)
51
+ endif()
52
+ if(NOT DEFINED ENABLE_NUMA)
53
+ option(ENABLE_NUMA "Enable NUMA memory optimizations" OFF)
54
+ endif()
55
+ if(NOT DEFINED ENABLE_ADVANCED_FEATURES)
56
+ option(ENABLE_ADVANCED_FEATURES "Enable all advanced features" OFF)
57
+ endif()
58
+ if(NOT DEFINED NERVE_NATIVE_ARCH)
59
+ option(NERVE_NATIVE_ARCH
60
+ "Tune CPU code generation for the build host; disables portable binary output"
61
+ OFF)
62
+ endif()
63
+ find_package(Threads REQUIRED)
64
+ if(ENABLE_PYTORCH)
65
+ find_package(Torch QUIET)
66
+ endif()
67
+ add_subdirectory("${NERVE_SRC_ROOT}" "${CMAKE_CURRENT_BINARY_DIR}/nerve-src")
68
+ endif()
69
+
70
+ if(BUILD_TESTS AND NOT NERVE_TESTS_ADDED)
71
+ include(CTest)
72
+ if(EXISTS "${NERVE_SOURCE_ROOT}/tests/CMakeLists.txt")
73
+ add_subdirectory("${NERVE_SOURCE_ROOT}/tests" "${CMAKE_CURRENT_BINARY_DIR}/tests")
74
+ endif()
75
+ endif()
76
+
77
+ # Find Python and pybind11.
78
+ find_package(Python 3.10...<3.14 COMPONENTS Interpreter Development NumPy REQUIRED)
79
+ execute_process(
80
+ COMMAND ${Python_EXECUTABLE} -c "import pybind11; print(pybind11.get_cmake_dir())"
81
+ OUTPUT_VARIABLE PYBIND11_CMAKE_DIR
82
+ RESULT_VARIABLE PYBIND11_CMAKE_DIR_RESULT
83
+ OUTPUT_STRIP_TRAILING_WHITESPACE
84
+ ERROR_QUIET
85
+ )
86
+ if(PYBIND11_CMAKE_DIR_RESULT EQUAL 0 AND PYBIND11_CMAKE_DIR)
87
+ set(pybind11_DIR "${PYBIND11_CMAKE_DIR}")
88
+ endif()
89
+ find_package(pybind11 CONFIG REQUIRED)
90
+
91
+ # Python binding sources.
92
+ set(PYTHON_API_SOURCES
93
+ bindings/nerve_api_bindings.cpp
94
+ ${NERVE_SRC_ROOT}/algorithms/distance.cpp
95
+ ${NERVE_SRC_ROOT}/persistence/utils/diagram_statistics.cpp
96
+ )
97
+
98
+ # Create Python extension module with correct name
99
+ pybind11_add_module(pynerve_internal ${PYTHON_API_SOURCES})
100
+
101
+ pybind11_add_module(nerve_extras
102
+ bindings/nerve_extras_bindings.cpp
103
+ )
104
+
105
+ target_link_libraries(nerve_extras PRIVATE pybind11::headers nerve_core Python::NumPy)
106
+ target_include_directories(nerve_extras PRIVATE
107
+ ${CMAKE_CURRENT_SOURCE_DIR}/bindings
108
+ ${NERVE_SRC_ROOT}/include
109
+ )
110
+ target_compile_features(nerve_extras PRIVATE cxx_std_20)
111
+ set_target_properties(nerve_extras PROPERTIES
112
+ OUTPUT_NAME nerve_extras
113
+ SUFFIX ${PYTHON_MODULE_EXTENSION}
114
+ LIBRARY_OUTPUT_DIRECTORY "${NERVE_PYTHON_BUILD_ROOT}"
115
+ )
116
+
117
+ pybind11_add_module(algorithms_bindings
118
+ bindings/nerve_algorithms_bindings.cpp
119
+ )
120
+
121
+ # PyTorch-specific bindings (if Torch is available)
122
+ if(ENABLE_PYTORCH)
123
+ find_package(Torch QUIET)
124
+ else()
125
+ set(Torch_FOUND OFF)
126
+ endif()
127
+
128
+ if(Torch_FOUND)
129
+ message(STATUS "PyTorch found - Building torch-native bindings")
130
+
131
+ set(TORCH_BINDING_SOURCES
132
+ bindings/nerve_torch_bindings.cpp
133
+ )
134
+ foreach(NERVE_TORCH_SOURCE IN LISTS NERVE_TORCH_SOURCES)
135
+ list(APPEND TORCH_BINDING_SOURCES
136
+ "${NERVE_SRC_ROOT}/${NERVE_TORCH_SOURCE}"
137
+ )
138
+ endforeach()
139
+
140
+ pybind11_add_module(nerve_torch_internal ${TORCH_BINDING_SOURCES})
141
+
142
+ target_include_directories(nerve_torch_internal PRIVATE
143
+ ${TORCH_INCLUDE_DIRS}
144
+ ${CMAKE_CURRENT_SOURCE_DIR}/bindings
145
+ ${NERVE_SRC_ROOT}/include
146
+ )
147
+
148
+ target_link_libraries(nerve_torch_internal
149
+ PRIVATE ${TORCH_LIBRARIES}
150
+ PRIVATE nerve_core
151
+ PRIVATE nerve_torch
152
+ )
153
+ get_filename_component(NERVE_TORCH_ROOT "${Torch_DIR}/../../.." ABSOLUTE)
154
+ find_library(NERVE_TORCH_PYTHON_LIBRARY
155
+ NAMES torch_python
156
+ PATHS "${NERVE_TORCH_ROOT}/lib"
157
+ NO_DEFAULT_PATH
158
+ )
159
+ if(NOT NERVE_TORCH_PYTHON_LIBRARY)
160
+ message(FATAL_ERROR "PyTorch-native bindings require libtorch_python")
161
+ endif()
162
+ target_link_libraries(nerve_torch_internal PRIVATE ${NERVE_TORCH_PYTHON_LIBRARY})
163
+
164
+ target_compile_definitions(nerve_torch_internal PRIVATE NERVE_TORCH_AVAILABLE)
165
+ target_compile_features(nerve_torch_internal PRIVATE cxx_std_20)
166
+ set_target_properties(nerve_torch_internal PROPERTIES
167
+ LIBRARY_OUTPUT_DIRECTORY "${NERVE_PYTHON_BUILD_ROOT}"
168
+ )
169
+
170
+ message(STATUS "nerve_torch_internal module will be built")
171
+ else()
172
+ message(STATUS "PyTorch not found - Skipping torch-native bindings")
173
+ endif()
174
+
175
+ # Link libraries
176
+ target_link_libraries(pynerve_internal PRIVATE pybind11::headers nerve_core)
177
+ target_link_libraries(algorithms_bindings PRIVATE pybind11::headers nerve_core)
178
+ target_link_libraries(pynerve_internal PRIVATE Python::NumPy)
179
+ target_link_libraries(algorithms_bindings PRIVATE Python::NumPy)
180
+
181
+ # Include directories
182
+ target_include_directories(pynerve_internal PRIVATE
183
+ ${CMAKE_CURRENT_SOURCE_DIR}/bindings
184
+ ${NERVE_SRC_ROOT}/include
185
+ )
186
+ target_include_directories(algorithms_bindings PRIVATE
187
+ ${CMAKE_CURRENT_SOURCE_DIR}/bindings
188
+ ${NERVE_SRC_ROOT}/include
189
+ )
190
+
191
+ # Compiler flags
192
+ target_compile_features(pynerve_internal PRIVATE cxx_std_20)
193
+ target_compile_features(algorithms_bindings PRIVATE cxx_std_20)
194
+
195
+ if(Torch_FOUND AND TORCH_CXX_FLAGS)
196
+ separate_arguments(NERVE_TORCH_CXX_FLAGS NATIVE_COMMAND "${TORCH_CXX_FLAGS}")
197
+ target_compile_options(pynerve_internal PRIVATE ${NERVE_TORCH_CXX_FLAGS})
198
+ target_compile_options(algorithms_bindings PRIVATE ${NERVE_TORCH_CXX_FLAGS})
199
+ endif()
200
+
201
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
202
+ target_compile_options(pynerve_internal PRIVATE -Wall -Wextra -Wpedantic)
203
+ target_compile_options(algorithms_bindings PRIVATE -Wall -Wextra -Wpedantic)
204
+ endif()
205
+
206
+ # Module properties
207
+ set_target_properties(pynerve_internal PROPERTIES
208
+ OUTPUT_NAME pynerve_internal
209
+ SUFFIX ${PYTHON_MODULE_EXTENSION}
210
+ LIBRARY_OUTPUT_DIRECTORY "${NERVE_PYTHON_BUILD_ROOT}"
211
+ )
212
+ set_target_properties(algorithms_bindings PROPERTIES
213
+ OUTPUT_NAME algorithms_bindings
214
+ SUFFIX ${PYTHON_MODULE_EXTENSION}
215
+ LIBRARY_OUTPUT_DIRECTORY "${NERVE_PYTHON_BUILD_ROOT}"
216
+ )
217
+
218
+ set(NERVE_BINDING_SMOKE_COMMAND
219
+ ${Python_EXECUTABLE}
220
+ ${NERVE_TOOLS_ROOT}/binding_smoke.py
221
+ --build-dir ${CMAKE_BINARY_DIR}
222
+ )
223
+ add_custom_target(pynerve_python_binding_smoke
224
+ COMMAND ${NERVE_BINDING_SMOKE_COMMAND}
225
+ DEPENDS pynerve_internal algorithms_bindings nerve_extras
226
+ WORKING_DIRECTORY ${NERVE_SOURCE_ROOT}
227
+ COMMENT "Smoke-testing Python extension modules"
228
+ )
229
+ if(BUILD_TESTING)
230
+ add_test(
231
+ NAME pynerve_python_binding_smoke
232
+ COMMAND ${NERVE_BINDING_SMOKE_COMMAND}
233
+ WORKING_DIRECTORY ${NERVE_SOURCE_ROOT}
234
+ )
235
+ set_tests_properties(pynerve_python_binding_smoke PROPERTIES
236
+ LABELS "python;bindings;operators"
237
+ )
238
+ endif()
239
+
240
+ if(Torch_FOUND)
241
+ set(NERVE_TORCH_BINDING_SMOKE_COMMAND
242
+ ${Python_EXECUTABLE}
243
+ ${NERVE_TOOLS_ROOT}/torch_binding_smoke.py
244
+ --build-dir ${CMAKE_BINARY_DIR}
245
+ )
246
+ add_custom_target(pynerve_torch_binding_smoke
247
+ COMMAND ${NERVE_TORCH_BINDING_SMOKE_COMMAND}
248
+ DEPENDS pynerve_internal algorithms_bindings nerve_torch_internal
249
+ WORKING_DIRECTORY ${NERVE_SOURCE_ROOT}
250
+ COMMENT "Smoke-testing PyTorch-native extension modules"
251
+ )
252
+ if(BUILD_TESTING)
253
+ add_test(
254
+ NAME pynerve_torch_binding_smoke
255
+ COMMAND ${NERVE_TORCH_BINDING_SMOKE_COMMAND}
256
+ WORKING_DIRECTORY ${NERVE_SOURCE_ROOT}
257
+ )
258
+ set_tests_properties(pynerve_torch_binding_smoke PROPERTIES
259
+ LABELS "torch;python;bindings;gradient"
260
+ )
261
+ endif()
262
+ endif()
263
+
264
+ # Copy the source Python package into the build tree.
265
+ file(GLOB_RECURSE NERVE_PYTHON_PACKAGE_FILES CONFIGURE_DEPENDS
266
+ "${CMAKE_CURRENT_SOURCE_DIR}/pynerve/*.py"
267
+ "${CMAKE_CURRENT_SOURCE_DIR}/pynerve/*.pyi"
268
+ )
269
+ foreach(NERVE_PYTHON_PACKAGE_FILE IN LISTS NERVE_PYTHON_PACKAGE_FILES)
270
+ file(RELATIVE_PATH NERVE_PYTHON_PACKAGE_RELATIVE
271
+ "${CMAKE_CURRENT_SOURCE_DIR}"
272
+ "${NERVE_PYTHON_PACKAGE_FILE}"
273
+ )
274
+ configure_file(
275
+ "${NERVE_PYTHON_PACKAGE_FILE}"
276
+ "${NERVE_PYTHON_BUILD_ROOT}/${NERVE_PYTHON_PACKAGE_RELATIVE}"
277
+ COPYONLY
278
+ )
279
+ endforeach()
280
+
281
+ # Install Python package
282
+ install(TARGETS pynerve_internal
283
+ DESTINATION .
284
+ COMPONENT python
285
+ )
286
+ install(TARGETS algorithms_bindings
287
+ DESTINATION .
288
+ COMPONENT python
289
+ )
290
+ install(TARGETS nerve_extras
291
+ DESTINATION .
292
+ COMPONENT python
293
+ )
294
+ install(DIRECTORY pynerve/
295
+ DESTINATION pynerve
296
+ COMPONENT python
297
+ FILES_MATCHING
298
+ PATTERN "__pycache__" EXCLUDE
299
+ PATTERN "*.py"
300
+ PATTERN "*.pyi"
301
+ )
302
+
303
+ # Install torch bindings if built
304
+ if(Torch_FOUND)
305
+ install(TARGETS nerve_torch_internal
306
+ DESTINATION .
307
+ COMPONENT python
308
+ )
309
+ endif()
pynerve-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Nerve contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.