15#ifndef dealii_tridiagonal_matrix_h
16#define dealii_tridiagonal_matrix_h
31template <
typename number>
51template <
typename number>
145 const bool adding =
false)
const;
168 const bool adding =
false)
const;
224 template <
class OutputStream>
227 const unsigned int width = 5,
228 const unsigned int precision = 2)
const;
273template <
typename number>
277 return diagonal.size();
282template <
typename number>
290template <
typename number>
317template <
typename number>
344template <
typename number>
345template <
class OutputStream>
348 const unsigned int width,
349 const unsigned int)
const
351 for (size_type i = 0; i < n(); ++i)
354 s << std::setw(width) << (*this)(i, i - 1);
356 s << std::setw(width) <<
"";
358 s <<
' ' << (*this)(i, i) <<
' ';
361 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 & ExcIndexRange(std::size_t arg1, std::size_t arg2, std::size_t arg3)
#define DEAL_II_ASSERT_UNREACHABLE()
@ diagonal
Matrix is diagonal.
unsigned int global_dof_index