LinearOpBase.
More...
#include <Thyra_LinearOpTesterDecl.hpp>
Inheritance diagram for Thyra::LinearOpTester< RangeScalar, DomainScalar >:
Public Types | |
| typedef Teuchos::PromotionTraits< RangeScalar, DomainScalar >::promote | Scalar |
| Local typedef for promoted scalar type . | |
| typedef Teuchos::ScalarTraits< Scalar >::magnitudeType | ScalarMag |
| Local typedef for promoted scalar magnitude. | |
Public Member Functions | |
| LinearOpTester (const bool check_linear_properties=true, const ScalarMag linear_properties_warning_tol=1e-13, const ScalarMag linear_properties_error_tol=1e-10, const bool check_adjoint=true, const ScalarMag adjoint_warning_tol=1e-13, const ScalarMag adjoint_error_tol=1e-10, const bool check_for_symmetry=false, const ScalarMag symmetry_warning_tol=1e-13, const ScalarMag symmetry_error_tol=1e-10, const int num_random_vectors=1, const bool show_all_tests=false, const bool dump_all=false, const int num_rhs=1) | |
| Default constructor which sets default parameter values. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, check_linear_properties) | |
Set if to check for linear properties alpha*op*(x + y) == op(alpha*x) + op(alpha*y). | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (ScalarMag, linear_properties_warning_tol) | |
| Set the tolerance above which a relative error will generate a warning message for the check of the linear properties. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (ScalarMag, linear_properties_error_tol) | |
| Set the tolerance above which a relative error will generate a error message and result in test failure for the check of the linear properties. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, check_adjoint) | |
Set if to check for adjoint property x'*(op*y) == y'*(op'*x) if adjoint is supported. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (ScalarMag, adjoint_warning_tol) | |
| Set the tolerance above which a relative error will generate a warning message for the check of the adjoint. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (ScalarMag, adjoint_error_tol) | |
| Set the tolerance above which a relative error will generate a error message and result in test failure for the check of the adjoint. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, check_for_symmetry) | |
Set if to check for symmetry property x'*(op*y) == y'*(op*x) for symmetric operators. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (ScalarMag, symmetry_warning_tol) | |
| Set the tolerance above which a relative error will generate a warning message for the check of symmetry. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (ScalarMag, symmetry_error_tol) | |
| Set the tolerance above which a relative error will generate a error message and result in test failure for the check of symmetry. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (int, num_random_vectors) | |
| Set the number random vectors that is generated during each test. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, show_all_tests) | |
| Set if all tests are shown or just summaries. | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, dump_all) | |
Set if all of the vectors are dumped or not (only relevant if show_all_tests()==true). | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (int, num_rhs) | |
| Set the number of right-hand-sides in the multivectors. | |
| void | enable_all_tests (const bool enable_all_tests) |
| Enable or disable all tests. | |
| void | set_all_warning_tol (const ScalarMag warning_tol) |
| Set all the warning tolerances to the same value. | |
| void | set_all_error_tol (const ScalarMag error_tol) |
| Set all the error tolerances to the same value. | |
| bool | check (const LinearOpBase< RangeScalar, DomainScalar > &op, MultiVectorRandomizerBase< RangeScalar > *rangeRandomizer, MultiVectorRandomizerBase< DomainScalar > *domainRandomizer, Teuchos::FancyOStream *out) const |
| Check a linear operator. | |
| bool | check (const LinearOpBase< RangeScalar, DomainScalar > &op, Teuchos::FancyOStream *out) const |
Calls this->check(op,NULL,NULL,out,leadingIndent,indentSpacer). | |
| bool | compare (const LinearOpBase< RangeScalar, DomainScalar > &op1, const LinearOpBase< RangeScalar, DomainScalar > &op2, MultiVectorRandomizerBase< DomainScalar > *domainRandomizer, Teuchos::FancyOStream *out) const |
| Check if two linear operators are the same or not. | |
| bool | compare (const LinearOpBase< RangeScalar, DomainScalar > &op1, const LinearOpBase< RangeScalar, DomainScalar > &op2, Teuchos::FancyOStream *out) const |
Calls this->compare(op1,op2,NULL,out,leadingIndent,indentSpacer). | |
LinearOpBase.
This testing class performs many different tests just given a LinearOpBase object using the function check().
This testing class also can check if two linear operators are the same using random vectors by using the function compare().
ToDo: Finish documentation!
The default compiler-generated copy constructor and assignment operators are allowed since they have the correct semantics which are to simply copy control parameters.
exampleImplicitlyComposedLinearOperators.cpp, sillyCgSolve_mpi.cpp, sillyCgSolve_serial.cpp, test_composite_linear_ops.cpp, and test_scalar_product.cpp.
|
|||||
|
Local typedef for promoted scalar type .
|
|
|||||
|
Local typedef for promoted scalar magnitude.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Default constructor which sets default parameter values. Note: It is not recommended that the client pass in values in this constructor since the argument list may change in the near future but instead use the below set functions to change an option after construction. |
|
||||||||||||||||
|
Set if to check for linear properties
|
|
||||||||||||||||
|
Set the tolerance above which a relative error will generate a warning message for the check of the linear properties.
|
|
||||||||||||||||
|
Set the tolerance above which a relative error will generate a error message and result in test failure for the check of the linear properties.
|
|
||||||||||||||||
|
Set if to check for adjoint property
|
|
||||||||||||||||
|
Set the tolerance above which a relative error will generate a warning message for the check of the adjoint.
|
|
||||||||||||||||
|
Set the tolerance above which a relative error will generate a error message and result in test failure for the check of the adjoint.
|
|
||||||||||||||||
|
Set if to check for symmetry property
|
|
||||||||||||||||
|
Set the tolerance above which a relative error will generate a warning message for the check of symmetry.
|
|
||||||||||||||||
|
Set the tolerance above which a relative error will generate a error message and result in test failure for the check of symmetry.
|
|
||||||||||||||||
|
Set the number random vectors that is generated during each test.
|
|
||||||||||||||||
|
Set if all tests are shown or just summaries.
|
|
||||||||||||||||
|
Set if all of the vectors are dumped or not (only relevant if
|
|
||||||||||||||||
|
Set the number of right-hand-sides in the multivectors.
|
|
||||||||||
|
Enable or disable all tests. Postconditions:
|
|
||||||||||
|
Set all the warning tolerances to the same value. Postconditions:
|
|
||||||||||
|
Set all the error tolerances to the same value. Postconditions:
|
|
||||||||||||||||||||||||
|
Check a linear operator.
This function performs a number of tests on
All relative errors that exceed
out!=NULL and to look at the implementation by clicking on the following link to the source code: |
|
||||||||||||||||
|
Calls
|
|
||||||||||||||||||||||||
|
Check if two linear operators are the same or not.
op1 and op2 are the same by checking that the range and domain spaces are compatible and then checking that sum(op1*v) == sum(op2*v) for various random vectors. The allowed warning and error tolerances are taken from linear_properties_warning_tol() and linear_properties_error_tol().
All relative errors that exceed
out!=NULL and to look at the implementation by clicking on the following link to the source code: |
|
||||||||||||||||||||
|
Calls
|
1.3.9.1