How th1275/sparse_numba works
Sparse_Numba exposes sparse linear-system solving from Numba-compiled code. The main workflow accepts CSC arrays and explicit backend/ordering choices, validates and dispatches factorization and solve operations, then returns status codes and solutions; callers can reuse handles to solve repeatedly, refactor values, and free them. Legacy backend interfaces also support COO/CSR conversion. The graph preserves the SuperLU, UMFPACK, and Eigen branches and the shared symbol/handle layers. Some native wrapper-to-library links are dashed because the sampled excerpts do not show their call sites.
Main entry points: api.py Solver API · superlu_wrapper.c SuperLU wrapper · umfpack_wrapper.c UMFPACK wrapper · sparse_numba_registry.h Handle registry
Components 15
Public API
- Solver API
sparse_numba/api.py - Status errors
sparse_numba/errors.py
Sparse Formats
- Format conversion
sparse_numba/conversion/matrix_conversion_numba.py
SuperLU Backend
- SuperLU interface
sparse_numba/sparse_superlu/superlu_numba_interface.py - SuperLU wrapper
sparse_numba/sparse_superlu/superlu_wrapper.c - SuperLU library
UMFPACK Backend
- UMFPACK interface
sparse_numba/sparse_umfpack/umfpack_numba_interface.py - UMFPACK wrapper
sparse_numba/sparse_umfpack/umfpack_wrapper.c - User SuiteSparse
Eigen Backend
- Eigen interface
sparse_numba/sparse_eigen/eigen_numba_interface.py - Eigen wrapper
sparse_numba/sparse_eigen/eigen_wrapper.cpp - Eigen library
Runtime Internals
- Symbol registry
sparse_numba/_symbols.py - Handle registry
sparse_numba/sparse_numba_registry.h
Other components
- Numba caller
Connections 20
- Numba caller → Solver API: calls
README.md - Solver API → SuperLU wrapper: dispatches
sparse_numba/api.py - Solver API → UMFPACK wrapper: dispatches
sparse_numba/api.py - Solver API → Eigen interface: dispatches
sparse_numba/api.py - Solver API → Status errors: raises
sparse_numba/api.py - SuperLU interface → Solver API: delegates to
sparse_numba/sparse_superlu/superlu_numba_interface.py - UMFPACK interface → Solver API: delegates to
sparse_numba/sparse_umfpack/umfpack_numba_interface.py - SuperLU interface → Format conversion: converts via
sparse_numba/sparse_superlu/superlu_numba_interface.py - UMFPACK interface → Format conversion: converts via
sparse_numba/sparse_umfpack/umfpack_numba_interface.py - SuperLU interface → SuperLU wrapper: calls
- UMFPACK interface → UMFPACK wrapper: calls
- Eigen interface → Eigen wrapper: calls
- SuperLU wrapper → SuperLU library: solves with
- UMFPACK wrapper → User SuiteSparse: loads and calls
- Eigen wrapper → Eigen library: solves with
- Solver API → Symbol registry: registers symbols
sparse_numba/api.py - Symbol registry → Handle registry: declares interface
- SuperLU wrapper → Handle registry: stores handles
sparse_numba/sparse_superlu/superlu_wrapper.c - UMFPACK wrapper → Handle registry: stores handles
sparse_numba/sparse_umfpack/umfpack_wrapper.c - Eigen wrapper → Handle registry: uses registry
sparse_numba/sparse_eigen/eigen_wrapper.cpp