W3cubDocs

/Eigen3

Eigen::BDCSVD

template<typename _MatrixType>
class Eigen::BDCSVD< _MatrixType >

class Bidiagonal Divide and Conquer SVD

Template Parameters
_MatrixType the type of the matrix of which we are computing the SVD decomposition

This class first reduces the input matrix to bi-diagonal form using class UpperBidiagonalization, and then performs a divide-and-conquer diagonalization. Small blocks are diagonalized using class JacobiSVD. You can control the switching size with the setSwitchSize() method, default is 16. For small matrice (<16), it is thus preferable to directly use JacobiSVD. For larger ones, BDCSVD is highly recommended and can several order of magnitude faster.

Warning
this algorithm is unlikely to provide accurate result when compiled with unsafe math optimizations. For instance, this concerns Intel's compiler (ICC), which performs such optimization by default unless you compile with the -fp-model precise option. Likewise, the -ffast-math option of GCC or clang will significantly degrade the accuracy.
See also
class JacobiSVD
BDCSVD ()
Default Constructor. More...
BDCSVD (const MatrixType &matrix, unsigned int computationOptions=0)
Constructor performing the decomposition of given matrix. More...
BDCSVD (Index rows, Index cols, unsigned int computationOptions=0)
Default Constructor with memory preallocation. More...
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
BDCSVD & compute (const MatrixType &matrix)
Method performing the decomposition of given matrix using current options. More...
BDCSVD & compute (const MatrixType &matrix, unsigned int computationOptions)
Method performing the decomposition of given matrix using custom options. More...
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
- Public Member Functions inherited from Eigen::SVDBase< BDCSVD< _MatrixType > >
bool computeU () const
bool computeV () const
ComputationInfo info () const
Reports whether previous computation was successful. More...
const MatrixUType & matrixU () const
const MatrixVType & matrixV () const
Index nonzeroSingularValues () const
Index rank () const
BDCSVD< _MatrixType > & setThreshold (const RealScalar &threshold)
BDCSVD< _MatrixType > & setThreshold (Default_t)
const SingularValuesType & singularValues () const
const Solve< BDCSVD< _MatrixType >, Rhs > solve (const MatrixBase< Rhs > &b) const
RealScalar threshold () const
- Public Member Functions inherited from Eigen::SolverBase< Derived >
AdjointReturnType adjoint () const
Derived & derived ()
const Derived & derived () const
template<typename Rhs >
const Solve< Derived, Rhs > solve (const MatrixBase< Rhs > &b) const
SolverBase ()
ConstTransposeReturnType transpose () const
- Public Member Functions inherited from Eigen::EigenBase< Derived >
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
Derived & derived ()
const Derived & derived () const
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index size () const EIGEN_NOEXCEPT
- Public Types inherited from Eigen::SVDBase< BDCSVD< _MatrixType > >
typedef Eigen::Index Index
- Public Types inherited from Eigen::EigenBase< Derived >
typedef Eigen::Index Index
The interface type of indices. More...
- Protected Member Functions inherited from Eigen::SVDBase< BDCSVD< _MatrixType > >
SVDBase ()
Default Constructor. More...

BDCSVD() [1/3]

template<typename _MatrixType >
Eigen::BDCSVD< _MatrixType >::BDCSVD ( )
inline

Default Constructor.

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

BDCSVD() [2/3]

template<typename _MatrixType >
Eigen::BDCSVD< _MatrixType >::BDCSVD ( Index rows,
Index cols,
unsigned int computationOptions = 0
)
inline

Default Constructor with memory preallocation.

Like the default constructor but with preallocation of the internal data according to the specified problem size.

See also
BDCSVD()

BDCSVD() [3/3]

template<typename _MatrixType >
Eigen::BDCSVD< _MatrixType >::BDCSVD ( const MatrixType & matrix,
unsigned int computationOptions = 0
)
inline

Constructor performing the decomposition of given matrix.

Parameters
matrix the matrix to decompose
computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed. By default, none is computed. This is a bit - field, the possible bits are ComputeFullU, ComputeThinU, ComputeFullV, ComputeThinV.

Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not available with the (non - default) FullPivHouseholderQR preconditioner.

cols()

template<typename _MatrixType >
EIGEN_CONSTEXPR Index Eigen::EigenBase< Derived >::cols ( void )
inline
Returns
the number of columns.
See also
rows(), ColsAtCompileTime

compute() [1/2]

template<typename _MatrixType >
BDCSVD& Eigen::BDCSVD< _MatrixType >::compute ( const MatrixType & matrix )
inline

Method performing the decomposition of given matrix using current options.

Parameters
matrix the matrix to decompose

This method uses the current computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).

compute() [2/2]

template<typename MatrixType >
BDCSVD< MatrixType > & Eigen::BDCSVD< MatrixType >::compute ( const MatrixType & matrix,
unsigned int computationOptions
)

Method performing the decomposition of given matrix using custom options.

Parameters
matrix the matrix to decompose
computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed. By default, none is computed. This is a bit - field, the possible bits are ComputeFullU, ComputeThinU, ComputeFullV, ComputeThinV.

Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not available with the (non - default) FullPivHouseholderQR preconditioner.

rows()

template<typename _MatrixType >
EIGEN_CONSTEXPR Index Eigen::EigenBase< Derived >::rows ( void )
inline
Returns
the number of rows.
See also
cols(), RowsAtCompileTime

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

© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1BDCSVD.html