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);
137 const bool adding=
false)
const;
159 const bool adding=
false)
const;
212 template <
class OutputStream>
213 void print(OutputStream &s,
214 const unsigned int width=5,
215 const unsigned int precision=2)
const;
260 template <
typename number>
264 return diagonal.size();
269 template <
typename number>
277 template <
typename number>
305 template <
typename number>
333 template <
typename number>
334 template <
class OutputStream>
338 const unsigned int width,
339 const unsigned int)
const 341 for (size_type i=0; i<n(); ++i)
344 s << std::setw(width) << (*this)(i,i-1);
346 s << std::setw(width) <<
"";
348 s <<
' ' << (*this)(i,i) <<
' ';
351 s << std::setw(width) << (*this)(i,i+1);
360 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
void vmult(Vector< number > &w, const Vector< number > &v, const bool adding=false) const
static ::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
void Tvmult_add(Vector< number > &w, const Vector< number > &v) 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
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()