This document outlines planned features, improvements, and long-term goals for LinAlgKit.
Target: Q1 2025
inverse()— Compute matrix inverse using LU decompositionsolve(b)— Solve linear system Ax = b- Pseudo-inverse for non-square matrices
lu()— LU decomposition with partial pivotingqr()— QR decomposition using Householder reflectionscholesky()— Cholesky decomposition for positive-definite matrices
eigenvalues()— Compute eigenvalueseigenvectors()— Compute eigenvectorseig()— Combined eigenvalue/eigenvector computation
# Planned: element-wise operations with broadcasting
A = lk.Matrix(3, 3, 1.0)
B = A + 5 # Add scalar to all elements# Planned: NumPy-style slicing
A = lk.Matrix.identity(5)
sub = A[1:4, 1:4] # Extract 3x3 submatrix# Planned: memory-efficient in-place operations
A += B # In-place addition
A *= 2 # In-place scalar multiplicationTarget: Q2 2025
SparseMatrix— CSR (Compressed Sparse Row) formatSparseCOO— Coordinate format for constructionSparseDiag— Diagonal sparse matrix
# Planned API
S = lk.SparseMatrix.from_csr(data, indices, indptr, shape)
S = lk.SparseMatrix.from_dense(dense_matrix, threshold=1e-10)
dense = S.to_dense()# Planned
norm_f = A.norm('fro') # sqrt(sum of squares)# Planned
norm_1 = A.norm(1) # Maximum column sum
norm_inf = A.norm('inf') # Maximum row sum
norm_2 = A.norm(2) # Spectral norm (largest singular value)# Planned
cond = A.condition_number() # Ratio of largest to smallest singular valueTarget: Q3 2025
# Planned API
U, S, Vt = A.svd()
U, S, Vt = A.svd(full_matrices=False) # Reduced SVD# Planned
A_approx = A.low_rank_approximation(rank=5)# Planned
exp_A = A.exp() # e^A using Padé approximation# Planned
log_A = A.log()# Planned
A_n = A.power(5) # A^5
A_half = A.power(0.5) # Matrix square rootTarget: Q4 2025
# Planned API
import LinAlgKit as lk
lk.set_backend('cuda') # Use GPU
A = lk.Matrix.from_numpy(large_array)
B = A * A # Computed on GPU- All basic arithmetic
- Matrix multiplication
- Decompositions (LU, QR, SVD)
- Eigenvalue computation
# Planned
lk.set_threads(8) # Use 8 CPU threads for operationsTarget: 2026
- All planned features implemented and stable
- Comprehensive test coverage (>95%)
- Performance benchmarks against NumPy/SciPy
- Complete documentation with tutorials
- Stable API with backwards compatibility guarantees
- Semantic versioning strictly enforced
- Deprecation warnings for any breaking changes
- SciPy interoperability
- Jupyter notebook integration
- Interactive documentation
- Optimize memory layout for cache efficiency
- Implement SIMD operations for element-wise functions
- Add optional Numba JIT compilation
- Benchmark suite with automated performance regression tests
- Property-based testing with Hypothesis
- Numerical accuracy tests against reference implementations
- Cross-platform CI (ARM, M1/M2 Mac)
- Memory leak detection
- Interactive API examples (Jupyter notebooks)
- Video tutorials
- Comparison guides (vs NumPy, SciPy, TensorFlow)
- Academic paper / citation
- Type stubs for mypy
- VS Code extension for matrix visualization
- Pre-commit hooks
- Contribution guidelines expansion
Have a feature request? Open an issue on GitHub: https://github.com/SciComputeOrg/LinAlgKit/issues
- Complex number support (
MatrixC) - Quaternion matrices for 3D graphics
- Symbolic matrix operations
- Interval arithmetic for verified computing
- Integration with SymPy
| Feature | 0.1.0 | 0.2.0 | 0.3.0 | 0.4.0 | 0.5.0 | 1.0.0 |
|---|---|---|---|---|---|---|
| Basic ops | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| NumPy interop | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Inverse/Solve | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Decompositions | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Sparse matrices | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
| SVD | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
| GPU support | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Stable API | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
We welcome contributions! See CONTRIBUTING.md for guidelines.
Priority areas:
- Bug fixes and documentation improvements
- Test coverage expansion
- Performance optimizations
- Feature implementations from this roadmap
Last updated: December 2025