00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef THYRA_MULTI_VECTOR_STD_OPS_TESTER_HPP
00030 #define THYRA_MULTI_VECTOR_STD_OPS_TESTER_HPP
00031
00032 #include "Thyra_MultiVectorStdOpsTesterDecl.hpp"
00033 #include "Thyra_TestingTools.hpp"
00034 #include "Teuchos_arrayArg.hpp"
00035
00036 namespace Thyra {
00037
00038
00039
00040 template <class Scalar>
00041 MultiVectorStdOpsTester<Scalar>::MultiVectorStdOpsTester(
00042 const ScalarMag &warning_tol
00043 ,const ScalarMag &error_tol
00044 ,const int num_mv_cols
00045 )
00046 :warning_tol_(warning_tol)
00047 ,error_tol_(error_tol)
00048 ,num_mv_cols_(num_mv_cols)
00049 {}
00050
00051 template <class Scalar>
00052 bool MultiVectorStdOpsTester<Scalar>::checkStdOps(
00053 const VectorSpaceBase<Scalar> &vecSpc
00054 ,std::ostream *out
00055 ,const bool &dumpAll
00056 )
00057 {
00058 using Teuchos::arrayArg;
00059 typedef Teuchos::ScalarTraits<Scalar> ST;
00060
00061 if(out)
00062 *out << "\n*** Entering MultiVectorStdOpsTester<"<<ST::name()<<">::checkStdOps(...) ...\n"
00063 << "using a \'" << vecSpc.description() << "\' object ...\n";
00064
00065 bool success = true;
00066 if(out) *out << "\nvecSpc.dim() = " << vecSpc.dim() << std::endl;
00067
00068 if(out) *out << "\nCreating MultiVectorBase objects V1, V2, V3 and Z ...\n";
00069 Teuchos::RefCountPtr<MultiVectorBase<Scalar> >
00070 V1 = createMembers(vecSpc,num_mv_cols()),
00071 V2 = createMembers(vecSpc,num_mv_cols()),
00072 V3 = createMembers(vecSpc,num_mv_cols()),
00073 Z = createMembers(vecSpc,num_mv_cols());
00074
00075 if(out) *out << "\nassign(&*V1,-2.0);\n";
00076 assign(&*V1,Scalar(-2.0));
00077 if(out) *out << "\nassign(&*V2,-3.0);\n";
00078 assign(&*V2,Scalar(-3.0));
00079 if(out) *out << "\nassign(&*V3,-4.0);\n";
00080 assign(&*V3,Scalar(-4.0));
00081
00082
00083
00084 if(out) *out
00085 << "\n*** Leaving MultiVectorStdOpsTester<"<<ST::name()<<">::checkStdOps(...) ...\n";
00086
00087 return success;
00088
00089 }
00090
00091 }
00092
00093 #endif // THYRA_MULTI_VECTOR_STD_OPS_TESTER_HPP