Expression of a selfadjoint matrix from a triangular part of a dense matrix. More...
#include <SelfAdjointView.h>
Public Types | |
enum | { Mode = internal::traits<SelfAdjointView>::Mode } |
typedef TriangularBase < SelfAdjointView > | Base |
typedef internal::traits < SelfAdjointView > ::MatrixTypeNested | MatrixTypeNested |
typedef internal::traits < SelfAdjointView > ::MatrixTypeNestedCleaned | MatrixTypeNestedCleaned |
typedef internal::traits < SelfAdjointView >::Scalar | Scalar |
The type of coefficients in this matrix. | |
typedef MatrixType::Index | Index |
typedef MatrixType::PlainObject | PlainObject |
typedef NumTraits< Scalar >::Real | RealScalar |
typedef Matrix< RealScalar, internal::traits< MatrixType > ::ColsAtCompileTime, 1 > | EigenvaluesReturnType |
Public Member Functions | |
SelfAdjointView (const MatrixType &matrix) | |
Index | rows () const |
Index | cols () const |
Index | outerStride () const |
Index | innerStride () const |
Scalar | coeff (Index row, Index col) const |
Scalar & | coeffRef (Index row, Index col) |
const MatrixTypeNestedCleaned & | _expression () const |
const MatrixTypeNestedCleaned & | nestedExpression () const |
MatrixTypeNestedCleaned & | nestedExpression () |
template<typename OtherDerived > | |
SelfadjointProductMatrix < MatrixType, Mode, false, OtherDerived, 0, OtherDerived::IsVectorAtCompileTime > | operator* (const MatrixBase< OtherDerived > &rhs) const |
template<typename DerivedU , typename DerivedV > | |
SelfAdjointView & | rankUpdate (const MatrixBase< DerivedU > &u, const MatrixBase< DerivedV > &v, Scalar alpha=Scalar(1)) |
template<typename DerivedU > | |
SelfAdjointView & | rankUpdate (const MatrixBase< DerivedU > &u, Scalar alpha=Scalar(1)) |
const LLT< PlainObject, UpLo > | llt () const |
const LDLT< PlainObject, UpLo > | ldlt () const |
EigenvaluesReturnType | eigenvalues () const |
Computes the eigenvalues of a matrix. | |
RealScalar | operatorNorm () const |
Computes the L2 operator norm. | |
Protected Attributes | |
const MatrixTypeNested | m_matrix |
Friends | |
template<typename OtherDerived > | |
SelfadjointProductMatrix < OtherDerived, 0, OtherDerived::IsVectorAtCompileTime, MatrixType, Mode, false > | operator* (const MatrixBase< OtherDerived > &lhs, const SelfAdjointView &rhs) |
Expression of a selfadjoint matrix from a triangular part of a dense matrix.
MatrixType | the type of the dense matrix storing the coefficients | |
TriangularPart | can be either Lower or Upper |
This class is an expression of a sefladjoint matrix from a triangular part of a matrix with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView() and most of the time this is the only way that it is used.
typedef TriangularBase<SelfAdjointView> SelfAdjointView< MatrixType, UpLo >::Base |
typedef Matrix<RealScalar, internal::traits<MatrixType>::ColsAtCompileTime, 1> SelfAdjointView< MatrixType, UpLo >::EigenvaluesReturnType |
Return type of eigenvalues()
typedef MatrixType::Index SelfAdjointView< MatrixType, UpLo >::Index |
Reimplemented from TriangularBase< SelfAdjointView< MatrixType, UpLo > >.
typedef internal::traits<SelfAdjointView>::MatrixTypeNested SelfAdjointView< MatrixType, UpLo >::MatrixTypeNested |
typedef internal::traits<SelfAdjointView>::MatrixTypeNestedCleaned SelfAdjointView< MatrixType, UpLo >::MatrixTypeNestedCleaned |
typedef MatrixType::PlainObject SelfAdjointView< MatrixType, UpLo >::PlainObject |
typedef NumTraits<Scalar>::Real SelfAdjointView< MatrixType, UpLo >::RealScalar |
Real part of Scalar
typedef internal::traits<SelfAdjointView>::Scalar SelfAdjointView< MatrixType, UpLo >::Scalar |
The type of coefficients in this matrix.
Reimplemented from TriangularBase< SelfAdjointView< MatrixType, UpLo > >.
SelfAdjointView< MatrixType, UpLo >::SelfAdjointView | ( | const MatrixType & | matrix | ) | [inline] |
const MatrixTypeNestedCleaned& SelfAdjointView< MatrixType, UpLo >::_expression | ( | ) | const [inline] |
Scalar SelfAdjointView< MatrixType, UpLo >::coeff | ( | Index | row, | |
Index | col | |||
) | const [inline] |
Scalar& SelfAdjointView< MatrixType, UpLo >::coeffRef | ( | Index | row, | |
Index | col | |||
) | [inline] |
Index SelfAdjointView< MatrixType, UpLo >::cols | ( | void | ) | const [inline] |
Reimplemented from TriangularBase< SelfAdjointView< MatrixType, UpLo > >.
SelfAdjointView< MatrixType, UpLo >::EigenvaluesReturnType SelfAdjointView< MatrixType, UpLo >::eigenvalues | ( | ) | const [inline] |
Computes the eigenvalues of a matrix.
This function computes the eigenvalues with the help of the SelfAdjointEigenSolver class. The eigenvalues are repeated according to their algebraic multiplicity, so there are as many eigenvalues as rows in the matrix.
Example:
Output:
Index SelfAdjointView< MatrixType, UpLo >::innerStride | ( | ) | const [inline] |
Reimplemented from TriangularBase< SelfAdjointView< MatrixType, UpLo > >.
const LDLT< typename SelfAdjointView< MatrixType, UpLo >::PlainObject, UpLo > SelfAdjointView< MatrixType, UpLo >::ldlt | ( | ) | const [inline] |
*this
const LLT< typename SelfAdjointView< MatrixType, UpLo >::PlainObject, UpLo > SelfAdjointView< MatrixType, UpLo >::llt | ( | ) | const [inline] |
*this
const MatrixTypeNestedCleaned& SelfAdjointView< MatrixType, UpLo >::nestedExpression | ( | ) | const [inline] |
MatrixTypeNestedCleaned& SelfAdjointView< MatrixType, UpLo >::nestedExpression | ( | ) | [inline] |
SelfadjointProductMatrix<MatrixType,Mode,false,OtherDerived,0,OtherDerived::IsVectorAtCompileTime> SelfAdjointView< MatrixType, UpLo >::operator* | ( | const MatrixBase< OtherDerived > & | rhs | ) | const [inline] |
Efficient self-adjoint matrix times vector/matrix product
SelfAdjointView< MatrixType, UpLo >::RealScalar SelfAdjointView< MatrixType, UpLo >::operatorNorm | ( | ) | const [inline] |
Computes the L2 operator norm.
This function computes the L2 operator norm of a self-adjoint matrix. For a self-adjoint matrix, the operator norm is the largest eigenvalue.
The current implementation uses the eigenvalues of the matrix, as computed by eigenvalues(), to compute the operator norm of the matrix.
Example:
Output:
Index SelfAdjointView< MatrixType, UpLo >::outerStride | ( | ) | const [inline] |
Reimplemented from TriangularBase< SelfAdjointView< MatrixType, UpLo > >.
SelfAdjointView< MatrixType, UpLo > & SelfAdjointView< MatrixType, UpLo >::rankUpdate | ( | const MatrixBase< DerivedU > & | u, | |
const MatrixBase< DerivedV > & | v, | |||
Scalar | alpha = Scalar(1) | |||
) |
Perform a symmetric rank 2 update of the selfadjoint matrix *this
:
*this
The vectors u and v
must be column vectors, however they can be a adjoint expression without any overhead. Only the meaningful triangular part of the matrix is updated, the rest is left unchanged.
SelfAdjointView< MatrixType, UpLo > & SelfAdjointView< MatrixType, UpLo >::rankUpdate | ( | const MatrixBase< DerivedU > & | u, | |
Scalar | alpha = Scalar(1) | |||
) |
Perform a symmetric rank K update of the selfadjoint matrix *this
: where u is a vector or matrix.
*this
Note that to perform you can simply call this function with u.adjoint().
Index SelfAdjointView< MatrixType, UpLo >::rows | ( | void | ) | const [inline] |
Reimplemented from TriangularBase< SelfAdjointView< MatrixType, UpLo > >.
SelfadjointProductMatrix<OtherDerived,0,OtherDerived::IsVectorAtCompileTime,MatrixType,Mode,false> operator* | ( | const MatrixBase< OtherDerived > & | lhs, | |
const SelfAdjointView< MatrixType, UpLo > & | rhs | |||
) | [friend] |
Efficient vector/matrix times self-adjoint matrix product
const MatrixTypeNested SelfAdjointView< MatrixType, UpLo >::m_matrix [protected] |