70 lines
1.1 KiB
C++
70 lines
1.1 KiB
C++
/* $Header: /var/lib/cvs/dynare_cpp/sylv/cc/SchurDecomp.h,v 1.1.1.1 2004/06/04 13:00:44 kamenik Exp $ */
|
|
|
|
/* Tag $Name: $ */
|
|
|
|
#ifndef SCHUR_DECOMP_H
|
|
#define SCHUR_DECOMP_H
|
|
|
|
#include "SylvMatrix.hh"
|
|
#include "QuasiTriangular.hh"
|
|
|
|
class QuasiTriangular;
|
|
class SchurDecomp
|
|
{
|
|
bool q_destroy;
|
|
SqSylvMatrix *q;
|
|
bool t_destroy;
|
|
QuasiTriangular *t;
|
|
public:
|
|
SchurDecomp(const SqSylvMatrix &m);
|
|
SchurDecomp(const QuasiTriangular &tr);
|
|
SchurDecomp(QuasiTriangular &tr);
|
|
const SqSylvMatrix &
|
|
getQ() const
|
|
{
|
|
return *q;
|
|
}
|
|
const QuasiTriangular &
|
|
getT() const
|
|
{
|
|
return *t;
|
|
}
|
|
SqSylvMatrix &
|
|
getQ()
|
|
{
|
|
return *q;
|
|
}
|
|
QuasiTriangular &
|
|
getT()
|
|
{
|
|
return *t;
|
|
}
|
|
virtual int getDim() const;
|
|
virtual
|
|
~SchurDecomp();
|
|
};
|
|
|
|
class SchurDecompZero : public SchurDecomp
|
|
{
|
|
GeneralMatrix ru; /* right upper matrix */
|
|
public:
|
|
SchurDecompZero(const GeneralMatrix &m);
|
|
const GeneralMatrix &
|
|
getRU() const
|
|
{
|
|
return ru;
|
|
}
|
|
int getDim() const;
|
|
int
|
|
getZeroCols() const
|
|
{
|
|
return ru.numRows();
|
|
}
|
|
};
|
|
|
|
#endif /* SCHUR_DECOMP_H */
|
|
|
|
// Local Variables:
|
|
// mode:C++
|
|
// End:
|