- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Bcps-0.91.0/Clp/src/ClpCholeskyDense.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2003, International Business Machines
    00002 // Corporation and others.  All Rights Reserved.
    00003 #ifndef ClpCholeskyDense_H
    00004 #define ClpCholeskyDense_H
    00005
    00006 #include "ClpCholeskyBase.hpp"
    00007 class ClpMatrixBase;
    00008
    00012 class ClpCholeskyDense : public ClpCholeskyBase {
    00013
    00014 public:
    00019   virtual int order(ClpInterior * model) ;
    00024   virtual int symbolic();
    00027   virtual int factorize(const double * diagonal, int * rowsDropped) ;
    00029   virtual void solve (double * region) ;
    00031
    00037    int reserveSpace(const ClpCholeskyBase * factor, int numberRows) ;
    00039    CoinBigIndex space( int numberRows) const;
    00041   void factorizePart2(int * rowsDropped) ;
    00043   void factorizePart3(int * rowsDropped) ;
    00045   void factor(longDouble * a, int n, int numberBlocks,
    00046               longDouble * diagonal, longDouble * work, int * rowsDropped);
    00048   void triRec(longDouble * aTri, int nThis, longDouble * aUnder, longDouble * diagonal, longDouble * work,
    00049               int nLeft, int iBlock, int jBlock,
    00050               int numberBlocks);
    00052   void recTri(longDouble * aUnder, int nTri, int nDo,
    00053               int iBlock, int jBlock,longDouble * aTri,
    00054               longDouble * diagonal, longDouble * work,
    00055               int numberBlocks);
    00060   void recRec(longDouble * above, int nUnder, int nUnderK,
    00061               int nDo, longDouble * aUnder, longDouble *aOther,
    00062               longDouble * work,
    00063               int iBlock, int jBlock,
    00064               int numberBlocks);
    00066   void factorLeaf(longDouble * a, int n,
    00067               longDouble * diagonal, longDouble * work, int * rowsDropped);
    00069   void triRecLeaf(longDouble * aTri, longDouble * aUnder,
    00070                   longDouble * diagonal, longDouble * work,
    00071                   int nUnder);
    00073   void recTriLeaf(longDouble * aUnder, longDouble * aTri,
    00074                   longDouble * diagonal, longDouble * work, int nUnder);
    00079   void recRecLeaf(const longDouble * COIN_RESTRICT above,
    00080                   const longDouble * COIN_RESTRICT aUnder,
    00081                   longDouble * COIN_RESTRICT aOther,
    00082                   const longDouble * COIN_RESTRICT work,
    00083                   int nUnder);
    00085   void solveF1(longDouble * a,int n,double * region);
    00086   void solveF2(longDouble * a,int n,double * region,double * region2);
    00088   void solveB1(longDouble * a,int n,double * region);
    00089   void solveB2(longDouble * a,int n,double * region,double * region2);
    00091   void solveLong (longDouble * region) ;
    00093   void solveF1Long(longDouble * a,int n,longDouble * region);
    00094   void solveF2Long(longDouble * a,int n,longDouble * region,longDouble * region2);
    00096   void solveB1Long(longDouble * a,int n,longDouble * region);
    00097   void solveB2Long(longDouble * a,int n,longDouble * region,longDouble * region2);
    00099   void solveLongWork (longWork * region) ;
    00101   void solveF1LongWork(longDouble * a,int n,longWork * region);
    00102   void solveF2LongWork(longDouble * a,int n,longWork * region,longWork * region2);
    00104   void solveB1LongWork(longDouble * a,int n,longWork * region);
    00105   void solveB2LongWork(longDouble * a,int n,longWork * region,longWork * region2);
    00106   int bNumber(const longDouble * array,int &, int&);
    00108   inline longDouble * aMatrix() const
    00109   { return sparseFactor_;}
    00111   inline longDouble * diagonal() const
    00112   { return diagonal_;}
    00114
    00115
    00119   ClpCholeskyDense();
    00121   virtual ~ClpCholeskyDense();
    00122   // Copy
    00123   ClpCholeskyDense(const ClpCholeskyDense&);
    00124   // Assignment
    00125   ClpCholeskyDense& operator=(const ClpCholeskyDense&);
    00127   virtual ClpCholeskyBase * clone() const ;
    00129
    00130
    00131 private:
    00134
    00135   bool borrowSpace_;
    00137 };
    00138
    00139 #endif