48 const real*
data()
const {
return data_.get(); }
56 bool on_gpu()
const {
return d_data_ !=
nullptr; }
63 std::unique_ptr<real[]> data_;
64 real* d_data_ =
nullptr;
LAPACK-style band storage.
BandedMatrix & operator=(const BandedMatrix &)
const real * gpu_data() const
real & operator()(idx i, idx j)
bool in_band(idx i, idx j) const
real & band(idx band_row, idx col)
const real * data() const
Backend enum and default backend selection.
BandedSolverResult banded_solve(const BandedMatrix &A, const Vector &b, Vector &x)
Factor and solve .
void banded_lu_solve_multi(const BandedMatrix &A, const idx *ipiv, real *B, idx nrhs)
Solve using a precomputed banded LU factorization.
real banded_norm1(const BandedMatrix &A)
Compute .
real beta(real a, real b)
B(a, b) – beta function.
BandedSolverResult banded_lu(BandedMatrix &A, idx *ipiv)
In-place banded factorization.
real banded_rcond(const BandedMatrix &A, const idx *ipiv, real anorm)
Estimate .
void banded_gemv(real alpha, const BandedMatrix &A, const Vector &x, real beta, Vector &y, Backend backend=default_backend)
Compute .
void banded_lu_solve(const BandedMatrix &A, const idx *ipiv, Vector &b)
Solve using a precomputed banded LU factorization.
constexpr Backend default_backend
void banded_matvec(const BandedMatrix &A, const Vector &x, Vector &y, Backend backend=default_backend)
Compute .
Dense vector storage and operations.