Skip to main content

Crate oxicuda_solver

Crate oxicuda_solver 

Source
Expand description

§OxiCUDA Solver — GPU-Accelerated Matrix Decompositions

This crate provides GPU-accelerated matrix decompositions and linear solvers, serving as a pure Rust equivalent to NVIDIA’s cuSOLVER library.

§Dense decompositions

  • LU — LU factorization with partial pivoting (P * A = L * U)
  • QR — QR factorization via blocked Householder reflections (A = Q * R)
  • Cholesky — Cholesky decomposition for SPD matrices (A = L * L^T)
  • SVD — Singular Value Decomposition (A = U * Σ * V^T)
  • DC-SVD — Divide-and-Conquer SVD for medium-to-large matrices
  • LDL^T — Bunch-Kaufman factorization for symmetric indefinite matrices
  • Eigendecomposition — Symmetric eigenvalue decomposition (A = Q * Λ * Q^T)
  • Inverse — Matrix inverse via LU (A^{-1})
  • Determinant — Determinant and log-determinant via LU
  • Least squares — Least squares solver via QR (min ||A*x - b||)

§Dense solvers

  • Tridiagonal — Thomas algorithm and cyclic reduction for tridiagonal systems
  • Band — LU and Cholesky for banded matrices (O(n*b^2) complexity)

§Iterative sparse solvers

  • CG — Conjugate Gradient for SPD systems
  • BiCGSTAB — Biconjugate Gradient Stabilized for non-symmetric systems
  • GMRES(m) — Generalized Minimal Residual with restart
  • FGMRES(m) — Flexible GMRES with variable preconditioner
  • Direct — Direct sparse solver via dense LU (small systems)
  • Preconditioned CG — PCG with pluggable preconditioners (Identity, Jacobi, ILU, IC)
  • Preconditioned GMRES — Left-preconditioned GMRES(m) with restart

§Example

use oxicuda_solver::prelude::*;

(C) 2026 COOLJAPAN OU (Team KitaSan)

Re-exports§

pub use dense::AdvectionEquation1D;
pub use dense::BandMatrix;
pub use dense::BatchAlgorithm;
pub use dense::BatchConfig;
pub use dense::BatchedResult;
pub use dense::BatchedSolver;
pub use dense::Bdf2Solver;
pub use dense::BoundaryCondition;
pub use dense::CpAlsConfig;
pub use dense::CpDecomposition;
pub use dense::DcSvdConfig;
pub use dense::EigJob;
pub use dense::EulerSolver;
pub use dense::Grid1D;
pub use dense::Grid2D;
pub use dense::HeatEquation1D;
pub use dense::ImplicitEulerSolver;
pub use dense::LdltResult;
pub use dense::LuResult;
pub use dense::Matrix;
pub use dense::OdeConfig;
pub use dense::OdeMethod;
pub use dense::OdeSolution;
pub use dense::OdeSystem;
pub use dense::PdeConfig;
pub use dense::Poisson1D;
pub use dense::RandomizedSvdConfig;
pub use dense::RandomizedSvdResult;
pub use dense::Rk4Solver;
pub use dense::Rk45Solver;
pub use dense::StepResult;
pub use dense::SvdJob;
pub use dense::SvdResult;
pub use dense::Tensor;
pub use dense::TtConfig;
pub use dense::TtDecomposition;
pub use dense::TuckerConfig;
pub use dense::TuckerDecomposition;
pub use dense::WaveEquation1D;
pub use error::SolverError;
pub use error::SolverResult;
pub use handle::SolverHandle;
pub use sparse::AdjacencyGraph;
pub use sparse::EliminationTree;
pub use sparse::FgmresConfig;
pub use sparse::MultifrontalLUSolver;
pub use sparse::NestedDissectionOrdering;
pub use sparse::OrderingQuality;
pub use sparse::Permutation;
pub use sparse::SupernodalCholeskySolver;
pub use sparse::SupernodalStructure;
pub use sparse::SymbolicFactorization;
pub use sparse::fgmres;
pub use sparse::fgmres;
pub use sparse::sparse_cholesky_solve;
pub use sparse::sparse_lu_solve;

Modules§

dense
Dense matrix decompositions and solvers.
error
Error types for OxiCUDA Solver operations.
handle
Solver handle management.
helpers
Helper utilities for solver operations.
prelude
Prelude for convenient imports.
sparse
Iterative sparse linear solvers.