|
TBCI Numerical high perf. C++ Library
2.8.0
|
#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 | ILU0_BdMatrixPreconditioner< T > |
| class | DILU_BdMatrixPreconditioner< T > |
| 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. More... | |
| #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) do {} while (0) |
| #define | MAY_PREFETCH_W(adr, loc) do {} while (0) |
| #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) COST_BDMATVEC_LNO(d,o,m) |
| #define | COST_BDMATVEC_TRANS(d, o, m) COST_BDMATVEC(d,o,m) |
| #define | COST_BDMATVEC_DOT(d, o, m) COST_BDMATVEC(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) |
| #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 | |||
| ) | COST_BDMATVEC_LNO(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 | |||
| ) | COST_BDMATVEC(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 | |||
| ) | COST_BDMATVEC(d,o,m) |
Definition at line 1920 of file band_matrix.h.
| #define INTDIVEQ | ( | T | ) |
Definition at line 1356 of file band_matrix.h.
| #define MAY_PREFETCH_R | ( | adr, | |
| loc | |||
| ) | do {} while (0) |
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 | |||
| ) | do {} while (0) |
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.
| #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.
| #define STDDEF_ST | ( | op | ) |
Definition at line 1398 of file band_matrix.h.
|
inline |
Definition at line 2293 of file band_matrix.h.
References BdMatrix< T >::adiag, ALIGN, BdMatrix< T >::bdiag, std::conj(), CPLX__, 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, TVector< T >::set(), TVector< T >::setval(), BVector< T >::size(), and y.
|
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(), BVector< T >::get(), TVector< T >::getcref(), LIKELY, MAX, MIN, TVector< T >::setval(), and BVector< T >::size().
Referenced by job_bdmat_vec_mult().
|
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, TVector< T >::setval(), BVector< T >::size(), and y.
Referenced by do_bdmat_vec_mult().
|
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, TVector< T >::set(), BVector< T >::size(), and y.
Referenced by do_bdmat_vec_mult().
|
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, TVector< T >::set(), TVector< T >::setval(), BVector< T >::size(), and y.
|
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(), BVector< T >::get(), TVector< T >::getcref(), MAX, MIN, TVector< T >::setval(), and BVector< T >::size().
Referenced by job_bdmat_vec_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, TVector< T >::setval(), BVector< T >::size(), and y.
Referenced by do_bdmat_vec_transmult().
|
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, TVector< T >::set(), BVector< T >::size(), and y.
|
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, TVector< T >::set(), TVector< T >::setval(), BVector< T >::size(), and y.
| void job_bdmat_vec_mult | ( | struct thr_ctrl * | tc | ) |
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.
| void job_bdmat_vec_transmult | ( | struct thr_ctrl * | tc | ) |
Definition at line 2498 of file band_matrix.h.
References do_bdmat_vec_transmult(), thr_ctrl::t_off, thr_ctrl::t_par, and thr_ctrl::t_size.
Definition at line 2915 of file band_matrix.h.
Definition at line 1449 of file band_matrix.h.
References v.
Definition at line 2712 of file band_matrix.h.
References abs, CSTD__, TMatrix< T >::dim, EXPCHK, Matrix< T >::fill(), TMatrix< T >::get(), i, 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(), and STD__.
1.8.5