/* $Header: /var/lib/cvs/dynare_cpp/sylv/cc/IterativeSylvester.h,v 1.1.1.1 2004/06/04 13:00:20 kamenik Exp $ */ /* Tag $Name: $ */ #ifndef ITERATIVE_SYLVESTER_H #define ITERATIVE_SYLVESTER_H #include "SylvesterSolver.h" #include "KronVector.h" #include "QuasiTriangular.h" #include "SimilarityDecomp.h" class IterativeSylvester : public SylvesterSolver { public: IterativeSylvester(const QuasiTriangular& k, const QuasiTriangular& f) : SylvesterSolver(k, f) {} IterativeSylvester(const SchurDecompZero& kdecomp, const SchurDecomp& fdecomp) : SylvesterSolver(kdecomp, fdecomp) {} IterativeSylvester(const SchurDecompZero& kdecomp, const SimilarityDecomp& fdecomp) : SylvesterSolver(kdecomp, fdecomp) {} void solve(SylvParams& pars, KronVector& x) const; private: double performFirstStep(KronVector& x) const; static double performStep(const QuasiTriangular& k, const QuasiTriangular& f, KronVector& x); }; #endif /* ITERATIVE_SYLVESTER_H */ // Local Variables: // mode:C++ // End: