/home/coin/SVN-release/Bcp-1.2.2/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

Generated on Tue Jun 16 03:03:02 2009 for coin-Bcp by  doxygen 1.4.7