16#ifndef dealii_tridiagonal_matrix_h
17#define dealii_tridiagonal_matrix_h
32template <
typename number>
52template <
typename number>
146 const bool adding =
false)
const;
169 const bool adding =
false)
const;
225 template <
class OutputStream>
228 const unsigned int width = 5,
229 const unsigned int precision = 2)
const;
274template <
typename number>
278 return diagonal.size();
283template <
typename number>
291template <
typename number>
318template <
typename number>
345template <
typename number>
346template <
class OutputStream>
349 const unsigned int width,
350 const unsigned int)
const
352 for (size_type i = 0; i < n(); ++i)
355 s << std::setw(width) << (*this)(i, i - 1);
357 s << std::setw(width) <<
"";
359 s <<
' ' << (*this)(i, i) <<
' ';
362 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 Assert(cond, exc)
#define AssertIndexRange(index, range)
static ::ExceptionBase & ExcInternalError()
static ::ExceptionBase & ExcIndexRange(std::size_t arg1, std::size_t arg2, std::size_t arg3)
@ diagonal
Matrix is diagonal.
unsigned int global_dof_index