numerics
Loading...
Searching...
No Matches
banded.hpp File Reference

High-performance banded matrix solver for HPC applications. More...

#include "core/types.hpp"
#include "core/vector.hpp"
#include "core/policy.hpp"
#include <memory>

Go to the source code of this file.

Classes

class  num::BandedMatrix
 Banded matrix with efficient storage for direct solvers. More...
 
struct  num::BandedSolverResult
 Result from banded solver. More...
 

Namespaces

namespace  num
 

Functions

BandedSolverResult num::banded_lu (BandedMatrix &A, idx *ipiv)
 LU factorization of banded matrix with partial pivoting.
 
void num::banded_lu_solve (const BandedMatrix &A, const idx *ipiv, Vector &b)
 Solve banded system using precomputed LU factorization.
 
void num::banded_lu_solve_multi (const BandedMatrix &A, const idx *ipiv, real *B, idx nrhs)
 Solve multiple right-hand sides using LU factorization.
 
BandedSolverResult num::banded_solve (const BandedMatrix &A, const Vector &b, Vector &x)
 Solve banded system Ax = b (convenience function)
 
void num::banded_matvec (const BandedMatrix &A, const Vector &x, Vector &y, Backend backend=default_backend)
 Banded matrix-vector product y = A*x.
 
void num::banded_gemv (real alpha, const BandedMatrix &A, const Vector &x, real beta, Vector &y, Backend backend=default_backend)
 Banded matrix-vector product y = alpha*A*x + beta*y.
 
real num::banded_rcond (const BandedMatrix &A, const idx *ipiv, real anorm)
 Estimate reciprocal condition number of banded matrix.
 
real num::banded_norm1 (const BandedMatrix &A)
 Compute 1-norm of banded matrix.
 

Detailed Description

High-performance banded matrix solver for HPC applications.

Implements LAPACK-style banded storage and LU factorization with partial pivoting. Optimized for vectorization and cache efficiency on modern supercomputers (e.g., NCAR Derecho).

Definition in file banded.hpp.