00001 /* @HEADER@ */ 00002 // 00003 /* @HEADER@ */ 00004 00005 #ifndef PLAYA_PRECONDITIONERFACTORY_HPP 00006 #define PLAYA_PRECONDITIONERFACTORY_HPP 00007 00008 #include "PlayaDefs.hpp" 00009 #include "PlayaHandle.hpp" 00010 #include "PlayaPreconditionerFactoryBase.hpp" 00011 00012 namespace Playa 00013 { 00027 template <class Scalar> 00028 class PreconditionerFactory 00029 : public Playa::Handle<PreconditionerFactoryBase<Scalar> > 00030 { 00031 public: 00032 /* Boilerplate ctors */ 00033 HANDLE_CTORS(PreconditionerFactory<Scalar>, PreconditionerFactoryBase<Scalar>); 00034 00036 Preconditioner<Scalar> createPreconditioner(const LinearOperator<Scalar>& A) const 00037 {return this->ptr()->createPreconditioner(A);} 00038 00039 }; 00040 } 00041 00042 #endif