16 #ifndef dealii__tridiagonal_matrix_h 17 #define dealii__tridiagonal_matrix_h 19 #include <deal.II/base/config.h> 20 #include <deal.II/base/subscriptor.h> 21 #include <deal.II/lac/lapack_support.h> 26 DEAL_II_NAMESPACE_OPEN
29 template<
typename number>
class Vector;
48 template<
typename number>
66 bool symmetric =
false);
73 bool symmetric =
false);
108 number
operator()(size_type i, size_type j)
const;
136 const bool adding=
false)
const;
158 const bool adding=
false)
const;
244 template <
class OutputStream>
245 void print(OutputStream &s,
246 const unsigned int width=5,
247 const unsigned int precision=2)
const;
298 template<
typename number>
307 template<
typename number>
315 template<
typename number>
343 template<
typename number>
371 template <
typename number>
372 template <
class OutputStream>
376 const unsigned int width,
377 const unsigned int)
const 382 s << std::setw(width) << (*this)(i,i-1);
384 s << std::setw(width) <<
"";
386 s <<
' ' << (*this)(i,i) <<
' ';
389 s << std::setw(width) << (*this)(i,i+1);
398 DEAL_II_NAMESPACE_CLOSE
void Tvmult_add(Vector< number > &w, const Vector< number > &v) const
void compute_eigenvalues()
void Tvmult(Vector< number > &w, const Vector< number > &v, const bool adding=false) const
void vmult(Vector< number > &w, const Vector< number > &v, const bool adding=false) const
std::vector< number > left
static::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
number linfty_norm() const
number matrix_scalar_product(const Vector< number > &u, const Vector< number > &v) const
unsigned int global_dof_index
#define Assert(cond, exc)
std::vector< number > right
TridiagonalMatrix(size_type n=0, bool symmetric=false)
types::global_dof_index size_type
void print(OutputStream &s, const unsigned int width=5, const unsigned int precision=2) const
number frobenius_norm() const
std::size_t memory_consumption() const
number relative_symmetry_norm2() const
LAPACKSupport::State state
std::vector< number > diagonal
number matrix_norm_square(const Vector< number > &v) const
void vmult_add(Vector< number > &w, const Vector< number > &v) const
void reinit(size_type n, bool symmetric=false)
number eigenvalue(const size_type i) const
number operator()(size_type i, size_type j) const
static::ExceptionBase & ExcInternalError()