Collaboration diagram for General ANA support code:
|
Modules | |
| General ANA support code utilities | |
Defines | |
| #define | THYRA_ASSERT_LHS_ARG(FUNC_NAME, LHS_ARG) |
| This macro just asserts that a LHS argument is set. | |
| #define | THYRA_ASSERT_VEC_SPACES(FUNC_NAME, VS1, VS2) THYRA_ASSERT_VEC_SPACES_NAMES(FUNC_NAME,VS1,#VS1,VS2,#VS2) |
| This is a very useful macro that should be used to validate that two vector spaces are compatible. | |
| #define | THYRA_ASSERT_LINEAR_OP_VEC_APPLY_SPACES(FUNC_NAME, M, M_T, X, Y) |
This is a very useful macro that should be used to validate that the spaces for the vector version of the LinearOpBase::apply() function (or related operations). | |
| #define | THYRA_ASSERT_LINEAR_OP_MULTIVEC_APPLY_SPACES(FUNC_NAME, M, M_T, X, Y) |
This is a very useful macro that should be used to validate that the spaces for the multi-vector version of the LinearOpBase::apply() function (or related operations). | |
| #define THYRA_ASSERT_LHS_ARG | ( | FUNC_NAME, | |||
| LHS_ARG | ) |
Value:
TEST_FOR_EXCEPTION( \ (LHS_ARG) == NULL, std::invalid_argument \ ,FUNC_NAME << " : Error!" \ );
Definition at line 137 of file Thyra_AssertOp.hpp.
| #define THYRA_ASSERT_VEC_SPACES | ( | FUNC_NAME, | |||
| VS1, | |||||
| VS2 | ) | THYRA_ASSERT_VEC_SPACES_NAMES(FUNC_NAME,VS1,#VS1,VS2,#VS2) |
This is a very useful macro that should be used to validate that two vector spaces are compatible.
If the vector spaces are not compatible then a very helpful error message is generated (in the std::exception class) along with the file name and line number where this macro is called. The error message string embedded in the thrown exception gives the concrete types of the two vector spaces involved as well as their dimensions.
Definition at line 175 of file Thyra_AssertOp.hpp.
| #define THYRA_ASSERT_LINEAR_OP_VEC_APPLY_SPACES | ( | FUNC_NAME, | |||
| M, | |||||
| M_T, | |||||
| X, | |||||
| Y | ) |
Value:
{ \
std::ostringstream headeross; \
headeross \
<< FUNC_NAME << ":\n" \
<< "Spaces check failed for " \
<< #M << ( (M_T) == Thyra::NOTRANS ? "" : "^T" ) << " * " \
<< #X << " and " << #Y; \
const std::string &header = headeross.str(); \
THYRA_ASSERT_LHS_ARG(header,Y); \
THYRA_ASSERT_MAT_VEC_SPACES(header,M,M_T,::Thyra::VS_RANGE,*(Y)->space()); \
THYRA_ASSERT_MAT_VEC_SPACES(header,M,M_T,::Thyra::VS_DOMAIN,*(X).space()); \
}
LinearOpBase::apply() function (or related operations).
If the vector spaces are not compatible then a very helpful error message is generated (in the std::exception class) along with the file name and line number where this macro is called. The error message string embedded in the thrown exception gives the concrete types of the vector spaces involved as well as their dimensions.
Definition at line 211 of file Thyra_AssertOp.hpp.
| #define THYRA_ASSERT_LINEAR_OP_MULTIVEC_APPLY_SPACES | ( | FUNC_NAME, | |||
| M, | |||||
| M_T, | |||||
| X, | |||||
| Y | ) |
Value:
{ \
std::ostringstream headeross; \
headeross \
<< FUNC_NAME << ":\n\n" \
<< "Spaces check failed for " \
<< #M << ( (M_T) == Thyra::NOTRANS ? "" : "^T" ) << " * " \
<< #X << " and " << #Y << ":\n\n"; \
const std::string &header = headeross.str(); \
THYRA_ASSERT_LHS_ARG(header,Y); \
THYRA_ASSERT_VEC_SPACES(header,*(X).domain(),*(Y)->domain()); \
THYRA_ASSERT_MAT_VEC_SPACES(header,M,M_T,::Thyra::VS_RANGE,*(Y)->range()); \
THYRA_ASSERT_MAT_VEC_SPACES(header,M,M_T,::Thyra::VS_DOMAIN,*(X).range()); \
}
LinearOpBase::apply() function (or related operations).
If the vector spaces are not compatible then a very helpful error message is generated (in the std::exception class) along with the file name and line number where this macro is called. The error message string embedded in the thrown exception gives the concrete types of the vector spaces involved as well as their dimensions.
Definition at line 238 of file Thyra_AssertOp.hpp.
1.4.7