Go to the documentation of this file.
7 #ifndef SPECTRA_SPARSE_REGULAR_INVERSE_H
8 #define SPECTRA_SPARSE_REGULAR_INVERSE_H
11 #include <Eigen/SparseCore>
12 #include <Eigen/IterativeLinearSolvers>
36 template <
typename Scalar_,
int Uplo = Eigen::Lower,
int Flags = Eigen::ColMajor,
typename StorageIndex =
int>
66 template <
typename Derived>
72 "SparseRegularInverse: the \"Flags\" template parameter does not match the input matrix (Eigen::ColMajor/Eigen::RowMajor)");
74 if (
mat.rows() !=
mat.cols())
75 throw std::invalid_argument(
"SparseRegularInverse: matrix must be square");
109 y.noalias() =
m_cg.solve(
x);
115 throw std::runtime_error(
"SparseRegularInverse: CG solver does not converge");
129 y.noalias() =
m_mat.template selfadjointView<Uplo>() *
x;
135 #endif // SPECTRA_SPARSE_REGULAR_INVERSE_H
A versatible sparse matrix representation.
@ Successful
Computation was successful.
SparseRegularInverse(const Eigen::SparseMatrixBase< Derived > &mat)
void perform_op(const Scalar *x_in, Scalar *y_out) const
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
A conjugate gradient solver for sparse (or dense) self-adjoint problems.
void solve(const Scalar *x_in, Scalar *y_out) const
Eigen::ConjugateGradient< SparseMatrix > m_cg
A matrix or vector expression mapping an existing array of data.
Base class of any sparse matrices or sparse expressions.
ConstGenericSparseMatrix m_mat
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
gtsam
Author(s):
autogenerated on Thu Apr 10 2025 03:03:49