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

- File List
- File Members

# /home/coin/SVN-release/Alps-1.2.1/Clp/src/ClpPdcoBase.hpp

Go to the documentation of this file.

    00001 /* $Id: ClpPdcoBase.hpp 1525 2010-02-26 17:27:59Z mjs $ */
    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_;
    00046      };
    00048      inline void setType(int type) {
    00049           type_ = type;
    00050      };
    00052      inline int sizeD1() const {
    00053           return 1;
    00054      };
    00056      inline double getD1() const {
    00057           return d1_;
    00058      };
    00060      inline int sizeD2() const {
    00061           return 1;
    00062      };
    00064      inline double getD2() const {
    00065           return d2_;
    00066      };
    00068
    00069
    00070 protected:
    00071
    00077      ClpPdcoBase();
    00079 public:
    00080      virtual ~ClpPdcoBase();
    00081 protected:
    00082      // Copy
    00083      ClpPdcoBase(const ClpPdcoBase&);
    00084      // Assignment
    00085      ClpPdcoBase& operator=(const ClpPdcoBase&);
    00087
    00088
    00089 protected:
    00093
    00094      double d1_;
    00095      double d2_;
    00097      int type_;
    00099 };
    00100
    00101 #endif