TBCI Numerical high perf. C++ Library 2.8.0
F_BandMatrix< T > Class Template Reference

C++ class for banded matrices using band storage in a one-dimensional array. More...

#include <f_bandmatrix.h>

Inheritance diagram for F_BandMatrix< T >:
Collaboration diagram for F_BandMatrix< T >:

Public Types

typedef T value_type
typedef T element_type
typedef T aligned_value_type TALIGN(MIN_ALIGN2)

Public Member Functions

 F_BandMatrix ()
 F_BandMatrix (unsigned int dimension, unsigned int superDiags=0, unsigned int subDiags=0)
 F_BandMatrix (const F_BandMatrix< T > &m)
 F_BandMatrix (const Matrix< T > &m)
 ~F_BandMatrix ()
void clear ()
T operator() (unsigned int row, unsigned int column) const
Toperator() (unsigned int row, unsigned int column)
void setval (const T z, unsigned int row, unsigned int column)
Tsetval (unsigned r, unsigned c)
TVector< Tget_col (unsigned int column) const
void set_col (const Vector< T > &v, unsigned int column)
void set_col (const TVector< T > &tv, unsigned int column)
void set_col (const TSVector< T > &tsv, unsigned int column)
unsigned int rows () const
unsigned int columns () const
unsigned int size () const
unsigned int numSuper () const
unsigned int numSub () const
unsigned int ldab () const
void resize (unsigned int newDim, unsigned int newSuper, unsigned int newSub)
F_BandMatrix< T > & operator= (const F_BandMatrix< T > &m)
TVector< TtransMult (const Vector< T > &v) const
TVector< TtransMult (const TVector< T > &tv) const
TVector< TtransMult (const TSVector< T > &tsv) const
F_BandMatrix< T > & operator*= (const T z)
F_BandMatrix< T > & operator/= (const T z)
F_BandMatrix< Ttransposed_copy () const
F_BandMatrix< T > & transpose ()
 transpose() does change the object!
T *const & get_fortran_matrix () const
F_BandMatrix< T > & swap (F_BandMatrix< T > &m)
Public Member Functions inherited from Matrix_Sig< T >
 Matrix_Sig ()
 ~Matrix_Sig ()
tbci_traits< T >::const_refval_type operator() (const unsigned, const unsigned) const
 ro access
Toperator() (const unsigned, const unsigned)
 rw access
Matrix_Sig< T > & fill (const T &)
Matrix_Sig< T > & setunit (const T &=(T) 1)
Matrix_Sig< T > & clear ()
TVector< Toperator* (const Vector_Sig< T > &) const
TVector< TtransMult (const Vector_Sig< T > &) const
unsigned int rows () const
unsigned int columns () const

Protected Member Functions

void allocate (unsigned int dimension, unsigned int superDiags, unsigned int subDiags)
void destroy ()
void copy (const F_BandMatrix< T > &m)
void find_super (const Matrix< T > &m)
 Find number of super diagonals.
void find_sub (const Matrix< T > &m)
 Find number of sub diagonals.

Protected Attributes

unsigned int dim
unsigned int super
unsigned int sub
Tcomp
T dummy

Friends

bool operator==FGD (const F_BandMatrix< T > &, const F_BandMatrix< T > &)
bool operator!=FGD (const F_BandMatrix< T > &, const F_BandMatrix< T > &)
F_BandMatrix< Toperator-FGD (const F_BandMatrix< T > &m)
TVector< T > do_fbdmat_vec_mul FGD (const F_BandMatrix< T > &m, const Vector< T > &v)
F_BandMatrix< T > do_fbdmat_scale FGD (const F_BandMatrix< T > &m, const T z)
F_BandMatrix< T > do_fbdmat_scale FGD (const T z, const F_BandMatrix< T > &m)
F_BandMatrix< Toperator/FGD (const F_BandMatrix< T > &m, T const z)
F_BandMatrix< Toperator+FGD (const F_BandMatrix< T > &, const F_BandMatrix< T > &)
F_BandMatrix< Toperator-FGD (const F_BandMatrix< T > &, const F_BandMatrix< T > &)
STD__ ostream & operator<<FGD (STD__ ostream &stream, const F_BandMatrix< T > &m)

Additional Inherited Members

Static Public Member Functions inherited from Matrix_Sig< T >
static const char * mat_info ()

Detailed Description

template<typename T>
class F_BandMatrix< T >

C++ class for banded matrices using band storage in a one-dimensional array.

Definition at line 59 of file f_bandmatrix.h.

Member Typedef Documentation

◆ element_type

template<typename T>
typedef T F_BandMatrix< T >::element_type

Definition at line 63 of file f_bandmatrix.h.

◆ TALIGN

template<typename T>
typedef T aligned_value_type F_BandMatrix< T >::TALIGN(MIN_ALIGN2)

Definition at line 64 of file f_bandmatrix.h.

◆ value_type

template<typename T>
typedef T F_BandMatrix< T >::value_type

Definition at line 62 of file f_bandmatrix.h.

Constructor & Destructor Documentation

◆ F_BandMatrix() [1/4]

◆ F_BandMatrix() [2/4]

template<typename T>
F_BandMatrix< T >::F_BandMatrix ( unsigned int dimension,
unsigned int superDiags = 0,
unsigned int subDiags = 0 )
inline

Definition at line 68 of file f_bandmatrix.h.

References allocate().

◆ F_BandMatrix() [3/4]

template<typename T>
F_BandMatrix< T >::F_BandMatrix ( const F_BandMatrix< T > & m)
inline

Definition at line 73 of file f_bandmatrix.h.

References copy(), and F_BandMatrix().

◆ F_BandMatrix() [4/4]

template<typename T>
F_BandMatrix< T >::F_BandMatrix ( const Matrix< T > & m)

◆ ~F_BandMatrix()

template<typename T>
F_BandMatrix< T >::~F_BandMatrix ( )
inline

Definition at line 76 of file f_bandmatrix.h.

References destroy().

Member Function Documentation

◆ allocate()

template<typename T>
void F_BandMatrix< T >::allocate ( unsigned int dimension,
unsigned int superDiags,
unsigned int subDiags )
protected

Definition at line 481 of file f_bandmatrix.h.

References BCHKNR, comp, dim, LAPACK_INLINE, NULL, sub, super, and T.

Referenced by F_BandMatrix(), F_BandMatrix(), F_BandMatrix(), and resize().

◆ clear()

template<typename T>
void F_BandMatrix< T >::clear ( )

Definition at line 600 of file f_bandmatrix.h.

References comp, dim, LAPACK_INLINE, sub, super, and T.

Referenced by lu_solve().

◆ columns()

template<typename T>
unsigned int F_BandMatrix< T >::columns ( ) const
inline

Definition at line 95 of file f_bandmatrix.h.

References dim.

Referenced by eig(), eig(), lu_solve(), lu_solve(), lu_solve_expert(), and operator<<().

◆ copy()

template<typename T>
void F_BandMatrix< T >::copy ( const F_BandMatrix< T > & m)
protected

Definition at line 508 of file f_bandmatrix.h.

References BCHKNR, comp, CSTD__, dim, F_BandMatrix(), NULL, sub, super, and T.

Referenced by F_BandMatrix(), and operator=().

◆ destroy()

template<typename T>
void F_BandMatrix< T >::destroy ( )
inlineprotected

Definition at line 499 of file f_bandmatrix.h.

References comp, and NULL.

Referenced by operator=(), resize(), and ~F_BandMatrix().

◆ find_sub()

template<typename T>
void F_BandMatrix< T >::find_sub ( const Matrix< T > & m)
inlineprotected

Find number of sub diagonals.

Definition at line 453 of file f_bandmatrix.h.

References c, dim, sub, and T.

Referenced by F_BandMatrix().

◆ find_super()

template<typename T>
void F_BandMatrix< T >::find_super ( const Matrix< T > & m)
inlineprotected

Find number of super diagonals.

Definition at line 443 of file f_bandmatrix.h.

References dim, super, and T.

Referenced by F_BandMatrix().

◆ get_col()

template<typename T>
TVector< T > F_BandMatrix< T >::get_col ( unsigned int column) const

Definition at line 212 of file f_bandmatrix.h.

References BCHK, dim, i, index, and TVector< T >::set().

◆ get_fortran_matrix()

template<typename T>
T *const & F_BandMatrix< T >::get_fortran_matrix ( ) const
inline

Definition at line 141 of file f_bandmatrix.h.

References comp, and T.

Referenced by eig(), eig(), lu_solve(), lu_solve(), and lu_solve_expert().

◆ ldab()

template<typename T>
unsigned int F_BandMatrix< T >::ldab ( ) const
inline

Definition at line 99 of file f_bandmatrix.h.

References sub, and super.

Referenced by lu_solve(), lu_solve(), and lu_solve_expert().

◆ numSub()

template<typename T>
unsigned int F_BandMatrix< T >::numSub ( ) const
inline

Definition at line 98 of file f_bandmatrix.h.

References sub.

Referenced by eig(), eig(), lu_solve(), lu_solve_expert(), operator+(), and operator-().

◆ numSuper()

template<typename T>
unsigned int F_BandMatrix< T >::numSuper ( ) const
inline

Definition at line 97 of file f_bandmatrix.h.

References super.

Referenced by eig(), eig(), lu_solve(), lu_solve(), lu_solve_expert(), operator+(), and operator-().

◆ operator()() [1/2]

template<typename T>
T & F_BandMatrix< T >::operator() ( unsigned int row,
unsigned int column )
inline

Definition at line 182 of file f_bandmatrix.h.

References BCHK, comp, dim, dummy, index, sub, super, and T.

◆ operator()() [2/2]

template<typename T>
T F_BandMatrix< T >::operator() ( unsigned int row,
unsigned int column ) const
inline

Definition at line 168 of file f_bandmatrix.h.

References BCHK, comp, dim, index, sub, super, and T.

Referenced by setval().

◆ operator*=()

template<typename T>
F_BandMatrix< T > & F_BandMatrix< T >::operator*= ( const T z)

Definition at line 413 of file f_bandmatrix.h.

References comp, dim, F_BandMatrix(), sub, super, and T.

◆ operator/=()

template<typename T>
F_BandMatrix< T > & F_BandMatrix< T >::operator/= ( const T z)

Definition at line 433 of file f_bandmatrix.h.

References comp, dim, F_BandMatrix(), sub, super, and T.

◆ operator=()

template<typename T>
F_BandMatrix< T > & F_BandMatrix< T >::operator= ( const F_BandMatrix< T > & m)

Definition at line 253 of file f_bandmatrix.h.

References BCHK, comp, copy(), CSTD__, destroy(), dim, F_BandMatrix(), sub, super, and T.

◆ resize()

template<typename T>
void F_BandMatrix< T >::resize ( unsigned int newDim,
unsigned int newSuper,
unsigned int newSub )
inline

Definition at line 203 of file f_bandmatrix.h.

References allocate(), and destroy().

◆ rows()

template<typename T>
unsigned int F_BandMatrix< T >::rows ( ) const
inline

Definition at line 94 of file f_bandmatrix.h.

References dim.

Referenced by operator<<().

◆ set_col() [1/3]

template<typename T>
void F_BandMatrix< T >::set_col ( const TSVector< T > & tsv,
unsigned int column )
inline

Definition at line 245 of file f_bandmatrix.h.

References set_col().

◆ set_col() [2/3]

template<typename T>
void F_BandMatrix< T >::set_col ( const TVector< T > & tv,
unsigned int column )
inline

Definition at line 238 of file f_bandmatrix.h.

References set_col().

◆ set_col() [3/3]

template<typename T>
void F_BandMatrix< T >::set_col ( const Vector< T > & v,
unsigned int column )

Definition at line 223 of file f_bandmatrix.h.

References BCHKNR, dim, i, index, sub, and super.

Referenced by set_col(), and set_col().

◆ setval() [1/2]

template<typename T>
void F_BandMatrix< T >::setval ( const T z,
unsigned int row,
unsigned int column )
inline

Definition at line 193 of file f_bandmatrix.h.

References BCHKNR, comp, dim, index, sub, super, and T.

◆ setval() [2/2]

template<typename T>
T & F_BandMatrix< T >::setval ( unsigned r,
unsigned c )
inline

Definition at line 85 of file f_bandmatrix.h.

References c, operator()(), and T.

◆ size()

template<typename T>
unsigned int F_BandMatrix< T >::size ( ) const
inline

Definition at line 96 of file f_bandmatrix.h.

References dim.

Referenced by operator+(), and operator-().

◆ swap()

template<typename T>
F_BandMatrix< T > & F_BandMatrix< T >::swap ( F_BandMatrix< T > & m)

Definition at line 634 of file f_bandmatrix.h.

References comp, dim, F_BandMatrix(), sub, and super.

Referenced by transpose().

◆ transMult() [1/3]

template<typename T>
TVector< T > F_BandMatrix< T >::transMult ( const TSVector< T > & tsv) const
inline

Definition at line 372 of file f_bandmatrix.h.

References transMult().

◆ transMult() [2/3]

template<typename T>
TVector< T > F_BandMatrix< T >::transMult ( const TVector< T > & tv) const
inline

Definition at line 364 of file f_bandmatrix.h.

References transMult().

◆ transMult() [3/3]

template<typename T>
TVector< T > F_BandMatrix< T >::transMult ( const Vector< T > & v) const

Definition at line 345 of file f_bandmatrix.h.

References BCHK, comp, dim, i, MIN, res, right, TVector< T >::size(), sub, sum(), super, and T.

Referenced by transMult(), and transMult().

◆ transpose()

template<typename T>
F_BandMatrix< T > & F_BandMatrix< T >::transpose ( )
inline

transpose() does change the object!

Definition at line 619 of file f_bandmatrix.h.

References F_BandMatrix(), swap(), and transposed_copy().

◆ transposed_copy()

template<typename T>
F_BandMatrix< T > F_BandMatrix< T >::transposed_copy ( ) const

Definition at line 608 of file f_bandmatrix.h.

References c, dim, F_BandMatrix(), MAX, MIN, sub, and super.

Referenced by transpose(), and transpose().

◆ FGD [1/3]

template<typename T>
F_BandMatrix< T > do_fbdmat_scale FGD ( const F_BandMatrix< T > & m,
const T z )
friend

References do_fbdmat_scale(), F_BandMatrix(), and T.

◆ FGD [2/3]

template<typename T>
TVector< T > do_fbdmat_vec_mul FGD ( const F_BandMatrix< T > & m,
const Vector< T > & v )
friend

◆ FGD [3/3]

template<typename T>
F_BandMatrix< T > do_fbdmat_scale FGD ( const T z,
const F_BandMatrix< T > & m )
friend

References do_fbdmat_scale(), F_BandMatrix(), and T.

◆ operator!=FGD

template<typename T>
bool operator!=FGD ( const F_BandMatrix< T > & ,
const F_BandMatrix< T > &  )
friend

References F_BandMatrix().

◆ operator+FGD

template<typename T>
F_BandMatrix< T > operator+FGD ( const F_BandMatrix< T > & ,
const F_BandMatrix< T > &  )
friend

References F_BandMatrix().

◆ operator-FGD [1/2]

template<typename T>
F_BandMatrix< T > operator-FGD ( const F_BandMatrix< T > & ,
const F_BandMatrix< T > &  )
friend

References F_BandMatrix().

◆ operator-FGD [2/2]

template<typename T>
F_BandMatrix< T > operator-FGD ( const F_BandMatrix< T > & m)
friend

References F_BandMatrix().

◆ operator/FGD

template<typename T>
F_BandMatrix< T > operator/FGD ( const F_BandMatrix< T > & m,
T const z )
friend

References F_BandMatrix(), and T.

◆ operator<<FGD

template<typename T>
STD__ ostream & operator<<FGD ( STD__ ostream & stream,
const F_BandMatrix< T > & m )
friend

References F_BandMatrix(), and STD__.

◆ operator==FGD

template<typename T>
bool operator==FGD ( const F_BandMatrix< T > & ,
const F_BandMatrix< T > &  )
friend

References F_BandMatrix().

Member Data Documentation

◆ comp

◆ dim

◆ dummy

template<typename T>
T F_BandMatrix< T >::dummy
mutableprotected

Definition at line 148 of file f_bandmatrix.h.

Referenced by operator()().

◆ sub

◆ super


The documentation for this class was generated from the following file: