CroutMatrix.h
Go to the documentation of this file.
00001 #ifndef __NEW_MAT_CROUT_MATIX_H__
00002 #define __NEW_MAT_CROUT_MATIX_H__
00003 
00007 class CroutMatrix : public GeneralMatrix
00008 {
00009    int* indx;
00010    bool d;                              // number of row swaps = even or odd
00011    bool sing;
00012    void ludcmp();
00013    void get_aux(CroutMatrix&);                  // for copying indx[] etc
00014    GeneralMatrix* Image() const;                // copy of matrix
00015 public:
00016    CroutMatrix(const BaseMatrix&);
00017    CroutMatrix() : indx(0), d(true), sing(true) {}
00018    CroutMatrix(const CroutMatrix&);
00019    void operator=(const CroutMatrix&);
00020    GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp);
00021    MatrixType type() const;
00022    void lubksb(Real*, int=0);
00023    ~CroutMatrix();
00024    GeneralMatrix* MakeSolver() { return this; } // for solving
00025    LogAndSign log_determinant() const;
00026    void Solver(MatrixColX&, const MatrixColX&);
00027    void GetRow(MatrixRowCol&);
00028    void GetCol(MatrixRowCol&);
00029    void GetCol(MatrixColX& c) { GetCol((MatrixRowCol&)c); }
00030    void cleanup();                                // to clear store
00031    void MiniCleanUp();
00032    bool IsEqual(const GeneralMatrix&) const;
00033    bool is_singular() const { return sing; }
00034    bool IsSingular() const { return sing; }
00035    const int* const_data_indx() const { return indx; }
00036    bool even_exchanges() const { return d; }
00037    void swap(CroutMatrix& gm);
00038    NEW_DELETE(CroutMatrix)
00039 };
00040 
00041 #endif
00042 


lo
Author(s): U. Klank
autogenerated on Mon Oct 6 2014 10:44:13