47 #ifndef MUI_PRECONDITIONER_DIAGONAL_H_
48 #define MUI_PRECONDITIONER_DIAGONAL_H_
57 template<
typename ITYPE,
typename VTYPE>
62 for (
int i = 0; i < A.
get_rows(); i++) {
64 inv_diag_.set_value(i, i, 1.0 / A.
get_value(i,i));
66 inv_diag_.set_value(i, i, 1.0);
72 template<
typename ITYPE,
typename VTYPE>
79 template<
typename ITYPE,
typename VTYPE>
82 "MUI Error [preconditioner_diagonal.h]: apply only works for column vectors");
85 for (
int i = 0; i < x.
get_rows(); i++) {
diagonal_preconditioner(const sparse_matrix< ITYPE, VTYPE > &)
Definition: preconditioner_diagonal.h:58
~diagonal_preconditioner()
Definition: preconditioner_diagonal.h:73
sparse_matrix< ITYPE, VTYPE > apply(const sparse_matrix< ITYPE, VTYPE > &)
Definition: preconditioner_diagonal.h:80
ITYPE get_rows() const
Definition: matrix_io_info.h:579
void set_value(ITYPE, ITYPE, VTYPE, bool=true)
Definition: matrix_manipulation.h:292
VTYPE get_value(ITYPE, ITYPE) const
Definition: matrix_io_info.h:523
ITYPE get_cols() const
Definition: matrix_io_info.h:585
u u u u u u min
Definition: dim.h:289