Belos Version of the Day
Public Types | Public Member Functions
Belos::details::MultiVecTsqrAdapter< ScalarType > Class Template Reference

TSQR adapter for MultiVec. More...

#include <BelosMultiVec.hpp>

List of all members.

Public Types

typedef MultiVec< ScalarType > MV
typedef ScalarType 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

void factorExplicit (MV &A, MV &Q, dense_matrix_type &R, const bool forceNonnegativeDiagonal=false)
 Compute QR factorization A = QR, using TSQR.
int revealRank (MV &Q, dense_matrix_type &R, const magnitude_type &tol)
 Compute rank-revealing decomposition using results of factorExplicit().

Detailed Description

template<class ScalarType>
class Belos::details::MultiVecTsqrAdapter< ScalarType >

TSQR adapter for MultiVec.

TSQR (Tall Skinny QR factorization) is an orthogonalization kernel that is as accurate as Householder QR, yet requires only $2 \log P$ 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 adapter class. Each multivector type MV needs its own adapter class. The specialization of MultiVecTraits for MV refers to its corresponding adapter class as its tsqr_adaptor_type [sic; sorry about the lack of standard spelling of "adapter"] typedef.

This class is the TSQR adapter for MultiVec. It merely calls MultiVec's corresponding methods for TSQR functionality.

Definition at line 320 of file BelosMultiVec.hpp.


Member Typedef Documentation

template<class ScalarType >
typedef MultiVec<ScalarType> Belos::details::MultiVecTsqrAdapter< ScalarType >::MV

Definition at line 322 of file BelosMultiVec.hpp.

template<class ScalarType >
typedef ScalarType Belos::details::MultiVecTsqrAdapter< ScalarType >::scalar_type

Definition at line 323 of file BelosMultiVec.hpp.

template<class ScalarType >
typedef int Belos::details::MultiVecTsqrAdapter< ScalarType >::ordinal_type

Definition at line 324 of file BelosMultiVec.hpp.

template<class ScalarType >
typedef int Belos::details::MultiVecTsqrAdapter< ScalarType >::node_type

Definition at line 325 of file BelosMultiVec.hpp.

Definition at line 326 of file BelosMultiVec.hpp.

template<class ScalarType >
typedef Teuchos::ScalarTraits<scalar_type>::magnitudeType Belos::details::MultiVecTsqrAdapter< ScalarType >::magnitude_type

Definition at line 327 of file BelosMultiVec.hpp.


Member Function Documentation

template<class ScalarType >
void Belos::details::MultiVecTsqrAdapter< ScalarType >::factorExplicit ( MV A,
MV Q,
dense_matrix_type R,
const bool  forceNonnegativeDiagonal = false 
) [inline]

Compute QR factorization A = QR, using TSQR.

Definition at line 331 of file BelosMultiVec.hpp.

template<class ScalarType >
int Belos::details::MultiVecTsqrAdapter< ScalarType >::revealRank ( MV Q,
dense_matrix_type R,
const magnitude_type tol 
) [inline]

Compute rank-revealing decomposition using results of factorExplicit().

Definition at line 341 of file BelosMultiVec.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines