#include <AbstractLinAlgPack_MatrixSymOp.hpp>
Inheritance diagram for AbstractLinAlgPack::MatrixSymOp:
Public types | |
| enum | EMatRhsPlaceHolder |
| More... | |
Clone | |
| virtual mat_mswo_mut_ptr_t | clone_mswo () |
| Clone the non-const matrix object (if supported). | |
| virtual mat_mswo_ptr_t | clone_mswo () const |
| Clone the const matrix object (if supported). | |
[NOHEADER] | |
| size_type | cols () const |
Returns this->rows(). | |
| const VectorSpace & | space_rows () const |
| Vector space for vectors that are compatible with the rows of the matrix. | |
| mat_mut_ptr_t | clone () |
Returns this->clone_mswo(). | |
| mat_ptr_t | clone () const |
Returns this->clone_mswo(). | |
Level-1 BLAS | |
| virtual void | Mp_StPtMtP (MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const GenPermMatrixSlice &gpms_rhs, BLAS_Cpp::Transp gpms_rhs_trans, value_type beta) const |
| sym_lhs = alpha * op(gpms_rhs') * M * op(gpms_rhs) + beta * sym_lhs. | |
Level-3 BLAS | |
| virtual void | Mp_StMtMtM (MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixOp &mwo_rhs, BLAS_Cpp::Transp mwo_rhs_trans, value_type beta) const |
| sym_lhs = alpha * op(mwo_rhs') * M * op(mwo_rhs) + beta * sym_lhs. | |
[NOHEADER] | |
| void | Mp_StPtMtP (MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixSymOp &M, const GenPermMatrixSlice &gpms_rhs, BLAS_Cpp::Transp gpms_rhs_trans, value_type beta) |
| | |
| void | Mp_StMtMtM (MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixSymOp &M, const MatrixOp &mwo_rhs, BLAS_Cpp::Transp mwo_rhs_trans, value_type beta) |
| | |
Public Member Functions | |
| virtual MatrixSymOp & | operator= (const MatrixSymOp &M) |
| Calls operator=(MatrixOp&). | |
| virtual bool | Mp_StPtMtP (MatrixOp *mwo_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_trans, const GenPermMatrixSlice &P_rhs2, BLAS_Cpp::Transp P_rhs2_trans) const |
| | |
| virtual bool | Mp_StPtMtP (value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &mwo_rhs, BLAS_Cpp::Transp M_trans, const GenPermMatrixSlice &P_rhs2, BLAS_Cpp::Transp P_rhs2_trans) |
| | |
Friends | |
| void | Mp_StPtMtP (MatrixOp *mwo_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs, const GenPermMatrixSlice &P_rhs2, BLAS_Cpp::Transp P_rhs2_trans) |
| | |
This interface defines two addition methods to those found in MatrixOp:
sym_lhs = alpha * op(gpms_rhs') * M * op(gpms_rhs) + beta * sym_lhs
sym_lhs = alpha * op(mwo_rhs') * M * op(mwo_rhs) + beta * sym_lhs
The reason that these methods could not be defined in the MatrixOp interface is that the lhs matrix matrix argument sym_lhs is only guaranteed to be symmetric if the rhs matrix argument M (which is this matrix) is guaranteed to be symmetric. Since a MatrixOp matrix object may be unsymmetric (as well as rectangular), it can not implement this operation, only a symmetric matrix can.
Clients should use the provided non-member functions to call the methods and not the methods themselves.
Definition at line 53 of file AbstractLinAlgPack_MatrixSymOp.hpp.
|
|
Definition at line 69 of file AbstractLinAlgPack_MatrixSymOp.hpp. |
|
|
Clone the non-const matrix object (if supported). The default implementation returns NULL which is perfectly acceptable. A matrix object is not required to return a non-NULL value but almost every good matrix implementation will. Reimplemented in AbstractLinAlgPack::MatrixSymOpNonsing. Definition at line 37 of file AbstractLinAlgPack_MatrixSymOp.cpp. |
|
|
Clone the const matrix object (if supported). The behavior of this method is the same as for the non-const version above except it returns a smart pointer to a const matrix object. Reimplemented in AbstractLinAlgPack::MatrixSymOpNonsing. Definition at line 43 of file AbstractLinAlgPack_MatrixSymOp.cpp. |
|
||||||||||||||||||||||||||||
|
sym_lhs = alpha * op(gpms_rhs') * M * op(gpms_rhs) + beta * sym_lhs. The default operation is based on Vp_StMtV(...) and assumes that the matrix is symmetric. Of course, a more efficient implementation is often needed and the sublcass would like to override this. Reimplemented in AbstractLinAlgPack::MatrixSymOpSerial. Definition at line 48 of file AbstractLinAlgPack_MatrixSymOp.cpp. |
|
||||||||||||||||||||||||||||
|
sym_lhs = alpha * op(mwo_rhs') * M * op(mwo_rhs) + beta * sym_lhs.
The default operation is based on Reimplemented in AbstractLinAlgPack::MatrixSymOpSerial. Definition at line 57 of file AbstractLinAlgPack_MatrixSymOp.cpp. |
|
|
Returns Overridden from MatrixOp Reimplemented from AbstractLinAlgPack::MatrixBase. Definition at line 69 of file AbstractLinAlgPack_MatrixSymOp.cpp. |
|
|
Vector space for vectors that are compatible with the rows of the matrix.
Implements AbstractLinAlgPack::MatrixBase. Reimplemented in AbstractLinAlgPack::MatrixSymDiagStd, and AbstractLinAlgPack::MatrixSymOpSerial. Definition at line 74 of file AbstractLinAlgPack_MatrixSymOp.cpp. |
|
|
Returns
Reimplemented from AbstractLinAlgPack::MatrixOp. Reimplemented in AbstractLinAlgPack::MatrixSymOpNonsing. Definition at line 80 of file AbstractLinAlgPack_MatrixSymOp.cpp. |
|
|
Returns
Reimplemented from AbstractLinAlgPack::MatrixOp. Reimplemented in AbstractLinAlgPack::MatrixSymOpNonsing. Definition at line 86 of file AbstractLinAlgPack_MatrixSymOp.cpp. |
|
|
Calls operator=(MatrixOp&).
Definition at line 170 of file AbstractLinAlgPack_MatrixSymOp.hpp. |
|
||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||
|
Definition at line 183 of file AbstractLinAlgPack_MatrixSymOp.hpp. |
|
||||||||||||||||||||||||||||||||
|
Definition at line 196 of file AbstractLinAlgPack_MatrixSymOp.hpp. |
|
||||||||||||||||||||||||||||||||||||
|
|
1.3.9.1