#include <AbstractLinAlgPack_MatrixSymDiagSparse.hpp>
Inheritance diagram for AbstractLinAlgPack::MatrixSymDiagSparse:

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 |
| | |
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. | |
Definition at line 40 of file AbstractLinAlgPack_MatrixSymDiagSparse.hpp.
| AbstractLinAlgPack::MatrixSymDiagSparse::MatrixSymDiagSparse | ( | ) |
The default value of num_updates_at_once == 0 is set to allow this class to determine the appropriate size internally.
Definition at line 55 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] |
| size_type AbstractLinAlgPack::MatrixSymDiagSparse::rows | ( | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 61 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.
| std::ostream & AbstractLinAlgPack::MatrixSymDiagSparse::output | ( | std::ostream & | out | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOpSerial.
Definition at line 68 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 77 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 103 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.
| index_type AbstractLinAlgPack::MatrixSymDiagSparse::num_nonzeros | ( | EExtractRegion | extract_region, | |
| EElementUniqueness | element_uniqueness | |||
| ) | const |
| 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 |
1.4.7