|
TR-mbed 1.0
|
class Bidiagonal Divide and Conquer SVD More...
#include <BDCSVD.h>
Public Types | |
| enum | { RowsAtCompileTime = MatrixType::RowsAtCompileTime , ColsAtCompileTime = MatrixType::ColsAtCompileTime , DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime, ColsAtCompileTime) , MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime , MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime , MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime, MaxColsAtCompileTime) , MatrixOptions = MatrixType::Options } |
| typedef _MatrixType | MatrixType |
| typedef MatrixType::Scalar | Scalar |
| typedef NumTraits< typenameMatrixType::Scalar >::Real | RealScalar |
| typedef NumTraits< RealScalar >::Literal | Literal |
| typedef Base::MatrixUType | MatrixUType |
| typedef Base::MatrixVType | MatrixVType |
| typedef Base::SingularValuesType | SingularValuesType |
| typedef Matrix< Scalar, Dynamic, Dynamic, ColMajor > | MatrixX |
| typedef Matrix< RealScalar, Dynamic, Dynamic, ColMajor > | MatrixXr |
| typedef Matrix< RealScalar, Dynamic, 1 > | VectorType |
| typedef Array< RealScalar, Dynamic, 1 > | ArrayXr |
| typedef Array< Index, 1, Dynamic > | ArrayXi |
| typedef Ref< ArrayXr > | ArrayRef |
| typedef Ref< ArrayXi > | IndicesRef |
Public Types inherited from Eigen::SVDBase< BDCSVD< _MatrixType > > | |
| enum | |
| typedef internal::traits< BDCSVD< _MatrixType > >::MatrixType | MatrixType |
| typedef MatrixType::Scalar | Scalar |
| typedef NumTraits< typenameMatrixType::Scalar >::Real | RealScalar |
| typedef Eigen::internal::traits< SVDBase >::StorageIndex | StorageIndex |
| typedef Eigen::Index | Index |
| typedef Matrix< Scalar, RowsAtCompileTime, RowsAtCompileTime, MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime > | MatrixUType |
| typedef Matrix< Scalar, ColsAtCompileTime, ColsAtCompileTime, MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime > | MatrixVType |
| typedef internal::plain_diag_type< MatrixType, RealScalar >::type | SingularValuesType |
Public Types inherited from Eigen::SolverBase< Derived > | |
| enum | { RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime , ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime , SizeAtCompileTime , MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime , MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime , MaxSizeAtCompileTime , IsVectorAtCompileTime , NumDimensions = int(MaxSizeAtCompileTime) == 1 ? 0 : bool(IsVectorAtCompileTime) ? 1 : 2 } |
| typedef EigenBase< Derived > | Base |
| typedef internal::traits< Derived >::Scalar | Scalar |
| typedef Scalar | CoeffReturnType |
| typedef internal::add_const< Transpose< constDerived > >::type | ConstTransposeReturnType |
| typedef internal::conditional< NumTraits< Scalar >::IsComplex, CwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, ConstTransposeReturnType >, ConstTransposeReturnType >::type | AdjointReturnType |
Public Types inherited from Eigen::EigenBase< Derived > | |
| typedef Eigen::Index | Index |
| The interface type of indices. | |
| typedef internal::traits< Derived >::StorageKind | StorageKind |
Public Member Functions | |
| BDCSVD () | |
| Default Constructor. | |
| BDCSVD (Index rows, Index cols, unsigned int computationOptions=0) | |
| Default Constructor with memory preallocation. | |
| BDCSVD (const MatrixType &matrix, unsigned int computationOptions=0) | |
| Constructor performing the decomposition of given matrix. | |
| ~BDCSVD () | |
| BDCSVD & | compute (const MatrixType &matrix, unsigned int computationOptions) |
| Method performing the decomposition of given matrix using custom options. | |
| BDCSVD & | compute (const MatrixType &matrix) |
| Method performing the decomposition of given matrix using current options. | |
| void | setSwitchSize (int s) |
| Index | rows () const |
| Index | cols () const |
| bool | computeU () const |
| bool | computeV () const |
Public Member Functions inherited from Eigen::SVDBase< BDCSVD< _MatrixType > > | |
| BDCSVD< _MatrixType > & | derived () |
| const BDCSVD< _MatrixType > & | derived () const |
| const MatrixUType & | matrixU () const |
| const MatrixVType & | matrixV () const |
| const SingularValuesType & | singularValues () const |
| Index | nonzeroSingularValues () const |
| Index | rank () const |
| BDCSVD< _MatrixType > & | setThreshold (const RealScalar &threshold) |
| BDCSVD< _MatrixType > & | setThreshold (Default_t) |
| RealScalar | threshold () const |
| bool | computeU () const |
| bool | computeV () const |
| Index | rows () const |
| Index | cols () const |
| EIGEN_DEVICE_FUNC ComputationInfo | info () const |
| Reports whether previous computation was successful. | |
| void | _solve_impl (const RhsType &rhs, DstType &dst) const |
| void | _solve_impl_transposed (const RhsType &rhs, DstType &dst) const |
Public Member Functions inherited from Eigen::SolverBase< Derived > | |
| SolverBase () | |
| ~SolverBase () | |
| template<typename Rhs > | |
| const Solve< Derived, Rhs > | solve (const MatrixBase< Rhs > &b) const |
| ConstTransposeReturnType | transpose () const |
| AdjointReturnType | adjoint () const |
| EIGEN_DEVICE_FUNC Derived & | derived () |
| EIGEN_DEVICE_FUNC const Derived & | derived () const |
Public Member Functions inherited from Eigen::EigenBase< Derived > | |
| EIGEN_DEVICE_FUNC Derived & | derived () |
| EIGEN_DEVICE_FUNC const Derived & | derived () const |
| EIGEN_DEVICE_FUNC Derived & | const_cast_derived () const |
| EIGEN_DEVICE_FUNC const Derived & | const_derived () const |
| EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index | rows () const EIGEN_NOEXCEPT |
| EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index | cols () const EIGEN_NOEXCEPT |
| EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index | size () const EIGEN_NOEXCEPT |
| template<typename Dest > | |
| EIGEN_DEVICE_FUNC void | evalTo (Dest &dst) const |
| template<typename Dest > | |
| EIGEN_DEVICE_FUNC void | addTo (Dest &dst) const |
| template<typename Dest > | |
| EIGEN_DEVICE_FUNC void | subTo (Dest &dst) const |
| template<typename Dest > | |
| EIGEN_DEVICE_FUNC void | applyThisOnTheRight (Dest &dst) const |
| template<typename Dest > | |
| EIGEN_DEVICE_FUNC void | applyThisOnTheLeft (Dest &dst) const |
Public Attributes | |
| int | m_numIters |
Protected Attributes | |
| MatrixXr | m_naiveU |
| MatrixXr | m_naiveV |
| MatrixXr | m_computed |
| Index | m_nRec |
| ArrayXr | m_workspace |
| ArrayXi | m_workspaceI |
| int | m_algoswap |
| bool | m_isTranspose |
| bool | m_compU |
| bool | m_compV |
| SingularValuesType | m_singularValues |
| Index | m_diagSize |
| bool | m_computeFullU |
| bool | m_computeFullV |
| bool | m_computeThinU |
| bool | m_computeThinV |
| MatrixUType | m_matrixU |
| MatrixVType | m_matrixV |
| ComputationInfo | m_info |
| bool | m_isInitialized |
| Index | m_nonzeroSingularValues |
Protected Attributes inherited from Eigen::SVDBase< BDCSVD< _MatrixType > > | |
| MatrixUType | m_matrixU |
| MatrixVType | m_matrixV |
| SingularValuesType | m_singularValues |
| ComputationInfo | m_info |
| bool | m_isInitialized |
| bool | m_isAllocated |
| bool | m_usePrescribedThreshold |
| bool | m_computeFullU |
| bool | m_computeThinU |
| bool | m_computeFullV |
| bool | m_computeThinV |
| unsigned int | m_computationOptions |
| Index | m_nonzeroSingularValues |
| Index | m_rows |
| Index | m_cols |
| Index | m_diagSize |
| RealScalar | m_prescribedThreshold |
Additional Inherited Members | |
Protected Member Functions inherited from Eigen::SVDBase< BDCSVD< _MatrixType > > | |
| void | _check_compute_assertions () const |
| void | _check_solve_assertion (const Rhs &b) const |
| bool | allocate (Index rows, Index cols, unsigned int computationOptions) |
| SVDBase () | |
| Default Constructor. | |
Protected Member Functions inherited from Eigen::SolverBase< Derived > | |
| template<bool Transpose_, typename Rhs > | |
| void | _check_solve_assertion (const Rhs &b) const |
Static Protected Member Functions inherited from Eigen::SVDBase< BDCSVD< _MatrixType > > | |
| static void | check_template_parameters () |
class Bidiagonal Divide and Conquer SVD
| _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.
-fp-model precise option. Likewise, the -ffast-math option of GCC or clang will significantly degrade the accuracy.| typedef Ref<ArrayXr> Eigen::BDCSVD< _MatrixType >::ArrayRef |
| typedef Array<Index,1,Dynamic> Eigen::BDCSVD< _MatrixType >::ArrayXi |
| typedef Array<RealScalar, Dynamic, 1> Eigen::BDCSVD< _MatrixType >::ArrayXr |
| typedef Ref<ArrayXi> Eigen::BDCSVD< _MatrixType >::IndicesRef |
| typedef NumTraits<RealScalar>::Literal Eigen::BDCSVD< _MatrixType >::Literal |
| typedef _MatrixType Eigen::BDCSVD< _MatrixType >::MatrixType |
| typedef Base::MatrixUType Eigen::BDCSVD< _MatrixType >::MatrixUType |
| typedef Base::MatrixVType Eigen::BDCSVD< _MatrixType >::MatrixVType |
| typedef Matrix<Scalar, Dynamic, Dynamic, ColMajor> Eigen::BDCSVD< _MatrixType >::MatrixX |
| typedef Matrix<RealScalar, Dynamic, Dynamic, ColMajor> Eigen::BDCSVD< _MatrixType >::MatrixXr |
| typedef NumTraits<typenameMatrixType::Scalar>::Real Eigen::BDCSVD< _MatrixType >::RealScalar |
| typedef MatrixType::Scalar Eigen::BDCSVD< _MatrixType >::Scalar |
| typedef Base::SingularValuesType Eigen::BDCSVD< _MatrixType >::SingularValuesType |
| typedef Matrix<RealScalar, Dynamic, 1> Eigen::BDCSVD< _MatrixType >::VectorType |
| anonymous enum |
|
inline |
Default Constructor.
The default constructor is useful in cases in which the user intends to perform decompositions via BDCSVD::compute(const MatrixType&).
|
inline |
Default Constructor with memory preallocation.
Like the default constructor but with preallocation of the internal data according to the specified problem size.
|
inline |
Constructor performing the decomposition of given matrix.
| 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.
|
inline |
|
inline |
|
inline |
Method performing the decomposition of given matrix using current options.
| matrix | the matrix to decompose |
This method uses the current computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).
| BDCSVD< MatrixType > & Eigen::BDCSVD< MatrixType >::compute | ( | const MatrixType & | matrix, |
| unsigned int | computationOptions | ||
| ) |
Method performing the decomposition of given matrix using custom options.
| 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.
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| int Eigen::BDCSVD< _MatrixType >::m_numIters |
|
protected |
|
protected |
|
protected |