MOAB  4.9.3pre
Eigen::internal::UpperBidiagonalization< _MatrixType > Class Template Reference

#include <UpperBidiagonalization.h>

Collaboration diagram for Eigen::internal::UpperBidiagonalization< _MatrixType >:

List of all members.

Public Types

enum  { RowsAtCompileTime = MatrixType::RowsAtCompileTime, ColsAtCompileTime = MatrixType::ColsAtCompileTime, ColsAtCompileTimeMinusOne = internal::decrement_size<ColsAtCompileTime>::ret }
typedef _MatrixType MatrixType
typedef MatrixType::Scalar Scalar
typedef MatrixType::RealScalar RealScalar
typedef Eigen::Index Index
typedef Matrix< Scalar,
1, ColsAtCompileTime
RowVectorType
typedef Matrix< Scalar,
RowsAtCompileTime, 1 > 
ColVectorType
typedef BandMatrix< RealScalar,
ColsAtCompileTime,
ColsAtCompileTime,
1, 0, RowMajor
BidiagonalType
typedef Matrix< Scalar,
ColsAtCompileTime, 1 > 
DiagVectorType
typedef Matrix< Scalar,
ColsAtCompileTimeMinusOne, 1 > 
SuperDiagVectorType
typedef HouseholderSequence
< const MatrixType, const
typename internal::remove_all
< typename Diagonal< const
MatrixType, 0 >
::ConjugateReturnType >::type
HouseholderUSequenceType
typedef HouseholderSequence
< const typename
internal::remove_all< typename
MatrixType::ConjugateReturnType >
::type, Diagonal< const
MatrixType, 1 >, OnTheRight
HouseholderVSequenceType

Public Member Functions

 UpperBidiagonalization ()
 Default Constructor.
 UpperBidiagonalization (const MatrixType &matrix)
UpperBidiagonalizationcompute (const MatrixType &matrix)
UpperBidiagonalizationcomputeUnblocked (const MatrixType &matrix)
const MatrixTypehouseholder () const
const BidiagonalTypebidiagonal () const
const HouseholderUSequenceType householderU () const
const HouseholderVSequenceType householderV ()

Protected Attributes

MatrixType m_householder
BidiagonalType m_bidiagonal
bool m_isInitialized

Detailed Description

template<typename _MatrixType>
class Eigen::internal::UpperBidiagonalization< _MatrixType >

Definition at line 20 of file UpperBidiagonalization.h.


Member Typedef Documentation

Definition at line 35 of file UpperBidiagonalization.h.

template<typename _MatrixType>
typedef Matrix<Scalar, RowsAtCompileTime, 1> Eigen::internal::UpperBidiagonalization< _MatrixType >::ColVectorType

Definition at line 34 of file UpperBidiagonalization.h.

template<typename _MatrixType>
typedef Matrix<Scalar, ColsAtCompileTime, 1> Eigen::internal::UpperBidiagonalization< _MatrixType >::DiagVectorType

Definition at line 36 of file UpperBidiagonalization.h.

template<typename _MatrixType>
typedef HouseholderSequence< const MatrixType, const typename internal::remove_all<typename Diagonal<const MatrixType,0>::ConjugateReturnType>::type > Eigen::internal::UpperBidiagonalization< _MatrixType >::HouseholderUSequenceType

Definition at line 41 of file UpperBidiagonalization.h.

Definition at line 46 of file UpperBidiagonalization.h.

template<typename _MatrixType>
typedef Eigen::Index Eigen::internal::UpperBidiagonalization< _MatrixType >::Index
Deprecated:
since Eigen 3.3

Definition at line 32 of file UpperBidiagonalization.h.

template<typename _MatrixType>
typedef _MatrixType Eigen::internal::UpperBidiagonalization< _MatrixType >::MatrixType

Definition at line 24 of file UpperBidiagonalization.h.

template<typename _MatrixType>
typedef MatrixType::RealScalar Eigen::internal::UpperBidiagonalization< _MatrixType >::RealScalar

Definition at line 31 of file UpperBidiagonalization.h.

template<typename _MatrixType>
typedef Matrix<Scalar, 1, ColsAtCompileTime> Eigen::internal::UpperBidiagonalization< _MatrixType >::RowVectorType

Definition at line 33 of file UpperBidiagonalization.h.

template<typename _MatrixType>
typedef MatrixType::Scalar Eigen::internal::UpperBidiagonalization< _MatrixType >::Scalar

Definition at line 30 of file UpperBidiagonalization.h.

template<typename _MatrixType>
typedef Matrix<Scalar, ColsAtCompileTimeMinusOne, 1> Eigen::internal::UpperBidiagonalization< _MatrixType >::SuperDiagVectorType

Definition at line 37 of file UpperBidiagonalization.h.


Member Enumeration Documentation

template<typename _MatrixType>
anonymous enum
Enumerator:
RowsAtCompileTime 
ColsAtCompileTime 
ColsAtCompileTimeMinusOne 

Definition at line 25 of file UpperBidiagonalization.h.


Constructor & Destructor Documentation

template<typename _MatrixType>
Eigen::internal::UpperBidiagonalization< _MatrixType >::UpperBidiagonalization ( ) [inline]

Default Constructor.

The default constructor is useful in cases in which the user intends to perform decompositions via Bidiagonalization::compute(const MatrixType&).

Definition at line 54 of file UpperBidiagonalization.h.

template<typename _MatrixType>
Eigen::internal::UpperBidiagonalization< _MatrixType >::UpperBidiagonalization ( const MatrixType matrix) [inline, explicit]

Definition at line 56 of file UpperBidiagonalization.h.

      : m_householder(matrix.rows(), matrix.cols()),
        m_bidiagonal(matrix.cols(), matrix.cols()),
        m_isInitialized(false)
    {
      compute(matrix);
    }

Member Function Documentation

template<typename _MatrixType>
const BidiagonalType& Eigen::internal::UpperBidiagonalization< _MatrixType >::bidiagonal ( ) const [inline]

Definition at line 68 of file UpperBidiagonalization.h.

{ return m_bidiagonal; }
template<typename _MatrixType >
UpperBidiagonalization< _MatrixType > & Eigen::internal::UpperBidiagonalization< _MatrixType >::compute ( const MatrixType matrix)

Definition at line 379 of file UpperBidiagonalization.h.

{
  Index rows = matrix.rows();
  Index cols = matrix.cols();
  EIGEN_ONLY_USED_FOR_DEBUG(rows);
  EIGEN_ONLY_USED_FOR_DEBUG(cols);

  eigen_assert(rows >= cols && "UpperBidiagonalization is only for Arices satisfying rows>=cols.");

  m_householder = matrix;
  upperbidiagonalization_inplace_blocked(m_householder, m_bidiagonal);
            
  m_isInitialized = true;
  return *this;
}
template<typename _MatrixType >
UpperBidiagonalization< _MatrixType > & Eigen::internal::UpperBidiagonalization< _MatrixType >::computeUnblocked ( const MatrixType matrix)

Definition at line 357 of file UpperBidiagonalization.h.

{
  Index rows = matrix.rows();
  Index cols = matrix.cols();
  EIGEN_ONLY_USED_FOR_DEBUG(cols);

  eigen_assert(rows >= cols && "UpperBidiagonalization is only for Arices satisfying rows>=cols.");

  m_householder = matrix;

  ColVectorType temp(rows);

  upperbidiagonalization_inplace_unblocked(m_householder,
                                           &(m_bidiagonal.template diagonal<0>().coeffRef(0)),
                                           &(m_bidiagonal.template diagonal<1>().coeffRef(0)),
                                           temp.data());

  m_isInitialized = true;
  return *this;
}
template<typename _MatrixType>
const MatrixType& Eigen::internal::UpperBidiagonalization< _MatrixType >::householder ( ) const [inline]

Definition at line 67 of file UpperBidiagonalization.h.

{ return m_householder; }
template<typename _MatrixType>
const HouseholderUSequenceType Eigen::internal::UpperBidiagonalization< _MatrixType >::householderU ( ) const [inline]

Definition at line 70 of file UpperBidiagonalization.h.

    {
      eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
      return HouseholderUSequenceType(m_householder, m_householder.diagonal().conjugate());
    }
template<typename _MatrixType>
const HouseholderVSequenceType Eigen::internal::UpperBidiagonalization< _MatrixType >::householderV ( ) [inline]

Definition at line 76 of file UpperBidiagonalization.h.

    {
      eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
      return HouseholderVSequenceType(m_householder.conjugate(), m_householder.const_derived().template diagonal<1>())
             .setLength(m_householder.cols()-1)
             .setShift(1);
    }

Member Data Documentation

template<typename _MatrixType>
BidiagonalType Eigen::internal::UpperBidiagonalization< _MatrixType >::m_bidiagonal [protected]

Definition at line 86 of file UpperBidiagonalization.h.

template<typename _MatrixType>
MatrixType Eigen::internal::UpperBidiagonalization< _MatrixType >::m_householder [protected]

Definition at line 85 of file UpperBidiagonalization.h.

template<typename _MatrixType>
bool Eigen::internal::UpperBidiagonalization< _MatrixType >::m_isInitialized [protected]

Definition at line 87 of file UpperBidiagonalization.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines