|
TBCI Numerical high perf. C++ Library
2.8.0
|
The class BdMatrix is an implementation to store and do operations on sparse Matrices with a band structure. More...
#include <band_matrix.h>


Public Types | |
| typedef T | value_type |
| typedef T | element_type |
| typedef T aligned_value_type | TALIGN (MIN_ALIGN2) |
Public Member Functions | |
| BdMatrix (const unsigned int=0) | |
| c'tor tridiagonal More... | |
| BdMatrix (const unsigned int, const unsigned int) | |
| c'tor with rows and columns (which need to be identical) More... | |
| BdMatrix (const unsigned int, const BVector< unsigned int > &) | |
| c'tor with config Vector More... | |
| BdMatrix (const BdMatrix< T > &) | |
| copy c'tor More... | |
| BdMatrix (const T &, const unsigned int) | |
| c'tor variants with initial value on diag (tridiag, with config) More... | |
| BdMatrix (const T &, const unsigned int, const BVector< unsigned int > &) | |
| BdMatrix (const T &, const unsigned int, unsigned int) | |
| c'tor with # of offdiags (band Matrix) More... | |
| BdMatrix (const Matrix< T > &) | |
| c'tor to copy Matrix and self-determine sparseness More... | |
| ~BdMatrix () THROWEXCEPT | |
| void | destroy () |
| destroy object explicitly More... | |
| template<typename U > | |
| BdMatrix (const BdMatrix< U > &bm) | |
| operator TMatrix< T > () const | |
| cast More... | |
| T & | operator() (const unsigned int, const unsigned int) HOT |
| rw member access More... | |
| tbci_traits< T >::const_refval_type | operator() (const unsigned int, const unsigned int) const HOT |
| ro member access More... | |
| tbci_traits< T >::const_refval_type | get (const unsigned int, const unsigned int) const HOT |
| BdMatrix< T > & | setval (const T &v, const unsigned int r, const unsigned int c) |
| autoinsert, sparse class compatible More... | |
| T & | setval (const unsigned int r, const unsigned int c) |
| BdMatrix< T > & | transpose () |
| transpose() does change the object! More... | |
| BdMatrix< T > & | resize (const unsigned int) |
| BdMatrix< T > & | resize (const T &, const unsigned int) |
| BdMatrix< T > & | resize (const unsigned int, const BVector< unsigned int > &) |
| BdMatrix< T > & | resize (const T &, const unsigned int, const BVector< unsigned int > &) |
| BdMatrix< T > & | resize (const BdMatrix< T > &bdm) |
| Resizing assignment. More... | |
| BdMatrix< T > & | reconfig (const BVector< unsigned int > &) COLD |
| BdMatrix< T > & | setunit (const T &=1) |
| BdMatrix< T > & | fill (const T &=0) |
| BdMatrix< T > & | clear () |
| BdMatrix< T > & | adddiag (const unsigned) |
| BdMatrix< T > & | removediag (const unsigned) |
| BdMatrix< T > & | autoinsert (const T &, const unsigned, const unsigned) |
| BdMatrix< T > & | expand (unsigned=0) |
| BdMatrix< T > & | set_row (const Vector< T > &val, const unsigned, const unsigned=0) |
| Overwrite row with Vector. More... | |
| TVector< T > | get_row (const unsigned int) const |
| Construct Vector from row. More... | |
| TVector< T > | get_col (const unsigned int) const |
| Construct Vector from column. More... | |
| unsigned int | size () const |
| size: incompatibility to Matrix (!) More... | |
| unsigned int | noelem () const |
| Number of elements that are actually stored. More... | |
| unsigned int | rows () const |
| number of rows More... | |
| unsigned int | columns () const |
| number of columns More... | |
| const BVector< unsigned int > & | getcfg () const |
| ro access to config BVector More... | |
| unsigned int | getmaxoff () const |
| max distance from main diagonal More... | |
| T | trace () const |
| BdMatrix< T > & | operator= (const BdMatrix< T > &) |
| The assignment operators in TBCI are NOT resizing. More... | |
| BdMatrix< T > & | operator= (const T &) |
| BdMatrix< T > & | operator+= (const BdMatrix< T > &) |
| BdMatrix< T > & | operator-= (const BdMatrix< T > &) |
| BdMatrix< T > & | operator*= (const T &) |
| BdMatrix< T > & | operator/= (const T &) |
| bool | operator== (const BdMatrix< T > &) const |
| bool | operator!= (const BdMatrix< T > &ma) const |
| BdMatrix< T > | operator+ (const BdMatrix< T > &) const |
| BdMatrix< T > | operator- (const BdMatrix< T > &) const |
| BdMatrix< T > | operator* (const BdMatrix< T > &) const |
| BdMatrix< T > | operator* (const T &) const |
| BdMatrix< T > | operator/ (const T &) const |
| BdMatrix< T > | operator- () const |
| TVector< T > | operator* (const Vector< T > &) const HOT |
| Matrix-Vector multiplication. More... | |
| TVector< T > | transMult (const Vector< T > &) const HOT |
| Transposed Matrix-Vector multiplication. More... | |
| TVector< T > | dotMult (const Vector< T > &) const |
| TMatrix< T > | operator* (const Matrix< T > &) const |
| BdMatrix< T > & | mult_rows (const Vector< T > &) |
| Linewise multiplication. More... | |
| BdMatrix< T > & | div_rows (const Vector< T > &) |
| BdMatrix< T > & | mult_row (const T &, const unsigned) |
| BdMatrix< T > & | div_row (const T &, const unsigned) |
| const BdMatrix< T > & | setoutopts (int w=5, int p=4, char f= ' ') const |
| BdMatrix< T > | inverse () const |
| template<> | |
| BdMatrix< int > & | operator/= (const int &div) |
| template<> | |
| BdMatrix< unsigned int > & | operator/= (const unsigned int &div) |
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 More... | |
| T & | operator() (const unsigned, const unsigned) |
| rw access More... | |
| Matrix_Sig< T > & | fill (const T &) |
| Matrix_Sig< T > & | setunit (const T &=(T) 1) |
| Matrix_Sig< T > & | clear () |
| TVector< T > | operator* (const Vector_Sig< T > &) const |
| TVector< T > | transMult (const Vector_Sig< T > &) const |
| unsigned int | rows () const |
| unsigned int | columns () const |
Static Public Member Functions | |
| static const char * | mat_info () |
Static Public Member Functions inherited from Matrix_Sig< T > | |
| static const char * | mat_info () |
Protected Member Functions | |
| void | constructor (const unsigned int, const bool=true) |
| T * | check (const unsigned r, const unsigned c) const HOT |
| T * | check_internal (const unsigned r, const unsigned c) const HOT |
| void | free_diags (const unsigned) |
| Implementation alternative: All memory is allocated in one big chunk (default) More... | |
| void | do_copy (const BdMatrix< T > &) |
Protected Attributes | |
| unsigned int | dim |
| unsigned int | maxoff |
| size, max offset from diag More... | |
| unsigned long | arsz |
of saved elems,More... | |
| BVector< unsigned > | diagconf |
| configuration More... | |
| BVector< T * > | adiag |
| BVector< T * > | bdiag |
| pointers to upper and lower diagonals More... | |
| T * | diag |
Friends | |
| class | ILU0_BdMatrixPreconditioner< T > |
| class | DILU_BdMatrixPreconditioner< T > |
| template<typename U > | |
| class | BdMatrix |
| STD__ istream & | operator>> FGD (STD__ istream &, BdMatrix< T > &) |
| STD__ ostream & | operator<< FGD (STD__ ostream &, const BdMatrix< T > &) |
| NOINST void gaussj | FGDT (const BdMatrix< T > &, const Matrix< T > &) |
| NOINST int lu_decomp | FGDT (BdMatrix< T > &) HOT |
| void FRIEND_TBCI2__ do_bdmat_vec_mult_lnw | FGDT (const unsigned, const unsigned, TVector< T > *, const BdMatrix< T > *, const Vector< T > *) |
| void FRIEND_TBCI2__ do_bdmat_vec_mult_lnw_opt | FGDT (const unsigned, const unsigned, TVector< T > *, const BdMatrix< T > *, const Vector< T > *) |
| void FRIEND_TBCI2__ do_bdmat_vec_mult_diagw_exact | FGDT (const unsigned, const unsigned, TVector< T > *, const BdMatrix< T > *, const Vector< T > *) |
| void FRIEND_TBCI2__ do_bdmat_vec_mult | FGDT (const unsigned, const unsigned, TVector< T > *, const BdMatrix< T > *, const Vector< T > *) |
| void FRIEND_TBCI2__ do_bdmat_vec_transmult_lnw | FGDT (const unsigned, const unsigned, TVector< T > *, const BdMatrix< T > *, const Vector< T > *) |
| void FRIEND_TBCI2__ do_bdmat_vec_transmult_lnw_opt | FGDT (const unsigned, const unsigned, TVector< T > *, const BdMatrix< T > *, const Vector< T > *) |
| void FRIEND_TBCI2__ do_bdmat_vec_transmult_diagw_exact | FGDT (const unsigned, const unsigned, TVector< T > *, const BdMatrix< T > *, const Vector< T > *) |
| void FRIEND_TBCI2__ do_bdmat_vec_transmult | FGDT (const unsigned, const unsigned, TVector< T > *, const BdMatrix< T > *, const Vector< T > *) |
| void FRIEND_TBCI2__ do_bdmat_vec_dotmult | FGDT (const unsigned, const unsigned, TVector< T > *, const BdMatrix< T > *, const Vector< T > *) |
The class BdMatrix is an implementation to store and do operations on sparse Matrices with a band structure.
It stores the main diagonal and additional diagonals of your Matrix as arrays.
This is an efficient way to handle matrices that have only a few diagonals, such as e.g. the typical pentadiagonal systems from solving discretized partial differential equations in 2 dimensions.
Default shape is tridiagonal, additional diagonals to be stored can be given by a BVector argument to the constructor, or by using autoinsert(), which allocates diagonals as needed.
Alternatives: CSCMatrix is a good choice for sparse matrices as well.
Layout:
... d ad1 ad2 ...
bd1. . . .
bd2..00 01 02 03 04 .... 0N
... .10 11 12 13 14 .... 1N
..... 20 21 22 23 24 .... 2N
..... .. .. .. .. .. .... ..
..... .. .. .. .. .. .... ..
..... N0 N1 N2 N3 N4 .... NN
Thus, an element a(i,j) is
diag[i] if i==j
adiag(j-i)[i] if j>i
bdiag(i-j)[j] if i>j
adiag(j-i)[i] with j >= N <=> i + j-i >= N do not exist
bdiag(i-j)[j] with i >= N <=> j + i-j >= N do not exist
Definition at line 103 of file band_matrix.h.
| typedef T BdMatrix< T >::element_type |
Definition at line 133 of file band_matrix.h.
| typedef T aligned_value_type BdMatrix< T >::TALIGN(MIN_ALIGN2) |
Definition at line 134 of file band_matrix.h.
| typedef T BdMatrix< T >::value_type |
Definition at line 132 of file band_matrix.h.
c'tor tridiagonal
Definition at line 506 of file band_matrix.h.
References BdMatrix< T >::clear(), BdMatrix< T >::constructor(), BdMatrix< T >::diagconf, BVector< T >::resize(), and UNLIKELY.
|
inlineexplicit |
c'tor with rows and columns (which need to be identical)
Definition at line 515 of file band_matrix.h.
References BCHKNR, BdMatrix< T >::clear(), BdMatrix< T >::constructor(), BdMatrix< T >::diagconf, BVector< T >::resize(), and UNLIKELY.
|
inlineexplicit |
c'tor with config Vector
Definition at line 525 of file band_matrix.h.
References BdMatrix< T >::clear(), and BdMatrix< T >::constructor().
copy c'tor
Definition at line 533 of file band_matrix.h.
References BdMatrix< T >::constructor(), BdMatrix< T >::dim, BdMatrix< T >::do_copy(), and UNLIKELY.
c'tor variants with initial value on diag (tridiag, with config)
Definition at line 545 of file band_matrix.h.
References BdMatrix< T >::constructor(), BdMatrix< T >::diagconf, BVector< T >::resize(), BdMatrix< T >::setunit(), and UNLIKELY.
|
inline |
Definition at line 570 of file band_matrix.h.
References BdMatrix< T >::constructor(), and BdMatrix< T >::setunit().
|
inline |
c'tor with # of offdiags (band Matrix)
Definition at line 555 of file band_matrix.h.
References BdMatrix< T >::constructor(), BdMatrix< T >::diagconf, REGISTER, BVector< T >::resize(), BVector< T >::set(), and BdMatrix< T >::setunit().
c'tor to copy Matrix and self-determine sparseness
Definition at line 580 of file band_matrix.h.
References BdMatrix< T >::adiag, BCHKNR, BdMatrix< T >::bdiag, TMatrix< T >::columns(), BdMatrix< T >::constructor(), BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, BVector< T >::get(), i, REGISTER, BVector< T >::resize(), TMatrix< T >::rows(), BVector< T >::set(), BVector< T >::size(), and T.
Definition at line 615 of file band_matrix.h.
References BCHKNR, BdMatrix< T >::diagconf, BdMatrix< T >::free_diags(), and BVector< T >::size().
|
inlineexplicit |
Definition at line 171 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::bdiag, BdMatrix< T >::constructor(), BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, for(), BVector< T >::get(), i, and BVector< T >::size().
Definition at line 888 of file band_matrix.h.
References BdMatrix< T >::adiag, BVector< T >::append(), BdMatrix< T >::arsz, BCHK, BCHKNR, BdMatrix< T >::bdiag, BDMATDBG, BVector< T >::contains(), BdMatrix< T >::diag, BdMatrix< T >::diagconf, BVector< T >::get(), i, LIKELY, BdMatrix< T >::maxoff, REALLOC, BVector< T >::set(), BVector< T >::size(), STD__, TBCIFILL, and UNLIKELY.
Referenced by BdMatrix< T >::autoinsert(), BdMatrix< T >::expand(), and BdMatrix< T >::setval().
| BdMatrix< T > & BdMatrix< T >::autoinsert | ( | const T & | val, |
| const unsigned | r, | ||
| const unsigned | c | ||
| ) |
Definition at line 996 of file band_matrix.h.
References abs, BdMatrix< T >::adddiag(), BCHK, BD_MINVAL, BdMatrix< T >::check(), CSTD__, std::fabs(), LIKELY, MATH__, and REGISTER.
Referenced by BdMatrix< T >::set_row(), and BdMatrix< T >::setval().
|
inlineprotected |
Definition at line 659 of file band_matrix.h.
References BdMatrix< T >::check_internal(), EXPCHK, and index.
Referenced by BdMatrix< T >::autoinsert(), BdMatrix< T >::operator()(), and BdMatrix< T >::setval().
|
inlineprotected |
Definition at line 636 of file band_matrix.h.
References abs, BdMatrix< T >::adiag, BdMatrix< T >::bdiag, CSTD__, BdMatrix< T >::diag, BVector< T >::get(), i, LIKELY, and BdMatrix< T >::maxoff.
Referenced by BdMatrix< T >::check(), and BdMatrix< T >::get().
Definition at line 1062 of file band_matrix.h.
References BdMatrix< T >::arsz, BdMatrix< T >::diag, and TBCIFILL.
Referenced by BdMatrix< T >::BdMatrix(), BdMatrix< T >::reconfig(), and BdMatrix< T >::resize().
number of columns
Definition at line 249 of file band_matrix.h.
References BdMatrix< T >::dim.
Referenced by CSCMatrix< T >::CSCMatrix(), and LU_invert().
|
protected |
Definition at line 378 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::arsz, BCHKNR, BdMatrix< T >::bdiag, BDMATDBG, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, BVector< T >::get(), i, LIKELY, BdMatrix< T >::maxoff, NEW, REGISTER, BVector< T >::resize(), BVector< T >::set(), BVector< T >::size(), STD__, T, and UNLIKELY.
Referenced by BdMatrix< T >::BdMatrix(), BdMatrix< T >::operator=(), BdMatrix< T >::reconfig(), and BdMatrix< T >::resize().
destroy object explicitly
Definition at line 156 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::arsz, BdMatrix< T >::bdiag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, BdMatrix< T >::free_diags(), BVector< T >::resize(), and BVector< T >::size().
Referenced by TVector< T >::operator+(), TVector< T >::operator-(), and TVector< T >::operator=().
Definition at line 2695 of file band_matrix.h.
References BdMatrix< T >::adiag, BCHK, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BVector< T >::get(), i, index, BVector< T >::size(), and T.
Definition at line 2661 of file band_matrix.h.
References BdMatrix< T >::adiag, BCHK, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, BVector< T >::get(), TVector< T >::get(), i, TVector< T >::size(), BVector< T >::size(), and BdMatrix< T >::size().
Definition at line 366 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::arsz, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BVector< T >::get(), i, BVector< T >::set(), BVector< T >::size(), and TBCICOPY.
Referenced by BdMatrix< T >::BdMatrix(), and BdMatrix< T >::operator=().
Definition at line 2592 of file band_matrix.h.
References BCHK, BdMatrix< T >::dim, and TVector< T >::size().
Definition at line 1097 of file band_matrix.h.
References BdMatrix< T >::adddiag(), BdMatrix< T >::arsz, BCHK, i, LIKELY, BdMatrix< T >::maxoff, BdMatrix< T >::reconfig(), BVector< T >::set(), BdMatrix< T >::size(), and UNLIKELY.
Referenced by lu_decomp().
Definition at line 1055 of file band_matrix.h.
References BdMatrix< T >::arsz, BdMatrix< T >::diag, and TBCIFILL.
Implementation alternative: All memory is allocated in one big chunk (default)
Definition at line 358 of file band_matrix.h.
References BdMatrix< T >::arsz, BDMATDBG, BdMatrix< T >::diag, BdMatrix< T >::dim, STD__, and TBCIDELETE.
Referenced by BdMatrix< T >::destroy(), BdMatrix< T >::operator=(), BdMatrix< T >::resize(), and BdMatrix< T >::~BdMatrix().
|
inline |
Definition at line 694 of file band_matrix.h.
References BdMatrix< T >::check_internal(), LIKELY, and REGISTER.
Referenced by LU_bkw_subst(), lu_decomp(), LU_det(), LU_fwd_subst(), and ILU0_BdMatrixPreconditioner< T >::update().
Construct Vector from column.
Definition at line 1038 of file band_matrix.h.
References BdMatrix< T >::adiag, BCHK, BdMatrix< T >::bdiag, c, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BVector< T >::get(), LIKELY, REGISTER, TVector< T >::set(), and BVector< T >::size().
Construct Vector from row.
Definition at line 1022 of file band_matrix.h.
References BdMatrix< T >::adiag, BCHK, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BVector< T >::get(), i, LIKELY, REGISTER, TVector< T >::set(), and BVector< T >::size().
ro access to config BVector
Definition at line 252 of file band_matrix.h.
References BdMatrix< T >::diagconf.
max distance from main diagonal
Definition at line 254 of file band_matrix.h.
References BdMatrix< T >::maxoff.
Referenced by LU_bkw_subst(), lu_decomp(), and LU_fwd_subst().
Definition at line 164 of file band_matrix.h.
Definition at line 2679 of file band_matrix.h.
References BdMatrix< T >::adiag, BCHK, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BVector< T >::get(), i, index, and BVector< T >::size().
Linewise multiplication.
Definition at line 2643 of file band_matrix.h.
References BdMatrix< T >::adiag, BCHK, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, BVector< T >::get(), TVector< T >::get(), i, TVector< T >::size(), BVector< T >::size(), and BdMatrix< T >::size().
Number of elements that are actually stored.
Definition at line 245 of file band_matrix.h.
References BdMatrix< T >::arsz.
cast
Definition at line 2757 of file band_matrix.h.
References _DIM, BdMatrix< T >::adiag, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, BVector< T >::get(), i, TMatrix< T >::setval(), and BVector< T >::size().
Definition at line 282 of file band_matrix.h.
|
inline |
rw member access
Definition at line 668 of file band_matrix.h.
References BdMatrix< T >::check(), LIKELY, and REGISTER.
|
inline |
ro member access
Definition at line 681 of file band_matrix.h.
References BdMatrix< T >::check(), LIKELY, and REGISTER.
Definition at line 1422 of file band_matrix.h.
References ALIGN, BCHK, i, MAX, BdMatrix< T >::maxoff, MIN, MIN_ALIGN, REGISTER, BdMatrix< T >::size(), and T.
Definition at line 1406 of file band_matrix.h.
Matrix-Vector multiplication.
Definition at line 2513 of file band_matrix.h.
References BCHK, BdMatrix< T >::diag, BdMatrix< T >::dim, LIKELY, PREFETCH_R_MANY, PREFETCH_W_MANY, TVector< T >::size(), SMP_BDMATSLICE2, thread_start_off(), thread_wait(), threads_avail, and BVector< T >::vec.
Definition at line 1334 of file band_matrix.h.
Referenced by TVector< T >::operator/=().
Definition at line 1417 of file band_matrix.h.
Definition at line 1314 of file band_matrix.h.
Referenced by TVector< T >::operator+().
Definition at line 1418 of file band_matrix.h.
Definition at line 1489 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, for(), BVector< T >::get(), i, REGISTER, BVector< T >::set(), and BVector< T >::size().
Definition at line 1315 of file band_matrix.h.
Referenced by TVector< T >::operator-().
Definition at line 1405 of file band_matrix.h.
Definition at line 1340 of file band_matrix.h.
References BdMatrix< T >::adiag, ALIGN, BCHK, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, BVector< T >::get(), i, MIN_ALIGN, REGISTER, BVector< T >::set(), BVector< T >::size(), and T.
Definition at line 1373 of file band_matrix.h.
|
inline |
Definition at line 1374 of file band_matrix.h.
The assignment operators in TBCI are NOT resizing.
Definition at line 1254 of file band_matrix.h.
References BCHK, BdMatrix< T >::constructor(), BdMatrix< T >::diagconf, BdMatrix< T >::dim, BdMatrix< T >::do_copy(), BdMatrix< T >::free_diags(), BVector< T >::resize(), BVector< T >::size(), BdMatrix< T >::size(), and STD__.
Definition at line 1276 of file band_matrix.h.
References BdMatrix< T >::setunit().
Definition at line 2609 of file band_matrix.h.
References BdMatrix< T >::adiag, BD_MINVAL, BdMatrix< T >::bdiag, BVector< T >::contains(), BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, std::fabs(), BVector< T >::get(), i, LIKELY, MATH__, BVector< T >::size(), T, TBCICOMP, and UNLIKELY.
| BdMatrix< T > & BdMatrix< T >::reconfig | ( | const BVector< unsigned int > & | cfg | ) |
Definition at line 846 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::arsz, BdMatrix< T >::bdiag, BdMatrix< T >::clear(), BdMatrix< T >::constructor(), BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, BVector< T >::get(), i, MIN, REGISTER, BVector< T >::resize(), BVector< T >::size(), T, TBCICOPY, and TBCIDELETE.
Referenced by BdMatrix< T >::expand().
Definition at line 973 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::arsz, BdMatrix< T >::bdiag, BDMATDBG, BVector< T >::contains(), BdMatrix< T >::diagconf, BVector< T >::get(), BdMatrix< T >::maxoff, MIN, BVector< T >::remove(), BVector< T >::set(), STD__, T, TBCIDELETE, and TBCIFILL.
Definition at line 749 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::arsz, BdMatrix< T >::bdiag, BdMatrix< T >::constructor(), BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, BVector< T >::get(), i, min, MIN, REGISTER, BVector< T >::resize(), BVector< T >::size(), T, TBCICOPY, TBCIDELETE, and TBCIFILL.
Referenced by BdMatrix< T >::resize().
| BdMatrix< T > & BdMatrix< T >::resize | ( | const T & | val, |
| const unsigned int | nd | ||
| ) |
Definition at line 801 of file band_matrix.h.
References BdMatrix< T >::constructor(), BdMatrix< T >::diagconf, BdMatrix< T >::free_diags(), BVector< T >::resize(), BdMatrix< T >::setunit(), and BVector< T >::size().
| BdMatrix< T > & BdMatrix< T >::resize | ( | const unsigned int | nd, |
| const BVector< unsigned int > & | cfg | ||
| ) |
Definition at line 818 of file band_matrix.h.
References BdMatrix< T >::clear(), BdMatrix< T >::constructor(), BVector< T >::copy(), BdMatrix< T >::diagconf, BdMatrix< T >::free_diags(), and BVector< T >::size().
| BdMatrix< T > & BdMatrix< T >::resize | ( | const T & | val, |
| const unsigned int | nd, | ||
| const BVector< unsigned int > & | cfg | ||
| ) |
Definition at line 832 of file band_matrix.h.
References BdMatrix< T >::diag, BdMatrix< T >::dim, i, and BdMatrix< T >::resize().
Resizing assignment.
Definition at line 224 of file band_matrix.h.
References BdMatrix< T >::diagconf, BdMatrix< T >::dim, and BdMatrix< T >::resize().
number of rows
Definition at line 247 of file band_matrix.h.
References BdMatrix< T >::dim.
Referenced by CSCMatrix< T >::CSCMatrix(), LU_bkw_subst(), lu_decomp(), LU_det(), LU_fwd_subst(), and LU_invert().
| BdMatrix< T > & BdMatrix< T >::set_row | ( | const Vector< T > & | val, |
| const unsigned | r, | ||
| const unsigned | s = 0 |
||
| ) |
Overwrite row with Vector.
Definition at line 1014 of file band_matrix.h.
References BdMatrix< T >::autoinsert(), i, and TVector< T >::size().
|
inline |
Definition at line 321 of file band_matrix.h.
References p.
Definition at line 725 of file band_matrix.h.
References BdMatrix< T >::arsz, BdMatrix< T >::diag, T, and TBCIFILL.
Referenced by BdMatrix< T >::BdMatrix(), BdMatrix< T >::operator=(), and BdMatrix< T >::resize().
|
inline |
autoinsert, sparse class compatible
Definition at line 205 of file band_matrix.h.
References BdMatrix< T >::autoinsert().
Referenced by lu_decomp(), and operator>>().
Definition at line 707 of file band_matrix.h.
References abs, BdMatrix< T >::adddiag(), BdMatrix< T >::autoinsert(), BCHK, BdMatrix< T >::check(), CSTD__, LIKELY, and REGISTER.
size: incompatibility to Matrix (!)
Definition at line 243 of file band_matrix.h.
References BdMatrix< T >::dim.
Referenced by BdMatrix< T >::div_rows(), BdMatrix< T >::expand(), BdMatrix< T >::mult_rows(), BdMatrix< T >::operator*(), TVector< T >::operator=(), and BdMatrix< T >::operator=().
Definition at line 256 of file band_matrix.h.
References BdMatrix< T >::diag, BdMatrix< T >::dim, i, MIN_ALIGN, REGISTER, and T.
Transposed Matrix-Vector multiplication.
Definition at line 2541 of file band_matrix.h.
References BCHK, BdMatrix< T >::diag, BdMatrix< T >::dim, LIKELY, PREFETCH_R_MANY, PREFETCH_W_MANY, TVector< T >::size(), SMP_BDMATSLICE2, thread_start_off(), thread_wait(), threads_avail, and BVector< T >::vec.
transpose() does change the object!
Definition at line 1377 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::bdiag, BdMatrix< T >::diagconf, BVector< T >::get(), REGISTER, BVector< T >::set(), BVector< T >::size(), and BVector< T >::swap().
Definition at line 170 of file band_matrix.h.
|
friend |
Definition at line 106 of file band_matrix.h.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
Definition at line 105 of file band_matrix.h.
|
friend |
Definition at line 112 of file band_matrix.h.
Referenced by BdMatrix< T >::adddiag(), BdMatrix< T >::BdMatrix(), BdMatrix< T >::check_internal(), BdMatrix< T >::constructor(), BdMatrix< T >::destroy(), BdMatrix< T >::div_row(), BdMatrix< T >::div_rows(), do_bdmat_vec_dotmult(), do_bdmat_vec_mult(), do_bdmat_vec_mult_diagw_exact(), do_bdmat_vec_mult_lnw(), do_bdmat_vec_mult_lnw_opt(), do_bdmat_vec_transmult(), do_bdmat_vec_transmult_diagw_exact(), do_bdmat_vec_transmult_lnw(), do_bdmat_vec_transmult_lnw_opt(), BdMatrix< T >::do_copy(), BdMatrix< T >::get_col(), BdMatrix< T >::get_row(), BdMatrix< T >::mult_row(), BdMatrix< T >::mult_rows(), BdMatrix< T >::operator TMatrix< T >(), BdMatrix< T >::operator-(), BdMatrix< T >::operator/=(), BdMatrix< T >::operator==(), BdMatrix< T >::reconfig(), BdMatrix< T >::removediag(), BdMatrix< T >::resize(), BdMatrix< T >::transpose(), DILU_BdMatrixPreconditioner< T >::update(), and ILU0_BdMatrixPreconditioner< T >::update().
Definition at line 110 of file band_matrix.h.
Referenced by BdMatrix< T >::adddiag(), BdMatrix< T >::clear(), BdMatrix< T >::constructor(), BdMatrix< T >::destroy(), BdMatrix< T >::do_copy(), BdMatrix< T >::expand(), BdMatrix< T >::fill(), BdMatrix< T >::free_diags(), BdMatrix< T >::noelem(), BdMatrix< T >::reconfig(), BdMatrix< T >::removediag(), BdMatrix< T >::resize(), and BdMatrix< T >::setunit().
pointers to upper and lower diagonals
Definition at line 112 of file band_matrix.h.
Referenced by BdMatrix< T >::adddiag(), BdMatrix< T >::BdMatrix(), BdMatrix< T >::check_internal(), BdMatrix< T >::constructor(), BdMatrix< T >::destroy(), BdMatrix< T >::div_row(), BdMatrix< T >::div_rows(), do_bdmat_vec_dotmult(), do_bdmat_vec_mult(), do_bdmat_vec_mult_diagw_exact(), do_bdmat_vec_mult_lnw(), do_bdmat_vec_mult_lnw_opt(), do_bdmat_vec_transmult(), do_bdmat_vec_transmult_diagw_exact(), do_bdmat_vec_transmult_lnw(), do_bdmat_vec_transmult_lnw_opt(), BdMatrix< T >::do_copy(), BdMatrix< T >::get_col(), BdMatrix< T >::get_row(), BdMatrix< T >::mult_row(), BdMatrix< T >::mult_rows(), BdMatrix< T >::operator TMatrix< T >(), BdMatrix< T >::operator-(), BdMatrix< T >::operator/=(), BdMatrix< T >::operator==(), BdMatrix< T >::reconfig(), BdMatrix< T >::removediag(), BdMatrix< T >::resize(), BdMatrix< T >::transpose(), DILU_BdMatrixPreconditioner< T >::update(), and ILU0_BdMatrixPreconditioner< T >::update().
Definition at line 113 of file band_matrix.h.
Referenced by BdMatrix< T >::adddiag(), BdMatrix< T >::BdMatrix(), BdMatrix< T >::check_internal(), BdMatrix< T >::clear(), BdMatrix< T >::constructor(), BdMatrix< T >::div_row(), BdMatrix< T >::div_rows(), do_bdmat_vec_dotmult(), do_bdmat_vec_mult(), do_bdmat_vec_mult_diagw_exact(), do_bdmat_vec_mult_lnw(), do_bdmat_vec_mult_lnw_opt(), do_bdmat_vec_transmult(), do_bdmat_vec_transmult_diagw_exact(), do_bdmat_vec_transmult_lnw(), do_bdmat_vec_transmult_lnw_opt(), BdMatrix< T >::do_copy(), BdMatrix< T >::fill(), BdMatrix< T >::free_diags(), BdMatrix< T >::get_col(), BdMatrix< T >::get_row(), BdMatrix< T >::mult_row(), BdMatrix< T >::mult_rows(), BdMatrix< T >::operator TMatrix< T >(), BdMatrix< T >::operator*(), BdMatrix< T >::operator-(), BdMatrix< T >::operator/=(), BdMatrix< T >::operator==(), BdMatrix< T >::reconfig(), BdMatrix< T >::resize(), BdMatrix< T >::setunit(), BdMatrix< T >::trace(), BdMatrix< T >::transMult(), and DILU_BdMatrixPreconditioner< T >::update().
configuration
Definition at line 111 of file band_matrix.h.
Referenced by BdMatrix< T >::adddiag(), BdMatrix< T >::BdMatrix(), BdMatrix< T >::constructor(), BdMatrix< T >::destroy(), BdMatrix< T >::div_row(), BdMatrix< T >::div_rows(), do_bdmat_vec_dotmult(), do_bdmat_vec_mult(), do_bdmat_vec_mult_diagw_exact(), do_bdmat_vec_mult_lnw(), do_bdmat_vec_mult_lnw_opt(), do_bdmat_vec_transmult(), do_bdmat_vec_transmult_diagw_exact(), do_bdmat_vec_transmult_lnw(), do_bdmat_vec_transmult_lnw_opt(), BdMatrix< T >::do_copy(), BdMatrix< T >::get_col(), BdMatrix< T >::get_row(), BdMatrix< T >::getcfg(), BdMatrix< T >::mult_row(), BdMatrix< T >::mult_rows(), BdMatrix< T >::operator TMatrix< T >(), BdMatrix< T >::operator-(), BdMatrix< T >::operator/=(), BdMatrix< T >::operator=(), BdMatrix< T >::operator==(), operator>>(), BdMatrix< T >::reconfig(), BdMatrix< T >::removediag(), BdMatrix< T >::resize(), BdMatrix< T >::transpose(), DILU_BdMatrixPreconditioner< T >::update(), ILU0_BdMatrixPreconditioner< T >::update(), and BdMatrix< T >::~BdMatrix().
Definition at line 109 of file band_matrix.h.
Referenced by BdMatrix< T >::BdMatrix(), BdMatrix< T >::columns(), BdMatrix< T >::constructor(), BdMatrix< T >::destroy(), BdMatrix< T >::div_rows(), do_bdmat_vec_dotmult(), do_bdmat_vec_mult(), do_bdmat_vec_mult_diagw_exact(), do_bdmat_vec_mult_lnw(), do_bdmat_vec_mult_lnw_opt(), do_bdmat_vec_transmult(), do_bdmat_vec_transmult_diagw_exact(), do_bdmat_vec_transmult_lnw(), do_bdmat_vec_transmult_lnw_opt(), BdMatrix< T >::dotMult(), BdMatrix< T >::free_diags(), TVector< T >::incr(), BdMatrix< T >::mult_rows(), BdMatrix< T >::operator TMatrix< T >(), BdMatrix< T >::operator*(), TVector< T >::operator*=(), TVector< T >::operator+(), operator+(), TVector< T >::operator+=(), TVector< T >::operator-(), BdMatrix< T >::operator-(), operator-(), TVector< T >::operator-=(), BdMatrix< T >::operator/=(), TVector< T >::operator=(), BdMatrix< T >::operator=(), BdMatrix< T >::operator==(), operator>>(), BdMatrix< T >::reconfig(), BdMatrix< T >::resize(), BdMatrix< T >::rows(), BdMatrix< T >::size(), TVector< T >::slice(), BdMatrix< T >::trace(), BdMatrix< T >::transMult(), DILU_BdMatrixPreconditioner< T >::update(), and ILU0_BdMatrixPreconditioner< T >::update().
size, max offset from diag
Definition at line 109 of file band_matrix.h.
Referenced by BdMatrix< T >::adddiag(), BdMatrix< T >::check_internal(), BdMatrix< T >::constructor(), do_bdmat_vec_dotmult(), do_bdmat_vec_mult_lnw_opt(), do_bdmat_vec_transmult_lnw_opt(), BdMatrix< T >::expand(), BdMatrix< T >::getmaxoff(), BdMatrix< T >::operator*(), and BdMatrix< T >::removediag().
1.8.5