10 #ifndef EIGEN_BIDIAGONALIZATION_H 11 #define EIGEN_BIDIAGONALIZATION_H 29 typedef typename MatrixType::Scalar
Scalar;
31 typedef typename MatrixType::Index
Index;
88 template<
typename _MatrixType>
91 Index rows = matrix.rows();
92 Index cols = matrix.cols();
94 eigen_assert(rows >= cols &&
"UpperBidiagonalization is only for matrices satisfying rows>=cols.");
100 for (
Index k = 0; ; ++k)
102 Index remainingRows = rows - k;
103 Index remainingCols = cols - k - 1;
110 m_householder.bottomRightCorner(remainingRows, remainingCols)
111 .applyHouseholderOnTheLeft(
m_householder.col(k).tail(remainingRows-1),
115 if(k == cols-1)
break;
122 m_householder.bottomRightCorner(remainingRows-1, remainingCols)
123 .applyHouseholderOnTheRight(
m_householder.row(k).tail(remainingCols-1).transpose(),
136 template<
typename Derived>
148 #endif // EIGEN_BIDIAGONALIZATION_H Matrix< Scalar, 1, ColsAtCompileTime > RowVectorType
const BidiagonalType & bidiagonal() const
const HouseholderUSequenceType householderU() const
const HouseholderVSequenceType householderV()
UpperBidiagonalization & compute(const MatrixType &matrix)
iterative scaling algorithm to equilibrate rows and column norms in matrices
HouseholderSequence< const typename internal::remove_all< typename MatrixType::ConjugateReturnType >::type, Diagonal< const MatrixType, 1 >, OnTheRight > HouseholderVSequenceType
HouseholderSequence< const MatrixType, CwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, const Diagonal< const MatrixType, 0 > > > HouseholderUSequenceType
MatrixType::RealScalar RealScalar
Sequence of Householder reflections acting on subspaces with decreasing size.
const MatrixType & householder() const
Matrix< Scalar, RowsAtCompileTime, 1 > ColVectorType
Matrix< Scalar, ColsAtCompileTime, 1 > DiagVectorType
EIGEN_STRONG_INLINE const Scalar * data() const
UpperBidiagonalization()
Default Constructor.
Matrix< Scalar, ColsAtCompileTimeMinusOne, 1 > SuperDiagVectorType
Expression of a diagonal/subdiagonal/superdiagonal in a matrix.
Generic expression where a coefficient-wise unary operator is applied to an expression.
MatrixType::Scalar Scalar
The matrix class, also used for vectors and row-vectors.
Base class for all dense matrices, vectors, and expressions.
BidiagonalType m_bidiagonal
BandMatrix< RealScalar, ColsAtCompileTime, ColsAtCompileTime, 1, 0 > BidiagonalType
UpperBidiagonalization(const MatrixType &matrix)