|
AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects
Version of the Day
|
Abstract base class for all serial symmetric diagonal matrices with significant zeros along the diagonal. More...
#include <AbstractLinAlgPack_MatrixSymDiagSparse.hpp>

Public Member Functions | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (size_type, num_updates_at_once) | |
| <<std member="" comp>="">> members for how many updates to compute at once in the operation M_MtMtM(....). | |
| MatrixSymDiagSparse () | |
| The default value of num_updates_at_once == 0 is set to allow this class to determine the appropriate size internally. | |
To be overridden by subclass | |
| virtual const SpVectorSlice | diag () const =0 |
| Give access to the sparse diagonal. | |
Overridden from MatrixBase | |
| size_type | rows () const |
| | |
Overridden from MatrixOp | |
| std::ostream & | output (std::ostream &out) const |
| | |
Overridden from MatrixOpSerial | |
| void | Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2, value_type beta) const |
| | |
Overridden from MatrixSymOpSerial | |
| void | Mp_StMtMtM (DMatrixSliceSym *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixOpSerial &mwo_rhs, BLAS_Cpp::Transp mwo_rhs_trans, value_type beta) const |
| Computes the dense symmetric matrix B += a*op(A')*M*op(A). | |
Overridden from MatrixConvertToSparse | |
| index_type | num_nonzeros (EExtractRegion extract_region, EElementUniqueness element_uniqueness) const |
| | |
| void | coor_extract_nonzeros (EExtractRegion extract_region, EElementUniqueness element_uniqueness, const index_type len_Aval, value_type Aval[], const index_type len_Aij, index_type Arow[], index_type Acol[], const index_type row_offset, const index_type col_offset) const |
| | |
Abstract base class for all serial symmetric diagonal matrices with significant zeros along the diagonal.
Definition at line 53 of file AbstractLinAlgPack_MatrixSymDiagSparse.hpp.
The default value of num_updates_at_once == 0 is set to allow this class to determine the appropriate size internally.
Definition at line 68 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.
| AbstractLinAlgPack::MatrixSymDiagSparse::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | size_type | , |
| num_updates_at_once | |||
| ) |
<<std member="" comp>="">> members for how many updates to compute at once in the operation M_MtMtM(....).
| virtual const SpVectorSlice AbstractLinAlgPack::MatrixSymDiagSparse::diag | ( | ) | const [pure virtual] |
Give access to the sparse diagonal.
Implemented in AbstractLinAlgPack::MatrixSymDiagSparseStd.
| size_type AbstractLinAlgPack::MatrixSymDiagSparse::rows | ( | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 74 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.
| std::ostream & AbstractLinAlgPack::MatrixSymDiagSparse::output | ( | std::ostream & | out | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOpSerial.
Definition at line 81 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.
| void AbstractLinAlgPack::MatrixSymDiagSparse::Vp_StMtV | ( | DVectorSlice * | vs_lhs, |
| value_type | alpha, | ||
| BLAS_Cpp::Transp | trans_rhs1, | ||
| const DVectorSlice & | vs_rhs2, | ||
| value_type | beta | ||
| ) | const [virtual] |
Implements AbstractLinAlgPack::MatrixOpSerial.
Definition at line 90 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.
| void AbstractLinAlgPack::MatrixSymDiagSparse::Mp_StMtMtM | ( | DMatrixSliceSym * | sym_lhs, |
| value_type | alpha, | ||
| EMatRhsPlaceHolder | dummy_place_holder, | ||
| const MatrixOpSerial & | mwo_rhs, | ||
| BLAS_Cpp::Transp | mwo_rhs_trans, | ||
| value_type | beta | ||
| ) | const [virtual] |
Computes the dense symmetric matrix B += a*op(A')*M*op(A).
This matrix is computed using a set of rank-1 updates.
Runtime ~ O( (m^2)*nz )
Storage ~ O( num_updates_at_once * m )
Where:
Note that a necessary condition for B to be full rank is for nz >= m.
Also note that this default implementation is only for nonnegative diagonal entries.
Reimplemented from AbstractLinAlgPack::MatrixSymOpSerial.
Definition at line 116 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.
| index_type AbstractLinAlgPack::MatrixSymDiagSparse::num_nonzeros | ( | EExtractRegion | extract_region, |
| EElementUniqueness | element_uniqueness | ||
| ) | const [virtual] |
Implements AbstractLinAlgPack::MatrixConvertToSparse.
Definition at line 250 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.
| void AbstractLinAlgPack::MatrixSymDiagSparse::coor_extract_nonzeros | ( | EExtractRegion | extract_region, |
| EElementUniqueness | element_uniqueness, | ||
| const index_type | len_Aval, | ||
| value_type | Aval[], | ||
| const index_type | len_Aij, | ||
| index_type | Arow[], | ||
| index_type | Acol[], | ||
| const index_type | row_offset, | ||
| const index_type | col_offset | ||
| ) | const [virtual] |
Implements AbstractLinAlgPack::MatrixConvertToSparse.
Definition at line 258 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.
1.7.6.1