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
00034 #ifndef ANASAZI_GENORTHOMANAGER_HPP
00035 #define ANASAZI_GENORTHOMANAGER_HPP
00036
00050 #include "AnasaziConfigDefs.hpp"
00051 #include "AnasaziTypes.hpp"
00052 #include "AnasaziMatOrthoManager.hpp"
00053 #include "AnasaziMultiVecTraits.hpp"
00054 #include "AnasaziOperatorTraits.hpp"
00055
00056 namespace Anasazi {
00057
00058 template <class ScalarType, class MV, class OP>
00059 class GenOrthoManager : public MatOrthoManager<ScalarType,MV,OP> {
00060 public:
00062
00063
00064 GenOrthoManager(Teuchos::RCP<const OP> Op = Teuchos::null);
00065
00067 virtual ~GenOrthoManager() {};
00069
00070
00072
00073
00152 virtual void projectGen(
00153 MV &S,
00154 Teuchos::Array<Teuchos::RCP<const MV> > X,
00155 Teuchos::Array<Teuchos::RCP<const MV> > Y,
00156 bool isBiOrtho,
00157 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C
00158 = Teuchos::tuple(Teuchos::RCP< Teuchos::SerialDenseMatrix<int,ScalarType> >(Teuchos::null)),
00159 Teuchos::RCP<MV> MS = Teuchos::null,
00160 Teuchos::Array<Teuchos::RCP<const MV> > MX = Teuchos::tuple(Teuchos::RCP<const MV>(Teuchos::null)),
00161 Teuchos::Array<Teuchos::RCP<const MV> > MY = Teuchos::tuple(Teuchos::RCP<const MV>(Teuchos::null))
00162 ) const = 0;
00163
00164
00258 virtual int projectAndNormalizeGen (
00259 MV &S,
00260 Teuchos::Array<Teuchos::RCP<const MV> > X,
00261 Teuchos::Array<Teuchos::RCP<const MV> > Y,
00262 bool isBiOrtho,
00263 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C
00264 = Teuchos::tuple(Teuchos::RCP< Teuchos::SerialDenseMatrix<int,ScalarType> >(Teuchos::null)),
00265 Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > B = Teuchos::null,
00266 Teuchos::RCP<MV> MS = Teuchos::null,
00267 Teuchos::Array<Teuchos::RCP<const MV> > MX = Teuchos::tuple(Teuchos::RCP<const MV>(Teuchos::null)),
00268 Teuchos::Array<Teuchos::RCP<const MV> > MY = Teuchos::tuple(Teuchos::RCP<const MV>(Teuchos::null))
00269 ) const = 0;
00270
00272
00273 };
00274
00275 template <class ScalarType,class MV,class OP>
00276 GenOrthoManager<ScalarType,MV,OP>::GenOrthoManager(Teuchos::RCP<const OP> Op)
00277 : MatOrthoManager<ScalarType,MV,OP>(Op) {}
00278
00279 }
00280
00281
00282 #endif
00283
00284