Skip to main content

Crate ruvector_solver

Crate ruvector_solver 

Source
Expand description

Iterative sparse linear solvers for the ruvector ecosystem.

This crate provides iterative methods for solving Ax = b where A is a sparse matrix stored in CSR format.

§Available Solvers

SolverFeature gateMethod
NeumannSolverneumannNeumann series x = sum (I-A)^k b

§Example

use ruvector_solver::types::{ComputeBudget, CsrMatrix};
use ruvector_solver::neumann::NeumannSolver;
use ruvector_solver::traits::SolverEngine;

// Build a diagonally dominant 3x3 matrix (f32)
let matrix = CsrMatrix::<f32>::from_coo(3, 3, vec![
    (0, 0, 2.0_f32), (0, 1, -0.5_f32),
    (1, 0, -0.5_f32), (1, 1, 2.0_f32), (1, 2, -0.5_f32),
    (2, 1, -0.5_f32), (2, 2, 2.0_f32),
]);
let rhs = vec![1.0_f32, 0.0, 1.0];

let solver = NeumannSolver::new(1e-6, 500);
let result = solver.solve(&matrix, &rhs).unwrap();
assert!(result.residual_norm < 1e-4);

Modules§

arena
Bump allocator for per-solve scratch space.
audit
Audit trail for solver invocations.
budget
Compute budget enforcement for solver operations.
cg
Conjugate Gradient solver for symmetric positive-definite systems.
error
Error types for the solver crate.
events
Event sourcing for solver operations.
forward_push
Forward Push solver for Personalized PageRank (Andersen-Chung-Lang).
neumann
Jacobi-preconditioned Neumann Series iterative solver.
router
Algorithm router and solver orchestrator.
simd
SIMD-accelerated sparse matrix-vector multiply.
traits
Solver trait hierarchy.
types
Core types for sparse linear solvers.
validation
Comprehensive input validation for solver operations.