All Classes Namespaces Functions Variables Typedefs Enumerator Groups Pages
BDCSVD< _MatrixType > Class Template Reference

Detailed Description

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

class Bidiagonal Divide and Conquer SVD

Parameters
MatrixTypethe type of the matrix of which we are computing the SVD decomposition We plan to have a very similar interface to JacobiSVD on this class. It should be used to speed up the calcul of SVD for big matrices.
+ Inheritance diagram for BDCSVD< _MatrixType >:

Public Member Functions

 BDCSVD ()
 Default Constructor. More...
 
 BDCSVD (Index rows, Index cols, unsigned int computationOptions=0)
 Default Constructor with memory preallocation. More...
 
 BDCSVD (const MatrixType &matrix, unsigned int computationOptions=0)
 Constructor performing the decomposition of given matrix. More...
 
SVDBase< MatrixType > & compute (const MatrixType &matrix, unsigned int computationOptions)
 Method performing the decomposition of given matrix using custom options. More...
 
SVDBase< MatrixType > & compute (const MatrixType &matrix)
 Method performing the decomposition of given matrix using current options. More...
 
bool computeU () const
 
bool computeV () const
 
Index nonzeroSingularValues () const
 
const SingularValuesType & singularValues () const
 
template<typename Rhs >
const internal::solve_retval
< BDCSVD, Rhs > 
solve (const MatrixBase< Rhs > &b) const
 

Constructor & Destructor Documentation

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 ( 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 ( const MatrixType &  matrix,
unsigned int  computationOptions = 0 
)
inline

Constructor performing the decomposition of given matrix.

Parameters
matrixthe matrix to decompose
computationOptionsoptional 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.

References BDCSVD< _MatrixType >::compute().

Member Function Documentation

SVDBase< MatrixType > & compute ( const MatrixType &  matrix,
unsigned int  computationOptions 
)

Method performing the decomposition of given matrix using custom options.

Parameters
matrixthe matrix to decompose
computationOptionsoptional 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.

Referenced by BDCSVD< _MatrixType >::BDCSVD(), and BDCSVD< _MatrixType >::compute().

SVDBase<MatrixType>& compute ( const MatrixType &  matrix)
inline

Method performing the decomposition of given matrix using current options.

Parameters
matrixthe matrix to decompose

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

References BDCSVD< _MatrixType >::compute().

bool computeU ( ) const
inlineinherited
Returns
true if U (full or thin) is asked for in this SVD decomposition

Referenced by SVDBase< _MatrixType >::matrixU().

bool computeV ( ) const
inlineinherited
Returns
true if V (full or thin) is asked for in this SVD decomposition

Referenced by SVDBase< _MatrixType >::matrixV().

Index nonzeroSingularValues ( ) const
inlineinherited
Returns
the number of singular values that are not exactly 0
const SingularValuesType& singularValues ( ) const
inlineinherited
Returns
the vector of singular values.

For the SVD decomposition of a n-by-p matrix, letting m be the minimum of n and p, the returned vector has size m. Singular values are always sorted in decreasing order.

const internal::solve_retval<BDCSVD, Rhs> solve ( const MatrixBase< Rhs > &  b) const
inline
Returns
a (least squares) solution of $ A x = b $ using the current SVD decomposition of A.
Parameters
bthe right - hand - side of the equation to solve.
Note
Solving requires both U and V to be computed. Thin U and V are enough, there is no need for full U or V.
SVD solving is implicitly least - squares. Thus, this method serves both purposes of exact solving and least - squares solving. In other words, the returned solution is guaranteed to minimize the Euclidean norm $ \Vert A x - b \Vert $.

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