43#ifndef THYRA_LINEAR_OP_TESTER_DECL_HPP
44#define THYRA_LINEAR_OP_TESTER_DECL_HPP
47#include "Thyra_OperatorVectorTypes.hpp"
48#include "Thyra_MultiVectorRandomizerBase.hpp"
49#include "Teuchos_ScalarTraits.hpp"
50#include "Teuchos_PromotionTraits.hpp"
51#include "Teuchos_StandardMemberCompositionMacros.hpp"
52#include "Teuchos_FancyOStream.hpp"
318 void setDefaultTols();
Base class for all linear operators.
Testing class for LinearOpBase.
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, adjoint_warning_tol)
Set the tolerance above which a relative error will generate a warning message for the check of the a...
STANDARD_MEMBER_COMPOSITION_MEMBERS(bool, check_adjoint)
Set if to check for adjoint property x'*(op*y) == y'*(op'*x) if adjoint is supported.
bool compare(const LinearOpBase< Scalar > &op1, const LinearOpBase< Scalar > &op2, const Ptr< MultiVectorRandomizerBase< Scalar > > &domainRandomizer, const Ptr< FancyOStream > &out_arg) const
Check if two linear operators are the same or not.
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 failu...
LinearOpTester()
Default constructor which sets default parameter values.
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 failu...
STANDARD_MEMBER_COMPOSITION_MEMBERS(int, num_random_vectors)
Set the number random vectors that is generated during each test.
void set_all_warning_tol(const ScalarMag warning_tol)
Set all the warning tolerances to the same value.
bool compare(const LinearOpBase< Scalar > &op1, const LinearOpBase< Scalar > &op2, const Ptr< FancyOStream > &out_arg) const
Calls this->compare(op1,op2,NULL,out,leadingIndent,indentSpacer).
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 symme...
void enable_all_tests(const bool enable_all_tests)
Enable or disable all tests.
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(bool, show_all_tests)
Set if all tests are shown or just summaries.
void set_all_error_tol(const ScalarMag error_tol)
Set all the error tolerances to the same value.
STANDARD_MEMBER_COMPOSITION_MEMBERS(int, num_rhs)
Set the number of right-hand-sides in the multivectors.
Teuchos::ScalarTraits< Scalar >::magnitudeType ScalarMag
Local typedef for promoted scalar magnitude.
bool check(const LinearOpBase< Scalar > &op, const Ptr< MultiVectorRandomizerBase< Scalar > > &rangeRandomizer, const Ptr< MultiVectorRandomizerBase< Scalar > > &domainRandomizer, const Ptr< FancyOStream > &out) const
Check a linear operator.
bool check(const LinearOpBase< Scalar > &op, const Ptr< FancyOStream > &out) const
Calls this->check(op,null,null,out,leadingIndent,indentSpacer)
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 l...
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 failu...
STANDARD_MEMBER_COMPOSITION_MEMBERS(bool, dump_all)
Set if all of the vectors are dumped or not (only relevant if show_all_tests()==true).
Base interface for a strategy object for randomizing a multi-vector.