Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Thyra_MultiVectorRandomizerBase.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Thyra: Interfaces and Support for Abstract Numerical Algorithms
4 //
5 // Copyright 2004 NTESS and the Thyra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef THYRA_MULTI_VECTOR_RANDOMIZER_BASE_HPP
11 #define THYRA_MULTI_VECTOR_RANDOMIZER_BASE_HPP
12 
13 #include "Thyra_OperatorVectorTypes.hpp"
14 
15 namespace Thyra {
16 
17 
31 template<class Scalar>
33 public:
34 
37 
41  virtual bool isCompatible( const VectorSpaceBase<Scalar> &space ) const = 0;
42 
51  { randomizeImpl(mv); }
52 
53 private:
54 
56  virtual void randomizeImpl(const Ptr<MultiVectorBase<Scalar> > &mv) = 0;
57 
58 };
59 
60 
61 } // namespace Thyra
62 
63 
64 #endif // THYRA_MULTI_VECTOR_RANDOMIZER_BASE_HPP
Abstract interface for objects that represent a space for vectors.
virtual bool isCompatible(const VectorSpaceBase< Scalar > &space) const =0
Determines if *this is compatible with multi-vectors from the VectorSpace space.
Interface for a collection of column vectors called a multi-vector.
Base interface for a strategy object for randomizing a multi-vector.
void randomize(const Ptr< MultiVectorBase< Scalar > > &mv)
Randomize a &quot;compatible&quot; multi-vector.