|
TBCI Numerical high perf. C++ Library 2.8.0
|
Variable size configurable Band Matrix class TBCI::BdMatrix. More...
#include "tbci/basics.h"#include "tbci/vector.h"#include "tbci/matrix.h"
Go to the source code of this file.
Classes | |
| class | BdMatrixErr |
| exception class More... | |
| class | BdMatrix< T > |
| The class BdMatrix is an implementation to store and do operations on sparse Matrices with a band structure. More... | |
Macros | |
| #define | BD_MINVAL 1e-16 |
| #define | BDMAT_ONE_BLOCK |
| BDMAT_NEW_ALLOC directs BdMatrix to allocate off-diags separately. | |
| #define | BDMATDBG(x) |
| #define | SFORALL_S(op) |
| #define | SFORALL_T(op) |
| #define | INTDIVEQ(T) |
| #define | STDDEF_ST(op) |
| #define | STDDEF_SS(op) |
| #define | MAY_PREFETCH_R(adr, loc) |
| #define | MAY_PREFETCH_W(adr, loc) |
| #define | BDMATVEC_LNWISE_OPT |
| #define | COST_BDMATVEC_LN(d, o, m) |
| #define | COST_BDMATVEC_LNO(d, o, m) |
| #define | COST_BDMATVEC_DIAG(d, o, m) |
| #define | COST_BDMATVEC(d, o, m) |
| #define | COST_BDMATVEC_TRANS(d, o, m) |
| #define | COST_BDMATVEC_DOT(d, o, m) |
| #define | SMP_BDMATSLICE 32768 |
| #define | SMP_BDMATSLICE2 (SMP_BDMATSLICE/sizeof(T)) |
Functions | |
| template<typename T> | |
| BdMatrix< T > | transpose (BdMatrix< T > &mat) |
| template<typename T> | |
| BdMatrix< T > | operator* (const T &v, const BdMatrix< T > &m) |
| template<typename T> | |
| void | do_bdmat_vec_mult_lnw (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec) |
| template<typename T> | |
| void | do_bdmat_vec_mult_lnw_opt (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec) |
| template<typename T> | |
| void | do_bdmat_vec_mult_diagw_exact (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec) |
| template<typename T> | |
| void | do_bdmat_vec_mult (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec) |
| template<typename T> | |
| void | do_bdmat_vec_transmult_lnw (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec) |
| template<typename T> | |
| void | do_bdmat_vec_transmult_lnw_opt (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec) |
| template<typename T> | |
| void | do_bdmat_vec_transmult_diagw_exact (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec) |
| template<typename T> | |
| void | do_bdmat_vec_transmult (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec) |
| template<typename T> | |
| void | do_bdmat_vec_dotmult (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec) |
| template<typename T> | |
| void | job_bdmat_vec_mult (struct thr_ctrl *tc) |
| template<typename T> | |
| void | job_bdmat_vec_transmult (struct thr_ctrl *tc) |
| template<typename T> | |
| STD__ ostream & | operator<< (STD__ ostream &ostr, const BdMatrix< T > &mat) |
| template<typename T> | |
| STD__ istream & | operator>> (STD__ istream &istr, BdMatrix< T > &mat) |
| template<typename T> | |
| int | numa_optimize (const BdMatrix< T > &bm, bool fault_in) |
Variable size configurable Band Matrix class TBCI::BdMatrix.
Definition in file band_matrix.h.
| #define BD_MINVAL 1e-16 |
Definition at line 21 of file band_matrix.h.
Referenced by BdMatrix< T >::autoinsert(), and BdMatrix< T >::operator==().
| #define BDMAT_ONE_BLOCK |
BDMAT_NEW_ALLOC directs BdMatrix to allocate off-diags separately.
Definition at line 26 of file band_matrix.h.
| #define BDMATDBG | ( | x | ) |
Definition at line 32 of file band_matrix.h.
Referenced by BdMatrix< T >::adddiag(), BdMatrix< T >::constructor(), BdMatrix< T >::free_diags(), and BdMatrix< T >::removediag().
| #define BDMATVEC_LNWISE_OPT |
Definition at line 1508 of file band_matrix.h.
| #define COST_BDMATVEC | ( | d, | |
| o, | |||
| m ) |
Definition at line 1915 of file band_matrix.h.
| #define COST_BDMATVEC_DIAG | ( | d, | |
| o, | |||
| m ) |
Definition at line 1516 of file band_matrix.h.
| #define COST_BDMATVEC_DOT | ( | d, | |
| o, | |||
| m ) |
Definition at line 2291 of file band_matrix.h.
| #define COST_BDMATVEC_LN | ( | d, | |
| o, | |||
| m ) |
Definition at line 1512 of file band_matrix.h.
| #define COST_BDMATVEC_LNO | ( | d, | |
| o, | |||
| m ) |
Definition at line 1514 of file band_matrix.h.
| #define COST_BDMATVEC_TRANS | ( | d, | |
| o, | |||
| m ) |
Definition at line 1920 of file band_matrix.h.
| #define INTDIVEQ | ( | T | ) |
Definition at line 1356 of file band_matrix.h.
Referenced by BdMatrix< T >::operator/=().
| #define MAY_PREFETCH_R | ( | adr, | |
| loc ) |
Definition at line 1483 of file band_matrix.h.
Referenced by do_bdmat_vec_dotmult(), do_bdmat_vec_mult_lnw_opt(), and do_bdmat_vec_transmult_lnw_opt().
| #define MAY_PREFETCH_W | ( | adr, | |
| loc ) |
Definition at line 1484 of file band_matrix.h.
Referenced by do_bdmat_vec_dotmult(), do_bdmat_vec_mult_lnw_opt(), and do_bdmat_vec_transmult_lnw_opt().
| #define SFORALL_S | ( | op | ) |
Definition at line 1283 of file band_matrix.h.
Referenced by BdMatrix< T >::operator-=().
| #define SFORALL_T | ( | op | ) |
Definition at line 1318 of file band_matrix.h.
| #define SMP_BDMATSLICE 32768 |
Definition at line 2508 of file band_matrix.h.
| #define SMP_BDMATSLICE2 (SMP_BDMATSLICE/sizeof(T)) |
Definition at line 2510 of file band_matrix.h.
Referenced by BdMatrix< T >::operator*(), and BdMatrix< T >::transMult().
| #define STDDEF_SS | ( | op | ) |
Definition at line 1410 of file band_matrix.h.
Referenced by BdMatrix< T >::operator-().
| #define STDDEF_ST | ( | op | ) |
Definition at line 1398 of file band_matrix.h.
Referenced by BdMatrix< T >::operator*().
|
inline |
Definition at line 2293 of file band_matrix.h.
References BdMatrix< T >::adiag, ALIGN, BdMatrix< T >::bdiag, conj(), BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, do_exactsum2(), end, BVector< T >::get(), TVector< T >::get(), BVector< T >::getcref(), TVector< T >::getcref(), i, LIKELY, MAX, BdMatrix< T >::maxoff, MAY_PREFETCH_R, MAY_PREFETCH_W, MIN, MIN_ALIGN, MIN_ALIGN2, PREFETCH_R, REGISTER, res, BVector< T >::size(), T, and y.
Referenced by BdMatrix< T >::dotMult(), and BdMatrix< T >::FGDT.
|
inline |
Definition at line 1875 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, do_bdmat_vec_mult_diagw_exact(), do_bdmat_vec_mult_lnw(), do_exactsum2(), end, BVector< T >::get(), TVector< T >::getcref(), LIKELY, MAX, MIN, res, and BVector< T >::size().
Referenced by BdMatrix< T >::FGDT, job_bdmat_vec_mult(), and BdMatrix< T >::operator*().
|
inline |
Definition at line 1827 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, end, BVector< T >::get(), TVector< T >::get(), TVector< T >::getcref(), MAX, MIN, REGISTER, res, TVector< T >::setval(), BVector< T >::size(), T, and y.
Referenced by do_bdmat_vec_mult(), and BdMatrix< T >::FGDT.
|
inline |
Definition at line 1521 of file band_matrix.h.
References BdMatrix< T >::adiag, ALIGN, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, do_exactsum2(), end, BVector< T >::get(), TVector< T >::get(), i, LIKELY, MIN_ALIGN, REGISTER, res, BVector< T >::size(), T, and y.
Referenced by do_bdmat_vec_mult(), and BdMatrix< T >::FGDT.
|
inline |
Definition at line 1571 of file band_matrix.h.
References BdMatrix< T >::adiag, ALIGN, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, do_exactsum2(), end, BVector< T >::get(), TVector< T >::get(), BVector< T >::getcref(), TVector< T >::getcref(), i, BdMatrix< T >::maxoff, MAY_PREFETCH_R, MAY_PREFETCH_W, MIN, MIN_ALIGN2, PREFETCH_R, REGISTER, res, BVector< T >::size(), T, and y.
Referenced by BdMatrix< T >::FGDT.
|
inline |
Definition at line 2262 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, do_bdmat_vec_transmult_diagw_exact(), do_exactsum2(), end, BVector< T >::get(), TVector< T >::getcref(), MAX, MIN, res, and BVector< T >::size().
Referenced by BdMatrix< T >::FGDT, job_bdmat_vec_transmult(), and BdMatrix< T >::transMult().
|
inline |
Definition at line 2220 of file band_matrix.h.
References BdMatrix< T >::adiag, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, end, BVector< T >::get(), TVector< T >::get(), TVector< T >::getcref(), MAX, MIN, REGISTER, res, TVector< T >::setval(), BVector< T >::size(), T, and y.
Referenced by do_bdmat_vec_transmult(), and BdMatrix< T >::FGDT.
|
inline |
Definition at line 1922 of file band_matrix.h.
References BdMatrix< T >::adiag, ALIGN, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, do_exactsum2(), end, BVector< T >::get(), TVector< T >::get(), i, LIKELY, MIN_ALIGN, REGISTER, res, BVector< T >::size(), T, and y.
Referenced by BdMatrix< T >::FGDT.
|
inline |
Definition at line 1969 of file band_matrix.h.
References BdMatrix< T >::adiag, ALIGN, BdMatrix< T >::bdiag, BdMatrix< T >::diag, BdMatrix< T >::diagconf, BdMatrix< T >::dim, do_exactsum2(), end, BVector< T >::get(), TVector< T >::get(), BVector< T >::getcref(), TVector< T >::getcref(), i, BdMatrix< T >::maxoff, MAY_PREFETCH_R, MAY_PREFETCH_W, MIN, MIN_ALIGN, PREFETCH_R, REGISTER, res, BVector< T >::size(), T, and y.
Referenced by BdMatrix< T >::FGDT.
Definition at line 2489 of file band_matrix.h.
References do_bdmat_vec_mult(), thr_ctrl::t_off, thr_ctrl::t_par, and thr_ctrl::t_size.
Referenced by BdMatrix< T >::operator*().
Definition at line 2498 of file band_matrix.h.
References do_bdmat_vec_transmult(), job_bdmat_vec_transmult(), thr_ctrl::t_off, thr_ctrl::t_par, and thr_ctrl::t_size.
Referenced by job_bdmat_vec_transmult(), and BdMatrix< T >::transMult().
Definition at line 2915 of file band_matrix.h.
Definition at line 1449 of file band_matrix.h.
References T.
Definition at line 2712 of file band_matrix.h.
References abs, BVector< T >::contains(), CSTD__, BdMatrix< T >::diagconf, BdMatrix< T >::dim, EXPCHK, BdMatrix< T >::get(), i, STD__, T, and UNLIKELY.
Definition at line 2739 of file band_matrix.h.
References abs, BVector< T >::contains(), CSTD__, BdMatrix< T >::diagconf, BdMatrix< T >::dim, i, BdMatrix< T >::setval(), STD__, and T.