Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Eigen::internal::UpperBidiagonalization< _MatrixType > Class Template Reference

#include <src/eigen/Eigen/src/SVD/UpperBidiagonalization.h>

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

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, ColsAtCompileTimeRowVectorType
 
typedef Matrix< Scalar, RowsAtCompileTime, 1 > ColVectorType
 
typedef BandMatrix< RealScalar, ColsAtCompileTime, ColsAtCompileTime, 1, 0, RowMajorBidiagonalType
 
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 >, OnTheRightHouseholderVSequenceType
 

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 >

Member Typedef Documentation

◆ BidiagonalType

template<typename _MatrixType >
typedef BandMatrix<RealScalar, ColsAtCompileTime, ColsAtCompileTime, 1, 0, RowMajor> Eigen::internal::UpperBidiagonalization< _MatrixType >::BidiagonalType

◆ ColVectorType

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

◆ DiagVectorType

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

◆ HouseholderUSequenceType

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

◆ HouseholderVSequenceType

template<typename _MatrixType >
typedef HouseholderSequence< const typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type, Diagonal<const MatrixType,1>, OnTheRight > Eigen::internal::UpperBidiagonalization< _MatrixType >::HouseholderVSequenceType

◆ Index

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

◆ MatrixType

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

◆ RealScalar

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

◆ RowVectorType

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

◆ Scalar

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

◆ SuperDiagVectorType

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

Member Enumeration Documentation

◆ anonymous enum

template<typename _MatrixType >
anonymous enum
Enumerator
RowsAtCompileTime 
ColsAtCompileTime 
ColsAtCompileTimeMinusOne 
25 {
26 RowsAtCompileTime = MatrixType::RowsAtCompileTime,
27 ColsAtCompileTime = MatrixType::ColsAtCompileTime,
29 };
@ RowsAtCompileTime
Definition UpperBidiagonalization.h:26
@ ColsAtCompileTimeMinusOne
Definition UpperBidiagonalization.h:28
@ ColsAtCompileTime
Definition UpperBidiagonalization.h:27
@ ret
Definition Householder.h:20

Constructor & Destructor Documentation

◆ UpperBidiagonalization() [1/2]

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&).

MatrixType m_householder
Definition UpperBidiagonalization.h:85
BidiagonalType m_bidiagonal
Definition UpperBidiagonalization.h:86
bool m_isInitialized
Definition UpperBidiagonalization.h:87

◆ UpperBidiagonalization() [2/2]

template<typename _MatrixType >
Eigen::internal::UpperBidiagonalization< _MatrixType >::UpperBidiagonalization ( const MatrixType matrix)
inlineexplicit
57 : m_householder(matrix.rows(), matrix.cols()),
58 m_bidiagonal(matrix.cols(), matrix.cols()),
59 m_isInitialized(false)
60 {
61 compute(matrix);
62 }
UpperBidiagonalization & compute(const MatrixType &matrix)
Definition UpperBidiagonalization.h:381

References Eigen::internal::UpperBidiagonalization< _MatrixType >::compute().

+ Here is the call graph for this function:

Member Function Documentation

◆ bidiagonal()

template<typename _MatrixType >
const BidiagonalType & Eigen::internal::UpperBidiagonalization< _MatrixType >::bidiagonal ( ) const
inline
68{ return m_bidiagonal; }

References Eigen::internal::UpperBidiagonalization< _MatrixType >::m_bidiagonal.

Referenced by Eigen::BDCSVD< _MatrixType >::compute().

+ Here is the caller graph for this function:

◆ compute()

template<typename _MatrixType >
UpperBidiagonalization< _MatrixType > & Eigen::internal::UpperBidiagonalization< _MatrixType >::compute ( const MatrixType matrix)
382{
383 Index rows = matrix.rows();
384 Index cols = matrix.cols();
387
388 eigen_assert(rows >= cols && "UpperBidiagonalization is only for Arices satisfying rows>=cols.");
389
390 m_householder = matrix;
392
393 m_isInitialized = true;
394 return *this;
395}
#define EIGEN_ONLY_USED_FOR_DEBUG(x)
Definition Macros.h:591
#define eigen_assert(x)
Definition Macros.h:579
Eigen::Index Index
Definition UpperBidiagonalization.h:32
void upperbidiagonalization_inplace_blocked(MatrixType &A, BidiagType &bidiagonal, Index maxBlockSize=32, typename MatrixType::Scalar *=0)
Definition UpperBidiagonalization.h:284
size_t cols(const T &raster)
Definition MarchingSquares.hpp:60
size_t rows(const T &raster)
Definition MarchingSquares.hpp:55

References eigen_assert, EIGEN_ONLY_USED_FOR_DEBUG, and Eigen::internal::upperbidiagonalization_inplace_blocked().

Referenced by Eigen::internal::UpperBidiagonalization< _MatrixType >::UpperBidiagonalization().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ computeUnblocked()

template<typename _MatrixType >
UpperBidiagonalization< _MatrixType > & Eigen::internal::UpperBidiagonalization< _MatrixType >::computeUnblocked ( const MatrixType matrix)
360{
361 Index rows = matrix.rows();
362 Index cols = matrix.cols();
364
365 eigen_assert(rows >= cols && "UpperBidiagonalization is only for Arices satisfying rows>=cols.");
366
367 m_householder = matrix;
368
369 ColVectorType temp(rows);
370
372 &(m_bidiagonal.template diagonal<0>().coeffRef(0)),
373 &(m_bidiagonal.template diagonal<1>().coeffRef(0)),
374 temp.data());
375
376 m_isInitialized = true;
377 return *this;
378}
Matrix< Scalar, RowsAtCompileTime, 1 > ColVectorType
Definition UpperBidiagonalization.h:34
void upperbidiagonalization_inplace_unblocked(MatrixType &mat, typename MatrixType::RealScalar *diagonal, typename MatrixType::RealScalar *upper_diagonal, typename MatrixType::Scalar *tempData=0)
Definition UpperBidiagonalization.h:93

References Eigen::PlainObjectBase< Derived >::data(), eigen_assert, EIGEN_ONLY_USED_FOR_DEBUG, and Eigen::internal::upperbidiagonalization_inplace_unblocked().

+ Here is the call graph for this function:

◆ householder()

template<typename _MatrixType >
const MatrixType & Eigen::internal::UpperBidiagonalization< _MatrixType >::householder ( ) const
inline

◆ householderU()

template<typename _MatrixType >
const HouseholderUSequenceType Eigen::internal::UpperBidiagonalization< _MatrixType >::householderU ( ) const
inline
71 {
72 eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
73 return HouseholderUSequenceType(m_householder, m_householder.diagonal().conjugate());
74 }
HouseholderSequence< const MatrixType, const typename internal::remove_all< typename Diagonal< const MatrixType, 0 >::ConjugateReturnType >::type > HouseholderUSequenceType
Definition UpperBidiagonalization.h:41

References eigen_assert, Eigen::internal::UpperBidiagonalization< _MatrixType >::m_householder, and Eigen::internal::UpperBidiagonalization< _MatrixType >::m_isInitialized.

Referenced by Eigen::BDCSVD< _MatrixType >::compute().

+ Here is the caller graph for this function:

◆ householderV()

template<typename _MatrixType >
const HouseholderVSequenceType Eigen::internal::UpperBidiagonalization< _MatrixType >::householderV ( )
inline
77 {
78 eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
79 return HouseholderVSequenceType(m_householder.conjugate(), m_householder.const_derived().template diagonal<1>())
80 .setLength(m_householder.cols()-1)
81 .setShift(1);
82 }
HouseholderSequence< const typename internal::remove_all< typename MatrixType::ConjugateReturnType >::type, Diagonal< const MatrixType, 1 >, OnTheRight > HouseholderVSequenceType
Definition UpperBidiagonalization.h:46

References eigen_assert, Eigen::internal::UpperBidiagonalization< _MatrixType >::m_householder, and Eigen::internal::UpperBidiagonalization< _MatrixType >::m_isInitialized.

Referenced by Eigen::BDCSVD< _MatrixType >::compute().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_bidiagonal

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

◆ m_householder

◆ m_isInitialized


The documentation for this class was generated from the following file: