template<typename MatrixType, unsigned int Mode>
class Eigen::SelfAdjointView< MatrixType, Mode >
Expression of a selfadjoint matrix from a triangular part of a dense matrix.
Template Parameters
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.
See also class TriangularBase , MatrixBase::selfadjointView()
const AdjointReturnType adjoint () const
Scalar coeff (Index row, Index col) const
Scalar & coeffRef (Index row, Index col)
const ConjugateReturnType conjugate () const
template<bool Cond>
std::conditional_t< Cond, ConjugateReturnType , ConstSelfAdjointView > conjugateIf () const
MatrixType::ConstDiagonalReturnType diagonal () const
EigenvaluesReturnType eigenvalues () const
Computes the eigenvalues of a matrix.
const LDLT < PlainObject, UpLo > ldlt () const
const LLT < PlainObject, UpLo > llt () const
template<typename OtherDerived>
const Product < SelfAdjointView , OtherDerived > operator* (const MatrixBase < OtherDerived > &rhs) const
RealScalar operatorNorm () const
Computes the L2 operator norm.
template<typename DerivedU, typename DerivedV>
SelfAdjointView & rankUpdate (const MatrixBase < DerivedU > &u, const MatrixBase < DerivedV > &v, const Scalar &alpha=Scalar (1))
template<typename DerivedU>
SelfAdjointView & rankUpdate (const MatrixBase < DerivedU > &u, const Scalar &alpha=Scalar (1))
const ConstTransposeReturnType transpose () const
template<class Dummy = int>
TransposeReturnType transpose (std::enable_if_t< Eigen::internal::is_lvalue< MatrixType >::value, Dummy * >=nullptr)
template<unsigned int TriMode>
std::conditional_t<(TriMode &(Upper |Lower ))==(UpLo &(Upper |Lower )), TriangularView < MatrixType, TriMode >, TriangularView < typename MatrixType::AdjointReturnType, TriMode > > triangularView () const
void copyCoeff (Index row, Index col, Other &other)
void evalTo (MatrixBase < DenseDerived > &other) const
void evalToLazy (MatrixBase < DenseDerived > &other) const
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
constexpr SelfAdjointView < MatrixType_, UpLo > & derived ()
constexpr const SelfAdjointView < MatrixType_, UpLo > & derived () const
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index size () const EIGEN_NOEXCEPT
template<typename MatrixType, unsigned int UpLo>
Computes the eigenvalues of a matrix.
Returns Column vector containing the eigenvalues.
This is defined in the Eigenvalues module.
#include <Eigen/Eigenvalues>
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:
cout << "The eigenvalues of the 3x3 matrix of ones are:" << endl << eivals << endl;
EigenvaluesReturnType eigenvalues() const
Computes the eigenvalues of a matrix.
Definition MatrixBaseEigenvalues.h:83
@ Lower
Definition Constants.h:211
Matrix< double, Dynamic, Dynamic > MatrixXd
DynamicĂ—Dynamic matrix of type double.
Definition Matrix.h:479
Matrix< double, Dynamic, 1 > VectorXd
DynamicĂ—1 vector of type double.
Definition Matrix.h:479
Output:
The eigenvalues of the 3x3 matrix of ones are:
-3.09e-16
0
3
See also SelfAdjointEigenSolver::eigenvalues() , MatrixBase::eigenvalues()
template<typename MatrixType, unsigned int UpLo>
Computes the L2 operator norm.
Returns Operator norm of the matrix.
This is defined in the Eigenvalues module.
#include <Eigen/Eigenvalues>
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:
cout <<
"The operator norm of the 3x3 matrix of ones is " << ones.selfadjointView<
Lower >().
operatorNorm () << endl;
RealScalar operatorNorm() const
Computes the L2 operator norm.
Definition MatrixBaseEigenvalues.h:136
Output:
The operator norm of the 3x3 matrix of ones is 3
See also eigenvalues() , MatrixBase::operatorNorm()
template<typename MatrixType, unsigned int Mode>
template<typename DerivedU, typename DerivedV>
Perform a symmetric rank 2 update of the selfadjoint matrix *this
:
Returns a reference to *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.
See also rankUpdate(const MatrixBase<DerivedU>&, Scalar)
template<typename MatrixType, unsigned int Mode>
template<unsigned int TriMode>
Returns an expression of a triangular view extracted from the current selfadjoint view of a given triangular part
The parameter TriMode can have the following values: Upper
, StrictlyUpper
, UnitUpper
, Lower
, StrictlyLower
, UnitLower
.
If TriMode
references the same triangular part than *this
, then this method simply return a TriangularView
of the nested expression, otherwise, the nested expression is first transposed, thus returning a TriangularView<Transpose<MatrixType>>
object.
See also MatrixBase::triangularView(), class TriangularView