7 #ifndef DENSE_GEN_REAL_SHIFT_SOLVE_H
8 #define DENSE_GEN_REAL_SHIFT_SOLVE_H
12 #include "../LinAlg/GeneralLU.h"
21 template <
typename Scalar>
25 typedef arma::Mat<Scalar> Matrix;
26 typedef arma::Col<Scalar> Vector;
39 mat(mat_.memptr(), mat_.n_rows, mat_.n_cols, false),
43 throw std::invalid_argument(
"DenseGenRealShiftSolve: matrix must be square");
49 int rows() {
return dim_n; }
53 int cols() {
return dim_n; }
60 solver.
compute(mat - sigma * arma::eye<Matrix>(dim_n, dim_n));
72 Vector x(x_in, dim_n,
false);
73 Vector y(y_out, dim_n,
false);
79 #endif // DENSE_GEN_REAL_SHIFT_SOLVE_H
void compute(const Matrix &mat)
DenseGenRealShiftSolve(Matrix &mat_)
void set_shift(Scalar sigma)
void solve(Vector &vec_in, Vector &vec_out)
void perform_op(Scalar *x_in, Scalar *y_out)