14#ifndef ANASAZI_ORTHOMANAGER_HPP
15#define ANASAZI_ORTHOMANAGER_HPP
33#include "Teuchos_ScalarTraits.hpp"
34#include "Teuchos_RCP.hpp"
35#include "Teuchos_SerialDenseMatrix.hpp"
36#include "Teuchos_Array.hpp"
49 class OrthoError :
public AnasaziError
50 {
public: OrthoError(
const std::string& what_arg) : AnasaziError(what_arg) {}};
54 template <
class ScalarType,
class MV>
82 virtual void innerProd(
const MV &X,
const MV &Y, Teuchos::SerialDenseMatrix<int,ScalarType>& Z )
const = 0;
97 virtual void norm(
const MV& X, std::vector<
typename Teuchos::ScalarTraits<ScalarType>::magnitudeType > &normvec )
const = 0;
141 Teuchos::Array<Teuchos::RCP<const MV> > Q,
142 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C
143 = Teuchos::tuple(Teuchos::RCP< Teuchos::SerialDenseMatrix<int,ScalarType> >(Teuchos::null))
190 Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > B = Teuchos::null)
const = 0;
260 Teuchos::Array<Teuchos::RCP<const MV> > Q,
261 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C
262 = Teuchos::tuple(Teuchos::RCP< Teuchos::SerialDenseMatrix<int,ScalarType> >(Teuchos::null)),
263 Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > B = Teuchos::null
276 virtual typename Teuchos::ScalarTraits< ScalarType >::magnitudeType
orthonormError(
const MV &X)
const = 0;
283 virtual typename Teuchos::ScalarTraits<ScalarType>::magnitudeType
orthogError(
const MV &X1,
const MV &X2)
const = 0;
Anasazi header file which uses auto-configuration information to include necessary C++ headers.
Types and exceptions used within Anasazi solvers and interfaces.
virtual void norm(const MV &X, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec) const =0
Provides the norm induced by innerProd().
virtual int normalize(MV &X, Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > B=Teuchos::null) const =0
This method takes a multivector X and attempts to compute a basis for . This basis is orthonormal wit...
virtual int projectAndNormalize(MV &X, Teuchos::Array< Teuchos::RCP< const MV > > Q, Teuchos::Array< Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > > C=Teuchos::tuple(Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > >(Teuchos::null)), Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > B=Teuchos::null) const =0
Given a set of bases Q[i] and a multivector X, this method computes an orthonormal basis for .
virtual void innerProd(const MV &X, const MV &Y, Teuchos::SerialDenseMatrix< int, ScalarType > &Z) const =0
Provides the inner product defining the orthogonality concepts.
virtual void project(MV &X, Teuchos::Array< Teuchos::RCP< const MV > > Q, Teuchos::Array< Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > > C=Teuchos::tuple(Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > >(Teuchos::null))) const =0
Given a list of mutually orthogonal and internally orthonormal bases Q, this method projects a multiv...
virtual Teuchos::ScalarTraits< ScalarType >::magnitudeType orthogError(const MV &X1, const MV &X2) const =0
This method computes the error in orthogonality of two multivectors.
virtual ~OrthoManager()
Destructor.
OrthoManager()
Default constructor.
virtual Teuchos::ScalarTraits< ScalarType >::magnitudeType orthonormError(const MV &X) const =0
This method computes the error in orthonormality of a multivector.
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package.