42 #ifndef THYRA_MULTI_VECTOR_TESTER_DEF_HPP 
   43 #define THYRA_MULTI_VECTOR_TESTER_DEF_HPP 
   45 #include "Thyra_MultiVectorTester_decl.hpp" 
   46 #include "Thyra_MultiVectorBase.hpp" 
   47 #include "Thyra_MultiVectorStdOps.hpp" 
   48 #include "Thyra_VectorSpaceBase.hpp" 
   49 #include "Thyra_VectorStdOps.hpp" 
   50 #include "Teuchos_TestingHelpers.hpp" 
   56 template<
class Scalar>
 
   60   const int num_random_vectors_in,
 
   61   const bool show_all_tests_in,
 
   62   const bool dump_all_in
 
   64   :warning_tol_(warning_tol_in),
 
   65    error_tol_(error_tol_in),
 
   66    num_random_vectors_(num_random_vectors_in),
 
   67    show_all_tests_(show_all_tests_in),
 
   68    dump_all_(dump_all_in)
 
   72 template<
class Scalar>
 
   80   using Teuchos::describe;
 
   90     out = Teuchos::rcpFromPtr(out_inout);
 
   97   OSTab tab(out,1,
"THYRA");
 
  101   *out << 
"\n*** Entering "<<this->description()<<
"::checkMultiVector(vs,...) ...\n";
 
  103   *out << 
"\nTesting MultiVectorBase objects created from vs = " << describe(vs, verbLevel);
 
  106   const Scalar scalarDim = as<Scalar>(dim);
 
  110   *out << 
"\n"<<tc<<
") Checking non-contiguous non-const multi-vector views ...\n";
 
  114     const int numCols = 6;
 
  116     assign<Scalar>(mv.
ptr(), ST::zero());
 
  118       one = as<Scalar>(1.0),
 
  119       three = as<Scalar>(3.0),
 
  120       five = as<Scalar>(5.0);
 
  123       assign<Scalar>(mvView->col(0).
ptr(), one);
 
  124       assign<Scalar>(mvView->col(1).
ptr(), three);
 
  125       assign<Scalar>(mvView->col(2).
ptr(), five);
 
  141   *out << 
"\n"<<tc<<
") Checking non-contiguous const multi-vector views ...\n";
 
  145     const int numCols = 6;
 
  148       one = as<Scalar>(1.0),
 
  149       three = as<Scalar>(3.0),
 
  150       five = as<Scalar>(5.0);
 
  151     assign<Scalar>(mv.
ptr(), ST::zero());
 
  152     assign<Scalar>(mv->col(1).
ptr(), one);
 
  153     assign<Scalar>(mv->col(3).
ptr(), three);
 
  154     assign<Scalar>(mv->col(5).
ptr(), five);
 
  157         mv.
getConst()->subView(tuple<int>(1, 3, 4, 5)());
 
  170     *out << 
"\nCongratulations, this MultiVectorBase objects" 
  171          << 
" created form this vector space seems to check out!\n";
 
  173     *out << 
"\nOh no, at least one of the tests performed failed!\n";
 
  175   *out << 
"\n*** Leaving "<<this->description()<<
"::checkMultiVector(vs,...) ...\n";
 
  182 template<
class Scalar>
 
  189   using Teuchos::describe;
 
  197     out = Teuchos::rcpFromPtr(out_inout);
 
  204   OSTab tab(out,1,
"THYRA");
 
  206   bool result, success = 
true;
 
  208   *out << 
"\n*** Entering Thyra::MultiVectorTester<"<<ST::name()<<
">::check(mv,...) ...\n";
 
  210   *out << 
"\nTesting a MultiVectorBase object mv described as:\n" << describe(mv,verbLevel);
 
  214   *out << 
"\nChecking the LinearOpBase interface of mv ...\n";
 
  215   result =linearOpTester_.check(mv, out.
ptr());
 
  216   if(!result) success = 
false;
 
  219     *out << 
"\nCongratulations, this MultiVectorBase object seems to check out!\n";
 
  221     *out << 
"\nOh no, at least one of the tests performed with this MultiVectorBase object failed (see above failures)!\n";
 
  223   *out << 
"\n*** Leaving MultiVectorTester<"<<ST::name()<<
">::check(mv,...)\n";
 
  233 #endif // THYRA_MULTI_VECTOR_TESTER_DEF_HPP 
RCP< const T > getConst() const 
 
bool is_null(const boost::shared_ptr< T > &p)
 
basic_OSTab< char > OSTab
 
basic_FancyOStream< char > FancyOStream
 
Abstract interface for objects that represent a space for vectors. 
 
Teuchos::ScalarTraits< Scalar >::magnitudeType ScalarMag
Local typedef for scalar magnitude. 
 
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
 
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*. 
 
Interface for a collection of column vectors called a multi-vector. 
 
bool check(const MultiVectorBase< Scalar > &mv, const Ptr< Teuchos::FancyOStream > &out) const 
Check a multi-vector object in a set of comprehensive teats. 
 
MultiVectorTester(const ScalarMag warning_tol=1e-13, const ScalarMag error_tol=1e-10, const int num_random_vectors=1, const bool show_all_tests=false, const bool dump_all=false)
Default constructor which sets default parameter values. 
 
TypeTo as(const TypeFrom &t)
 
#define TEUCHOS_TEST_FLOATING_EQUALITY(v1, v2, tol, out, success)
 
bool checkMultiVector(const VectorSpaceBase< Scalar > &vs, const Ptr< Teuchos::FancyOStream > &out) const 
Check a multi-vector as created by a VectorSpaceBase object. 
 
virtual Ordinal dim() const =0
Return the dimension of the vector space.