Thyra Version of the Day
Loading...
Searching...
No Matches
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
15namespace Thyra {
16
17
31template<class Scalar>
33public:
34
37
41 virtual bool isCompatible( const VectorSpaceBase<Scalar> &space ) const = 0;
42
51 { randomizeImpl(mv); }
52
53private:
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
Interface for a collection of column vectors called a multi-vector.
Base interface for a strategy object for randomizing a multi-vector.
virtual bool isCompatible(const VectorSpaceBase< Scalar > &space) const =0
Determines if *this is compatible with multi-vectors from the VectorSpace space.
void randomize(const Ptr< MultiVectorBase< Scalar > > &mv)
Randomize a "compatible" multi-vector.
Abstract interface for objects that represent a space for vectors.