General ANA support code utilities
[General ANA support code]

Collaboration diagram for General ANA support code utilities:


Defines

#define THYRA_ASSERT_VEC_SPACES_NAMES(FUNC_NAME, VS1, VS1_NAME, VS2, VS2_NAME)
 Helper assertion macro.
#define THYRA_ASSERT_MAT_VEC_SPACES(FUNC_NAME, M, M_T, M_VS, VS)
 This macro validates that a linear operator and a vector space for the domain vector are compatible.
#define THYRA_ASSERT_LINEAR_OP_PLUS_LINEAR_OP_SPACES_NAMES(FUNC_NAME, M1, M1_T, M1_N, M2, M2_T, M2_N)   ::Thyra::assertLinearOpPlusLinearOpNames(FUNC_NAME,M1,M1_T,M1_N,M2,M2_T,M2_N)
 Assert that a linear operator addition matches up.
#define THYRA_ASSERT_LINEAR_OP_TIMES_LINEAR_OP_SPACES_NAMES(FUNC_NAME, M1, M1_T, M1_N, M2, M2_T, M2_N)   ::Thyra::assertLinearOpTimesLinearOpNames(FUNC_NAME,M1,M1_T,M1_N,M2,M2_T,M2_N)
 Assert that a linear operator multiplication matches up.
#define THYRA_ASSERT_MAT_MAT_SPACES(FUNC_NAME, M1, M1_T, M1_VS, M2, M2_T, M2_VS)
 Helper assertion macro.

Functions

template<class Scalar>
const Thyra::VectorSpaceBase<
Scalar > & 
Thyra::linear_op_op (const Thyra::LinearOpBase< Scalar > &M, Thyra::EOpTransp M_trans, EM_VS M_VS)
 Utility function for selecting domain or range spaces.

Define Documentation

#define THYRA_ASSERT_VEC_SPACES_NAMES ( FUNC_NAME,
VS1,
VS1_NAME,
VS2,
VS2_NAME   ) 

Value:

{ \
  const bool isCompatible = (VS1).isCompatible(VS2); \
  TEST_FOR_EXCEPTION( \
    !isCompatible, ::Thyra::Exceptions::IncompatibleVectorSpaces, \
    FUNC_NAME << "\n\n" \
    << ::Thyra::dump_vec_spaces(VS1,VS1_NAME,VS2,VS2_NAME) \
    ) \
}
Helper assertion macro.

Definition at line 153 of file Thyra_AssertOp.hpp.

#define THYRA_ASSERT_MAT_VEC_SPACES ( FUNC_NAME,
M,
M_T,
M_VS,
VS   ) 

Value:

{ \
  std::ostringstream M_VS_name; \
  M_VS_name << "(" #M << ( (M_T) == Thyra::NOTRANS ? "" : "^T" ) << ")" \
            << "." << ( (M_VS) == Thyra::VS_RANGE ? "range()" : "domain()" ); \
  THYRA_ASSERT_VEC_SPACES_NAMES( \
    FUNC_NAME, \
    ::Thyra::linear_op_op(M,M_T,M_VS),M_VS_name.str().c_str(), \
    (VS),#VS \
    ) \
}
This macro validates that a linear operator and a vector space for the domain vector are compatible.

This macro is not recommended for casual users.

Definition at line 186 of file Thyra_AssertOp.hpp.

#define THYRA_ASSERT_LINEAR_OP_PLUS_LINEAR_OP_SPACES_NAMES ( FUNC_NAME,
M1,
M1_T,
M1_N,
M2,
M2_T,
M2_N   )     ::Thyra::assertLinearOpPlusLinearOpNames(FUNC_NAME,M1,M1_T,M1_N,M2,M2_T,M2_N)

Assert that a linear operator addition matches up.

Definition at line 350 of file Thyra_AssertOp.hpp.

#define THYRA_ASSERT_LINEAR_OP_TIMES_LINEAR_OP_SPACES_NAMES ( FUNC_NAME,
M1,
M1_T,
M1_N,
M2,
M2_T,
M2_N   )     ::Thyra::assertLinearOpTimesLinearOpNames(FUNC_NAME,M1,M1_T,M1_N,M2,M2_T,M2_N)

Assert that a linear operator multiplication matches up.

Definition at line 358 of file Thyra_AssertOp.hpp.

#define THYRA_ASSERT_MAT_MAT_SPACES ( FUNC_NAME,
M1,
M1_T,
M1_VS,
M2,
M2_T,
M2_VS   ) 

Value:

{ \
    std::ostringstream headeross; \
    headeross \
      << FUNC_NAME << "\n" \
      << "Spaces check failed for " \
      << #M1 << ( (M1_T) == Thyra::NOTRANS ? "" : "^T" ) << " and " \
      << #M2 << ( (M2_T) == Thyra::NOTRANS ? "" : "^T" ); \
    const std::string &header = headeross.str(); \
    std::ostringstream M1_VS_name, M2_VS_name; \
    M1_VS_name << "(" #M1 << ( M1_T == ::Thyra::NOTRANS ? "" : "^T" ) << ")" \
               << "." << ( M1_VS == ::Thyra::VS_RANGE ? "range()" : "domain()" ); \
    M2_VS_name << "(" #M2 << ( M2_T == ::Thyra::NOTRANS ? "" : "^T" ) << ")" \
               << "." << ( M2_VS == ::Thyra::VS_RANGE ? "range()" : "domain()" ); \
    THYRA_ASSERT_VEC_SPACES_NAMES( \
      header, \
      ::Thyra::linear_op_op(M1,M1_T,M1_VS),M1_VS_name.str().c_str() \
      ::Thyra::linear_op_op(M2,M2_T,M2_VS),M2_VS_name.str().c_str() \
      ); \
  }
Helper assertion macro.

This macro is not recommended for casual users.

Definition at line 368 of file Thyra_AssertOp.hpp.


Function Documentation

template<class Scalar>
const Thyra::VectorSpaceBase<Scalar>& Thyra::linear_op_op ( const Thyra::LinearOpBase< Scalar > &  M,
Thyra::EOpTransp  M_trans,
EM_VS  M_VS 
)

Utility function for selecting domain or range spaces.

Definition at line 113 of file Thyra_AssertOp.hpp.


Generated on Wed May 12 21:42:28 2010 for Thyra Operator/Vector Support by  doxygen 1.4.7