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.
- pynerve-1.0.0/CMakeLists.txt +309 -0
- pynerve-1.0.0/LICENSE +21 -0
- pynerve-1.0.0/PKG-INFO +399 -0
- pynerve-1.0.0/README.md +352 -0
- pynerve-1.0.0/bindings/detail/nerve_torch_bindings_classes.inl +230 -0
- pynerve-1.0.0/bindings/detail/nerve_torch_bindings_exceptions.inl +90 -0
- pynerve-1.0.0/bindings/detail/nerve_torch_bindings_functional_api.inl +272 -0
- pynerve-1.0.0/bindings/detail/nerve_torch_bindings_persistence_core.inl +302 -0
- pynerve-1.0.0/bindings/detail/nerve_torch_bindings_persistence_runtime.inl +221 -0
- pynerve-1.0.0/bindings/detail/numpy_arrays.hpp +52 -0
- pynerve-1.0.0/bindings/nerve_algorithms_bindings.cpp +366 -0
- pynerve-1.0.0/bindings/nerve_api_bindings.cpp +433 -0
- pynerve-1.0.0/bindings/nerve_extras_bindings.cpp +2153 -0
- pynerve-1.0.0/bindings/nerve_torch_bindings.cpp +67 -0
- pynerve-1.0.0/dist/pynerve-1.0.0-cp311-cp311-linux_x86_64.whl +0 -0
- pynerve-1.0.0/pynerve/__init__.py +292 -0
- pynerve-1.0.0/pynerve/__main__.py +145 -0
- pynerve-1.0.0/pynerve/_async_compute.py +93 -0
- pynerve-1.0.0/pynerve/_async_facade.py +160 -0
- pynerve-1.0.0/pynerve/_async_gpu.py +73 -0
- pynerve-1.0.0/pynerve/_async_loader.py +151 -0
- pynerve-1.0.0/pynerve/_compute_api.py +406 -0
- pynerve-1.0.0/pynerve/_compute_backend.py +213 -0
- pynerve-1.0.0/pynerve/_compute_core.py +49 -0
- pynerve-1.0.0/pynerve/_compute_engine.py +89 -0
- pynerve-1.0.0/pynerve/_compute_pipeline.py +198 -0
- pynerve-1.0.0/pynerve/_constants.py +15 -0
- pynerve-1.0.0/pynerve/_cupy_api.py +131 -0
- pynerve-1.0.0/pynerve/_cupy_compat.py +36 -0
- pynerve-1.0.0/pynerve/_cupy_convert.py +173 -0
- pynerve-1.0.0/pynerve/_cupy_memory.py +185 -0
- pynerve-1.0.0/pynerve/_cupy_persistence.py +242 -0
- pynerve-1.0.0/pynerve/_diagnostics_data.py +122 -0
- pynerve-1.0.0/pynerve/_diagnostics_failure.py +238 -0
- pynerve-1.0.0/pynerve/_diagnostics_system.py +179 -0
- pynerve-1.0.0/pynerve/_error_codes.py +129 -0
- pynerve-1.0.0/pynerve/_error_translation.py +119 -0
- pynerve-1.0.0/pynerve/_fallback_classes.py +165 -0
- pynerve-1.0.0/pynerve/_fast_boundary.py +76 -0
- pynerve-1.0.0/pynerve/_fast_distance.py +85 -0
- pynerve-1.0.0/pynerve/_fast_filtration.py +58 -0
- pynerve-1.0.0/pynerve/_fast_graph.py +99 -0
- pynerve-1.0.0/pynerve/_fast_representations.py +154 -0
- pynerve-1.0.0/pynerve/_fast_simplices.py +105 -0
- pynerve-1.0.0/pynerve/_formats_auto.py +93 -0
- pynerve-1.0.0/pynerve/_formats_files.py +392 -0
- pynerve-1.0.0/pynerve/_formats_interop.py +243 -0
- pynerve-1.0.0/pynerve/_image_utils.py +118 -0
- pynerve-1.0.0/pynerve/_numba_compat.py +36 -0
- pynerve-1.0.0/pynerve/_numba_dispatch.py +92 -0
- pynerve-1.0.0/pynerve/_numba_distance.py +58 -0
- pynerve-1.0.0/pynerve/_numba_graph.py +82 -0
- pynerve-1.0.0/pynerve/_numba_reduction.py +79 -0
- pynerve-1.0.0/pynerve/_numba_representations.py +77 -0
- pynerve-1.0.0/pynerve/_numba_simplices.py +79 -0
- pynerve-1.0.0/pynerve/_parallel_api.py +94 -0
- pynerve-1.0.0/pynerve/_parallel_patterns.py +137 -0
- pynerve-1.0.0/pynerve/_parallel_pool.py +218 -0
- pynerve-1.0.0/pynerve/_persistence_result.py +183 -0
- pynerve-1.0.0/pynerve/_pipeline_advanced.py +200 -0
- pynerve-1.0.0/pynerve/_pipeline_core.py +222 -0
- pynerve-1.0.0/pynerve/_pipeline_topology.py +157 -0
- pynerve-1.0.0/pynerve/_shared_memory.py +172 -0
- pynerve-1.0.0/pynerve/_streaming_persistence.py +201 -0
- pynerve-1.0.0/pynerve/_torch_diagrams.py +64 -0
- pynerve-1.0.0/pynerve/_types.py +176 -0
- pynerve-1.0.0/pynerve/_utils.py +258 -0
- pynerve-1.0.0/pynerve/_validation/__init__.py +63 -0
- pynerve-1.0.0/pynerve/_validation/_geometric.py +307 -0
- pynerve-1.0.0/pynerve/_validation/_helpers.py +23 -0
- pynerve-1.0.0/pynerve/_validation/_scalars.py +281 -0
- pynerve-1.0.0/pynerve/_validation.py +70 -0
- pynerve-1.0.0/pynerve/_version.py +6 -0
- pynerve-1.0.0/pynerve/algorithms/__init__.py +271 -0
- pynerve-1.0.0/pynerve/async_api.py +38 -0
- pynerve-1.0.0/pynerve/benchmark/__init__.py +37 -0
- pynerve-1.0.0/pynerve/benchmark/_common.py +41 -0
- pynerve-1.0.0/pynerve/benchmark/_compare_external.py +317 -0
- pynerve-1.0.0/pynerve/benchmark/_compare_internal.py +203 -0
- pynerve-1.0.0/pynerve/benchmark/_comparison_types.py +79 -0
- pynerve-1.0.0/pynerve/benchmark/_comparisons.py +30 -0
- pynerve-1.0.0/pynerve/benchmark/_scalability.py +125 -0
- pynerve-1.0.0/pynerve/benchmark/_suite.py +182 -0
- pynerve-1.0.0/pynerve/benchmark/_timer.py +124 -0
- pynerve-1.0.0/pynerve/cache/__init__.py +22 -0
- pynerve-1.0.0/pynerve/cache/_engine.py +338 -0
- pynerve-1.0.0/pynerve/cache/_memoize.py +137 -0
- pynerve-1.0.0/pynerve/cache/_smart.py +171 -0
- pynerve-1.0.0/pynerve/cupy_ops.py +62 -0
- pynerve-1.0.0/pynerve/datasets.py +191 -0
- pynerve-1.0.0/pynerve/diagnostics.py +263 -0
- pynerve-1.0.0/pynerve/diff/__init__.py +68 -0
- pynerve-1.0.0/pynerve/diff/_composite_loss.py +99 -0
- pynerve-1.0.0/pynerve/diff/_diagram_distances.py +155 -0
- pynerve-1.0.0/pynerve/diff/_loss_helpers.py +62 -0
- pynerve-1.0.0/pynerve/diff/_loss_modules.py +260 -0
- pynerve-1.0.0/pynerve/diff/_ph_representations.py +94 -0
- pynerve-1.0.0/pynerve/diff/ph_layer.py +452 -0
- pynerve-1.0.0/pynerve/diff/ph_layer_module.py +265 -0
- pynerve-1.0.0/pynerve/diff/topology_loss.py +31 -0
- pynerve-1.0.0/pynerve/exceptions/__init__.py +77 -0
- pynerve-1.0.0/pynerve/exceptions/_base.py +77 -0
- pynerve-1.0.0/pynerve/exceptions/_cpp.py +151 -0
- pynerve-1.0.0/pynerve/exceptions/_gpu.py +29 -0
- pynerve-1.0.0/pynerve/exceptions/_memory.py +28 -0
- pynerve-1.0.0/pynerve/exceptions/_numerical.py +39 -0
- pynerve-1.0.0/pynerve/exceptions/_validation.py +195 -0
- pynerve-1.0.0/pynerve/fast_ops.py +337 -0
- pynerve-1.0.0/pynerve/formats.py +135 -0
- pynerve-1.0.0/pynerve/jit/__init__.py +175 -0
- pynerve-1.0.0/pynerve/jit/_cache.py +70 -0
- pynerve-1.0.0/pynerve/jit/_cpu_kernels.py +145 -0
- pynerve-1.0.0/pynerve/jit/_device.py +18 -0
- pynerve-1.0.0/pynerve/jit/_gpu_kernels.py +107 -0
- pynerve-1.0.0/pynerve/jit/_setup.py +47 -0
- pynerve-1.0.0/pynerve/jit/_validate.py +53 -0
- pynerve-1.0.0/pynerve/mapper/__init__.py +46 -0
- pynerve-1.0.0/pynerve/mapper/_gnn_classifier.py +148 -0
- pynerve-1.0.0/pynerve/mapper/_gnn_conv.py +208 -0
- pynerve-1.0.0/pynerve/mapper/_gnn_pooling.py +170 -0
- pynerve-1.0.0/pynerve/mapper/_gnn_readout.py +87 -0
- pynerve-1.0.0/pynerve/mapper/_gnn_validation.py +37 -0
- pynerve-1.0.0/pynerve/mapper/_learnable_mapper_components.py +267 -0
- pynerve-1.0.0/pynerve/mapper/_learnable_mapper_graph.py +95 -0
- pynerve-1.0.0/pynerve/mapper/_learnable_mapper_models.py +319 -0
- pynerve-1.0.0/pynerve/mapper/learnable_mapper.py +20 -0
- pynerve-1.0.0/pynerve/mapper/mapper_gnn.py +15 -0
- pynerve-1.0.0/pynerve/merge.py +90 -0
- pynerve-1.0.0/pynerve/mp_shared.py +15 -0
- pynerve-1.0.0/pynerve/nn/__init__.py +71 -0
- pynerve-1.0.0/pynerve/nn/_building_blocks_diagram.py +40 -0
- pynerve-1.0.0/pynerve/nn/_building_blocks_distance.py +102 -0
- pynerve-1.0.0/pynerve/nn/_building_blocks_persistence.py +380 -0
- pynerve-1.0.0/pynerve/nn/_diagram_attention.py +189 -0
- pynerve-1.0.0/pynerve/nn/_diagram_conv_layers.py +197 -0
- pynerve-1.0.0/pynerve/nn/_diagram_conv_net.py +83 -0
- pynerve-1.0.0/pynerve/nn/_diagram_pooling.py +110 -0
- pynerve-1.0.0/pynerve/nn/_ph_autograd.py +148 -0
- pynerve-1.0.0/pynerve/nn/_ph_module.py +378 -0
- pynerve-1.0.0/pynerve/nn/building_blocks.py +19 -0
- pynerve-1.0.0/pynerve/nn/diagram_conv.py +17 -0
- pynerve-1.0.0/pynerve/nn/persistent_homology.py +41 -0
- pynerve-1.0.0/pynerve/nn/sparse_ph.py +468 -0
- pynerve-1.0.0/pynerve/nn/topo_regularization.py +447 -0
- pynerve-1.0.0/pynerve/numba_kernels.py +68 -0
- pynerve-1.0.0/pynerve/pipeline.py +13 -0
- pynerve-1.0.0/pynerve/py.typed +1 -0
- pynerve-1.0.0/pynerve/random.py +403 -0
- pynerve-1.0.0/pynerve/regularization/__init__.py +48 -0
- pynerve-1.0.0/pynerve/regularization/_persistent_batch_norm.py +83 -0
- pynerve-1.0.0/pynerve/regularization/_topology_dropout.py +130 -0
- pynerve-1.0.0/pynerve/regularization/_topology_regularizers.py +255 -0
- pynerve-1.0.0/pynerve/regularization/persistent_dropout.py +483 -0
- pynerve-1.0.0/pynerve/regularization/topology_constraints.py +22 -0
- pynerve-1.0.0/pynerve/ssl/__init__.py +37 -0
- pynerve-1.0.0/pynerve/ssl/_augmentation.py +196 -0
- pynerve-1.0.0/pynerve/ssl/_betti.py +75 -0
- pynerve-1.0.0/pynerve/ssl/_byol.py +145 -0
- pynerve-1.0.0/pynerve/ssl/_completion.py +108 -0
- pynerve-1.0.0/pynerve/ssl/_denoising.py +107 -0
- pynerve-1.0.0/pynerve/ssl/_filtration.py +114 -0
- pynerve-1.0.0/pynerve/ssl/_multitask.py +173 -0
- pynerve-1.0.0/pynerve/ssl/_persistence_prediction.py +82 -0
- pynerve-1.0.0/pynerve/ssl/_simclr.py +101 -0
- pynerve-1.0.0/pynerve/ssl/_validation.py +17 -0
- pynerve-1.0.0/pynerve/ssl/contrastive_learning.py +15 -0
- pynerve-1.0.0/pynerve/ssl/topology_completion.py +17 -0
- pynerve-1.0.0/pynerve/torch/__init__.py +168 -0
- pynerve-1.0.0/pynerve/torch/_backend.py +279 -0
- pynerve-1.0.0/pynerve/torch/_diagram.py +271 -0
- pynerve-1.0.0/pynerve/torch/_distance_core.py +17 -0
- pynerve-1.0.0/pynerve/torch/_distance_core_impl.py +395 -0
- pynerve-1.0.0/pynerve/torch/_kernels_pairwise.py +213 -0
- pynerve-1.0.0/pynerve/torch/_mapper_impl.py +472 -0
- pynerve-1.0.0/pynerve/torch/_persistence_api.py +184 -0
- pynerve-1.0.0/pynerve/torch/_persistence_core.py +23 -0
- pynerve-1.0.0/pynerve/torch/_persistence_core_impl.py +373 -0
- pynerve-1.0.0/pynerve/torch/_persistence_helpers.py +137 -0
- pynerve-1.0.0/pynerve/torch/_persistence_image.py +129 -0
- pynerve-1.0.0/pynerve/torch/_persistence_python.py +124 -0
- pynerve-1.0.0/pynerve/torch/_persistence_validators.py +105 -0
- pynerve-1.0.0/pynerve/torch/_persistence_vr.py +182 -0
- pynerve-1.0.0/pynerve/torch/_sklearn_batched.py +104 -0
- pynerve-1.0.0/pynerve/torch/_sklearn_compat.py +51 -0
- pynerve-1.0.0/pynerve/torch/_sklearn_pipeline.py +196 -0
- pynerve-1.0.0/pynerve/torch/_statistics_core.py +293 -0
- pynerve-1.0.0/pynerve/torch/_training_callbacks.py +168 -0
- pynerve-1.0.0/pynerve/torch/_training_helpers.py +83 -0
- pynerve-1.0.0/pynerve/torch/_training_metrics.py +150 -0
- pynerve-1.0.0/pynerve/torch/_vectorization_basis.py +326 -0
- pynerve-1.0.0/pynerve/torch/_vectorization_spectral.py +126 -0
- pynerve-1.0.0/pynerve/torch/_viz_data.py +317 -0
- pynerve-1.0.0/pynerve/torch/data.py +313 -0
- pynerve-1.0.0/pynerve/torch/kernels.py +25 -0
- pynerve-1.0.0/pynerve/torch/kernels_impl.py +100 -0
- pynerve-1.0.0/pynerve/torch/mapper.py +435 -0
- pynerve-1.0.0/pynerve/torch/nn_layers.py +21 -0
- pynerve-1.0.0/pynerve/torch/nn_layers_impl.py +385 -0
- pynerve-1.0.0/pynerve/torch/preprocessing.py +471 -0
- pynerve-1.0.0/pynerve/torch/sklearn_transformers.py +428 -0
- pynerve-1.0.0/pynerve/torch/statistics.py +28 -0
- pynerve-1.0.0/pynerve/torch/statistics_impl.py +67 -0
- pynerve-1.0.0/pynerve/torch/tensorboard.py +202 -0
- pynerve-1.0.0/pynerve/torch/training_utils.py +22 -0
- pynerve-1.0.0/pynerve/torch/training_utils_impl.py +198 -0
- pynerve-1.0.0/pynerve/torch/vectorization.py +20 -0
- pynerve-1.0.0/pynerve/torch/vectorization_impl.py +48 -0
- pynerve-1.0.0/pynerve/torch/viz.py +21 -0
- pynerve-1.0.0/pynerve/torch/viz_impl.py +63 -0
- pynerve-1.0.0/pynerve/training/__init__.py +55 -0
- pynerve-1.0.0/pynerve/training/_adaptive.py +79 -0
- pynerve-1.0.0/pynerve/training/_betti.py +114 -0
- pynerve-1.0.0/pynerve/training/_curriculum_specialized.py +125 -0
- pynerve-1.0.0/pynerve/training/_curriculum_trainer.py +212 -0
- pynerve-1.0.0/pynerve/training/_importance.py +130 -0
- pynerve-1.0.0/pynerve/training/_multiscale.py +103 -0
- pynerve-1.0.0/pynerve/training/_sampler_utils.py +29 -0
- pynerve-1.0.0/pynerve/training/_stability_regularizer.py +274 -0
- pynerve-1.0.0/pynerve/training/_stability_training.py +387 -0
- pynerve-1.0.0/pynerve/training/_stratified.py +122 -0
- pynerve-1.0.0/pynerve/training/curriculum.py +326 -0
- pynerve-1.0.0/pynerve/training/stability_reg.py +19 -0
- pynerve-1.0.0/pynerve/training/topology_sampler.py +17 -0
- pynerve-1.0.0/pynerve/triton/__init__.py +49 -0
- pynerve-1.0.0/pynerve/triton/_distance.py +163 -0
- pynerve-1.0.0/pynerve/triton/_laplacian.py +101 -0
- pynerve-1.0.0/pynerve/triton/_mapper.py +420 -0
- pynerve-1.0.0/pynerve/triton/_nn_ops.py +256 -0
- pynerve-1.0.0/pynerve/triton/_persistence.py +260 -0
- pynerve-1.0.0/pynerve/triton/_wasserstein.py +177 -0
- pynerve-1.0.0/pyproject.toml +93 -0
- pynerve-1.0.0/src/CMakeLists.txt +389 -0
- pynerve-1.0.0/src/acceleration/algebra_acceleration.cpp +69 -0
- pynerve-1.0.0/src/acceleration/algorithms_acceleration.cpp +154 -0
- pynerve-1.0.0/src/acceleration/autodiff_acceleration.cpp +90 -0
- pynerve-1.0.0/src/acceleration/compression_acceleration.cpp +46 -0
- pynerve-1.0.0/src/acceleration/core_acceleration.cpp +91 -0
- pynerve-1.0.0/src/acceleration/dmt_acceleration.cpp +82 -0
- pynerve-1.0.0/src/acceleration/encoders_acceleration.cpp +84 -0
- pynerve-1.0.0/src/acceleration/filtration_acceleration.cpp +104 -0
- pynerve-1.0.0/src/acceleration/graphs_acceleration.cpp +63 -0
- pynerve-1.0.0/src/acceleration/metrics_acceleration.cpp +114 -0
- pynerve-1.0.0/src/acceleration/ml_acceleration.cpp +82 -0
- pynerve-1.0.0/src/acceleration/nn_acceleration.cpp +93 -0
- pynerve-1.0.0/src/acceleration/optimization_acceleration.cpp +92 -0
- pynerve-1.0.0/src/acceleration/persistence_acceleration.cpp +110 -0
- pynerve-1.0.0/src/acceleration/probabilistic_acceleration.cpp +91 -0
- pynerve-1.0.0/src/acceleration/runtime_acceleration.cpp +26 -0
- pynerve-1.0.0/src/acceleration/sheaf_acceleration.cpp +83 -0
- pynerve-1.0.0/src/acceleration/spectral_acceleration.cpp +82 -0
- pynerve-1.0.0/src/acceleration/streaming_acceleration.cpp +76 -0
- pynerve-1.0.0/src/algebra/boundary/boundary_matrix_access_ops.cpp +428 -0
- pynerve-1.0.0/src/algebra/boundary/boundary_matrix_build_ops.cpp +303 -0
- pynerve-1.0.0/src/algebra/boundary/boundary_matrix_reduction_ops.cpp +337 -0
- pynerve-1.0.0/src/algebra/complex/cellular_cw_ops.cpp +172 -0
- pynerve-1.0.0/src/algebra/complex/cellular_ops.cpp +486 -0
- pynerve-1.0.0/src/algebra/complex/chain_complex_ops.cpp +288 -0
- pynerve-1.0.0/src/algebra/complex/complex_ops.cpp +226 -0
- pynerve-1.0.0/src/algebra/complex/simplex_set_ops.cpp +150 -0
- pynerve-1.0.0/src/algebra/detail/algebra_detail.hpp +176 -0
- pynerve-1.0.0/src/algebra/geometry/distance_simd_avx_ops.cpp +210 -0
- pynerve-1.0.0/src/algebra/geometry/distance_simd_ops.cpp +169 -0
- pynerve-1.0.0/src/algebra/geometry/distance_sse_ops.cpp +101 -0
- pynerve-1.0.0/src/algebra/geometry/geometry_analytic_ops.cpp +491 -0
- pynerve-1.0.0/src/algebra/geometry/geometry_volume_ops.cpp +244 -0
- pynerve-1.0.0/src/algebra/gpu/cech_complex_cuda.cu +519 -0
- pynerve-1.0.0/src/algebra/gpu/cech_gpu_impl.cpp +465 -0
- pynerve-1.0.0/src/algebra/gpu/detail/vr_gpu_cuda_launchers.inl +62 -0
- pynerve-1.0.0/src/algebra/gpu/detail/vr_gpu_helpers.inl +78 -0
- pynerve-1.0.0/src/algebra/gpu/vr_complex_cuda.cu +456 -0
- pynerve-1.0.0/src/algebra/gpu/vr_gpu_clique_cpu.cpp +88 -0
- pynerve-1.0.0/src/algebra/gpu/vr_gpu_clique_expand.cpp +172 -0
- pynerve-1.0.0/src/algebra/gpu/vr_gpu_impl.cpp +255 -0
- pynerve-1.0.0/src/algebra/mpi/distance_mpi_ops.cpp +97 -0
- pynerve-1.0.0/src/algebra/operations/detail/simplex_ops_impl.inl +358 -0
- pynerve-1.0.0/src/algebra/operations/simplex_ops.cpp +1 -0
- pynerve-1.0.0/src/algorithms/detail/distance_c_api_instantiations.inl +112 -0
- pynerve-1.0.0/src/algorithms/detail/distance_matrix_knn_sparse.inl +366 -0
- pynerve-1.0.0/src/algorithms/detail/distance_metric_dispatch.inl +166 -0
- pynerve-1.0.0/src/algorithms/detail/kernel_methods_impl.inl +510 -0
- pynerve-1.0.0/src/algorithms/detail/mapper_safe_arithmetic.hpp +69 -0
- pynerve-1.0.0/src/algorithms/distance.cpp +584 -0
- pynerve-1.0.0/src/algorithms/distance_ops.cpp +99 -0
- pynerve-1.0.0/src/algorithms/gpu/distance_gpu_kernels.cu +54 -0
- pynerve-1.0.0/src/algorithms/kernel_methods.cpp +1 -0
- pynerve-1.0.0/src/algorithms/mapper/mapper_statistics_ops.cpp +231 -0
- pynerve-1.0.0/src/algorithms/mapper/mapper_visualization_ops.cpp +245 -0
- pynerve-1.0.0/src/algorithms/mapper_clustering.cpp +200 -0
- pynerve-1.0.0/src/algorithms/mapper_core.cpp +474 -0
- pynerve-1.0.0/src/algorithms/mapper_cover.cpp +254 -0
- pynerve-1.0.0/src/algorithms/mapper_filters.cpp +255 -0
- pynerve-1.0.0/src/algorithms/persistence_vectorization.cpp +301 -0
- pynerve-1.0.0/src/anomaly/topology_drift_ops.cpp +595 -0
- pynerve-1.0.0/src/approximation/distance_approximation_ops.cpp +586 -0
- pynerve-1.0.0/src/autodiff/autodiff_gpu_kernels.cu +475 -0
- pynerve-1.0.0/src/autodiff/autodiff_gradients.cpp +331 -0
- pynerve-1.0.0/src/autodiff/autodiff_graph.cpp +220 -0
- pynerve-1.0.0/src/autodiff/autodiff_graph_optimizer.cpp +476 -0
- pynerve-1.0.0/src/autodiff/autodiff_tensor.cpp +503 -0
- pynerve-1.0.0/src/autodiff/autodiff_variable.cpp +102 -0
- pynerve-1.0.0/src/autodiff/detail/autodiff_detail.hpp +81 -0
- pynerve-1.0.0/src/autodiff/simd/autodiff_simd_ops.cpp +29 -0
- pynerve-1.0.0/src/batching/micro_batching_ops.cpp +82 -0
- pynerve-1.0.0/src/cache/feature_cache_ops.cpp +419 -0
- pynerve-1.0.0/src/cmake/simd.cmake +264 -0
- pynerve-1.0.0/src/cmake/source_groups.cmake +579 -0
- pynerve-1.0.0/src/cmake/targets.cmake +155 -0
- pynerve-1.0.0/src/compression/autoencoder_gpu.cu +33 -0
- pynerve-1.0.0/src/compression/autoencoder_gpu_api.inl +376 -0
- pynerve-1.0.0/src/compression/autoencoder_gpu_benchmark.inl +102 -0
- pynerve-1.0.0/src/compression/autoencoder_gpu_kernels.inl +39 -0
- pynerve-1.0.0/src/compression/decoder_cudnn.cpp +153 -0
- pynerve-1.0.0/src/compression/decoder_cudnn_benchmark.cpp +69 -0
- pynerve-1.0.0/src/compression/decoder_cudnn_layer.cpp +363 -0
- pynerve-1.0.0/src/compression/decoder_cudnn_model.cpp +165 -0
- pynerve-1.0.0/src/compression/encoder_cudnn.cpp +153 -0
- pynerve-1.0.0/src/compression/encoder_cudnn_benchmark.cpp +144 -0
- pynerve-1.0.0/src/compression/encoder_cudnn_layer.cpp +364 -0
- pynerve-1.0.0/src/compression/encoder_cudnn_model.cpp +154 -0
- pynerve-1.0.0/src/compression/simd/compression_simd_ops.cpp +20 -0
- pynerve-1.0.0/src/core/CMakeLists.txt +78 -0
- pynerve-1.0.0/src/core/compact_summary/compact_summary_extensions.cpp +314 -0
- pynerve-1.0.0/src/core/core_simd_ops.cpp +42 -0
- pynerve-1.0.0/src/core/detail/core_detail.hpp +72 -0
- pynerve-1.0.0/src/core/error/error_event_extensions.cpp +375 -0
- pynerve-1.0.0/src/core/error/error_highdim_ops.cpp +443 -0
- pynerve-1.0.0/src/core/gpu/gpu_kernels.cu +153 -0
- pynerve-1.0.0/src/core/gpu/gpu_kernels.cuh +26 -0
- pynerve-1.0.0/src/core/memory/detail/numa_aware_pool_impl.inl +484 -0
- pynerve-1.0.0/src/core/memory/memory_numa_allocator_ops.cpp +158 -0
- pynerve-1.0.0/src/core/memory/memory_pool_deterministic_ops.cpp +199 -0
- pynerve-1.0.0/src/core/memory/memory_pool_ops.cpp +441 -0
- pynerve-1.0.0/src/core/memory/numa_aware_pool.cpp +1 -0
- pynerve-1.0.0/src/core/rng/rng_determinism_metadata_ops.cpp +205 -0
- pynerve-1.0.0/src/core/rng/rng_determinism_ops.cpp +449 -0
- pynerve-1.0.0/src/core/rng/rng_factory_ops.cpp +72 -0
- pynerve-1.0.0/src/core/rng/rng_ops.cpp +487 -0
- pynerve-1.0.0/src/core/rng/rng_random_ops.cpp +438 -0
- pynerve-1.0.0/src/core/rng/rng_sequence_state_ops.cpp +190 -0
- pynerve-1.0.0/src/core/rng/rng_wire_format.hpp +63 -0
- pynerve-1.0.0/src/core/thread_affinity_ops.cpp +332 -0
- pynerve-1.0.0/src/cpu/avx512_ph_ops.cpp +334 -0
- pynerve-1.0.0/src/cuda/kernels/bottleneck_distance.cu +376 -0
- pynerve-1.0.0/src/cuda/kernels/distance_fasted.cu +235 -0
- pynerve-1.0.0/src/cuda/kernels/distance_kernels.cu +310 -0
- pynerve-1.0.0/src/cuda/kernels/distance_kernels_ext.cu +500 -0
- pynerve-1.0.0/src/cuda/kernels/distance_kernels_tensorcore.cuh +102 -0
- pynerve-1.0.0/src/cuda/kernels/distance_tedjoin.cu +243 -0
- pynerve-1.0.0/src/cuda/kernels/gpu_persistence_launcher.cu +771 -0
- pynerve-1.0.0/src/cuda/kernels/gpu_persistence_reduction.cu +599 -0
- pynerve-1.0.0/src/cuda/kernels/mapper_gpu.cu +708 -0
- pynerve-1.0.0/src/cuda/kernels/persistence_image.cu +440 -0
- pynerve-1.0.0/src/cuda/kernels/reduction_kernels.cu +227 -0
- pynerve-1.0.0/src/cuda/kernels/reduction_kernels_launcher.cpp +141 -0
- pynerve-1.0.0/src/cuda/kernels/specseq_reduction.cu +942 -0
- pynerve-1.0.0/src/cuda/kernels/wasserstein_distance.cu +563 -0
- pynerve-1.0.0/src/determinism/gpu.cu +38 -0
- pynerve-1.0.0/src/determinism/mpi_ops.cpp +172 -0
- pynerve-1.0.0/src/determinism/ops.cpp +17 -0
- pynerve-1.0.0/src/differentiable/autodiff_persistence.cpp +423 -0
- pynerve-1.0.0/src/distributed/distributed_persistence.cpp +405 -0
- pynerve-1.0.0/src/distributed/distributed_wire_format.hpp +189 -0
- pynerve-1.0.0/src/distributed/mpi_communicator.cpp +698 -0
- pynerve-1.0.0/src/distributed/mpi_cuda_ops.cpp +227 -0
- pynerve-1.0.0/src/distributed/nvshmem_bridge.cpp +72 -0
- pynerve-1.0.0/src/distributed/sharded_boundary_matrix.cpp +504 -0
- pynerve-1.0.0/src/distributed/work_stealing_scheduler.cpp +95 -0
- pynerve-1.0.0/src/dmt/discrete_gradient_parallel.cpp +400 -0
- pynerve-1.0.0/src/dmt/gpu/dmt_gpu.cuh +23 -0
- pynerve-1.0.0/src/dmt/gpu/dmt_kernels.cu +98 -0
- pynerve-1.0.0/src/encoders/cnn_encoder.cpp +496 -0
- pynerve-1.0.0/src/encoders/detail/encoders_detail.hpp +63 -0
- pynerve-1.0.0/src/encoders/encoder_factory.cpp +384 -0
- pynerve-1.0.0/src/encoders/encoder_fusion.cpp +338 -0
- pynerve-1.0.0/src/encoders/encoder_fusion_helpers.cpp +289 -0
- pynerve-1.0.0/src/encoders/encoder_gpu_kernels.cu +153 -0
- pynerve-1.0.0/src/encoders/encoder_gpu_kernels_api.inl +237 -0
- pynerve-1.0.0/src/encoders/encoder_gpu_kernels_benchmark.inl +142 -0
- pynerve-1.0.0/src/encoders/encoder_gpu_kernels_device.inl +280 -0
- pynerve-1.0.0/src/encoders/encoder_tensor_cores.cpp +451 -0
- pynerve-1.0.0/src/encoders/encoder_tensor_cores_benchmark.cpp +92 -0
- pynerve-1.0.0/src/encoders/encoder_utils.cpp +440 -0
- pynerve-1.0.0/src/encoders/encoder_utils_reporting.cpp +153 -0
- pynerve-1.0.0/src/encoders/graph_encoder.cpp +436 -0
- pynerve-1.0.0/src/encoders/graph_encoder_helpers.cpp +209 -0
- pynerve-1.0.0/src/encoders/graph_encoder_layers.cpp +228 -0
- pynerve-1.0.0/src/encoders/hybrid_encoder.cpp +322 -0
- pynerve-1.0.0/src/encoders/mlp_encoder.cpp +434 -0
- pynerve-1.0.0/src/encoders/persistence_encoder.cpp +478 -0
- pynerve-1.0.0/src/encoders/simd_encoder.cpp +44 -0
- pynerve-1.0.0/src/encoders/topological_encoder.cpp +399 -0
- pynerve-1.0.0/src/error/error_handling_ops.cpp +774 -0
- pynerve-1.0.0/src/error/error_registry.cpp +7 -0
- pynerve-1.0.0/src/errors/configurable_error_system_base.cpp +11 -0
- pynerve-1.0.0/src/errors/configurable_error_system_core.cpp +150 -0
- pynerve-1.0.0/src/errors/configurable_error_system_tda.cpp +18 -0
- pynerve-1.0.0/src/errors/errors.cpp +356 -0
- pynerve-1.0.0/src/feature_access/feature_flags.cpp +409 -0
- pynerve-1.0.0/src/feature_access/feature_flags_config.cpp +177 -0
- pynerve-1.0.0/src/feature_access/feature_flags_validation.cpp +291 -0
- pynerve-1.0.0/src/features/feature_flags.cpp +424 -0
- pynerve-1.0.0/src/filtration/detail/filtration_detail.hpp +27 -0
- pynerve-1.0.0/src/filtration/gpu/level_set_cuda.cu +494 -0
- pynerve-1.0.0/src/filtration/gpu/vr_sparse_cuda.cu +571 -0
- pynerve-1.0.0/src/filtration/level_set/level_set_analysis_ops.cpp +270 -0
- pynerve-1.0.0/src/filtration/level_set/level_set_base_ops.cpp +328 -0
- pynerve-1.0.0/src/filtration/level_set/level_set_connectivity_ops.cpp +338 -0
- pynerve-1.0.0/src/filtration/mpi/filtration_mpi_ops.cpp +187 -0
- pynerve-1.0.0/src/filtration/simd_filtration_ops.cpp +29 -0
- pynerve-1.0.0/src/filtration/vr/detail/vr_construction_helpers.inl +59 -0
- pynerve-1.0.0/src/filtration/vr/detail/vr_parallel_construction_ops_impl.inl +425 -0
- pynerve-1.0.0/src/filtration/vr/vr_ann_search_ops.cpp +187 -0
- pynerve-1.0.0/src/filtration/vr/vr_api_ops.cpp +382 -0
- pynerve-1.0.0/src/filtration/vr/vr_builder_ops.cpp +190 -0
- pynerve-1.0.0/src/filtration/vr/vr_construction_custom_radii.cpp +141 -0
- pynerve-1.0.0/src/filtration/vr/vr_construction_ksimplices.cpp +143 -0
- pynerve-1.0.0/src/filtration/vr/vr_construction_ops.cpp +112 -0
- pynerve-1.0.0/src/filtration/vr/vr_construction_simplices.cpp +114 -0
- pynerve-1.0.0/src/filtration/vr/vr_distance_ops.cpp +110 -0
- pynerve-1.0.0/src/filtration/vr/vr_parallel_construction_ops.cpp +1 -0
- pynerve-1.0.0/src/filtration/vr/vr_sparse_ops.cpp +258 -0
- pynerve-1.0.0/src/filtration/vr/vr_weighted_ops.cpp +275 -0
- pynerve-1.0.0/src/formats/gpu_mpi_overlap.cpp +324 -0
- pynerve-1.0.0/src/formats/packed_boundary_matrix.cpp +374 -0
- pynerve-1.0.0/src/formats/packed_gpu_scan.cu +365 -0
- pynerve-1.0.0/src/formats/persistence_pipeline.cpp +302 -0
- pynerve-1.0.0/src/gpu/context/detail/manager_context_tenant_ops.inl +240 -0
- pynerve-1.0.0/src/gpu/context/manager_context_gpu.cpp +472 -0
- pynerve-1.0.0/src/gpu/context/manager_multi_gpu.cpp +447 -0
- pynerve-1.0.0/src/gpu/detail/gpu_detail.hpp +152 -0
- pynerve-1.0.0/src/gpu/dispatch/dispatch_cuda.cpp +483 -0
- pynerve-1.0.0/src/gpu/dispatch/distance_matrix_optimizer_cuda.cpp +221 -0
- pynerve-1.0.0/src/gpu/error_handling_cuda_ops.cpp +191 -0
- pynerve-1.0.0/src/gpu/executor_async_ops.cpp +411 -0
- pynerve-1.0.0/src/gpu/hybrid_tuning.cpp +351 -0
- pynerve-1.0.0/src/gpu/hybrid_tuning_runtime.cpp +164 -0
- pynerve-1.0.0/src/gpu/kernels/kernel_ada_lovelace_cuda.cu +358 -0
- pynerve-1.0.0/src/gpu/manager_compute.cpp +342 -0
- pynerve-1.0.0/src/gpu/manager_compute_init.cpp +61 -0
- pynerve-1.0.0/src/gpu/manager_compute_ops.cpp +370 -0
- pynerve-1.0.0/src/gpu/manager_compute_ops_filtration.cpp +231 -0
- pynerve-1.0.0/src/gpu/manager_compute_ops_geometry.cpp +124 -0
- pynerve-1.0.0/src/gpu/manager_compute_ops_hungarian.cpp +212 -0
- pynerve-1.0.0/src/gpu/matrix_diagram_cost_ops.cpp +202 -0
- pynerve-1.0.0/src/gpu/matrix_distance_ops.cpp +139 -0
- pynerve-1.0.0/src/gpu/memory/manager_batch_memory.cpp +294 -0
- pynerve-1.0.0/src/gpu/ops_column.cpp +291 -0
- pynerve-1.0.0/src/gpu/ops_streaming.cpp +387 -0
- pynerve-1.0.0/src/gpu/tuner_nvidia_auto.cpp +458 -0
- pynerve-1.0.0/src/gpu/tuner_nvidia_auto_reporting.cpp +59 -0
- pynerve-1.0.0/src/gpu/tuning/detail/tuning_distributed_coordinator_core.inl +437 -0
- pynerve-1.0.0/src/gpu/tuning/detail/tuning_distributed_coordinator_mpi.inl +363 -0
- pynerve-1.0.0/src/gpu/tuning/detail/tuning_distributed_multigpu.inl +332 -0
- pynerve-1.0.0/src/gpu/tuning/tuning_cache_ops.cpp +444 -0
- pynerve-1.0.0/src/gpu/tuning/tuning_distributed_ops.cpp +23 -0
- pynerve-1.0.0/src/graphs/attention_gpu.cu +568 -0
- pynerve-1.0.0/src/graphs/detail/graphs_detail.hpp +33 -0
- pynerve-1.0.0/src/graphs/gnn_gpu.cu +578 -0
- pynerve-1.0.0/src/graphs/graph.cpp +317 -0
- pynerve-1.0.0/src/graphs/graph_algorithms_detail.hpp +203 -0
- pynerve-1.0.0/src/graphs/graph_algorithms_gpu.cu +492 -0
- pynerve-1.0.0/src/graphs/graph_engine_gpu.cu +450 -0
- pynerve-1.0.0/src/graphs/graph_homology.cpp +161 -0
- pynerve-1.0.0/src/graphs/graph_multi_gpu_ops.cpp +237 -0
- pynerve-1.0.0/src/graphs/graph_neural_layer.cpp +250 -0
- pynerve-1.0.0/src/graphs/graph_persistent.cpp +95 -0
- pynerve-1.0.0/src/graphs/graph_persistent_homology.cpp +4 -0
- pynerve-1.0.0/src/graphs/graph_persistent_homology_detail.hpp +121 -0
- pynerve-1.0.0/src/graphs/graph_sheaf.cpp +172 -0
- pynerve-1.0.0/src/graphs/graph_topology.cpp +149 -0
- pynerve-1.0.0/src/graphs/graph_weighted.cpp +414 -0
- pynerve-1.0.0/src/graphs/graph_weighted_simplicial.cpp +161 -0
- pynerve-1.0.0/src/graphs/graph_zigzag_gpu.cu +260 -0
- pynerve-1.0.0/src/graphs/message_passing_gpu.cu +554 -0
- pynerve-1.0.0/src/graphs/mpi/graph_mpi_ops.cpp +162 -0
- pynerve-1.0.0/src/include/cuda/CMakeLists.txt +58 -0
- pynerve-1.0.0/src/include/cuda/cuda_error.hpp +49 -0
- pynerve-1.0.0/src/include/cuda/error/cuda_error.hpp +261 -0
- pynerve-1.0.0/src/include/cuda/heterogeneous_engine.hpp +250 -0
- pynerve-1.0.0/src/include/cuda_fp16.h +19 -0
- pynerve-1.0.0/src/include/cuda_runtime.h +454 -0
- pynerve-1.0.0/src/include/cuda_runtime_api.h +18 -0
- pynerve-1.0.0/src/include/determinism/CMakeLists.txt +25 -0
- pynerve-1.0.0/src/include/determinism/determinism_contract.hpp +306 -0
- pynerve-1.0.0/src/include/distance/CMakeLists.txt +22 -0
- pynerve-1.0.0/src/include/distance/simd_distance.hpp +324 -0
- pynerve-1.0.0/src/include/gpu/gpu_error.hpp +55 -0
- pynerve-1.0.0/src/include/gpu/gpu_memory.hpp +221 -0
- pynerve-1.0.0/src/include/math/CMakeLists.txt +22 -0
- pynerve-1.0.0/src/include/math/field_matrix.hpp +484 -0
- pynerve-1.0.0/src/include/math/finite_field.hpp +380 -0
- pynerve-1.0.0/src/include/math/matrix_reduction.hpp +469 -0
- pynerve-1.0.0/src/include/math/persistence_metrics/algorithms.hpp +453 -0
- pynerve-1.0.0/src/include/math/persistence_metrics/hungarian_solver.hpp +213 -0
- pynerve-1.0.0/src/include/math/persistence_metrics/point2d.hpp +48 -0
- pynerve-1.0.0/src/include/math/persistence_metrics.hpp +42 -0
- pynerve-1.0.0/src/include/math/precision.hpp +315 -0
- pynerve-1.0.0/src/include/math/precision_manager.hpp +468 -0
- pynerve-1.0.0/src/include/math/precision_policy.hpp +205 -0
- pynerve-1.0.0/src/include/math/tolerance.hpp +177 -0
- pynerve-1.0.0/src/include/memory/safe_memory_pool.hpp +530 -0
- pynerve-1.0.0/src/include/metrics/CMakeLists.txt +21 -0
- pynerve-1.0.0/src/include/metrics/bottleneck_exact.hpp +573 -0
- pynerve-1.0.0/src/include/nerve/acceleration_fwd.hpp +215 -0
- pynerve-1.0.0/src/include/nerve/algebra/bit_packed.hpp +348 -0
- pynerve-1.0.0/src/include/nerve/algebra/boundary.hpp +153 -0
- pynerve-1.0.0/src/include/nerve/algebra/cellular.hpp +114 -0
- pynerve-1.0.0/src/include/nerve/algebra/complex.hpp +57 -0
- pynerve-1.0.0/src/include/nerve/algebra/detail/algebra_detail.hpp +205 -0
- pynerve-1.0.0/src/include/nerve/algebra/simd_distance.hpp +37 -0
- pynerve-1.0.0/src/include/nerve/algebra/simd_distance_avx.hpp +31 -0
- pynerve-1.0.0/src/include/nerve/algebra/simplex.hpp +145 -0
- pynerve-1.0.0/src/include/nerve/algorithms/distance.hpp +415 -0
- pynerve-1.0.0/src/include/nerve/algorithms/distance_c.h +38 -0
- pynerve-1.0.0/src/include/nerve/algorithms/knn_hnsw.hpp +474 -0
- pynerve-1.0.0/src/include/nerve/algorithms/mapper.hpp +347 -0
- pynerve-1.0.0/src/include/nerve/algorithms/persistence_vectorization.hpp +43 -0
- pynerve-1.0.0/src/include/nerve/anomaly/topology_drift.hpp +320 -0
- pynerve-1.0.0/src/include/nerve/approximate/streaming_ph.hpp +243 -0
- pynerve-1.0.0/src/include/nerve/approximation/distance_approximation.hpp +240 -0
- pynerve-1.0.0/src/include/nerve/autodiff/autodiff.hpp +199 -0
- pynerve-1.0.0/src/include/nerve/autodiff/detail/autodiff_detail.hpp +25 -0
- pynerve-1.0.0/src/include/nerve/batching/micro_batching.hpp +292 -0
- pynerve-1.0.0/src/include/nerve/cache/feature_cache.hpp +135 -0
- pynerve-1.0.0/src/include/nerve/common/accelerated_types.hpp +368 -0
- pynerve-1.0.0/src/include/nerve/common.hpp +18 -0
- pynerve-1.0.0/src/include/nerve/compat/default_compare.hpp +39 -0
- pynerve-1.0.0/src/include/nerve/compression/gpu_autoencoder.hpp +58 -0
- pynerve-1.0.0/src/include/nerve/compression/model_aware_compression.hpp +66 -0
- pynerve-1.0.0/src/include/nerve/compression/simd_compression.hpp +13 -0
- pynerve-1.0.0/src/include/nerve/config.hpp.in +99 -0
- pynerve-1.0.0/src/include/nerve/core/budget.hpp +16 -0
- pynerve-1.0.0/src/include/nerve/core/buffer.hpp +5 -0
- pynerve-1.0.0/src/include/nerve/core/buffer_view.hpp +13 -0
- pynerve-1.0.0/src/include/nerve/core/compact_summary/compact_summary.hpp +28 -0
- pynerve-1.0.0/src/include/nerve/core/detail/compact_summary_extensions.hpp +216 -0
- pynerve-1.0.0/src/include/nerve/core/detail/core_detail.hpp +58 -0
- pynerve-1.0.0/src/include/nerve/core/detail/error_event_extensions.hpp +288 -0
- pynerve-1.0.0/src/include/nerve/core/error/error_event.hpp +44 -0
- pynerve-1.0.0/src/include/nerve/core/memory/memory_pool.hpp +90 -0
- pynerve-1.0.0/src/include/nerve/core/memory/numa_aware_pool.hpp +218 -0
- pynerve-1.0.0/src/include/nerve/core/memory/thread_safe_memory_pool.hpp +460 -0
- pynerve-1.0.0/src/include/nerve/core/persistence.hpp +178 -0
- pynerve-1.0.0/src/include/nerve/core/policy/owned_buffer.hpp +139 -0
- pynerve-1.0.0/src/include/nerve/core/policy/ownership_checks.hpp +56 -0
- pynerve-1.0.0/src/include/nerve/core/policy/ownership_policy.hpp +285 -0
- pynerve-1.0.0/src/include/nerve/core/rng/determinism_contract.hpp +140 -0
- pynerve-1.0.0/src/include/nerve/core/rng/random.hpp +233 -0
- pynerve-1.0.0/src/include/nerve/core/rng/rng.hpp +94 -0
- pynerve-1.0.0/src/include/nerve/core/sha256.hpp +168 -0
- pynerve-1.0.0/src/include/nerve/core/spectral.hpp +9 -0
- pynerve-1.0.0/src/include/nerve/core/stability_certificate.hpp +39 -0
- pynerve-1.0.0/src/include/nerve/core/thread_affinity.hpp +70 -0
- pynerve-1.0.0/src/include/nerve/core.hpp +7 -0
- pynerve-1.0.0/src/include/nerve/core_types.hpp +129 -0
- pynerve-1.0.0/src/include/nerve/cpu/arm_simd.hpp +2183 -0
- pynerve-1.0.0/src/include/nerve/cpu/simd.hpp +65 -0
- pynerve-1.0.0/src/include/nerve/cpu/x86_intrinsics.hpp +6 -0
- pynerve-1.0.0/src/include/nerve/determinism.hpp +92 -0
- pynerve-1.0.0/src/include/nerve/differentiable/autodiff_persistence.hpp +409 -0
- pynerve-1.0.0/src/include/nerve/distributed/cuda_aware_mpi.hpp +178 -0
- pynerve-1.0.0/src/include/nerve/distributed/cuda_ipc_shared.hpp +148 -0
- pynerve-1.0.0/src/include/nerve/distributed/detail/distributed_detail.hpp +64 -0
- pynerve-1.0.0/src/include/nerve/distributed/mpi_persistence.hpp +366 -0
- pynerve-1.0.0/src/include/nerve/distributed/nccl_mpi_bridge.hpp +294 -0
- pynerve-1.0.0/src/include/nerve/distributed/nvshmem_bridge.hpp +104 -0
- pynerve-1.0.0/src/include/nerve/dmt/gpu_dmt.hpp +224 -0
- pynerve-1.0.0/src/include/nerve/encoders/detail/encoders_detail.hpp +61 -0
- pynerve-1.0.0/src/include/nerve/encoders/encoders.hpp +404 -0
- pynerve-1.0.0/src/include/nerve/encoders/gpu_encoders.hpp +168 -0
- pynerve-1.0.0/src/include/nerve/encoders/simd_encoder.hpp +12 -0
- pynerve-1.0.0/src/include/nerve/error/error_handling.hpp +295 -0
- pynerve-1.0.0/src/include/nerve/error/error_registry.hpp +341 -0
- pynerve-1.0.0/src/include/nerve/errors/configurable_error_system.hpp +148 -0
- pynerve-1.0.0/src/include/nerve/errors/detail/base.hpp +213 -0
- pynerve-1.0.0/src/include/nerve/errors/detail/error_result.hpp +361 -0
- pynerve-1.0.0/src/include/nerve/errors/detail/macros.hpp +249 -0
- pynerve-1.0.0/src/include/nerve/errors/detail/public_reexports.hpp +42 -0
- pynerve-1.0.0/src/include/nerve/errors/errors.hpp +432 -0
- pynerve-1.0.0/src/include/nerve/errors/types/runtime.hpp +361 -0
- pynerve-1.0.0/src/include/nerve/errors/types/type.hpp +293 -0
- pynerve-1.0.0/src/include/nerve/errors/types/value.hpp +282 -0
- pynerve-1.0.0/src/include/nerve/feature_access/feature_flags.hpp +230 -0
- pynerve-1.0.0/src/include/nerve/features/feature_flags.hpp +116 -0
- pynerve-1.0.0/src/include/nerve/filtration/detail/filtration_detail.hpp +27 -0
- pynerve-1.0.0/src/include/nerve/filtration/level_set.hpp +204 -0
- pynerve-1.0.0/src/include/nerve/filtration/simd_filtration.hpp +12 -0
- pynerve-1.0.0/src/include/nerve/filtration/vietoris_rips.hpp +123 -0
- pynerve-1.0.0/src/include/nerve/filtration/vr/ann/ann.hpp +41 -0
- pynerve-1.0.0/src/include/nerve/filtration/vr_runtime.hpp +68 -0
- pynerve-1.0.0/src/include/nerve/formats/gpu_mpi_overlap.hpp +97 -0
- pynerve-1.0.0/src/include/nerve/formats/packed_boundary_matrix.hpp +132 -0
- pynerve-1.0.0/src/include/nerve/formats/packed_gpu_scan.hpp +15 -0
- pynerve-1.0.0/src/include/nerve/formats/persistence_pipeline.hpp +65 -0
- pynerve-1.0.0/src/include/nerve/gpu/batch_manager.hpp +116 -0
- pynerve-1.0.0/src/include/nerve/gpu/bottleneck_distance.cuh +15 -0
- pynerve-1.0.0/src/include/nerve/gpu/compute_manager.hpp +191 -0
- pynerve-1.0.0/src/include/nerve/gpu/consumer_config.hpp +99 -0
- pynerve-1.0.0/src/include/nerve/gpu/cuda_dispatch.hpp +207 -0
- pynerve-1.0.0/src/include/nerve/gpu/cuda_error_check.hpp +67 -0
- pynerve-1.0.0/src/include/nerve/gpu/cuda_tile_api.hpp +364 -0
- pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_buffer_impl.hpp +308 -0
- pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_cluster_impl.hpp +166 -0
- pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_config_impl.hpp +69 -0
- pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_detail_impl.hpp +275 -0
- pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_launcher_impl.hpp +189 -0
- pynerve-1.0.0/src/include/nerve/gpu/detail/cuda_tile_tuner_impl.hpp +159 -0
- pynerve-1.0.0/src/include/nerve/gpu/detail/gpu_detail.hpp +151 -0
- pynerve-1.0.0/src/include/nerve/gpu/detail/gpu_primitives_impl.inc +1 -0
- pynerve-1.0.0/src/include/nerve/gpu/detail/gpu_primitives_impl_part1.inc +339 -0
- pynerve-1.0.0/src/include/nerve/gpu/device_array.hpp +105 -0
- pynerve-1.0.0/src/include/nerve/gpu/distance_fasted.cuh +28 -0
- pynerve-1.0.0/src/include/nerve/gpu/distance_gemm.cuh +365 -0
- pynerve-1.0.0/src/include/nerve/gpu/distance_kernels.hpp +25 -0
- pynerve-1.0.0/src/include/nerve/gpu/distance_tedjoin.cuh +10 -0
- pynerve-1.0.0/src/include/nerve/gpu/distributed_tuning.hpp +160 -0
- pynerve-1.0.0/src/include/nerve/gpu/gpu_capability.hpp +28 -0
- pynerve-1.0.0/src/include/nerve/gpu/gpu_capability_core.hpp +124 -0
- pynerve-1.0.0/src/include/nerve/gpu/gpu_compute.hpp +543 -0
- pynerve-1.0.0/src/include/nerve/gpu/gpu_context.hpp +314 -0
- pynerve-1.0.0/src/include/nerve/gpu/gpu_error.hpp +57 -0
- pynerve-1.0.0/src/include/nerve/gpu/gpu_launch.hpp +280 -0
- pynerve-1.0.0/src/include/nerve/gpu/gpu_ptx.hpp +62 -0
- pynerve-1.0.0/src/include/nerve/gpu/gpu_ptx_ops.cuh +849 -0
- pynerve-1.0.0/src/include/nerve/gpu/gpu_tuning.hpp +166 -0
- pynerve-1.0.0/src/include/nerve/gpu/hybrid_tuning.hpp +146 -0
- pynerve-1.0.0/src/include/nerve/gpu/kernel_launcher.hpp +321 -0
- pynerve-1.0.0/src/include/nerve/gpu/manager_compute_ops_filtration.hpp +26 -0
- pynerve-1.0.0/src/include/nerve/gpu/manager_compute_ops_geometry.hpp +15 -0
- pynerve-1.0.0/src/include/nerve/gpu/manager_compute_ops_hungarian.hpp +25 -0
- pynerve-1.0.0/src/include/nerve/gpu/mapper_gpu.cuh +23 -0
- pynerve-1.0.0/src/include/nerve/gpu/nvidia_auto_tuner.hpp +22 -0
- pynerve-1.0.0/src/include/nerve/gpu/packed_column_primitives.cuh +516 -0
- pynerve-1.0.0/src/include/nerve/gpu/persistence_image.cuh +13 -0
- pynerve-1.0.0/src/include/nerve/gpu/persistence_kernels.cuh +465 -0
- pynerve-1.0.0/src/include/nerve/gpu/persistence_reducer.hpp +43 -0
- pynerve-1.0.0/src/include/nerve/gpu/tensor_core_kernels.cuh +290 -0
- pynerve-1.0.0/src/include/nerve/gpu/tuning_cache.hpp +156 -0
- pynerve-1.0.0/src/include/nerve/gpu/wasserstein_distance.cuh +20 -0
- pynerve-1.0.0/src/include/nerve/graphs/detail/graphs_detail.hpp +33 -0
- pynerve-1.0.0/src/include/nerve/graphs/gpu_gnn.hpp +38 -0
- pynerve-1.0.0/src/include/nerve/graphs/gpu_graphs.hpp +207 -0
- pynerve-1.0.0/src/include/nerve/graphs/graph.hpp +211 -0
- pynerve-1.0.0/src/include/nerve/instrumentation/error_events.hpp +130 -0
- pynerve-1.0.0/src/include/nerve/instrumentation/instrumentation.hpp +214 -0
- pynerve-1.0.0/src/include/nerve/instrumentation/metrics.hpp +104 -0
- pynerve-1.0.0/src/include/nerve/instrumentation/stability_certificates.hpp +197 -0
- pynerve-1.0.0/src/include/nerve/instrumentation/topological_delta.hpp +164 -0
- pynerve-1.0.0/src/include/nerve/interaction/interaction_homology.hpp +223 -0
- pynerve-1.0.0/src/include/nerve/io/async_io.hpp +138 -0
- pynerve-1.0.0/src/include/nerve/io/diagram_io.hpp +39 -0
- pynerve-1.0.0/src/include/nerve/io/mmap_io.hpp +40 -0
- pynerve-1.0.0/src/include/nerve/io/npy_io.hpp +90 -0
- pynerve-1.0.0/src/include/nerve/math/constants.hpp +158 -0
- pynerve-1.0.0/src/include/nerve/math/finite_field.hpp +173 -0
- pynerve-1.0.0/src/include/nerve/math/math +1 -0
- pynerve-1.0.0/src/include/nerve/math/persistence_metrics/algorithms.hpp +453 -0
- pynerve-1.0.0/src/include/nerve/math/persistence_metrics/hungarian_solver.hpp +213 -0
- pynerve-1.0.0/src/include/nerve/math/persistence_metrics/point2d.hpp +48 -0
- pynerve-1.0.0/src/include/nerve/metrics/bottleneck/bottleneck.hpp +76 -0
- pynerve-1.0.0/src/include/nerve/metrics/detail/metrics_detail.hpp +75 -0
- pynerve-1.0.0/src/include/nerve/metrics/distances.hpp +255 -0
- pynerve-1.0.0/src/include/nerve/metrics/gpu_distances.hpp +76 -0
- pynerve-1.0.0/src/include/nerve/metrics/lazy_distance.hpp +114 -0
- pynerve-1.0.0/src/include/nerve/metrics/sinkhorn/sinkhorn.hpp +134 -0
- pynerve-1.0.0/src/include/nerve/nn/diagram_conv.hpp +227 -0
- pynerve-1.0.0/src/include/nerve/nn/simd_nn.hpp +15 -0
- pynerve-1.0.0/src/include/nerve/optimization/component_optimizations.hpp +389 -0
- pynerve-1.0.0/src/include/nerve/optimization/detail/optimization_detail.hpp +43 -0
- pynerve-1.0.0/src/include/nerve/optimization/gpu_primitives_helpers.hpp +42 -0
- pynerve-1.0.0/src/include/nerve/optimization/hardware_optimizations.hpp +248 -0
- pynerve-1.0.0/src/include/nerve/optimization/parameter_sweep.hpp +257 -0
- pynerve-1.0.0/src/include/nerve/persistence/accelerated/accelerated_api.hpp +171 -0
- pynerve-1.0.0/src/include/nerve/persistence/accelerated/accelerated_interface.hpp +232 -0
- pynerve-1.0.0/src/include/nerve/persistence/accelerated/detail/accelerated_detail.hpp +107 -0
- pynerve-1.0.0/src/include/nerve/persistence/accelerated/gpu_apparent_pairs.hpp +351 -0
- pynerve-1.0.0/src/include/nerve/persistence/accelerated/heterogeneous_fast_vr.hpp +139 -0
- pynerve-1.0.0/src/include/nerve/persistence/accelerated/nerve_data_wrapper.hpp +48 -0
- pynerve-1.0.0/src/include/nerve/persistence/accelerated/nerve_interface.hpp +115 -0
- pynerve-1.0.0/src/include/nerve/persistence/accelerated/thread_safe_allocator.hpp +425 -0
- pynerve-1.0.0/src/include/nerve/persistence/accelerated/work_distributor.hpp +184 -0
- pynerve-1.0.0/src/include/nerve/persistence/acceleration_runtime/acceleration_runtime_capabilities.hpp +14 -0
- pynerve-1.0.0/src/include/nerve/persistence/acceleration_runtime/acceleration_runtime_engine.hpp +162 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_acceleration_engine.hpp +157 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_acceleration_problem_analysis.hpp +74 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_acceleration_system_capabilities.hpp +107 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_algorithm_selector.hpp +144 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/adaptive_selector_calibration.hpp +24 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/lockfree_multicore.hpp +106 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/matrix_multiplication_framework.hpp +86 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/sparse_matrix.hpp +254 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/sparsification_engine.hpp +138 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/streaming/approximate_processor.hpp +181 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/streaming/representative_cycles.hpp +223 -0
- pynerve-1.0.0/src/include/nerve/persistence/adaptive_acceleration/streaming/streaming_processor.hpp +215 -0
- pynerve-1.0.0/src/include/nerve/persistence/approximate/approximate_nearest_neighbor.hpp +121 -0
- pynerve-1.0.0/src/include/nerve/persistence/approximate/bloom_filter.hpp +106 -0
- pynerve-1.0.0/src/include/nerve/persistence/approximate/distilled_vr_filtration.hpp +95 -0
- pynerve-1.0.0/src/include/nerve/persistence/approximate/perfect_hash.hpp +167 -0
- pynerve-1.0.0/src/include/nerve/persistence/approximate/sketching_approximation.hpp +149 -0
- pynerve-1.0.0/src/include/nerve/persistence/bloom_filter.hpp +53 -0
- pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology.hpp +43 -0
- pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology_involuted_ops.hpp +105 -0
- pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology_ops.hpp +125 -0
- pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology_persistent_ops.hpp +87 -0
- pynerve-1.0.0/src/include/nerve/persistence/cohomology/cohomology_rref.hpp +58 -0
- pynerve-1.0.0/src/include/nerve/persistence/cohomology/gpu_cohomology.hpp +87 -0
- pynerve-1.0.0/src/include/nerve/persistence/cohomology/involuted_homology.hpp +32 -0
- pynerve-1.0.0/src/include/nerve/persistence/cohomology/persistent_cohomology.hpp +85 -0
- pynerve-1.0.0/src/include/nerve/persistence/core/core_types.hpp +63 -0
- pynerve-1.0.0/src/include/nerve/persistence/core/detail/core_detail.hpp +122 -0
- pynerve-1.0.0/src/include/nerve/persistence/core/flood_complex.hpp +151 -0
- pynerve-1.0.0/src/include/nerve/persistence/core/high_dimensional_exact.hpp +160 -0
- pynerve-1.0.0/src/include/nerve/persistence/core/per_dimension_exact.hpp +247 -0
- pynerve-1.0.0/src/include/nerve/persistence/core/ph_gradient.hpp +128 -0
- pynerve-1.0.0/src/include/nerve/persistence/core/ph_gradient_basic.hpp +169 -0
- pynerve-1.0.0/src/include/nerve/persistence/core/roaring_bitmap.hpp +221 -0
- pynerve-1.0.0/src/include/nerve/persistence/core/roaring_bitmap_internal.hpp +69 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_blackwell_tma.hpp +94 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_distance_matrix.hpp +305 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_edge_extraction.hpp +333 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_edge_types.hpp +44 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_error_handling.hpp +353 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_matrix_reduction.hpp +479 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_multi_gpu.hpp +152 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_safe_arithmetic.hpp +112 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_tensor_core.hpp +113 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/cuda_warp_specialized_kernels.hpp +173 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/detail/cuda_detail.hpp +73 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/gpu_adaptive_selector.hpp +78 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/gpu_distance_matrix.hpp +153 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/gpu_reduction_engine.hpp +7 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda/thread_block_cluster.hpp +98 -0
- pynerve-1.0.0/src/include/nerve/persistence/cuda_matrix_reduction_private.cuh +4 -0
- pynerve-1.0.0/src/include/nerve/persistence/detail/cohomology_internal.hpp +28 -0
- pynerve-1.0.0/src/include/nerve/persistence/detail/differentiable_persistence_internal.hpp +81 -0
- pynerve-1.0.0/src/include/nerve/persistence/detail/fast_vr_accelerated_detail.hpp +64 -0
- pynerve-1.0.0/src/include/nerve/persistence/differentiable/differentiable_persistence.hpp +278 -0
- pynerve-1.0.0/src/include/nerve/persistence/distributed/mpi_distributed_ph.hpp +151 -0
- pynerve-1.0.0/src/include/nerve/persistence/hybrid_reduction_engine.hpp +14 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/detail/kernels_detail.hpp +21 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/dimension_specialized_kernels.hpp +611 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_dimension_specialized_ops.hpp +63 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h1_ops.hpp +69 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h2_alpha_ops.hpp +76 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h3_tetrahedra_ops.hpp +55 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h4_chunked_ops.hpp +44 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h5_prefetch_ops.hpp +53 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/kernel_h6_streaming_ops.hpp +43 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/ph4_certificate.hpp +60 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/ph4_ops.hpp +211 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/ph5_high_dim_ops.hpp +83 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/ph5_ph6_methods_impl.hpp +370 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/ph5_ph6_ops.hpp +149 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/ph5_ph6_runtime_impl.hpp +154 -0
- pynerve-1.0.0/src/include/nerve/persistence/kernels/simplex_reduction_utils.hpp +189 -0
- pynerve-1.0.0/src/include/nerve/persistence/memory/clear_and_compress.hpp +180 -0
- pynerve-1.0.0/src/include/nerve/persistence/memory/memory_pool.hpp +264 -0
- pynerve-1.0.0/src/include/nerve/persistence/memory/numa_memory_optimizer.hpp +260 -0
- pynerve-1.0.0/src/include/nerve/persistence/memory/vram_algorithms.hpp +94 -0
- pynerve-1.0.0/src/include/nerve/persistence/perfect_hash.hpp +60 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/bit_tree_pivot_column.hpp +146 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/column_types.hpp +15 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_clearing_ops.hpp +100 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_distributed_ops.hpp +145 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_edge_collapse_ops.hpp +83 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_hypha_ops.hpp +63 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_lock_free_structures.hpp +299 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_lockfree_ops.hpp +106 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_mpi_ops.hpp +53 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_ops.hpp +181 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_sparsity_aware.hpp +323 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/reduction_union_find_ops.hpp +118 -0
- pynerve-1.0.0/src/include/nerve/persistence/reduction/union_find_ph.hpp +75 -0
- pynerve-1.0.0/src/include/nerve/persistence/sketching_approximation.hpp +155 -0
- pynerve-1.0.0/src/include/nerve/persistence/streaming/streaming_reducer.hpp +124 -0
- pynerve-1.0.0/src/include/nerve/persistence/streaming/streaming_vr.hpp +52 -0
- pynerve-1.0.0/src/include/nerve/persistence/streaming/tile_streaming_ph.hpp +128 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/adaptive_selector.hpp +91 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/api.hpp +93 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/avx512_optimizer.hpp +248 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/backend_selector.hpp +20 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/bit_parallel_z2.hpp +193 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/cpp20_parallel_ph.hpp +328 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/diagram_statistics.hpp +17 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/early_exit_optimizer.hpp +345 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/exact_engine.hpp +68 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/exact_engine_fast.hpp +17 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/incremental_updates.hpp +113 -0
- pynerve-1.0.0/src/include/nerve/persistence/utils/incremental_updates_internal.hpp +16 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/detail/vr_detail.hpp +25 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_algorithm_selector_ops.hpp +163 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_cohomology_ops.hpp +15 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_dispatch_ops.hpp +108 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_distance_tiled_ops.hpp +66 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_fast_ops.hpp +129 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_fast_simd_ops.hpp +51 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_h1_reduction_ops.hpp +216 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_landmark_ops.hpp +40 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_large_witness_ops.hpp +92 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_lazy_witness_ops.hpp +57 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_medium_hybrid_ops.hpp +55 -0
- pynerve-1.0.0/src/include/nerve/persistence/vr/vr_sparse_rips_ops.hpp +127 -0
- pynerve-1.0.0/src/include/nerve/persistence_homology/persistence_homology_optimization.hpp +457 -0
- pynerve-1.0.0/src/include/nerve/platform.hpp +704 -0
- pynerve-1.0.0/src/include/nerve/precision/precision_policy.hpp +134 -0
- pynerve-1.0.0/src/include/nerve/probabilistic/detail/probabilistic_detail.hpp +47 -0
- pynerve-1.0.0/src/include/nerve/probabilistic/gpu_probabilistic.hpp +26 -0
- pynerve-1.0.0/src/include/nerve/probabilistic/probabilistic.hpp +208 -0
- pynerve-1.0.0/src/include/nerve/regularization/gpu_regularization.hpp +49 -0
- pynerve-1.0.0/src/include/nerve/runtime/calibration_model.hpp +70 -0
- pynerve-1.0.0/src/include/nerve/runtime/gpu_calibration.hpp +29 -0
- pynerve-1.0.0/src/include/nerve/runtime/hardware_probe.hpp +74 -0
- pynerve-1.0.0/src/include/nerve/serialization/detail/serialization_detail.hpp +24 -0
- pynerve-1.0.0/src/include/nerve/serialization/ph5_ph6_schema_serializer.hpp +133 -0
- pynerve-1.0.0/src/include/nerve/serialization/serialization_manager.hpp +276 -0
- pynerve-1.0.0/src/include/nerve/sheaf/detail/sheaf_detail.hpp +21 -0
- pynerve-1.0.0/src/include/nerve/sheaf/gpu_sheaf.hpp +251 -0
- pynerve-1.0.0/src/include/nerve/sheaf/sheaf.hpp +12 -0
- pynerve-1.0.0/src/include/nerve/sheaf/sheaf_laplacian.hpp +207 -0
- pynerve-1.0.0/src/include/nerve/sheaf/sheaf_learning.hpp +162 -0
- pynerve-1.0.0/src/include/nerve/sheaf/tensorcore_sheaf.hpp +182 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_arithmetic.hpp +6 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_base.hpp +446 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_blas.hpp +4 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_compare.hpp +4 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_distance.hpp +107 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_elementwise.hpp +5 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_memory.hpp +17 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_nn.hpp +47 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_quantize.hpp +27 -0
- pynerve-1.0.0/src/include/nerve/simd/simd_reduce.hpp +5 -0
- pynerve-1.0.0/src/include/nerve/spectral/detail/spectral_detail.hpp +28 -0
- pynerve-1.0.0/src/include/nerve/spectral/laplacian.hpp +184 -0
- pynerve-1.0.0/src/include/nerve/spectral/persistent_laplacian.hpp +308 -0
- pynerve-1.0.0/src/include/nerve/spectral/symmetric_eigendecomposition.hpp +145 -0
- pynerve-1.0.0/src/include/nerve/streaming/detail/streaming_detail.hpp +88 -0
- pynerve-1.0.0/src/include/nerve/streaming/diagram_sorting.hpp +18 -0
- pynerve-1.0.0/src/include/nerve/streaming/gpu_streaming.hpp +17 -0
- pynerve-1.0.0/src/include/nerve/streaming/incremental.hpp +266 -0
- pynerve-1.0.0/src/include/nerve/streaming/lock_free_streaming.hpp +319 -0
- pynerve-1.0.0/src/include/nerve/streaming/streaming_laplacian.hpp +113 -0
- pynerve-1.0.0/src/include/nerve/streaming/streaming_tda.hpp +126 -0
- pynerve-1.0.0/src/include/nerve/streaming/windowed_ph.hpp +223 -0
- pynerve-1.0.0/src/include/nerve/streaming/zigzag_filters.hpp +22 -0
- pynerve-1.0.0/src/include/nerve/summary/compact_summary.hpp +164 -0
- pynerve-1.0.0/src/include/nerve/torch/boundary_matrix.hpp +163 -0
- pynerve-1.0.0/src/include/nerve/torch/boundary_matrix_sparse_utils.hpp +195 -0
- pynerve-1.0.0/src/include/nerve/torch/detail/torch_detail.hpp +52 -0
- pynerve-1.0.0/src/include/nerve/torch/filtration.hpp +180 -0
- pynerve-1.0.0/src/include/nerve/torch/mapper.hpp +126 -0
- pynerve-1.0.0/src/include/nerve/torch/ml_operations.hpp +90 -0
- pynerve-1.0.0/src/include/nerve/torch/persistence_diagram.hpp +206 -0
- pynerve-1.0.0/src/include/nerve/torch/simplex_tree.hpp +154 -0
- pynerve-1.0.0/src/include/nerve/torch/torch_wrapper.hpp +8 -0
- pynerve-1.0.0/src/include/nerve/types.hpp +128 -0
- pynerve-1.0.0/src/include/nerve/validation/microbenchmarks.hpp +284 -0
- pynerve-1.0.0/src/include/nerve/validation/ph5_ph6_microbenchmarks.hpp +115 -0
- pynerve-1.0.0/src/include/persistence/CMakeLists.txt +35 -0
- pynerve-1.0.0/src/include/persistence/field_aware_vietoris_rips.hpp +557 -0
- pynerve-1.0.0/src/include/persistence/mathematically_correct_reduction.hpp +428 -0
- pynerve-1.0.0/src/include/threading/concurrent_vector.hpp +553 -0
- pynerve-1.0.0/src/include/threading/thread_pool.hpp +369 -0
- pynerve-1.0.0/src/include/threading/work_stealing_queue.hpp +206 -0
- pynerve-1.0.0/src/instrumentation/high_dim_error_sink.cpp +49 -0
- pynerve-1.0.0/src/instrumentation/scale_tests.cpp +225 -0
- pynerve-1.0.0/src/instrumentation/stability_certificates.cpp +370 -0
- pynerve-1.0.0/src/io/async_io_ops.cpp +309 -0
- pynerve-1.0.0/src/io/diagram_io_ops.cpp +227 -0
- pynerve-1.0.0/src/io/mmap_io_ops.cpp +167 -0
- pynerve-1.0.0/src/io/npy_io_ops.cpp +205 -0
- pynerve-1.0.0/src/memory/memory_pool_ops.cpp +451 -0
- pynerve-1.0.0/src/metrics/bottleneck/distance_bottleneck_ops.cpp +471 -0
- pynerve-1.0.0/src/metrics/cuda/diagram_distance_gpu.cuh +15 -0
- pynerve-1.0.0/src/metrics/cuda/diagram_distance_gpu_kernels.cu +78 -0
- pynerve-1.0.0/src/metrics/detail/metrics_detail.hpp +61 -0
- pynerve-1.0.0/src/metrics/diagram/diagram_distance_bottleneck.cpp +205 -0
- pynerve-1.0.0/src/metrics/diagram/diagram_distance_cuda.cu +223 -0
- pynerve-1.0.0/src/metrics/diagram/diagram_distance_cuda_impl.cpp +408 -0
- pynerve-1.0.0/src/metrics/diagram/diagram_distance_hungarian.cpp +93 -0
- pynerve-1.0.0/src/metrics/diagram/diagram_distance_ops.cpp +145 -0
- pynerve-1.0.0/src/metrics/diagram/diagram_distance_wasserstein.cpp +181 -0
- pynerve-1.0.0/src/metrics/frechet/distance_frechet_ops.cpp +278 -0
- pynerve-1.0.0/src/metrics/general/distance_complex_point_ops.cpp +194 -0
- pynerve-1.0.0/src/metrics/general/distance_factory_ops.cpp +408 -0
- pynerve-1.0.0/src/metrics/general/distance_general_ops.cpp +344 -0
- pynerve-1.0.0/src/metrics/general/distance_transport_ops.cpp +450 -0
- pynerve-1.0.0/src/metrics/general/distance_transport_ops_detail.cpp +152 -0
- pynerve-1.0.0/src/metrics/hungarian/assignment_hungarian_cuda.cu +406 -0
- pynerve-1.0.0/src/metrics/hungarian/assignment_hungarian_gpu_impl.cpp +472 -0
- pynerve-1.0.0/src/metrics/hungarian/assignment_hungarian_tiled_cuda.cu +386 -0
- pynerve-1.0.0/src/metrics/matrix/matrix_distance_avx512_ops.cpp +251 -0
- pynerve-1.0.0/src/metrics/matrix/matrix_distance_ops.cpp +132 -0
- pynerve-1.0.0/src/metrics/matrix/matrix_lazy_distance_ops.cpp +344 -0
- pynerve-1.0.0/src/metrics/matrix/matrix_sparse_distance_ops.cpp +216 -0
- pynerve-1.0.0/src/metrics/vr/vr_lazy_build_ops.cpp +220 -0
- pynerve-1.0.0/src/metrics/wasserstein/distance_sinkhorn_ops.cpp +448 -0
- pynerve-1.0.0/src/ml/diff/persistence_gradient.cpp +436 -0
- pynerve-1.0.0/src/ml/diff/simplex_autodiff.cu +504 -0
- pynerve-1.0.0/src/ml/nn/diagram_message_passing.cu +134 -0
- pynerve-1.0.0/src/ml/nn/diagram_message_passing_benchmark.inl +106 -0
- pynerve-1.0.0/src/ml/nn/diagram_message_passing_kernels.inl +306 -0
- pynerve-1.0.0/src/ml/nn/diagram_message_passing_layers.inl +332 -0
- pynerve-1.0.0/src/nn/cuda/nn_kernels.cu +500 -0
- pynerve-1.0.0/src/nn/diagram_conv.cpp +446 -0
- pynerve-1.0.0/src/nn/diagram_conv_image_ops.cpp +552 -0
- pynerve-1.0.0/src/nn/diagram_conv_kernels.inl +166 -0
- pynerve-1.0.0/src/nn/simd_nn_ops.cpp +43 -0
- pynerve-1.0.0/src/optimization/compact_summaries.cpp +401 -0
- pynerve-1.0.0/src/optimization/compact_summaries_detail.hpp +123 -0
- pynerve-1.0.0/src/optimization/compact_summaries_memory.cpp +73 -0
- pynerve-1.0.0/src/optimization/gpu/opt_kernels.cu +71 -0
- pynerve-1.0.0/src/optimization/gpu/opt_kernels.cuh +18 -0
- pynerve-1.0.0/src/optimization/gpu_primitives.cpp +507 -0
- pynerve-1.0.0/src/optimization/gpu_primitives_helpers.cpp +239 -0
- pynerve-1.0.0/src/optimization/gpu_primitives_kernels.cu +117 -0
- pynerve-1.0.0/src/optimization/parameter_sweep.cpp +419 -0
- pynerve-1.0.0/src/optimization/simd/optimizer_simd_ops.cpp +18 -0
- pynerve-1.0.0/src/optimization/streaming_ph.cpp +440 -0
- pynerve-1.0.0/src/persistence/accelerated/cuda_edge_extraction.cpp +328 -0
- pynerve-1.0.0/src/persistence/accelerated/determinism.cpp +290 -0
- pynerve-1.0.0/src/persistence/accelerated/determinism_validation.cpp +237 -0
- pynerve-1.0.0/src/persistence/accelerated/error_code_registry.cpp +227 -0
- pynerve-1.0.0/src/persistence/accelerated/error_handling.cpp +89 -0
- pynerve-1.0.0/src/persistence/accelerated/exception_safety.cpp +122 -0
- pynerve-1.0.0/src/persistence/accelerated/fast_vr_gpu_integration.cpp +21 -0
- pynerve-1.0.0/src/persistence/accelerated/gpu_apparent_pairs.cu +178 -0
- pynerve-1.0.0/src/persistence/accelerated/gpu_memory_monitor.cpp +71 -0
- pynerve-1.0.0/src/persistence/accelerated/gpu_reduction_engine.cpp +14 -0
- pynerve-1.0.0/src/persistence/accelerated/heterogeneous_fast_vr.cpp +52 -0
- pynerve-1.0.0/src/persistence/accelerated/hybrid_reduction_engine.cpp +21 -0
- pynerve-1.0.0/src/persistence/accelerated/nerve_interface.cpp +23 -0
- pynerve-1.0.0/src/persistence/accelerated/optimization_advice.cpp +54 -0
- pynerve-1.0.0/src/persistence/accelerated/performance.cpp +33 -0
- pynerve-1.0.0/src/persistence/accelerated/performance_impact.cpp +38 -0
- pynerve-1.0.0/src/persistence/accelerated/thread_safe_allocator.cpp +5 -0
- pynerve-1.0.0/src/persistence/accelerated/validation.cpp +308 -0
- pynerve-1.0.0/src/persistence/acceleration_runtime/acceleration_runtime_engine.cpp +187 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/CMakeLists.txt +332 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_acceleration_engine.cpp +201 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_acceleration_problem_analysis.cpp +396 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_acceleration_system_capabilities.cpp +281 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_algorithm_selector.cpp +442 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_algorithm_selector_exec.cpp +91 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/adaptive_selector_calibration.cpp +98 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/distance_kernels.cu +350 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/distance_kernels_inst.cu +10 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/distance_reduction_kernels.cu +100 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/hybrid_algorithms.cpp +197 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/reduction_kernels.cu +377 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/cuda/tensor_core_optimizer.cpp +243 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/lockfree_multicore.cpp +416 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/matrix_multiplication_framework.cpp +259 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/representative_cycles.cpp +8 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/sparse_matrix.cpp +483 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/sparsification_engine.cpp +423 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/approximate_processor.cpp +369 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/approximate_processor_adaptive.cpp +107 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/approximate_processor_ops.cpp +259 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/representative_cycles.cpp +359 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/representative_cycles_conversion.cpp +279 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/representative_cycles_visualization.cpp +142 -0
- pynerve-1.0.0/src/persistence/adaptive_acceleration/streaming/streaming_processor.cpp +493 -0
- pynerve-1.0.0/src/persistence/approximate/approximate_bloom_filter_ops.cpp +297 -0
- pynerve-1.0.0/src/persistence/approximate/approximate_distilled_vr_ops.cpp +1 -0
- pynerve-1.0.0/src/persistence/approximate/approximate_nearest_neighbor_ops.cpp +215 -0
- pynerve-1.0.0/src/persistence/approximate/approximate_perfect_hash_benchmark.cpp +156 -0
- pynerve-1.0.0/src/persistence/approximate/approximate_perfect_hash_io.cpp +139 -0
- pynerve-1.0.0/src/persistence/approximate/approximate_perfect_hash_ops.cpp +338 -0
- pynerve-1.0.0/src/persistence/approximate/approximate_sketching_ops.cpp +292 -0
- pynerve-1.0.0/src/persistence/approximate/detail/approximate_distilled_vr_ops_impl.inl +498 -0
- pynerve-1.0.0/src/persistence/cohomology/cohomology_dual.cpp +151 -0
- pynerve-1.0.0/src/persistence/cohomology/cohomology_involuted_ops.cpp +428 -0
- pynerve-1.0.0/src/persistence/cohomology/cohomology_ops.cpp +270 -0
- pynerve-1.0.0/src/persistence/cohomology/cohomology_persistent_ops.cpp +672 -0
- pynerve-1.0.0/src/persistence/cohomology/cohomology_ring.cpp +176 -0
- pynerve-1.0.0/src/persistence/cohomology/cohomology_rref.cpp +107 -0
- pynerve-1.0.0/src/persistence/cohomology/cohomology_rref_ops.cpp +198 -0
- pynerve-1.0.0/src/persistence/cohomology/cohomology_sheaf.cpp +212 -0
- pynerve-1.0.0/src/persistence/cohomology/cohomology_structures.cpp +104 -0
- pynerve-1.0.0/src/persistence/core/delaunay3d.cpp +332 -0
- pynerve-1.0.0/src/persistence/core/detail/extreme_memory_reduction_impl.inl +89 -0
- pynerve-1.0.0/src/persistence/core/detail/persistence_gradient_algorithm_helpers.inl +55 -0
- pynerve-1.0.0/src/persistence/core/detail/persistence_gradient_api_ops.inl +314 -0
- pynerve-1.0.0/src/persistence/core/detail/persistence_gradient_core_ops.inl +272 -0
- pynerve-1.0.0/src/persistence/core/detail/persistence_gradient_matrix_helpers.inl +47 -0
- pynerve-1.0.0/src/persistence/core/extreme_memory_reduction.cpp +50 -0
- pynerve-1.0.0/src/persistence/core/flood_complex.cpp +419 -0
- pynerve-1.0.0/src/persistence/core/flood_complex_utils.cpp +254 -0
- pynerve-1.0.0/src/persistence/core/high_dimensional_exact.cpp +432 -0
- pynerve-1.0.0/src/persistence/core/per_dimension_exact.cpp +411 -0
- pynerve-1.0.0/src/persistence/core/per_dimension_h0.cpp +189 -0
- pynerve-1.0.0/src/persistence/core/per_dimension_h1.cpp +38 -0
- pynerve-1.0.0/src/persistence/core/per_dimension_h2.cpp +38 -0
- pynerve-1.0.0/src/persistence/core/persistence_gradient.cpp +398 -0
- pynerve-1.0.0/src/persistence/core/persistence_gradient_basic.cpp +22 -0
- pynerve-1.0.0/src/persistence/core/roaring_bitmap.cpp +216 -0
- pynerve-1.0.0/src/persistence/core/roaring_bitmap_column.cpp +325 -0
- pynerve-1.0.0/src/persistence/core/roaring_bitmap_container.cpp +148 -0
- pynerve-1.0.0/src/persistence/core/roaring_bitmap_hybrid.cpp +156 -0
- pynerve-1.0.0/src/persistence/core/roaring_bitmap_ops.cpp +196 -0
- pynerve-1.0.0/src/persistence/core/topology_optimizer.cpp +142 -0
- pynerve-1.0.0/src/persistence/core/vram_efficient_algorithms.cpp +41 -0
- pynerve-1.0.0/src/persistence/cuda/adaptive_selector_gpu.cu +647 -0
- pynerve-1.0.0/src/persistence/cuda/cluster_16_block.cu +167 -0
- pynerve-1.0.0/src/persistence/cuda/cluster_distributed_l2.cu +229 -0
- pynerve-1.0.0/src/persistence/cuda/cluster_tma_multicast.cu +169 -0
- pynerve-1.0.0/src/persistence/cuda/cohomology_clearing_cuda.cu +554 -0
- pynerve-1.0.0/src/persistence/cuda/cuda_blackwell_benchmark.cu +141 -0
- pynerve-1.0.0/src/persistence/cuda/cuda_blackwell_tma.cu +401 -0
- pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_apparent_pairs.cu +243 -0
- pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_compute.cu +185 -0
- pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_diagram.cu +52 -0
- pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_kernels.cu +660 -0
- pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_private.cuh +44 -0
- pynerve-1.0.0/src/persistence/cuda/cuda_matrix_reduction_warp.cu +437 -0
- pynerve-1.0.0/src/persistence/cuda/detail/adaptive_selector_benchmark.inl +50 -0
- pynerve-1.0.0/src/persistence/cuda/detail/gpu_cohomology_boundary_matrix.inl +146 -0
- pynerve-1.0.0/src/persistence/cuda/detail/gpu_cohomology_engine_methods.inl +304 -0
- pynerve-1.0.0/src/persistence/cuda/distance_filtration_cuda.cu +454 -0
- pynerve-1.0.0/src/persistence/cuda/distance_filtration_wrappers_cuda.cu +45 -0
- pynerve-1.0.0/src/persistence/cuda/error_handling_cuda.cpp +293 -0
- pynerve-1.0.0/src/persistence/cuda/error_mapping_cuda.cpp +454 -0
- pynerve-1.0.0/src/persistence/cuda/gpu_clearing_impl.cpp +408 -0
- pynerve-1.0.0/src/persistence/cuda/gpu_cohomology_impl.cpp +225 -0
- pynerve-1.0.0/src/persistence/cuda/gpu_reduction_impl.cpp +477 -0
- pynerve-1.0.0/src/persistence/cuda/kernel_apparent_pairs_cuda.cu +272 -0
- pynerve-1.0.0/src/persistence/cuda/kernel_clearing_cuda.cu +196 -0
- pynerve-1.0.0/src/persistence/cuda/kernel_edge_extraction_cuda.cu +286 -0
- pynerve-1.0.0/src/persistence/cuda/kernel_ptx_micro_ops_cuda.cu +263 -0
- pynerve-1.0.0/src/persistence/cuda/kernel_tile_cuda.cu +316 -0
- pynerve-1.0.0/src/persistence/cuda/kernel_tma_cuda.cu +224 -0
- pynerve-1.0.0/src/persistence/cuda/kernel_warp_specialized_cuda.cu +517 -0
- pynerve-1.0.0/src/persistence/cuda/matrix_distance_api_cuda.cu +453 -0
- pynerve-1.0.0/src/persistence/cuda/matrix_distance_api_entrypoints.cu +63 -0
- pynerve-1.0.0/src/persistence/cuda/matrix_distance_config_cuda.cu +69 -0
- pynerve-1.0.0/src/persistence/cuda/matrix_distance_cuda.cu +437 -0
- pynerve-1.0.0/src/persistence/cuda/matrix_distance_tiled_cuda.cu +431 -0
- pynerve-1.0.0/src/persistence/cuda/matrix_reduction_launch_cuda.cu +107 -0
- pynerve-1.0.0/src/persistence/cuda/multi_gpu_cuda.cu +443 -0
- pynerve-1.0.0/src/persistence/cuda/multi_gpu_reduction_ops.cpp +107 -0
- pynerve-1.0.0/src/persistence/cuda/tensor_core_benchmark.cu +266 -0
- pynerve-1.0.0/src/persistence/cuda/tensor_core_cuda.cu +451 -0
- pynerve-1.0.0/src/persistence/cuda/tensor_core_wrappers_cuda.cu +17 -0
- pynerve-1.0.0/src/persistence/cuda/tuning_tma_cuda.cu +215 -0
- pynerve-1.0.0/src/persistence/detail/persistence_reduction_impl.inl +145 -0
- pynerve-1.0.0/src/persistence/detail/persistence_utility_impl.inl +134 -0
- pynerve-1.0.0/src/persistence/differentiable/differentiable_finite_diff_ops.cpp +173 -0
- pynerve-1.0.0/src/persistence/differentiable/differentiable_manager.cpp +210 -0
- pynerve-1.0.0/src/persistence/differentiable/differentiable_ops.cpp +29 -0
- pynerve-1.0.0/src/persistence/differentiable/differentiable_ph5_ops.cpp +272 -0
- pynerve-1.0.0/src/persistence/differentiable/differentiable_ph6_ops.cpp +223 -0
- pynerve-1.0.0/src/persistence/distributed/detail/mpi_distributed_helpers.inl +62 -0
- pynerve-1.0.0/src/persistence/distributed/mpi_distributed_ph.cpp +559 -0
- pynerve-1.0.0/src/persistence/kernels/detail/kernel_dimension_specialized_tuning.inl +93 -0
- pynerve-1.0.0/src/persistence/kernels/kernel_dimension_specialized_ops.cpp +350 -0
- pynerve-1.0.0/src/persistence/kernels/kernel_h1_ops.cpp +284 -0
- pynerve-1.0.0/src/persistence/kernels/kernel_h2_alpha_ops.cpp +395 -0
- pynerve-1.0.0/src/persistence/kernels/kernel_h3_tetrahedra_ops.cpp +68 -0
- pynerve-1.0.0/src/persistence/kernels/kernel_h4_chunked_ops.cpp +58 -0
- pynerve-1.0.0/src/persistence/kernels/kernel_h5_prefetch_ops.cpp +80 -0
- pynerve-1.0.0/src/persistence/kernels/kernel_h6_streaming_ops.cpp +56 -0
- pynerve-1.0.0/src/persistence/kernels/ph4_ops.cpp +465 -0
- pynerve-1.0.0/src/persistence/kernels/ph4_summary_ops.cpp +82 -0
- pynerve-1.0.0/src/persistence/kernels/ph5_high_dim_ops.cpp +307 -0
- pynerve-1.0.0/src/persistence/kernels/ph6_high_dim_ops.cpp +388 -0
- pynerve-1.0.0/src/persistence/kernels/thread_block_cluster.cpp +300 -0
- pynerve-1.0.0/src/persistence/memory/memory_clear_compress_ops.cpp +444 -0
- pynerve-1.0.0/src/persistence/memory/memory_numa_optimizer.cpp +438 -0
- pynerve-1.0.0/src/persistence/memory/memory_pool_ops.cpp +477 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_clearing_ops.cpp +248 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_cohomology_ops.cpp +212 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_control_ops.cpp +186 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_distributed_ops.cpp +375 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_edge_collapse_ops.cpp +268 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_hypha_ops.cpp +475 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures.cpp +77 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_benchmark.cpp +173 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_coordinator.cpp +66 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_pivot.cpp +123 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_pivot_announce.cpp +56 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_lock_free_structures_work_queue.cpp +169 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_lockfree_ops.cpp +702 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_mpi_ops.cpp +365 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_ops.cpp +527 -0
- pynerve-1.0.0/src/persistence/reduction/reduction_union_find_ops.cpp +390 -0
- pynerve-1.0.0/src/persistence/streaming/bron_kerbosch.cpp +108 -0
- pynerve-1.0.0/src/persistence/streaming/detail/tile_streaming_runtime.inl +403 -0
- pynerve-1.0.0/src/persistence/streaming/simplex_hash.cpp +72 -0
- pynerve-1.0.0/src/persistence/streaming/streaming_column_generator.cpp +224 -0
- pynerve-1.0.0/src/persistence/streaming/streaming_reducer_impl.cpp +164 -0
- pynerve-1.0.0/src/persistence/streaming/streaming_vr.cpp +183 -0
- pynerve-1.0.0/src/persistence/streaming/tile_streaming_ph.cpp +334 -0
- pynerve-1.0.0/src/persistence/utils/adaptive_selector.cpp +459 -0
- pynerve-1.0.0/src/persistence/utils/api.cpp +279 -0
- pynerve-1.0.0/src/persistence/utils/avx512_optimizer.cpp +287 -0
- pynerve-1.0.0/src/persistence/utils/avx512_optimizer_kernels.cpp +238 -0
- pynerve-1.0.0/src/persistence/utils/bit_parallel_z2.cpp +443 -0
- pynerve-1.0.0/src/persistence/utils/cpp20_parallel_ph.cpp +397 -0
- pynerve-1.0.0/src/persistence/utils/diagram_statistics.cpp +60 -0
- pynerve-1.0.0/src/persistence/utils/exact_engine.cpp +331 -0
- pynerve-1.0.0/src/persistence/utils/exact_engine_cohomology.cpp +155 -0
- pynerve-1.0.0/src/persistence/utils/exact_engine_cohomology_graph.cpp +181 -0
- pynerve-1.0.0/src/persistence/utils/exact_engine_fast.cpp +910 -0
- pynerve-1.0.0/src/persistence/utils/exact_engine_internal.hpp +23 -0
- pynerve-1.0.0/src/persistence/utils/filtration_simplifier.cpp +339 -0
- pynerve-1.0.0/src/persistence/utils/incremental_updates.cpp +484 -0
- pynerve-1.0.0/src/persistence/utils/incremental_updates_complex_builder.cpp +312 -0
- pynerve-1.0.0/src/persistence/utils/persistence_diagram.cpp +168 -0
- pynerve-1.0.0/src/persistence/vr/detail/vr_h1_reduction_config.inl +48 -0
- pynerve-1.0.0/src/persistence/vr/detail/vr_h1_reduction_helpers.inl +104 -0
- pynerve-1.0.0/src/persistence/vr/detail/vr_medium_hybrid_helpers.inl +126 -0
- pynerve-1.0.0/src/persistence/vr/vr_algorithm_selector_ops.cpp +430 -0
- pynerve-1.0.0/src/persistence/vr/vr_cohomology_ops.cpp +82 -0
- pynerve-1.0.0/src/persistence/vr/vr_dispatch_ops.cpp +242 -0
- pynerve-1.0.0/src/persistence/vr/vr_distance_tiled_ops.cpp +485 -0
- pynerve-1.0.0/src/persistence/vr/vr_fast_api.cpp +137 -0
- pynerve-1.0.0/src/persistence/vr/vr_fast_engine.cpp +453 -0
- pynerve-1.0.0/src/persistence/vr/vr_fast_factory.cpp +80 -0
- pynerve-1.0.0/src/persistence/vr/vr_fast_impl.cpp +330 -0
- pynerve-1.0.0/src/persistence/vr/vr_fast_ops.cpp +373 -0
- pynerve-1.0.0/src/persistence/vr/vr_fast_ops_detail.cpp +399 -0
- pynerve-1.0.0/src/persistence/vr/vr_fast_runtime.cpp +331 -0
- pynerve-1.0.0/src/persistence/vr/vr_fast_runtime_support.cpp +115 -0
- pynerve-1.0.0/src/persistence/vr/vr_fast_simd_ops.cpp +470 -0
- pynerve-1.0.0/src/persistence/vr/vr_h1_reduction_ops.cpp +355 -0
- pynerve-1.0.0/src/persistence/vr/vr_landmark_ops.cpp +320 -0
- pynerve-1.0.0/src/persistence/vr/vr_large_witness_ops.cpp +187 -0
- pynerve-1.0.0/src/persistence/vr/vr_lazy_witness_ops.cpp +249 -0
- pynerve-1.0.0/src/persistence/vr/vr_medium_hybrid_expander.cpp +63 -0
- pynerve-1.0.0/src/persistence/vr/vr_medium_hybrid_expander.hpp +103 -0
- pynerve-1.0.0/src/persistence/vr/vr_medium_hybrid_gpu_distance.cpp +91 -0
- pynerve-1.0.0/src/persistence/vr/vr_medium_hybrid_ops.cpp +273 -0
- pynerve-1.0.0/src/persistence/vr/vr_sparse_rips_ops.cpp +498 -0
- pynerve-1.0.0/src/precision/precision_policy.cpp +296 -0
- pynerve-1.0.0/src/probabilistic/probabilistic.cpp +446 -0
- pynerve-1.0.0/src/probabilistic/probabilistic_detail.hpp +290 -0
- pynerve-1.0.0/src/probabilistic/probabilistic_gpu.cu +655 -0
- pynerve-1.0.0/src/probabilistic/probabilistic_models.cpp +278 -0
- pynerve-1.0.0/src/probabilistic/probabilistic_sampling.cpp +474 -0
- pynerve-1.0.0/src/probabilistic/probabilistic_statistics.cpp +469 -0
- pynerve-1.0.0/src/regularization/augmentation_gpu.cu +33 -0
- pynerve-1.0.0/src/regularization/augmentation_gpu_benchmark.inl +75 -0
- pynerve-1.0.0/src/regularization/augmentation_gpu_engine.inl +305 -0
- pynerve-1.0.0/src/regularization/augmentation_gpu_kernels.inl +131 -0
- pynerve-1.0.0/src/regularization/loss_kernels.cu +34 -0
- pynerve-1.0.0/src/regularization/loss_kernels_api.inl +346 -0
- pynerve-1.0.0/src/regularization/loss_kernels_benchmark.inl +58 -0
- pynerve-1.0.0/src/regularization/loss_kernels_device.inl +259 -0
- pynerve-1.0.0/src/regularization/regularizer_gpu.cu +682 -0
- pynerve-1.0.0/src/runtime/calibration_gpu.cu +33 -0
- pynerve-1.0.0/src/runtime/calibration_gpu_benchmark.inl +149 -0
- pynerve-1.0.0/src/runtime/calibration_gpu_kernels.inl +103 -0
- pynerve-1.0.0/src/runtime/calibration_gpu_model.inl +406 -0
- pynerve-1.0.0/src/runtime/calibration_model.cpp +303 -0
- pynerve-1.0.0/src/runtime/calibration_model_detail.cpp +244 -0
- pynerve-1.0.0/src/runtime/calibration_model_detail.hpp +18 -0
- pynerve-1.0.0/src/runtime/hardware_probe.cpp +553 -0
- pynerve-1.0.0/src/serialization/detail/serialization_detail.hpp +62 -0
- pynerve-1.0.0/src/serialization/ph5_ph6_schema_registry.cpp +428 -0
- pynerve-1.0.0/src/serialization/ph5_ph6_schema_serializer.cpp +524 -0
- pynerve-1.0.0/src/serialization/serialization_arrow.cpp +168 -0
- pynerve-1.0.0/src/serialization/serialization_flatbuffers.cpp +192 -0
- pynerve-1.0.0/src/serialization/serialization_manager_base.cpp +265 -0
- pynerve-1.0.0/src/serialization/serialization_schema.cpp +122 -0
- pynerve-1.0.0/src/serialization/serialization_utilities.cpp +140 -0
- pynerve-1.0.0/src/serialization/serialization_version_negotiator.cpp +194 -0
- pynerve-1.0.0/src/serialization/serialization_wire.hpp +255 -0
- pynerve-1.0.0/src/sheaf/sheaf_construction_parallel.cpp +425 -0
- pynerve-1.0.0/src/sheaf/sheaf_engine.cpp +225 -0
- pynerve-1.0.0/src/sheaf/sheaf_laplacian.cpp +488 -0
- pynerve-1.0.0/src/sheaf/sheaf_laplacian_detail.hpp +152 -0
- pynerve-1.0.0/src/sheaf/sheaf_laplacian_factory.cpp +296 -0
- pynerve-1.0.0/src/sheaf/sheaf_laplacian_gpu.cu +186 -0
- pynerve-1.0.0/src/sheaf/sheaf_laplacian_gpu_kernels.inl +197 -0
- pynerve-1.0.0/src/sheaf/sheaf_laplacian_gpu_multi.inl +50 -0
- pynerve-1.0.0/src/sheaf/sheaf_laplacian_gpu_solver.inl +240 -0
- pynerve-1.0.0/src/sheaf/sheaf_laplacian_matrices.cpp +198 -0
- pynerve-1.0.0/src/sheaf/sheaf_laplacian_tensorcore.cu +394 -0
- pynerve-1.0.0/src/sheaf/sheaf_learning.cpp +432 -0
- pynerve-1.0.0/src/sheaf/sheaf_learning_ops.cpp +163 -0
- pynerve-1.0.0/src/sheaf/sheaf_morphism_async.cpp +160 -0
- pynerve-1.0.0/src/sheaf/sheaf_morphism_optimizer.cpp +497 -0
- pynerve-1.0.0/src/sheaf/sheaf_simd_ops.cpp +70 -0
- pynerve-1.0.0/src/simd/CMakeLists.txt +36 -0
- pynerve-1.0.0/src/simd/simd_avx2.cpp +1279 -0
- pynerve-1.0.0/src/simd/simd_avx512.cpp +1198 -0
- pynerve-1.0.0/src/simd/simd_base.cpp +180 -0
- pynerve-1.0.0/src/simd/simd_neon.cpp +610 -0
- pynerve-1.0.0/src/simd/simd_scalar.cpp +704 -0
- pynerve-1.0.0/src/simd/simd_sse.cpp +1232 -0
- pynerve-1.0.0/src/simd/simd_sve.cpp +921 -0
- pynerve-1.0.0/src/specialized/cup_product.cu +117 -0
- pynerve-1.0.0/src/specialized/cup_product_benchmark.inl +104 -0
- pynerve-1.0.0/src/specialized/cup_product_computer.inl +248 -0
- pynerve-1.0.0/src/specialized/cup_product_kernels.inl +110 -0
- pynerve-1.0.0/src/specialized/reeb_graph.cu +592 -0
- pynerve-1.0.0/src/specialized/zigzag_persistence.cu +124 -0
- pynerve-1.0.0/src/specialized/zigzag_persistence_benchmark.inl +101 -0
- pynerve-1.0.0/src/specialized/zigzag_persistence_computer.inl +306 -0
- pynerve-1.0.0/src/specialized/zigzag_persistence_kernels.inl +81 -0
- pynerve-1.0.0/src/spectral/cuda_laplacian.cu +602 -0
- pynerve-1.0.0/src/spectral/dirac_clifford_product_gpu.cu +46 -0
- pynerve-1.0.0/src/spectral/dirac_operator.cpp +295 -0
- pynerve-1.0.0/src/spectral/dirac_operator_gpu.cu +643 -0
- pynerve-1.0.0/src/spectral/eigensolver_gpu.cu +46 -0
- pynerve-1.0.0/src/spectral/eigensolver_gpu_benchmark.inl +97 -0
- pynerve-1.0.0/src/spectral/eigensolver_gpu_core.inl +377 -0
- pynerve-1.0.0/src/spectral/eigensolver_gpu_extensions.inl +280 -0
- pynerve-1.0.0/src/spectral/laplacian.cpp +528 -0
- pynerve-1.0.0/src/spectral/laplacian_gpu_impl.cpp +398 -0
- pynerve-1.0.0/src/spectral/persistent_laplacian.cpp +408 -0
- pynerve-1.0.0/src/spectral/persistent_laplacian_gpu.cpp +460 -0
- pynerve-1.0.0/src/spectral/persistent_laplacian_gpu_internal.hpp +49 -0
- pynerve-1.0.0/src/spectral/persistent_laplacian_gpu_kernels.cu +47 -0
- pynerve-1.0.0/src/spectral/persistent_laplacian_gpu_solver_helpers.cu +174 -0
- pynerve-1.0.0/src/spectral/persistent_laplacian_support.cpp +252 -0
- pynerve-1.0.0/src/spectral/spectral_anomaly_detector.cpp +276 -0
- pynerve-1.0.0/src/spectral/spectral_feature_extractor.cpp +298 -0
- pynerve-1.0.0/src/spectral/spectral_simd_ops.cpp +48 -0
- pynerve-1.0.0/src/spectral/spectral_stack_manager.cpp +252 -0
- pynerve-1.0.0/src/streaming/core/approximate_streaming_ph.cpp +87 -0
- pynerve-1.0.0/src/streaming/core/streaming_diagram_sort_ops.cpp +69 -0
- pynerve-1.0.0/src/streaming/core/streaming_distributed_realtime_ops.cpp +408 -0
- pynerve-1.0.0/src/streaming/core/streaming_incremental_ops.cpp +316 -0
- pynerve-1.0.0/src/streaming/core/streaming_windowed_ops.cpp +153 -0
- pynerve-1.0.0/src/streaming/core/streaming_zigzag_filters_ops.cpp +253 -0
- pynerve-1.0.0/src/streaming/core/streaming_zigzag_ops.cpp +371 -0
- pynerve-1.0.0/src/streaming/detail/streaming_detail.hpp +64 -0
- pynerve-1.0.0/src/streaming/gpu/gpu_multi_stream_ops.cpp +136 -0
- pynerve-1.0.0/src/streaming/gpu/streaming_gpu_impl.cpp +406 -0
- pynerve-1.0.0/src/streaming/gpu/streaming_persistence_cuda.cu +289 -0
- pynerve-1.0.0/src/streaming/gpu/streaming_simd_ops.cpp +23 -0
- pynerve-1.0.0/src/streaming/gpu/windowed_ph_cuda.cu +473 -0
- pynerve-1.0.0/src/streaming/laplacian/incremental_graph_laplacian.cpp +304 -0
- pynerve-1.0.0/src/streaming/laplacian/streaming_laplacian_ops.cpp +123 -0
- pynerve-1.0.0/src/streaming/laplacian/streaming_laplacian_processor.cpp +123 -0
- pynerve-1.0.0/src/streaming/lockfree/detail/streaming_lockfree_windows.inl +218 -0
- pynerve-1.0.0/src/streaming/lockfree/streaming_lockfree_ops.cpp +412 -0
- pynerve-1.0.0/src/streaming/lockfree/streaming_lockfree_runtime_ops.cpp +379 -0
- pynerve-1.0.0/src/streaming/lockfree/streaming_mpi_ops.cpp +250 -0
- pynerve-1.0.0/src/streaming/windowed/windowed_ph_benchmark_ops.cpp +157 -0
- pynerve-1.0.0/src/streaming/windowed/windowed_ph_core_ops.cpp +337 -0
- pynerve-1.0.0/src/streaming/windowed/windowed_ph_ops.cpp +375 -0
- pynerve-1.0.0/src/streaming/windowed/windowed_ph_runtime_ops.cpp +254 -0
- pynerve-1.0.0/src/summary/compact_summary.cpp +479 -0
- pynerve-1.0.0/src/summary/compact_summary_factory_validator.cpp +78 -0
- pynerve-1.0.0/src/summary/compact_summary_serialization.cpp +478 -0
- pynerve-1.0.0/src/torch/autograd_torch.cpp +389 -0
- pynerve-1.0.0/src/torch/boundary_matrix.cpp +445 -0
- pynerve-1.0.0/src/torch/detail/filtration_factory_ops.inl +189 -0
- pynerve-1.0.0/src/torch/detail/mapper_impl.inl +753 -0
- pynerve-1.0.0/src/torch/detail/ml_vectorization_public_api.inl +53 -0
- pynerve-1.0.0/src/torch/detail/persistence_diagram_ops.inl +444 -0
- pynerve-1.0.0/src/torch/diagram_operations_torch.cpp +449 -0
- pynerve-1.0.0/src/torch/filtration.cpp +407 -0
- pynerve-1.0.0/src/torch/mapper.cpp +1 -0
- pynerve-1.0.0/src/torch/ml_kernels.cpp +424 -0
- pynerve-1.0.0/src/torch/ml_statistics.cpp +429 -0
- pynerve-1.0.0/src/torch/ml_vectorization.cpp +408 -0
- pynerve-1.0.0/src/torch/ml_vectorization_ops.cpp +127 -0
- pynerve-1.0.0/src/torch/persistence_diagram.cpp +337 -0
- pynerve-1.0.0/src/torch/simplex_tree.cpp +352 -0
- pynerve-1.0.0/src/torch/simplex_tree_ops.cpp +232 -0
- pynerve-1.0.0/src/torch/simplex_tree_queries.cpp +244 -0
- pynerve-1.0.0/src/torch/torch_library.cpp +330 -0
- pynerve-1.0.0/src/torch/vietoris_rips_torch.cpp +294 -0
- pynerve-1.0.0/src/validation/microbenchmarks.cpp +106 -0
- pynerve-1.0.0/src/validation/microbenchmarks_gpu_compact.inl +191 -0
- pynerve-1.0.0/src/validation/microbenchmarks_streaming_laplacian.inl +193 -0
- pynerve-1.0.0/src/validation/ph5_ph6_benchmark_ci.cpp +123 -0
- pynerve-1.0.0/src/validation/ph5_ph6_benchmark_metrics.cpp +247 -0
- pynerve-1.0.0/src/validation/ph5_ph6_microbenchmarks.cpp +451 -0
- pynerve-1.0.0/src/validation/ph5_ph6_microbenchmarks_spectral.cpp +236 -0
- pynerve-1.0.0/tools/backend_checks.py +155 -0
- pynerve-1.0.0/tools/binding_smoke.py +248 -0
- pynerve-1.0.0/tools/cpp_install_smoke.py +210 -0
- pynerve-1.0.0/tools/generate_pyi.py +199 -0
- pynerve-1.0.0/tools/install_smoke.py +104 -0
- pynerve-1.0.0/tools/operator_schema.py +584 -0
- pynerve-1.0.0/tools/performance_guards.py +140 -0
- pynerve-1.0.0/tools/quality_checks/__init__.py +1 -0
- pynerve-1.0.0/tools/quality_checks/binding_contracts.py +117 -0
- pynerve-1.0.0/tools/quality_checks/build_contracts.py +715 -0
- pynerve-1.0.0/tools/quality_checks/common.py +547 -0
- pynerve-1.0.0/tools/quality_checks/import_api.py +143 -0
- pynerve-1.0.0/tools/run_tests.py +177 -0
- pynerve-1.0.0/tools/static_analysis.py +281 -0
- pynerve-1.0.0/tools/test_matrix.py +265 -0
- 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.
|