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);
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>
302 return diagonal.size();
307 template<
typename number>
311 return diagonal.size();
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 379 for (size_type i=0; i<n(); ++i)
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 compute_eigenvalues()
std::vector< number > left
void print(OutputStream &s, const unsigned int width=5, const unsigned int precision=2) const
number linfty_norm() const
void vmult(Vector< number > &w, const Vector< number > &v, const bool adding=false) const
number relative_symmetry_norm2() const
static ::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
void Tvmult_add(Vector< number > &w, const Vector< number > &v) const
std::size_t memory_consumption() const
unsigned int global_dof_index
#define Assert(cond, exc)
std::vector< number > right
number matrix_scalar_product(const Vector< number > &u, const Vector< number > &v) const
number frobenius_norm() const
TridiagonalMatrix(size_type n=0, bool symmetric=false)
types::global_dof_index size_type
number matrix_norm_square(const Vector< number > &v) const
number eigenvalue(const size_type i) const
void Tvmult(Vector< number > &w, const Vector< number > &v, const bool adding=false) const
number operator()(size_type i, size_type j) const
LAPACKSupport::State state
std::vector< number > diagonal
void reinit(size_type n, bool symmetric=false)
void vmult_add(Vector< number > &w, const Vector< number > &v) const
static ::ExceptionBase & ExcInternalError()