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

- File List
- File Members

# /home/coin/SVN-release/Bcps-0.91.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