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

- File List
- File Members

# /home/coin/SVN-release/Cgl-0.55.0/Clp/src/ClpPdcoBase.hpp

Go to the documentation of this file.

    00001 /* $Id: ClpPdcoBase.hpp 1370 2009-06-04 09:37:13Z forrest $ */
    00002 // Copyright (C) 2003, International Business Machines
    00003 // Corporation and others.  All Rights Reserved.
    00004 #ifndef ClpPdcoBase_H
    00005 #define ClpPdcoBase_H
    00006
    00007 #include "CoinPragma.hpp"
    00008
    00009 #include "CoinPackedMatrix.hpp"
    00010 #include "CoinDenseVector.hpp"
    00011 class ClpInterior;
    00012
    00023 class ClpPdcoBase  {
    00024
    00025 public:
    00028   virtual void matVecMult(ClpInterior * model, int mode, double * x, double * y) const=0;
    00029
    00030   virtual void getGrad(ClpInterior * model, CoinDenseVector<double> &x, CoinDenseVector<double> &grad) const=0;
    00031
    00032   virtual void getHessian(ClpInterior * model, CoinDenseVector<double> &x, CoinDenseVector<double> &H) const=0;
    00033
    00034   virtual double getObj(ClpInterior * model, CoinDenseVector<double> &x) const=0;
    00035
    00036   virtual void matPrecon(ClpInterior * model,  double delta, double * x, double * y) const = 0;
    00037
    00039
    00040
    00041
    00042   virtual ClpPdcoBase * clone() const = 0;
    00044   inline int type() const
    00045   { return type_;};
    00047   inline void setType(int type) {type_=type;};
    00049   inline int sizeD1() const
    00050   { return 1;};
    00052   inline double getD1() const
    00053   { return d1_;};
    00055   inline int sizeD2() const
    00056   { return 1;};
    00058   inline double getD2() const
    00059   { return d2_;};
    00061
    00062
    00063 protected:
    00064
    00070    ClpPdcoBase();
    00072 public:
    00073    virtual ~ClpPdcoBase();
    00074 protected:
    00075   // Copy
    00076    ClpPdcoBase(const ClpPdcoBase&);
    00077   // Assignment
    00078    ClpPdcoBase& operator=(const ClpPdcoBase&);
    00080
    00081
    00082 protected:
    00086
    00087   double d1_;
    00088   double d2_;
    00090    int type_;
    00092 };
    00093
    00094 #endif