$treeview $search $mathjax
$projectbrief
$projectbrief
$searchbox

BDCSVD< _MatrixType > Class Template Reference
[SVD module]

class Bidiagonal Divide and Conquer SVD More...

Inheritance diagram for BDCSVD< _MatrixType >:

List of all members.

Public Member Functions

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

Detailed Description

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

class Bidiagonal Divide and Conquer SVD

Parameters:
MatrixType the 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.

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:
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.

References BDCSVD< _MatrixType >::compute().


Member Function Documentation

SVDBase< Matrix< int, Dynamic, Dynamic > > & compute ( const MatrixType &  matrix,
unsigned int  computationOptions 
) [inline]

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.

Reimplemented from SVDBase< _MatrixType >.

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

Reimplemented from SVDBase< _MatrixType >.

References BDCSVD< _MatrixType >::compute().

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

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.

Reimplemented from SVDBase< _MatrixType >.

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

bool computeU (  )  const [inline, inherited]
Returns:
true if U (full or thin) is asked for in this SVD decomposition

Referenced by SVDBase< _MatrixType >::matrixU(), BDCSVD< _MatrixType >::matrixU(), and BDCSVD< _MatrixType >::matrixV().

bool computeV (  )  const [inline, inherited]
Returns:
true if V (full or thin) is asked for in this SVD decomposition

Referenced by BDCSVD< _MatrixType >::matrixU(), SVDBase< _MatrixType >::matrixV(), and BDCSVD< _MatrixType >::matrixV().

const MatrixUType& matrixU (  )  const [inline]
Returns:
the U matrix.

For the SVDBase decomposition of a n-by-p matrix, letting m be the minimum of n and p, the U matrix is n-by-n if you asked for ComputeFullU, and is n-by-m if you asked for ComputeThinU.

The m first columns of U are the left singular vectors of the matrix being decomposed.

This method asserts that you asked for U to be computed.

Reimplemented from SVDBase< _MatrixType >.

References SVDBase< _MatrixType >::computeU(), and SVDBase< _MatrixType >::computeV().

const MatrixVType& matrixV (  )  const [inline]
Returns:
the V matrix.

For the SVD decomposition of a n-by-p matrix, letting m be the minimum of n and p, the V matrix is p-by-p if you asked for ComputeFullV, and is p-by-m if you asked for ComputeThinV.

The m first columns of V are the right singular vectors of the matrix being decomposed.

This method asserts that you asked for V to be computed.

Reimplemented from SVDBase< _MatrixType >.

References SVDBase< _MatrixType >::computeU(), and SVDBase< _MatrixType >::computeV().

Index nonzeroSingularValues (  )  const [inline, inherited]
Returns:
the number of singular values that are not exactly 0
const SingularValuesType& singularValues (  )  const [inline, inherited]
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:
b the 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: