Clp trunk
ClpPdcoBase.hpp
Go to the documentation of this file.
00001 /* $Id$ */
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 Files Functions Variables Typedefs Enumerations Enumerator Friends Defines