/home/coin/SVN-release/CoinAll-1.1.0/Clp/src/ClpPdcoBase.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2003, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef ClpPdcoBase_H
00004 #define ClpPdcoBase_H
00005 
00006 #include "CoinPragma.hpp"
00007 
00008 #include "CoinPackedMatrix.hpp"
00009 #include "CoinDenseVector.hpp"
00010 class ClpInterior;
00011 
00022 class ClpPdcoBase  {
00023   
00024 public:
00027   virtual void matVecMult(ClpInterior * model, int mode, double * x, double * y) const=0;
00028   
00029   virtual void getGrad(ClpInterior * model, CoinDenseVector<double> &x, CoinDenseVector<double> &grad) const=0;
00030   
00031   virtual void getHessian(ClpInterior * model, CoinDenseVector<double> &x, CoinDenseVector<double> &H) const=0;
00032   
00033   virtual double getObj(ClpInterior * model, CoinDenseVector<double> &x) const=0;
00034   
00035   virtual void matPrecon(ClpInterior * model,  double delta, double * x, double * y) const = 0;
00036   
00038 
00039 
00040 
00041   virtual ClpPdcoBase * clone() const = 0;
00043   inline int type() const
00044   { return type_;};
00046   inline void setType(int type) {type_=type;};
00048   inline int sizeD1() const
00049   { return 1;};
00051   inline double getD1() const
00052   { return d1_;};
00054   inline int sizeD2() const
00055   { return 1;};
00057   inline double getD2() const
00058   { return d2_;};
00060   
00061   
00062 protected:
00063 
00069    ClpPdcoBase();
00071 public:
00072    virtual ~ClpPdcoBase();
00073 protected:
00074   // Copy
00075    ClpPdcoBase(const ClpPdcoBase&);
00076   // Assignment
00077    ClpPdcoBase& operator=(const ClpPdcoBase&);
00079    
00080     
00081 protected:
00085 
00086   double d1_;
00087   double d2_;
00089    int type_;
00091 };
00092 
00093 #endif

Generated on Sun Nov 14 14:06:32 2010 for Coin-All by  doxygen 1.4.7