Anasazi Version of the Day
Public Member Functions
Anasazi::details::StubTsqrAdapter< MultiVectorType > Class Template Reference

"Stub" TSQR adaptor for unsupported multivector types. More...

#include <AnasaziStubTsqrAdapter.hpp>

Inheritance diagram for Anasazi::details::StubTsqrAdapter< MultiVectorType >:
Teuchos::ParameterListAcceptorDefaultBase Teuchos::ParameterListAcceptor

List of all members.

Public Member Functions

 StubTsqrAdapter (const Teuchos::RCP< Teuchos::ParameterList > &plist)
 Constructor (that accepts a parameter list).
 StubTsqrAdapter ()
 Default constructor (stub; throws std::logic_error).
 StubTsqrAdapter (const StubTsqrAdapter &rhs)
 Copy constructor (throws std::logic_error).
Teuchos::RCP< const
Teuchos::ParameterList
getValidParameters () const
 Get list of valid default parameters (stub; throws std::logic_error).
void setParameterList (const Teuchos::RCP< Teuchos::ParameterList > &plist)
 Set parameters (stub; throws std::logic_error).
void factorExplicit (MV &A, MV &Q, dense_matrix_type &R, const bool forceNonnegativeDiagonal=false)
 Compute QR factorization [Q,R] = qr(A,0) (stub; throws std::logic_error).
int revealRank (MV &Q, dense_matrix_type &R, const magnitude_type &tol)
 Rank-revealing decomposition (stub; does nothing).

Detailed Description

template<class MultiVectorType>
class Anasazi::details::StubTsqrAdapter< MultiVectorType >

"Stub" TSQR adaptor for unsupported multivector types.

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. For examples, please refer to the Epetra_MultiVector and Tpetra::MultiVector specializations of Anasazi::MultiVecTraits.

Nevertheless, there may be multivector types for which a TSQR adapter has not yet been written. This "stub" adapter implements the interface that TSQR adapters must implement, but all of its methods throw std::logic_error to indicate that this is a stub. Thus, it allows Anasazi classes like TsqrOrthoManagerImpl to compile successfully for unsupported MV types. This in turn allows OrthoManagerFactory to be templated on the MV type.

Definition at line 71 of file AnasaziStubTsqrAdapter.hpp.


Constructor & Destructor Documentation

template<class MultiVectorType >
Anasazi::details::StubTsqrAdapter< MultiVectorType >::StubTsqrAdapter ( const Teuchos::RCP< Teuchos::ParameterList > &  plist) [inline]

Constructor (that accepts a parameter list).

Parameters:
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 86 of file AnasaziStubTsqrAdapter.hpp.

template<class MultiVectorType >
Anasazi::details::StubTsqrAdapter< MultiVectorType >::StubTsqrAdapter ( ) [inline]

Default constructor (stub; throws std::logic_error).

Definition at line 94 of file AnasaziStubTsqrAdapter.hpp.

template<class MultiVectorType >
Anasazi::details::StubTsqrAdapter< MultiVectorType >::StubTsqrAdapter ( const StubTsqrAdapter< MultiVectorType > &  rhs) [inline]

Copy constructor (throws std::logic_error).

Definition at line 102 of file AnasaziStubTsqrAdapter.hpp.


Member Function Documentation

template<class MultiVectorType >
Teuchos::RCP<const Teuchos::ParameterList> Anasazi::details::StubTsqrAdapter< MultiVectorType >::getValidParameters ( ) const [inline, virtual]

Get list of valid default parameters (stub; throws std::logic_error).

Reimplemented from Teuchos::ParameterListAcceptor.

Definition at line 112 of file AnasaziStubTsqrAdapter.hpp.

template<class MultiVectorType >
void Anasazi::details::StubTsqrAdapter< MultiVectorType >::setParameterList ( const Teuchos::RCP< Teuchos::ParameterList > &  plist) [inline, virtual]

Set parameters (stub; throws std::logic_error).

Implements Teuchos::ParameterListAcceptor.

Definition at line 121 of file AnasaziStubTsqrAdapter.hpp.

template<class MultiVectorType >
void Anasazi::details::StubTsqrAdapter< MultiVectorType >::factorExplicit ( MV &  A,
MV &  Q,
dense_matrix_type R,
const bool  forceNonnegativeDiagonal = false 
) [inline]

Compute QR factorization [Q,R] = qr(A,0) (stub; throws std::logic_error).

Definition at line 130 of file AnasaziStubTsqrAdapter.hpp.

template<class MultiVectorType >
int Anasazi::details::StubTsqrAdapter< MultiVectorType >::revealRank ( MV &  Q,
dense_matrix_type R,
const magnitude_type &  tol 
) [inline]

Rank-revealing decomposition (stub; does nothing).

Definition at line 142 of file AnasaziStubTsqrAdapter.hpp.


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