|
Stratimikos Package Browser (Single Doxygen Collection)
Version of the Day
|
Stub adaptor from Thyra::MultiVectorBase to TSQR. More...
#include <Thyra_TsqrAdaptor.hpp>

Public Types | |
| typedef Thyra::MultiVectorBase < Scalar > | MV |
| typedef Scalar | scalar_type |
| typedef int | ordinal_type |
| typedef int | node_type |
| typedef Teuchos::SerialDenseMatrix < ordinal_type, scalar_type > | dense_matrix_type |
| typedef Teuchos::ScalarTraits < scalar_type >::magnitudeType | magnitude_type |
Public Member Functions | |
| TsqrAdaptor (const Teuchos::RCP< Teuchos::ParameterList > &plist) | |
| Constructor (that accepts a parameter list). | |
| TsqrAdaptor () | |
| Constructor (that uses default parameters). | |
| Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
| void | setParameterList (const Teuchos::RCP< Teuchos::ParameterList > &plist) |
| void | factorExplicit (MV &A, MV &Q, dense_matrix_type &R, const bool forceNonnegativeDiagonal=false) |
| Compute QR factorization [Q,R] = qr(A,0). | |
| int | revealRank (MV &Q, dense_matrix_type &R, const magnitude_type &tol) |
| Rank-revealing decomposition. | |
Stub adaptor from Thyra::MultiVectorBase to TSQR.
TSQR (Tall Skinny QR factorization) is an orthogonalization kernel that is as accurate as Householder QR, yet requires only
messages between $P$ MPI processes, independently of the number of columns in the multivector.
TSQR works independently of the particular multivector implementation, and interfaces to the latter via an adaptor class. This class is the adaptor class for MultiVectorBase. It templates on the MultiVector (MV) type so that it can pick up that class' typedefs. In particular, TSQR chooses its intranode implementation based on the Kokkos Node type of the multivector.
Definition at line 65 of file Thyra_TsqrAdaptor.hpp.
| typedef Thyra::MultiVectorBase<Scalar> Thyra::TsqrAdaptor< Scalar >::MV |
Definition at line 67 of file Thyra_TsqrAdaptor.hpp.
| typedef Scalar Thyra::TsqrAdaptor< Scalar >::scalar_type |
Definition at line 68 of file Thyra_TsqrAdaptor.hpp.
| typedef int Thyra::TsqrAdaptor< Scalar >::ordinal_type |
Definition at line 69 of file Thyra_TsqrAdaptor.hpp.
| typedef int Thyra::TsqrAdaptor< Scalar >::node_type |
Definition at line 70 of file Thyra_TsqrAdaptor.hpp.
| typedef Teuchos::SerialDenseMatrix<ordinal_type, scalar_type> Thyra::TsqrAdaptor< Scalar >::dense_matrix_type |
Definition at line 71 of file Thyra_TsqrAdaptor.hpp.
| typedef Teuchos::ScalarTraits<scalar_type>::magnitudeType Thyra::TsqrAdaptor< Scalar >::magnitude_type |
Definition at line 72 of file Thyra_TsqrAdaptor.hpp.
| Thyra::TsqrAdaptor< Scalar >::TsqrAdaptor | ( | const Teuchos::RCP< Teuchos::ParameterList > & | plist | ) | [inline] |
Constructor (that accepts a parameter list).
| plist | [in] List of parameters for configuring TSQR. The specific parameter keys that are read depend on the TSQR implementation. For details, call getValidParameters() and examine the documentation embedded therein. |
Definition at line 81 of file Thyra_TsqrAdaptor.hpp.
| Thyra::TsqrAdaptor< Scalar >::TsqrAdaptor | ( | ) | [inline] |
Constructor (that uses default parameters).
Definition at line 87 of file Thyra_TsqrAdaptor.hpp.
| Teuchos::RCP<const Teuchos::ParameterList> Thyra::TsqrAdaptor< Scalar >::getValidParameters | ( | ) | const [inline, virtual] |
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 93 of file Thyra_TsqrAdaptor.hpp.
| void Thyra::TsqrAdaptor< Scalar >::setParameterList | ( | const Teuchos::RCP< Teuchos::ParameterList > & | plist | ) | [inline, virtual] |
Implements Teuchos::ParameterListAcceptor.
Definition at line 99 of file Thyra_TsqrAdaptor.hpp.
| void Thyra::TsqrAdaptor< Scalar >::factorExplicit | ( | MV & | A, |
| MV & | Q, | ||
| dense_matrix_type & | R, | ||
| const bool | forceNonnegativeDiagonal = false |
||
| ) | [inline] |
Compute QR factorization [Q,R] = qr(A,0).
| A | [in/out] On input: the multivector to factor. Overwritten with garbage on output. |
| Q | [out] On output: the (explicitly stored) Q factor in the QR factorization of the (input) multivector A. |
| R | [out] On output: the R factor in the QR factorization of the (input) multivector A. |
| forceNonnegativeDiagonal | [in] If true, then (if necessary) do extra work (modifying both the Q and R factors) in order to force the R factor to have a nonnegative diagonal. |
Definition at line 126 of file Thyra_TsqrAdaptor.hpp.
| int Thyra::TsqrAdaptor< Scalar >::revealRank | ( | MV & | Q, |
| dense_matrix_type & | R, | ||
| const magnitude_type & | tol | ||
| ) | [inline] |
Rank-revealing decomposition.
Using the R factor and explicit Q factor from factorExplicit(), compute the singular value decomposition (SVD) of R (
). If R is full rank (with respect to the given relative tolerance tol), don't change Q or R. Otherwise, compute
and
in place (the latter may be no longer upper triangular).
| Q | [in/out] On input: explicit Q factor computed by factorExplicit(). (Must be an orthogonal resp. unitary matrix.) On output: If R is of full numerical rank with respect to the tolerance tol, Q is unmodified. Otherwise, Q is updated so that the first rank columns of Q are a basis for the column space of A (the original matrix whose QR factorization was computed by factorExplicit()). The remaining columns of Q are a basis for the null space of A. |
| R | [in/out] On input: ncols by ncols upper triangular matrix with leading dimension ldr >= ncols. On output: if input is full rank, R is unchanged on output. Otherwise, if is the SVD of R, on output R is overwritten with $ V^*$. This is also an ncols by ncols matrix, but may not necessarily be upper triangular. |
| tol | [in] Relative tolerance for computing the numerical rank of the matrix R. |
of R:
. Definition at line 166 of file Thyra_TsqrAdaptor.hpp.
1.7.6.1