62 lines
1.7 KiB
C++
62 lines
1.7 KiB
C++
/* $Header: /var/lib/cvs/dynare_cpp/sylv/cc/GeneralSylvester.h,v 1.1.1.1 2004/06/04 13:00:20 kamenik Exp $ */
|
|
|
|
/* Tag $Name: $ */
|
|
|
|
#ifndef GENERAL_SYLVESTER_H
|
|
#define GENERAL_SYLVESTER_H
|
|
|
|
#include "SylvMatrix.h"
|
|
#include "SylvMemory.h"
|
|
#include "SimilarityDecomp.h"
|
|
#include "SylvesterSolver.h"
|
|
|
|
class GeneralSylvester {
|
|
SylvParams pars;
|
|
SylvMemoryDriver mem_driver;
|
|
int order;
|
|
const SqSylvMatrix a;
|
|
const SylvMatrix b;
|
|
const SqSylvMatrix c;
|
|
SylvMatrix d;
|
|
bool solved;
|
|
SchurDecompZero* bdecomp;
|
|
SimilarityDecomp* cdecomp;
|
|
SylvesterSolver* sylv;
|
|
public:
|
|
/* construct with my copy of d*/
|
|
GeneralSylvester(int ord, int n, int m, int zero_cols,
|
|
const double* da, const double* db,
|
|
const double* dc, const double* dd,
|
|
const SylvParams& ps);
|
|
GeneralSylvester(int ord, int n, int m, int zero_cols,
|
|
const double* da, const double* db,
|
|
const double* dc, const double* dd,
|
|
bool alloc_for_check = false);
|
|
/* construct with provided storage for d */
|
|
GeneralSylvester(int ord, int n, int m, int zero_cols,
|
|
const double* da, const double* db,
|
|
const double* dc, double* dd,
|
|
bool alloc_for_check = false);
|
|
GeneralSylvester(int ord, int n, int m, int zero_cols,
|
|
const double* da, const double* db,
|
|
const double* dc, double* dd,
|
|
const SylvParams& ps);
|
|
virtual ~GeneralSylvester();
|
|
int getM() const {return c.numRows();}
|
|
int getN() const {return a.numRows();}
|
|
const double* getResult() const {return d.base();}
|
|
const SylvParams& getParams() const {return pars;}
|
|
SylvParams& getParams() {return pars;}
|
|
void solve();
|
|
void check(const double* ds);
|
|
private:
|
|
void init();
|
|
};
|
|
|
|
#endif /* GENERAL_SYLVESTER_H */
|
|
|
|
|
|
// Local Variables:
|
|
// mode:C++
|
|
// End:
|