13#ifndef dealii_tridiagonal_matrix_h
14#define dealii_tridiagonal_matrix_h
29template <
typename number>
49template <
typename number>
143 const bool adding =
false)
const;
166 const bool adding =
false)
const;
222 template <
class OutputStream>
225 const unsigned int width = 5,
226 const unsigned int precision = 2)
const;
271template <
typename number>
275 return diagonal.size();
280template <
typename number>
288template <
typename number>
315template <
typename number>
342template <
typename number>
343template <
class OutputStream>
346 const unsigned int width,
347 const unsigned int)
const
349 for (size_type i = 0; i < n(); ++i)
352 s << std::setw(width) << (*this)(i, i - 1);
354 s << std::setw(width) <<
"";
356 s <<
' ' << (*this)(i, i) <<
' ';
359 s << std::setw(width) << (*this)(i, i + 1);
number operator()(size_type i, size_type j) const
LAPACKSupport::State state
void Tvmult_add(Vector< number > &w, const Vector< number > &v) const
void vmult(Vector< number > &w, const Vector< number > &v, const bool adding=false) const
void print(OutputStream &s, const unsigned int width=5, const unsigned int precision=2) const
number matrix_norm_square(const Vector< number > &v) const
std::vector< number > diagonal
void reinit(size_type n, bool symmetric=false)
void vmult_add(Vector< number > &w, const Vector< number > &v) const
std::vector< number > right
number & operator()(size_type i, size_type j)
void compute_eigenvalues()
void Tvmult(Vector< number > &w, const Vector< number > &v, const bool adding=false) const
number eigenvalue(const size_type i) const
number matrix_scalar_product(const Vector< number > &u, const Vector< number > &v) const
std::vector< number > left
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_ASSERT_UNREACHABLE()
#define Assert(cond, exc)
#define AssertIndexRange(index, range)
static ::ExceptionBase & ExcIndexRange(std::size_t arg1, std::size_t arg2, std::size_t arg3)
@ diagonal
Matrix is diagonal.
unsigned int global_dof_index