# Non-member LinearOpWithSolveBase helper functions.

## Functions

template<class Scalar>
bool Thyra::solveSupports (const LinearOpWithSolveBase< Scalar > &A, const ETransp A_trans)
Determine if a `LinearOpWithSolveBase<Scalar>` object supports a particular type of solve or not..
template<class Scalar>
SolveStatus< Scalar > Thyra::solve (const LinearOpWithSolveBase< Scalar > &A, const ETransp A_trans, const MultiVectorBase< Scalar > &B, MultiVectorBase< Scalar > *X, const SolveCriteria< Scalar > *solveCriteria)
Solve a set of forward linear systems with a single set of tolerances and a single scalar type.
template<class Scalar>
SolveStatus< Scalar > Thyra::solve (const LinearOpWithSolveBase< Scalar > &A, const ETransp A_trans, const MultiVectorBase< Scalar > &B, MultiVectorBase< Scalar > *X)
template<class RangeScalar, class DomainScalar>
SolveStatus< typename LinearOpWithSolveBase<
RangeScalar, DomainScalar
>::PromotedScalar >
Thyra::solve (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< RangeScalar > &B, MultiVectorBase< DomainScalar > *X, const SolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > *solveCriteria)
Solve a set of forward linear systems with a single set of tolerances.
template<class RangeScalar, class DomainScalar>
SolveStatus< typename LinearOpWithSolveBase<
RangeScalar, DomainScalar
>::PromotedScalar >
Thyra::solve (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< RangeScalar > &B, MultiVectorBase< DomainScalar > *X)
template<class RangeScalar, class DomainScalar>
SolveStatus< typename LinearOpWithSolveBase<
RangeScalar, DomainScalar
>::PromotedScalar >
Thyra::solveTranspose (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< DomainScalar > &B, MultiVectorBase< RangeScalar > *X, const SolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > *solveCriteria)
Solve a set of transpose linear systems with a single set of tolerances.
template<class RangeScalar, class DomainScalar>
SolveStatus< typename LinearOpWithSolveBase<
RangeScalar, DomainScalar
>::PromotedScalar >
Thyra::solveTranspose (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< DomainScalar > &B, MultiVectorBase< RangeScalar > *X)
template<class RangeScalar, class DomainScalar>
void Thyra::solve (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< RangeScalar > &B, MultiVectorBase< DomainScalar > *X, const int numBlocks, const BlockSolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveCriteria[], SolveStatus< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveStatus[])
Solve a set of forward linear systems with two or more sets of tolerances.
template<class RangeScalar, class DomainScalar>
void Thyra::solve (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< RangeScalar > &B, MultiVectorBase< DomainScalar > *X, const int numBlocks, const BlockSolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveCriteria[])
template<class RangeScalar, class DomainScalar>
void Thyra::solve (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< RangeScalar > &B, MultiVectorBase< DomainScalar > *X, const int numBlocks)
template<class RangeScalar, class DomainScalar>
void Thyra::solveTranspose (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< DomainScalar > &B, MultiVectorBase< RangeScalar > *X, const int numBlocks, const BlockSolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveCriteria[], SolveStatus< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveStatus[])
Solve a set of transpose linear systems with two or more sets of tolerances.
template<class RangeScalar, class DomainScalar>
void Thyra::solveTranspose (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< DomainScalar > &B, MultiVectorBase< RangeScalar > *X, const int numBlocks, const BlockSolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveCriteria[])
template<class RangeScalar, class DomainScalar>
void Thyra::solveTranspose (const LinearOpWithSolveBase< RangeScalar, DomainScalar > &A, const EConj conj, const MultiVectorBase< DomainScalar > &B, MultiVectorBase< RangeScalar > *X, const int numBlocks)

## Detailed Description

These functions allow for simpler calling sequences for solving linear systems given a `LinearOpWithSolveBase` object. In fact, these functions help to document the various use cases associated with a `LinearOpWithSolveBase` object.

## Function Documentation

 template bool solveSupports ( const LinearOpWithSolveBase< Scalar > & A, const ETransp A_trans )
 Determine if a `LinearOpWithSolveBase` object supports a particular type of solve or not.. Definition at line 534 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template SolveStatus solve ( const LinearOpWithSolveBase< Scalar > & A, const ETransp A_trans, const MultiVectorBase< Scalar > & B, MultiVectorBase< Scalar > * X, const SolveCriteria< Scalar > * solveCriteria )
 Solve a set of forward linear systems with a single set of tolerances and a single scalar type. This function allows a single interface for accessing `LinearOpWithSolveBase::solve()` or `LinearOpWithSolveBase::solveTranspose()` for operators only templated on a single scalar type for the domain and the range. See the implementation of this function for details. Definition at line 563 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template SolveStatus solve ( const LinearOpWithSolveBase< Scalar > & A, const ETransp A_trans, const MultiVectorBase< Scalar > & B, MultiVectorBase< Scalar > * X )
 Definition at line 583 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template SolveStatus::PromotedScalar> solve ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< RangeScalar > & B, MultiVectorBase< DomainScalar > * X, const SolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > * solveCriteria )
 Solve a set of forward linear systems with a single set of tolerances. See the implementation of this function for details. Definition at line 604 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template SolveStatus::PromotedScalar> solve ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< RangeScalar > & B, MultiVectorBase< DomainScalar > * X )
 Definition at line 635 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template SolveStatus::PromotedScalar> solveTranspose ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< DomainScalar > & B, MultiVectorBase< RangeScalar > * X, const SolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > * solveCriteria )
 Solve a set of transpose linear systems with a single set of tolerances. See the implementation of this function for details. Definition at line 656 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template SolveStatus::PromotedScalar> solveTranspose ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< DomainScalar > & B, MultiVectorBase< RangeScalar > * X )
 Definition at line 687 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template void solve ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< RangeScalar > & B, MultiVectorBase< DomainScalar > * X, const int numBlocks, const BlockSolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveCriteria[], SolveStatus< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveStatus[] )
 Solve a set of forward linear systems with two or more sets of tolerances. See the implementation of this function for details. Definition at line 707 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template void solve ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< RangeScalar > & B, MultiVectorBase< DomainScalar > * X, const int numBlocks, const BlockSolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveCriteria[] )
 Definition at line 731 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template void solve ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< RangeScalar > & B, MultiVectorBase< DomainScalar > * X, const int numBlocks )
 Definition at line 745 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template void solveTranspose ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< DomainScalar > & B, MultiVectorBase< RangeScalar > * X, const int numBlocks, const BlockSolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveCriteria[], SolveStatus< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveStatus[] )
 Solve a set of transpose linear systems with two or more sets of tolerances. See the implementation of this function for details. Definition at line 766 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template void solveTranspose ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< DomainScalar > & B, MultiVectorBase< RangeScalar > * X, const int numBlocks, const BlockSolveCriteria< typename LinearOpWithSolveBase< RangeScalar, DomainScalar >::PromotedScalar > blockSolveCriteria[] )
 Definition at line 790 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

 template void solveTranspose ( const LinearOpWithSolveBase< RangeScalar, DomainScalar > & A, const EConj conj, const MultiVectorBase< DomainScalar > & B, MultiVectorBase< RangeScalar > * X, const int numBlocks )
 Definition at line 804 of file Thyra_LinearOpWithSolveBaseDecl.hpp.

Generated on Thu Sep 18 12:33:10 2008 for Thyra Package Browser (Single Doxygen Collection) by  1.3.9.1