# ClpPdcoBase.hpp

Go to the documentation of this file.

    00001 /* $Id: ClpPdcoBase.hpp 1665 2011-01-04 17:55:54Z lou $ */
    00002 // Copyright (C) 2003, International Business Machines
    00003 // Corporation and others.  All Rights Reserved.
    00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
    00005
    00006 #ifndef ClpPdcoBase_H
    00007 #define ClpPdcoBase_H
    00008
    00009 #include "CoinPragma.hpp"
    00010
    00011 #include "CoinPackedMatrix.hpp"
    00012 #include "CoinDenseVector.hpp"
    00013 class ClpInterior;
    00014
    00025 class ClpPdcoBase  {
    00026
    00027 public:
    00030      virtual void matVecMult(ClpInterior * model, int mode, double * x, double * y) const = 0;
    00031
    00032      virtual void getGrad(ClpInterior * model, CoinDenseVector<double> &x, CoinDenseVector<double> &grad) const = 0;
    00033
    00034      virtual void getHessian(ClpInterior * model, CoinDenseVector<double> &x, CoinDenseVector<double> &H) const = 0;
    00035
    00036      virtual double getObj(ClpInterior * model, CoinDenseVector<double> &x) const = 0;
    00037
    00038      virtual void matPrecon(ClpInterior * model,  double delta, double * x, double * y) const = 0;
    00039
    00041
    00042
    00043
    00044      virtual ClpPdcoBase * clone() const = 0;
    00046      inline int type() const {
    00047           return type_;
    00048      };
    00050      inline void setType(int type) {
    00051           type_ = type;
    00052      };
    00054      inline int sizeD1() const {
    00055           return 1;
    00056      };
    00058      inline double getD1() const {
    00059           return d1_;
    00060      };
    00062      inline int sizeD2() const {
    00063           return 1;
    00064      };
    00066      inline double getD2() const {
    00067           return d2_;
    00068      };
    00070
    00071
    00072 protected:
    00073
    00079      ClpPdcoBase();
    00081 public:
    00082      virtual ~ClpPdcoBase();
    00083 protected:
    00084      // Copy
    00085      ClpPdcoBase(const ClpPdcoBase&);
    00086      // Assignment
    00087      ClpPdcoBase& operator=(const ClpPdcoBase&);
    00089
    00090
    00091 protected:
    00095
    00096      double d1_;
    00097      double d2_;
    00099      int type_;
    00101 };
    00102
    00103 #endif

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines