42#ifndef THYRA_LISTED_MULTI_VECTOR_RANDOMIZER_HPP
43#define THYRA_LISTED_MULTI_VECTOR_RANDOMIZER_HPP
45#include "Thyra_MultiVectorRandomizerBase.hpp"
46#include "Thyra_MultiVectorStdOps.hpp"
68 ,
const int numMultiVecs
74 ,
const int numMultiVecs
97 typedef std::vector<Teuchos::RCP<const MultiVectorBase<Scalar> > > multiVecs_t;
98 multiVecs_t multiVecs_;
108template<
class Scalar>
111 ,
const int numMultiVecs
118template<
class Scalar>
121 ,
const int numMultiVecs
124 multiVecs_.resize(numMultiVecs);
125 std::copy( multiVecs, multiVecs + numMultiVecs, multiVecs_.begin() );
133template<
class Scalar>
136 return multiVecs_[curr_mv_i_]->range()->isCompatible(space);
143template<
class Scalar>
144void ListedMultiVectorRandomizer<Scalar>::randomizeImpl(
152 THYRA_ASSERT_VEC_SPACES(
"ListedMultiVectorRandomizer<Scalar>::randomize(mv)", *currMV->range(), *mv->range() );
153 THYRA_ASSERT_VEC_SPACES(
"ListedMultiVectorRandomizer<Scalar>::randomize(mv)", *currMV->domain(), *mv->domain() );
156 if( curr_mv_i_ ==
static_cast<int>(multiVecs_.size()) - 1 )
bool isCompatible(const VectorSpaceBase< Scalar > &space) const
ListedMultiVectorRandomizer(const Teuchos::RCP< const MultiVectorBase< Scalar > > multiVecs[], const int numMultiVecs)
Calls this->initialize().
void initialize(const Teuchos::RCP< const MultiVectorBase< Scalar > > multiVecs[], const int numMultiVecs)
Interface for a collection of column vectors called a multi-vector.
void assign(const Ptr< MultiVectorBase< Scalar > > &V, Scalar alpha)
V = alpha.
Base interface for a strategy object for randomizing a multi-vector.
Abstract interface for objects that represent a space for vectors.
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)
#define THYRA_ASSERT_VEC_SPACES(FUNC_NAME, VS1, VS2)
This is a very useful macro that should be used to validate that two vector spaces are compatible.